Jump to content
IGNORED

7800 - New graphics mode 160C


GroovyBee

Recommended Posts

Find attached a little demo that I've just finished putting the final touches to. Its an implementation of the A8's graphics mode known as APAC (Any Point Any Colour). Basically the A8's APAC mode displays consecutive pairs of video scan lines made up of a video scan line of chroma (15 colours) and then a video scan line of luma (15 shades). These are blended by the TV to yield up to 256 colours but result in a residual artifact of a thin black line between each video line pair.

 

To create the display mode on the A8s it alternates between two different GTIA graphics modes to get the colours or the shades. To simulate this on the 7800 two palettes of 12 colours each are used. The first palette contains shades of grey and the second palette contains a selection of the darkest colours. The end result is 13 shades of 13 colours or a total of 169 colours in MARIA 160B mode. The base colours chosen exist in both the PAL and NTSC palettes. This means that games will only need one set of image data and a detection routine to fill the palette accordingly. The downside is that there are some duplicates of red in PAL. However, I think that's an acceptable loss given the ROM saving.

 

I'm going to call this new mode on the 7800 "160C" which stands for "160 Colour". It also follows on from the original MARIA display names of 160A and 160B. Boring I know :lol:.

 

The vertical resolution of the image is fixed by MARIA. MARIA allows a Display List List (DLL) to cross one page boundary. This means the maximum space allocated to the DLL is 512 bytes (when correctly aligned). Each DLL entry is 3 bytes in size so there are 170 zone entries (of variable size) available. A PAL display needs 4 zone entries at the top and bottom of the screen to centre the display, which leaves 162 zone entries for a video image. Another 2 zone entries are expanded to 16 pixels which leaves the final image height at 160 pixels. Because the graphics mode needs two DLL entries per "line" the final height comes out at 80 pixels.

 

The horizontal resolution of the images is 126 pixels for this demo. However given sufficient tweaking or more RAM available in the system it would be possible to use the full width of 160 pixels.

 

There are no emulator screenshots because the emulators don't do it justice (well... er... they can't actually handle it correctly). The current 7800 emulators don't know anything about blending consecutive TV lines so the images look very poor. However these are the bitmap images passed into my conversion tool :-

 

post-21935-127219482222_thumb.pngpost-21935-127219482868_thumb.png

post-21935-127219483895_thumb.pngpost-21935-127219484716_thumb.png

post-21935-127219485514_thumb.pngpost-21935-127219486224_thumb.png

 

The demo displays all 6 images first and then it moves into a mode where the images are displayed a second time but the zone DL pointers in the DLL entries for the chroma/luma are swapped on every frame. This removes the thin black line but flickers on PAL.

 

Here's the binary :-

 

demox.bin

 

I'm including the A78 file but it doesn't do the graphics mode justice :(.

 

demox.a78

 

You'll need the following for use on a CC2 :-

 

78SC_POK 78BIOS

 

As mentioned in this thread it doesn't actually use POKEY it was just a cut and paste to create an entry in my CC2 menu file.

 

Many thanks to sh3-rg and nonner242 for their assistance in getting this project done. Special thanks to Crazyace for planting the seed too :lol:.

 

The demo works fine in PAL and NTSC.

 

I'm also going to experiment with 169 shades of grey and the 320B modes when I get some time.

  • Like 8
Link to comment
Share on other sites

> Kills Commando cart <

 

icon_lol.gif It doesn't actually use POKEY. So commando carts can heave a sigh of relief. I just happened to cut and paste a line in my CC2's menu file to run it with.

 

 

Can not wait to see this running!

GB Thanks for pushing the 7800 to new heights!icon_lust.gif

Link to comment
Share on other sites

Very cool, Groovybee. Can this be used for anything other than a still screen? If not, at least it will make some great title screens.

 

You could do some interesting filled 3D polygon's with the technique. However, I've no idea about MARIA's fill rate. With enough RAM on cart its also possible to do software sprites. I'll see if I can work a game around it.

  • Like 1
Link to comment
Share on other sites

or the upcoming Expansion Module (Ram + Pokey + High Score)

 

 

 

Curt

 

Very cool, Groovybee. Can this be used for anything other than a still screen? If not, at least it will make some great title screens.

 

You could do some interesting filled 3D polygon's with the technique. However, I've no idea about MARIA's fill rate. With enough RAM on cart its also possible to do software sprites. I'll see if I can work a game around it.

  • Like 1
Link to comment
Share on other sites

I am pleased. Of course, since you brought up that topic ...

Any chance there will be a build soon? :D

 

i bug only because I'm dying to try!

I have to say sorry here, it's mostly my lack of activity that is holding groovybee back a bit (although he's been a busy bee with lots of other things, too :lol: )... at this rate it won't even be ready for next Halloween!

 

I'll be getting a version soon so I can look at the player sprite & rework it and then make some more wall objects. I'm happy working with gfx restrictions, but 7800 is a different kid of challenge to me... unusual but still fun :)

Link to comment
Share on other sites

I have to say sorry here, it's mostly my lack of activity that is holding groovybee back a bit (although he's been a busy bee with lots of other things, too :lol: )... at this rate it won't even be ready for next Halloween!

 

I'll be getting a version soon so I can look at the player sprite & rework it and then make some more wall objects. I'm happy working with gfx restrictions, but 7800 is a different kid of challenge to me... unusual but still fun :)

 

No worries! This is a labor of love, not a business! Can't wait to see it though! Great art in the demo!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...