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

ROM with NTSC and PAL compatibility not working in PAL mode #501

Closed
sa666666 opened this issue Jul 18, 2019 · 11 comments
Closed

ROM with NTSC and PAL compatibility not working in PAL mode #501

sa666666 opened this issue Jul 18, 2019 · 11 comments
Assignees
Milestone

Comments

@sa666666
Copy link
Member

Issue is mentioned on AtariAge: https://atariage.com/forums/topic/269701-nyan-cat-game-work-in-progress/?do=findComment&comment=4310215.

ROM is here: nyancat.zip

Basically, holding down Reset on powerup is generating PAL signals, but the video is in NTSC (rolling screen).

@sa666666 sa666666 added this to the Prio 2 milestone Jul 18, 2019
@thrust26
Copy link
Member

thrust26 commented Jul 26, 2019

Other bug moved to #507

@ghost
Copy link

ghost commented Aug 19, 2019

That seems like a pain to fix. Because when the game detects the soft-reset button, it jumps back to the PC entry point @ $1000 (bank 0).

Stella would have to run its Console auto-detect format again to keep detecting the NTSC / PAL switches; I couldn't figure out an easy way to force this. But it could do an accidental double detect this way too (one at constructor, one at start).

@thrust26
Copy link
Member

Because when the game detects the soft-reset button, it jumps back to the PC entry point @ $1000 (bank 0).

Where did you see that? For me it only stores the initial state of Reset in 0x81 and works with that from then on.

@thrust26
Copy link
Member

thrust26 commented Aug 19, 2019

The problem is, that EventHandler::handleConsoleStartupEvents() is not called before Console::autodetectFrameLayout is executed. So during auto detection, that startup parameters are not considered.

@DirtyHairy Can you have a look at this? I did try to fix it myself, but the system obviously has no console, which is just in creation at that moment. So the necessary riot updates must fail and I hacked in the riot as a parameter for EventHandler::handleConsoleStartupEvents() . This works, but is pretty ugly.

thrust26 added a commit that referenced this issue Aug 19, 2019
@DirtyHairy
Copy link
Member

I'll take a look.

@ghost
Copy link

ghost commented Aug 19, 2019

Where did you see that? For me it only stores the initial state of Reset in 0x81 and works with that from then on.

I put a breakpoint on $1000 start. Waited for in-game to display. Held down F2 Reset and then pressed F1 Select. And it triggered the debugger at that spot again.

But I'm basically a newbie when it comes to 2600 debugging. And naive. So beware what I write. I'm just interested to learn more on average. :)

@thrust26
Copy link
Member

thrust26 commented Aug 19, 2019

Ah, that's a 2nd scenario: Switching the format after Stella is already long running. Thanks for pointing out.

This is a general issue, not only with this ROM, but for all ROMs which switch from NTSC to PAL (e.g. Boulder Dash) format. Stella would have to become able to switch formats permanently.

@DirtyHairy Would this be possible? Stella should know the number of scanlines. So when they go above or below a threshold, the format could change automatically.

@DirtyHairy
Copy link
Member

DirtyHairy commented Aug 20, 2019

@thrust26 With the current setup of autodetecting PAL / NTSC and ystart, I think this is too complicated. Once we eliminate ystart autodetection in favor of constant value, this should be viable.

@thrust26
Copy link
Member

That was my hope.

DirtyHairy added a commit that referenced this issue Aug 20, 2019
@DirtyHairy
Copy link
Member

@thrust26 I have made an attempt of a slightly less appalling fix in 09bd0f8 . However, I am not really happy with it either, but I don't think we can manage anything better at this time. Feel free to revert and replace with your solution if you prefer it 😏

@sa666666
Copy link
Member Author

I would like to get the autodetect ystart removed for 6.1, and with it fix a few other issues. @DirtyHairy, is this feasible? Should we create an issue for that one, or is is assumed we all know it has to be done??

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

3 participants