Fullscreen bitmap in 8bpp?

Viza

New Member
Jan 6, 2020
4
1
3
I'm trying to display a 256 color image, but run into trouble writing to the screen after 64k (0xffff)
I can set up the video mode, and have no problem writing to the first 64k.(204 lines from a 320x240 image)

As far as I understand after that I just have to write 0x11 to VERA.address_hi (that's a define from the cc65 environment, 0x9f22) and 0x0000 to VERA.address (a word at 0x9f20) and it should be good to go, but nothing gets written to the screen.
What am I missing/doing wrong?

...and part B of this question: the video ram is $00000 - $1FFFF (131071 bytes) but a 640x480x256color image is 307200 bytes - is that means that it is not possible to display a fullscreen 8bpp image in 640x480 resolution?
 

BruceMcF

Active Member
May 19, 2019
177
53
28
On the last question, precisely ... like the c64, color range is broader at medium res than high res, though the resolutions and color ranges are both notched up from the c64.

High res 8bpp is limited to a slice of the screen, like a transition zone between two 4bpp zones with different palettes.
 

Viza

New Member
Jan 6, 2020
4
1
3
So, ok, no fullscreen 640x480x256 images. I can live with that :)
(I don't really get your example though - it sound too complicated to do and achieves too little at the same time? I would imagine the memory limited highres as a logo screen, maybe with same tilemaps above/below to pad out the screen or something. But it doesn't really matter.)

And what about the first part?
Do anyone knows an example somewhere which displays a fullscreen image in 320x240x256, and I can take a look at the source code?
Or could it be a bug in the emulator?
Or is this the intended working?
 

BruceMcF

Active Member
May 19, 2019
177
53
28
(I don't really get your example though - it sound too complicated to do and achieves too little at the same time? I would imagine the memory limited highres as a logo screen, maybe with same tilemaps above/below to pad out the screen or something. But it doesn't really matter.)
One would be you have a viewport on a spaceship control deck. Another would be you have a side scroller "jungle by the sea" level, where the mid is jungle and the upper is sky, in one 4bpp palette and the "ground" is beach & sea, in another 4bpp palette, and to avoid having an obvious horizontal seam between the two you have a 1/16th screen slice where they meet, with the boundary meandering. Drop in a couple of items along the boundary that are outside either palette and the whole effect looks like its somewhere around 6bpp.

Whether the game is worth the candle depends on how important a pretty level is to the developer.

And what about the first part?
Do anyone knows an example somewhere which displays a fullscreen image in 320x240x256, and I can take a look at the source code?
Or could it be a bug in the emulator?
Or is this the intended working?
All I know is that it's intended to be able to work with 320x240x256, because Micheal Stiel has expanding the built in mid-res 8bpp graphics from 320x200x256 to 320x240x256 in a ToDo. IIRC, he alludes to the bank crossing issue as why 320x200 was easier.
 

Viza

New Member
Jan 6, 2020
4
1
3
Thank you for your answer!

One would be you have a viewport on a spaceship control deck. Another would be you have a side scroller "jungle by the sea" level, where the mid is jungle and the upper is sky, in one 4bpp palette and the "ground" is beach & sea, in another 4bpp palette, and to avoid having an obvious horizontal seam between the two you have a 1/16th screen slice where they meet, with the boundary meandering. Drop in a couple of items along the boundary that are outside either palette and the whole effect looks like its somewhere around 6bpp.
I understood the technical side of the example, just that not the first idea to come in my mind if I would want to create a "transition" of sort :)
Since the 4bpp modes are not 4bpp in the sense that "there is only 16 colors on the screen" just in the sense of "there can be only 16 colors in a tile" so the 4bpp modes are still have all the colors - with specific transition tiles I would guess there is probably no real need for a "transition zone" like you mentioned?...

Whether the game is worth the candle depends on how important a pretty level is to the developer.
I agree :)
Especially on these limited platforms, the more difficult the "trick" the more impressive the results :)

All I know is that it's intended to be able to work with 320x240x256, because Micheal Stiel has expanding the built in mid-res 8bpp graphics from 320x200x256 to 320x240x256 in a ToDo. IIRC, he alludes to the bank crossing issue as why 320x200 was easier.
Ohh, so 320x240 is a relatively new feature?
Do you happen to remember where is this todo you mentioned?
 

BruceMcF

Active Member
May 19, 2019
177
53
28
I understood the technical side of the example, just that not the first idea to come in my mind if I would want to create a "transition" of sort :)
Since the 4bpp modes are not 4bpp in the sense that "there is only 16 colors on the screen" just in the sense of "there can be only 16 colors in a tile" so the 4bpp modes are still have all the colors - with specific transition tiles I would guess there is probably no real need for a "transition zone" like you mentioned?...
Whether there is a need depends on the details that get beyond my own very limited abilities as a graphical designer. Organic boundaries don't respect the horizontal and vertical seams of tile zones, but whether it possible to "cheat" and have "these colors from the ocean beach which we won't be using HERE" to "swap for those colors from the jungle palette that are enough for these kind of bushes" or not depends on what feel the graphic designer is aiming for. But for me, chasing the beam on swapping into and out of 8bpp mode at the right time would be a fun challenge, and a detailed morphing of a 4bpp palette might not be.

Ohh, so 320x240 is a relatively new feature?
Do you happen to remember where is this todo you mentioned?
Oh, no, 320x240 have been baked in a long time ... it's the detailed support for graphics in the Kernel that is new.

I think this is the issue, and it looks like I misremembered it ... it's about 320x200x256 and 320x240x16. But there may be another remark on another issue in this same set of issues.
 

Viza

New Member
Jan 6, 2020
4
1
3
Whether there is a need depends on the details that get beyond my own very limited abilities as a graphical designer. Organic boundaries don't respect the horizontal and vertical seams of tile zones, but whether it possible to "cheat" and have "these colors from the ocean beach which we won't be using HERE" to "swap for those colors from the jungle palette that are enough for these kind of bushes" or not depends on what feel the graphic designer is aiming for. But for me, chasing the beam on swapping into and out of 8bpp mode at the right time would be a fun challenge, and a detailed morphing of a 4bpp palette might not be.
Let's just all be glad that there are multiple solutions to a thing and one can choose amongst them according to the situation :)

Oh, no, 320x240 have been baked in a long time ... it's the detailed support for graphics in the Kernel that is new.

I think this is the issue, and it looks like I misremembered it ... it's about 320x200x256 and 320x240x16. But there may be another remark on another issue in this same set of issues.
Duh, the issue tracker!... somehow it doesn't occured to me to check that yet. :-/
Thank you!
 
  • Like
Reactions: BruceMcF