Jump to content
IGNORED

Playfield graphics when ANTIC off


Recommended Posts

I'm doing some reverse engineering of a game that uses a 2600-style kernel with ANTIC turned off. No display list! It's freaky. Anyway, is the only way to generate graphics through using writes to GRAFP[0-3] and GRAFM? So there is no way to generate playfield graphics (like the PF[0-2] registers on the 2600) through direct writes somewhere? I don't see anything obvious in Mapping the Atari, but I've never dealt with a kernel before.

  • Like 2
Link to comment
Share on other sites

3 minutes ago, playermissile said:

I'm doing some reverse engineering of a game that uses a 2600-style kernel with ANTIC turned off. No display list! It's freaky. Anyway, is the only way to generate graphics through using writes to GRAFP[0-3] and GRAFM? So there is no way to generate playfield graphics (like the PF[0-2] registers on the 2600) through direct writes somewhere? I don't see anything obvious in Mapping the Atari, but I've never dealt with a kernel before.

You can always write to screen memory? If I understand your point correctly.

Link to comment
Share on other sites

2 hours ago, playermissile said:

I guess that means there's no way to generate graphics that could set bits in the collision registers.

I'm not sure that's necessarily true.  Collisions are handled by GTIA, and if the CPU stuffs registers for the player and missile sprites instead of ANTIC, there's a good chance GTIA will still register collisions between PM sprites and the playfield.  It would be a fun test!

Link to comment
Share on other sites

You can fudge it in a sense - with VSCROL tricks you can have a character line that keeps repeating - there won't be character fetches but will be fetches from the character set.

Similarly you can do the same for bitmap so in theory have a line that does no DMA but repeats it's display (I think you could probably fudge that to cover the whole screen).

 

But the problem with both is that you're using CPU cycles to hit registers at the right time, so it's still using resources and can be more expensive depending on what you want to do.

You can have PM data without playfield for what that's worth.

You can also retain display list fetches which can preserve the screen architecture somewhat.

 

You should also be able to do a trick where you have DList DMA enabled then enable screen DMA on the second line of a multi-line mode which should then show what Antic has buffered from it's previous fetches.  Actually, I think that trick might work with DList DMA disabled also.

Link to comment
Share on other sites

On 4/5/2021 at 11:14 AM, FifthPlayer said:

I'm not sure that's necessarily true.  Collisions are handled by GTIA, and if the CPU stuffs registers for the player and missile sprites instead of ANTIC, there's a good chance GTIA will still register collisions between PM sprites and the playfield.  It would be a fun test!

The game I'm looking at (Worm War 1) does handle the player collision registers so the GTIA is at least doing that work. I can't see that the program is using DMA anywhere, though, so as far as I can tell it is not generating any playfield objects.

Link to comment
Share on other sites

  • 1 month later...
  • 5 months later...

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...