Jump to content
Sign in to follow this  
RevEng

hitting TIA WSYNC in 7800 mode (a pointless curiosity)

Recommended Posts

Apparently both the TIA and Maria WSYNC registers both work to wait for sync in 7800 mode. The interesting thing is, both chips have their own horizontal sync and counters, which are running in parallel.

 

I put together a quick little demo that shows a few color bars drawn with the background color and each kind of WSYNC. Basically the idea is hit WSYNC, change the color, wait for 40 cycles, and then change the color back to black.

 

At the start of the TIA WSYNC rectangle, I need to hit RSYNC, so TIA begins the bars aligned with Maria, and drifts more after each line.

 

TIAMARIAWSYNC.thumb.jpg.f1b3470184854666894f4b1fab8c7915.jpg

 

 

 

Apologies for the crap photo, but it's better than none, which was the choice.

 

Interestingly the TIA line is longer, despite running at Maria speeds for most of the line. On the occasional run of the program, the TIA bar alignment flickers badly. I think the free running TIA sync gets messed up if you hit RSYNC on a particular cycle. Maybe.

 

I don't think there's anything of practical of use here (hence "pointless curiosity") but I thought it was kind of fun to have a peek at TIA's video generation going on behind the scenes.

tiamariasync.bas.a78 tiamariasync.bas.bin

  • Like 5

Share this post


Link to post
Share on other sites

Ok here is the stupid question of the day. Could there be a game that switches between 2600 and 7800 for different levels? 

Share this post


Link to post
Share on other sites
32 minutes ago, Jinks said:

Ok here is the stupid question of the day. Could there be a game that switches between 2600 and 7800 for different levels? 

For starters it would need to be a 7800 game - meaning it would need to have 7800 cart pins and pass the ntsc encryption check. After that, it can sort-of do 2600 mode, but very badly.

 

The INPTCTRL register is used (among other things) to lock a game into 7800 or 2600 mode, until power is removed from the console. For 2600 games the 7800 bios has already locked in 2600 mode, but if a game is detected as 7800, then the bios leaves INPTCTRL unlocked, and the game can freely switch between modes. That sounds great, but there's one big ugly wrinkle - both TIA and INPTCTRL cover the same register range, so until the console mode is locked in, writing to INPTCTRL writes to the TIA and visa versa. The upshot is, you can't really do TIA graphics and such until you lock into 2600 mode, which then means you can't go back to 7800 mode.

  • Like 1
  • Thanks 1

Share this post


Link to post
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...