I want to show credits after the end of a specific level, and to that (since the level doesn't have a boss to trigger the credits) I need to run custom code. I've already figured out what code I need to run, now I just need to get it to run at the end of the level.
I have kinda figured out that it is somehow related to the No Overworld patch, which I was also using. Disabling that and changing the last level to 105 does indeed fix the issue, but I'm not sure why it happens.
Bump: I still need help with this. The "Yoshi's House" part of the credits looks like this, when using TheBiob's example code to jump to credits. I also have the No Overworld patch enabled. Disabling that patch does fix the issue, but I need the patch enabled. I really don't see anything wrong with the credits code, so I think the issue is in No Overworld's code. I also tried extracting the parts of the no overworld code I needed and while that did break the music in the first level, it did fix the credits.
Trying to register with the name " [email protected]" whines about the leading space, but not about the @ not belonging there.
It probably scans the username for errors, if it finds one then it stops and shows a message, not considering the fact that there may be more errors in the input. It's like with password validation - if the password is too short and only alphabetic, it'll warn you about one thing, then when you've fixed it, it'll warn you about the other.
I hijacked the level end routine to warp to credits after the end of the level. This works great when I take the secret exit, or the "boss exit" (ending the level by killing a boss), but not the main exit. When I do take the main exit, the first part of the credits (the staff roll) is completely black. The music still plays, however, and the further parts of the credits work fine.
I've done a lot more research on this, but still no results. I grabbed an old version of bsnes with a debugger, set a breakpoint at the start of my code, and dumped the RAM every time I reached the level end. I then beat a level 9 times - thrice using the main exit, thrice using the secret exit and thrice by beating a boss. Then I compared the RAM dumps and looked that addresses that had one value when the credits worked and a different one when they didn't. I put all those addresses in a file and looked each of them up in the RAM map. In total I got 72 addresses, but I still haven't figured out what the problem is. Here's a link to the document if anyone wants to help me.
It was the mosaic one. I actually tried every one with "interesting?" in the end individually, but didn't think of the mosaic one. (I must've figured that if there is no actual mosaic, then that could not have been the problem.) Anyways, thanks so much for the help!
I can't remember if I requested this before, but I really would like a patch that allows the p-switch timer and star timer to stay activated when entering pipes and doors so that we can create smb3 like gimmick levels.
I'm working on it. Looks like it involves a bunch of NOPs at $00A635.
Edit: It turned out to be a very simple patch, involving 15 NOPs at $00A651. Here's the full patch:
I don't think this is worth the Patches section, so I'm just going to leave this here. Also, should be SA-1 compatible.