JBTVDriver
Baggers
Posts: 3,019
Hi all,
I've modified Chip's 256x192 driver to now allow any NTSC resolution ( even X even number ) from 2x2 to 640x480
Updates:-
Update 2:
Added VGA same modes as TV
Update 1:
Added 32BPP version for 320x200, you set the BPP at the top to 8 to 32, then at the bottom of the file there are various 8bpp and 32bpp (24bpp image in 32bpp file) FILE commands.
Also changed R and S to more fit my TV, you may want to turn it back to your own settings or change them for your TV.
Latest
jimbagley.co.uk/NTSC_and_VGA_640x480_Driver.zip
Older versions
jimbagley.co.uk/JBTVDriver.zip
I'll add a char map next.
OK, so I added 32BPP next char map is definitely next.
I've modified Chip's 256x192 driver to now allow any NTSC resolution ( even X even number ) from 2x2 to 640x480
Updates:-
Update 2:
Added VGA same modes as TV
Update 1:
Added 32BPP version for 320x200, you set the BPP at the top to 8 to 32, then at the bottom of the file there are various 8bpp and 32bpp (24bpp image in 32bpp file) FILE commands.
Also changed R and S to more fit my TV, you may want to turn it back to your own settings or change them for your TV.
Latest
jimbagley.co.uk/NTSC_and_VGA_640x480_Driver.zip
Older versions
jimbagley.co.uk/JBTVDriver.zip
I'll add a char map next.
OK, so I added 32BPP next char map is definitely next.
Comments
It's still early days with the driver as I'd like to make it variable resolution at runtime, and also PAL or Component or VGA driver all in one, and add text and graphic modes and sprites.
I am using an old RCA... the bmp of Chip and Doom are rock solid. The bubble, batman,trees,sddefault bmps are showing just a hint of flicker in some areas. I drew some 1 pixel red lines on bubble.bmp to highlight it. On my monitor, I get marching ants in some areas.
Rich
Also thanks for feedback too, when doing 640 it's going into overscan so totally understandable that it gets a hint of flicker on some screens, they're all solid on my LG display, I've not tried it on a CRT or anything other than this LG MonitorTV, although it doesn't show full 640x480 for me.
Are they not also flipped left to right?
2 video drivers (text/bitmap) in one day. How good is that?
It does when you want to make those color definitions display portable. "native" color out changes a lot from display type to display type.
All the drivers out there so far have the same vsync code.
Have you played with that brightness constant that was 84 in my original NTSC demo? The DACs on our early fpga boards were way over 1V peak. I ask because the screen shot you posted looks quite saturated. Lowering that 84 to 60, or so, might help.
I'm sitting here looking at an absolutely beautiful picture of space... hard to believe it is only 320x200.
Then I wonder to myself: "self... why do we need a look up table for a 32 bit image?... where did that 8 bit look up table come from anyway?... what kind of discombobulation is this?"
If you could offer just a few words on this general topic:)
No palette is needed for 32BPP images, though it could be employed for sync generation.
I can see you rotated the pics for us Ozzies to view
There are also modes where that value is used for the color directly. This is the image you are looking at.
Some modes also take an immediate argument, and for those the color is supplied by the instruction itself, not from a screen buffer, or the LUT.
The traditional why is both space saving and bandwidth saving. It's an easy form of hardware decompression if you like.
Variations exist too. We could, if we want to, modify palette entries per scanline. Using all of them may not save much, but deltas often can. Say 16 new entries per scanline can make a very significant difference on some images.
Well ... I figured I'd mention things that aren't normally thought of as a compression scheme.
Line by line is frustrating. HAM8 mode on the Amiga1200 was the best I've seen of that sort.
Chip, yeah in this updated driver I reduced the brightness constants as it was too saturated on my TV
Cheers Rjo_, the 32bpp driver doesn't use a palette, it's only the 8bpp driver part that uses a palette which is why it orgs at $1000-$436 and 32bpp orgs at $1000-$36 as the BMP header is $36 bytes long the $400 bytes after header is palette which is loaded into LUT. Hope this helps.
Close, BMPs are stored upside down probably when initially writing the save routine it was using the counter for how many lines to save as a y line index too, who knows lol
Potatohead, there is no RLE in this driver, I just have the 32bpp screens back down to 320x200
Chip's example BMPs are upside down the same. I'm going to assume bitmap data in HubRAM is right-way up. So, either Pnut is flipping the data upright when building the bin file, or the BMP format is normally flipped but isn't for these examples and hence an ordinary picture viewer shows them the wrong way up ...
And guess what, the default order is upside down, bottom to top. But there is a recognised way of doing top to bottom instead: "... uncompressed Windows bitmaps also can be stored from the top to bottom, when the Image Height value is negative." EDIT: Turns out the negative height trick doesn't work for the smallest header, BITMAPCOREHEADER, which is the one being used for the Prop files. The next longer header, BITMAPINFOHEADER, is 28 bytes more.
Of course, I doubt any paint package will encode that ... so it would involve a custom edit of the header. And I wouldn't be too surprised if some picture viewers choke on a negative height anyway. So Chip has prolly done the best thing.