Jump to content
IGNORED

Miner49er - jump to death (or crash)?


matthew180

Recommended Posts

No, it's the lowest number. The VDP scans the sprite table in ascending order. We don't honestly KNOW if it processes the rest of the sprite list after setting 5S because there is no insight into that behavior, but it doesn't matter if it does because there's no external indication. (I would imagine it does since that would probably save some silicon... we could probably prove it with an analyzer on the RAM lines, but, it doesn't really matter.)

 

Instead of the confusing terminology in the datasheet there, think about it in terms of how it works, as Matthew described it.

 

OK, that's makes more sense. But the thing I don't understand, which is why I got the wrong idea, is that in Classic99 in Miner 2049'er the 5th sprite number is set to >1F, but when I look at the SAL there are 8 sprites with y coord 0: >0A, >0B, >0C, >1B, >1C, >1D, 1E, >1F, so shouldn't it report >1C as the 5th sprite? And on the start screen with the color bars where all the sprites are at (0,0), shouldn't it report >04 instead of >1F?

Link to comment
Share on other sites

 

OK, that's makes more sense. But the thing I don't understand, which is why I got the wrong idea, is that in Classic99 in Miner 2049'er the 5th sprite number is set to >1F, but when I look at the SAL there are 8 sprites with y coord 0: >0A, >0B, >0C, >1B, >1C, >1D, 1E, >1F, so shouldn't it report >1C as the 5th sprite? And on the start screen with the color bars where all the sprites are at (0,0), shouldn't it report >04 instead of >1F?

 

Ah, yeah, sorry. Classic99 does not correctly represent the fifth sprite index -- to correct that was part of why I did the tests I did. I'm not exactly sure why you get those results in Classic99 as I didn't test its behavior, we'll see that when I fix it up.

Link to comment
Share on other sites

 

Ah, yeah, sorry. Classic99 does not correctly represent the fifth sprite index -- to correct that was part of why I did the tests I did. I'm not exactly sure why you get those results in Classic99 as I didn't test its behavior, we'll see that when I fix it up.

 

Ahh, that explains it. ;-) But the thing is that if the 5th sprite number is reported as >1C in Miner the collision no longer works since bit >02 is not set.

 

[Edit] Does this mean that on the hardware Miner would pick up the >02 bit when the VDP is scanning line 0? Because already at line 1 the 5th sprite is locked as >1C.

Link to comment
Share on other sites

Correct, >1C would be locked into the 5SN (5th sprite number), however m49er polls the VDP status in a loop at some point so I assume this keeps it from failing to check for collisions (by complete luck). Once m49er starts polling the VDP status register, the >1C would be released and replaced with sprite numbers as they were being scanned.

 

Tursi did a really nice analysis of the collision box function and polling loop, so I'll let him offer that information.

Link to comment
Share on other sites

No, it's the lowest number. The VDP scans the sprite table in ascending order. We don't honestly KNOW if it processes the rest of the sprite list after setting 5S because there is no insight into that behavior, ...

Actually we do have a little insight into that behavior in the form of your first test program that polled the status register. You were seeing the max active sprite in the SAT. Also, hopefully sometime in the near future the 9918A will be decapped and we will have the opportunity to discover all these little secrets. :-)

Link to comment
Share on other sites

Actually we do have a little insight into that behavior in the form of your first test program that polled the status register. You were seeing the max active sprite in the SAT. Also, hopefully sometime in the near future the 9918A will be decapped and we will have the opportunity to discover all these little secrets. :-)

 

http://visual6502.org/wiki/index.php?title=Chips_in_our_collection

  • Like 1
Link to comment
Share on other sites

Actually we do have a little insight into that behavior in the form of your first test program that polled the status register. You were seeing the max active sprite in the SAT. Also, hopefully sometime in the near future the 9918A will be decapped and we will have the opportunity to discover all these little secrets. :-)

 

That would be nice :)

 

The reason I was seeing max active sprite in my first test, though, was because I was clearing the 5S line with rapid reads. So I think that tells us that the entire active sprite list is scanned on every scanline that does not trigger 5S (which I agree, makes it likely that it always does anyway ;) ).

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