Jump to content
IGNORED

"Shimmering" P0 in Zaxxon--is this a scan/timing problem?


CDS Games

Recommended Posts

Hey folks, I'm attempting to make the player sprite in Zaxxon multicolored--got it sorta working but there's a problem I can't quite figure out.

 

Here's what I did:

 

* Patched in a jump from F716 (where the GRP0 data is set up) to FFE9 where there was some (I think) unused space.

* Then at FFE9, I added two lines of code before the two original lines, namely:

LDA LFFA9, Y (read data from correct location in the color array)

STA COLUP0

LDA ($B0), Y (original code--B0 stores the GRP0 address)

TAY (original code)

JMP LF719 (jump back)

 

zaxxoncolorship.bin

 

Woo hoo, it worked! But as you can see, the player ship "shimmers" slightly like the color and graphics are wobbling over slightly different scan lines. Pretty cool underwater effect, but unfortunately not for Zaxxon.

Is cycle timing my problem here? Did I use too much with the jumps and the extra lines, or is this some other issue?

 

-Claudio

Link to comment
Share on other sites

Hey folks, I'm attempting to make the player sprite in Zaxxon multicolored--got it sorta working but there's a problem I can't quite figure out.

 

Here's what I did:

 

* Patched in a jump from F716 (where the GRP0 data is set up) to FFE9 where there was some (I think) unused space.

* Then at FFE9, I added two lines of code before the two original lines, namely:

 

 

attachicon.gifzaxxoncolorship.bin

 

Woo hoo, it worked! But as you can see, the player ship "shimmers" slightly like the color and graphics are wobbling over slightly different scan lines. Pretty cool underwater effect, but unfortunately not for Zaxxon.

 

Is cycle timing my problem here? Did I use too much with the jumps and the extra lines, or is this some other issue?

 

-Claudio

 

I've counted cycles using the Stella emulator comments starting in your initial JMP and it goes way up 90 cycles until writing another WSYNC if all paths are taken, so yep, the extra jumps/lines are taking too much time.

  • Like 1
Link to comment
Share on other sites

Aha, thanks nano! I threw in a random wsync in the routine but it didn't help. I guess it's not that easy eh. ;)

 

By the way, reading all the threads on Space Raid got me back on this kick. Now that the isometric's pressure's finally off I feel like it's easier to appreciate this one on its own terms.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Zaxxon uses the full 76 cycles frequently (i.e. foregoing the use of WSYNC)...so it's impossible to add anything without optimizing the existing code to use less cycles on very busy scanlines. The patch you used adds 13 cycles (3 for each jump, 4 for the read, and 3 for the store), so the display gets fudged.

 

Moving the gfx read to happen a bit later might be a starting place (so it can be stored right away instead of being flipped to the Y register - 2 cycles saved and the Y register is then free after the read).

  • Like 1
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...