Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Activision Ice Hockey - Occasional 'dots' #83

Closed
thrust26 opened this issue Jan 19, 2017 · 3 comments
Closed

Activision Ice Hockey - Occasional 'dots' #83

thrust26 opened this issue Jan 19, 2017 · 3 comments

Comments

@thrust26
Copy link
Member

Occasional 'dot' appears on the left side of screen when puck is in the upper half of the rink; appears on the right side of the screen when puck is in the lower half of the rink. Imitates movement of puck momentary then disappears.
http://atariage.com/forums/topic/259633-testing-the-new-stella-tia-core/page-3#entry3675034

Happens in Stellerator too.

@DirtyHairy
Copy link
Member

That could be fixed by increasing the ENAMx delay from 1 to 3. Which reminds me that I don't have anything apart from guesswork on how long this shoud be in the first place 😏 I'll write a test to find out, then I can hopefully close this.

@DirtyHairy
Copy link
Member

DirtyHairy commented Jan 23, 2017

Too bad, the test confirms that the delay is 1. So, I have to continue looking. What I know is that the 'dot' is a copy of the missiles that constitute the bat handle, so its movement is actually mimicking the bat handle. This might be related to NUSIZ during / before / after draw. I'll revisit this issue after I am done with NUSIZ-during-draw.

For reference, a have attached my two testcases (one for RESMx, one for RESBL). The source can be found in the 6502.ts repo. What the test shows are Missile 0 / Ball (orange) overlayed over Missile 1 / Missile 0 (white). The first line shows the plain sprites for reference. On the next lines, ENAM0 / ENABL is triggered at the same cycle the sprites were originally positioned, while each lines moves the sprites one pixel to the left via HMOVE. The color switch toggles between ENAM0 / ENABL initially being on and off.

After the reference line, there are three lines before the effect of ENAM0 / ENABL becomes visible. As there is a four pixel delay between the position where RESMx / RESBL was strobed and the first pixel, this means that there is a one pixel delay between ENAx and its effect. The test is repeated for all four possible sprite widths.

The test images look like this in all emulators that I tested and on my PAL TV:

ENAM0 / ENABL initially off:
enabl_delay

ENAM0 / ENABL initially on:
enabl_delay_1

@DirtyHairy
Copy link
Member

After reproducing this issue in two-player mode (much easier to debug, should've thought about that earlier 😄), it turns out that this was caused by RESMPx: it seems that decodes of the missile draw counter are ineffective while RESMP is active.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants