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

Super Metroid + Link to the Past + Metroid + Legend of Zelda Quad Randomizer - Metroid Transition Does Not Load #377

Open
TooOrange opened this issue Aug 9, 2024 · 2 comments

Comments

@TooOrange
Copy link

I don't know if this is something that would be addressed or even be possible to fix, but I just wanted to report that the new randomizer combining Super Metroid, Link to the Past, Metroid, and the Legend of Zelda is not fully functional in this core. The game does properly load up and play, however attempting to transition into Metroid simply causes a black screen. All other game transitions and functions of the other three games appear to be as expected. The game does work without issue on original hardware using an FXPak or SD2SNES, as well as in BSNES, though newer versions of SNES9X after 1.58 will not load the game at all. I suspect it may be an issue with how the core handles SA-1, similarly to the problem with the Link to the Past practice ROM mentioned in issue #343 . However, my knowledge of this is very limited. Not necessarily expecting any kind of possible fix or anything, but just mostly wanted to make it known for anyone else that may try to use the core for this.

@steven-a-wilson
Copy link
Contributor

I also just hit this and came to report it. I looked into it a little bit, but I'm also not enough of an expert on SA-1 or the SNES core's code to have a really solid grasp of what's going on. The hack seemingly uses the SA-1 mostly as a memory mapper. Looking at the Mesen debugger, I see the transition to M1 making these changes to the mapper registers:

$2220: $84 -> $80
$2221: $85 -> $80
$2222: $84 -> $86
$2223: $85 -> $07
$2224: $01 -> $04

I don't see anything here that seems obviously broken or missing in the current code, though it's hard to compare to software emulators because they're structured so differently. Perhaps there's a bad interaction between the SA-1 mapper logic and the 64-megabit ROM mapping? I can't imagine there are very many 64Mbit SA-1 games out there for the core to have been tested against.

@sorgelig
Copy link
Member

I think it's the same "old" issue when hacks use out of specs SA-1 access. This core already has tight timings barely fitting standard SA-1 access.

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

No branches or pull requests

3 participants