Super Mario World 2 (finished)
Page 1 of 3
Page 1 of 3 • 1, 2, 3
Super Mario World 2 (finished)
Project finished:
https://www.zeldix.net/t1611-super-mario-world-2
https://www.zeldix.net/t1611-super-mario-world-2
Ok guys, did I ever say Nintendo games being easy to msu? Well, this game proved me wrong!
This is a light patch and a beta. I know that the map themes change as well as the title theme when dark. Don't ask me to implement. It was hard enough!
I didn't play from beginning to end so I do not know whether I missed to map some themes or a major bug occurs somewhere.
Here's the theme list:
- Themelist:
; Theme Map
; hex dec loop tag
; 02 02 y Powerful Infant https://www.youtube.com/watch?v=qyZcCGPPN9U
; 03 03 n Game Start https://www.youtube.com/watch?v=rtF7NtBExec
; 04 04 n Game Over https://www.youtube.com/watch?v=Fme9om_p89U
; 05 05 n Goal https://www.youtube.com/watch?v=R1lCiWOlFUA
; 06 06 y Score https://www.youtube.com/watch?v=kLFeMQutTpU
; 07 07 n Player Down https://www.youtube.com/watch?v=O3GHn42H5EM
; 08 08 n Mario Kidnapped https://www.youtube.com/watch?v=LPlTbZEdriE
;
; 0A 10 y Story Music Box https://www.youtube.com/watch?v=ipDsethN0mk
; 0B 11 y Training Course https://www.youtube.com/watch?v=BwsU6CrDCNY
; 0C 12 n Big Boss Clear https://www.youtube.com/watch?v=KAhUU4pdwM8
; 0D 13 y Luigi rescued https://www.youtube.com/watch?v=Y2kLK6q7Wa4
; 0E 14 n Baby Bowser Clear: https://www.youtube.com/watch?v=4ELQPkqxiX8
; 0F 15 y Miniboss: https://www.youtube.com/watch?v=JSBTSW_B81Y
; 10 16 y Flower Garden: https://www.youtube.com/watch?v=kMmpRcld1FU
; 11 17 y Overworld Theme: https://www.youtube.com/watch?v=9-jva3PUKZw
; 12 18 y Castle&Fortress: https://www.youtube.com/watch?v=KBMonSXsUh4
; 13 19 y Room before boss: https://www.youtube.com/watch?v=EFGYFysGhns
; 14 20 y Underground: https://www.youtube.com/watch?v=-HOrFykW5ew
;
; 16 22 y bonus game: https://www.youtube.com/watch?v=7zTCKNeWW4U
; 17 23 y Room before boss: https://www.youtube.com/watch?v=EFGYFysGhns
; 18 24 y Kamek's theme: https://www.youtube.com/watch?v=GHAWoTonyhA
; 19 25 y Big Boss theme: https://www.youtube.com/watch?v=Q--ywLM84Ng
; 1A 26 y Athletic Theme: https://www.youtube.com/watch?v=GlUeW7IOSFc
;
; 1C 28 y Bowser End: https://www.youtube.com/watch?v=vbFQh32xlh0
;
;
;
; 20 32 y Yoshi's Island https://www.youtube.com/watch?v=grVbhes4ceY!
; 21 33 y Yoshi Start Demo https://www.youtube.com/watch?v=X50QWCZfASw
; 22 34 y Map: https://www.youtube.com/watch?v=9xZUISErsxg
; 23 35 n ending theme: https://www.youtube.com/watch?v=ZAPaGu0fWDE
; 24 36 y Stoned flower garden: https://www.youtube.com/watch?v=QXswn1BKnS8
; 25 37 n ending theme2: https://www.youtube.com/watch?v=MGM6FiDti04
sd2snes is not supported, Super FX games are not possible to play with sd2snes (yet).
Anything else to say? Yes: have fun
Patch v14: sound fix
http://bszelda.zeldalegends.net/stuff/Con/smw2_msu1_patch.zip
Enmet's PCMSet v2:
Version 2 with ending split
daniloroxette's PCMSet v2:
https://drive.google.com/file/d/10okv6jNGVd7pqtz-s8zoHdsHUkEoes8T/view?usp=sharing
Last edited by Conn on Mon 29 Jan 2018 - 15:43; edited 26 times in total
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Latest bsnes-plus versions do not require XML mapping, you can play MSU-1 roms right straight (just like Snes9x 1.55):
http://www.emucr.com/search/label/bsnes-plus?&max-results=16
http://www.emucr.com/search/label/bsnes-plus?&max-results=16
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
This is true. Verified.
Sent from Topic'it App
Sent from Topic'it App
pev- Since : 2017-10-16
Re: Super Mario World 2 (finished)
If something sounds too good to be true it often isn't
This emulator doesn't play my patch due to a bug in the emulator:
First it reads my opcodes normal (just alike snes9x:
And suddenly...:
I'll report it, until it gets possibly fixed, use snes9x 1.55
This emulator doesn't play my patch due to a bug in the emulator:
First it reads my opcodes normal (just alike snes9x:
01f08b lda $0401 [000401] A:00ff X:0008 Y:0000 S:01ef D:0000 DB:00 NvmxdIzC V:198 H:181 F:39
01f08e and #$00ff A:ff00 X:0008 Y:0000 S:01ef D:0000 DB:00 NvmxdIzC V:198 H:191 F:39
And suddenly...:
... and crash.
01f08b lda $0401 [0f0401] A:0020 X:0009 Y:003c S:01e0 D:0000 DB:0f nvmxdIzc V:225 H: 88 F:39
01f08d tsb $29 [000029] A:207e X:0009 Y:003c S:01e0 D:0000 DB:0f nvmxdIzc V:225 H:102 F:39
It seems like it starts to read the ad 01 04 as 2 bytes instead 3 bytes.LDA $0401 ;check busy flag
AND #$00FF
BEQ $03
I'll report it, until it gets possibly fixed, use snes9x 1.55
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Good to know. So far, it plays other MSU1 games fine. Just not SMW2 (for now). But I know you'll get it fixed somehow.
pev- Since : 2017-10-16
Re: Super Mario World 2 (finished)
I tried a lot, also with other places to hook in nmi, no way. It is a bug with bsnes I guess. I reported the problem on github:
https://github.com/devinacker/bsnes-plus/issues/158
I can't do anything here. For now this patch is snes9x 1.55 (and higan maybe?) only.
https://github.com/devinacker/bsnes-plus/issues/158
I can't do anything here. For now this patch is snes9x 1.55 (and higan maybe?) only.
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
OMG, now it will be possible to play SMW2 only with SFX (that's my wish since long). Thank you so much, Conn & RedScorpion.
I tested here and I reached level 4. Seems perfect for me.
I'll help with pcms wherever possible. I'll search for alternative themes soon. By now, If it helps, I put your map on a google Spreadsheet that anyone can edit:
https://docs.google.com/spreadsheets/d/1tQ6vGqbg_zBRmdb6rHn6xz1uKaAgbfFo1Vrtlcr8CNk/edit?usp=sharing
I tested here and I reached level 4. Seems perfect for me.
I'll help with pcms wherever possible. I'll search for alternative themes soon. By now, If it helps, I put your map on a google Spreadsheet that anyone can edit:
https://docs.google.com/spreadsheets/d/1tQ6vGqbg_zBRmdb6rHn6xz1uKaAgbfFo1Vrtlcr8CNk/edit?usp=sharing
daniloroxette- Since : 2017-09-25
Re: Super Mario World 2 (finished)
Ah Red wasn't part of this party.
I just copied/pasted a tutorial and his name remained in the header... great that it works so far
And again much appreciated if you can make pcm:s again
I just copied/pasted a tutorial and his name remained in the header... great that it works so far
And again much appreciated if you can make pcm:s again
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Sorry Conn, but your higan manifest file is dated, and won't work.
However, I made one compatible with latest higan versions:
https://bin.smwcentral.net/u/26932/smw2_msu1.zip
Unfortunately, the patch is also broken on higan-accuracy, therefore, I'm afraid to say that if SD2SNES ever supports Super FX, it won't work either.
Snes9x is known to have quite buggy Super FX emulation, that's probably why it works, because it lacks accuracy. bsnes-plus might be right after all, and it's your patch that is faulty.
I suggest you to test your patch against higan v106 to ensure hardware compability, since as of now, it doesn't seem to work on any accurate emulator. =(
Edit: link updated, wrong files inside.
However, I made one compatible with latest higan versions:
https://bin.smwcentral.net/u/26932/smw2_msu1.zip
Unfortunately, the patch is also broken on higan-accuracy, therefore, I'm afraid to say that if SD2SNES ever supports Super FX, it won't work either.
Snes9x is known to have quite buggy Super FX emulation, that's probably why it works, because it lacks accuracy. bsnes-plus might be right after all, and it's your patch that is faulty.
I suggest you to test your patch against higan v106 to ensure hardware compability, since as of now, it doesn't seem to work on any accurate emulator. =(
Edit: link updated, wrong files inside.
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
My manifest is the same as yours only that mine will also support older versions.
The reason why mine didn't work for you is that you need to import the rom, as I described it in the tutorial, so that the name is program.rom in higans emulation folder.
Your bml requires the name smw2_msu1.sfc; therefore mine didn't work for you.
So I leave mine, but thanks for your help
higan uses bsnes core, so it is a problem with this "family tree". Let's see whether the staff of bsnes can fix it, if not it remains snes9x only *shrugs, if I come to no other solution
It surely is an emulator flaw, I experimented a bit:
01f091 tsb $ea [0000ea] A:2c2c
01f097 sbc $03f000,x
As you can see here, the address incrementation gets completely crazy, it jumps 6 bytes from 01f091 to 01f097 where only 2 bytes should be incremented.
The code in smw2 is special, the nmi is executed in ram, then I jump back to normal code addressing, that is an exception not addressed by this emulator generation.
The reason why mine didn't work for you is that you need to import the rom, as I described it in the tutorial, so that the name is program.rom in higans emulation folder.
Your bml requires the name smw2_msu1.sfc; therefore mine didn't work for you.
So I leave mine, but thanks for your help
higan uses bsnes core, so it is a problem with this "family tree". Let's see whether the staff of bsnes can fix it, if not it remains snes9x only *shrugs, if I come to no other solution
It surely is an emulator flaw, I experimented a bit:
01f091 tsb $ea [0000ea] A:2c2c X:0008 Y:001d S:01e4 D:0000 DB:17 nvmxdIzC V:225 H:131 F:52
01f097 sbc $03f000,x [03f008] A:3c7d X:0008 Y:001d S:01e4 D:0000 DB:17 nvmxdIzC V:225 H:182 F:52
01f09d beq $f048 [01f048] A:7c7f X:0008 Y:001d S:01e4 D:0000 DB:17 nvmxdIzC V:225 H:222 F:52
01f09f brk #$00 A:7c7f X:0008 Y:001d S:01e4 D:0000 DB:17 nvmxdIzC V:225 H:235 F:52
01f0a5 brk #$aa A:7c7f X:0008 Y:001d S:01e4 D:0000 DB:17 nvmxdIzC V:225 H:275 F:52
01f091 tsb $ea [0000ea] A:2c2c
01f097 sbc $03f000,x
As you can see here, the address incrementation gets completely crazy, it jumps 6 bytes from 01f091 to 01f097 where only 2 bytes should be incremented.
The code in smw2 is special, the nmi is executed in ram, then I jump back to normal code addressing, that is an exception not addressed by this emulator generation.
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Oh, you are right, I only saw the first template of the bml, I haven't scrolled down to see the others, your version is in fact better for supporting older versions
On contrary, it's bsnes-plus that uses higan core, and I must say, an older one (bsnes-plus is forked from bsnes-classic, which in turn, forked higan at v073)
Indeed, it's really weird behavior, maybe byuu might have overlooked it, I will open a topic at his message forum detailing the problem, but keep in mind that your patch is broken on every accurate emulator, let's cross ours fingers and hope that this is just an emulation oversight.
higan uses bsnes core
On contrary, it's bsnes-plus that uses higan core, and I must say, an older one (bsnes-plus is forked from bsnes-classic, which in turn, forked higan at v073)
Indeed, it's really weird behavior, maybe byuu might have overlooked it, I will open a topic at his message forum detailing the problem, but keep in mind that your patch is broken on every accurate emulator, let's cross ours fingers and hope that this is just an emulation oversight.
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
I think the problem is in the Super FX emulation. I do not know the technical specs, but a lot of code data is transferred into ram (has something to do with it).
Then, code is executed in the ram, like the nmi:
For msu I needed to hook in this ram back to a rom bank, and think the emulation core of bsnes/higan does not like that, while snes9x accepts it.
Means... I must give up at this point and release the code exclusively for snes9x for now. There is no way to build my code in another way. If sd2snes ever gets Super FX support, I'm curious to see how this will behave.
Then, code is executed in the ram, like the nmi:
- Code:
*** NMI
$00/0108 5C 00 C0 7E JMP $7EC000[$7E:C000] A:59FF X:00FE Y:0000
$7E/C000 78 SEI A:59FF X:00FE Y:0000
$7E/C001 C2 38 REP #$38 A:59FF X:00FE Y:0000
For msu I needed to hook in this ram back to a rom bank, and think the emulation core of bsnes/higan does not like that, while snes9x accepts it.
Means... I must give up at this point and release the code exclusively for snes9x for now. There is no way to build my code in another way. If sd2snes ever gets Super FX support, I'm curious to see how this will behave.
I'm happy with snes9x broken patch or broken emulator... whatever... why is it so important for you to work with "accurate emulator" when sd2snes can't play it anyway? Sure, high compatibilty with all systems is nice, but maybe out of reach in this case.but keep in mind that your patch is broken on every accurate emulator, let's cross ours fingers and hope that this is just an emulation oversight.
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Conn wrote:I'm happy with snes9x broken patch or broken emulator... whatever... why is it so important for you to work with "accurate emulator" when sd2snes can't play it? Sure, high compatibilty with all system is nice, but maybe out of reach.
You do realize that theoretically higan or bsnes-plus are the closest representation of the real SNES hardware in software, right?
Sorry for nitpicking the subject, it isn't my intention to bother you, but if this isn't working on accurate emulators, there are high chances this isn't going to work on Real Hardware as well, in case SD2SNES finally adds Super FX support.
Of course, higan might be wrong on this one, but that's what we are going to find out.
You are more than welcome to accept it the way it is, but you have opened a whole can of worms that is interesting to an accuracy standpoint, and it's exactly that what moves the SNES hacking scene forward, if it wasn't for byuu seeking madly for accuracy, MSU-1 wouldn't even had existed.
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
As said, I cannot do anything here. Devin Acker (bsnes dev) already replied and will look into it
I give it out of my hands and concentrate on the pcm:s and the snes9x release. Nothing else I can do, sorry.
I give it out of my hands and concentrate on the pcm:s and the snes9x release. Nothing else I can do, sorry.
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
That's great news.
Really, wasn't expecting you to feel obligated to do anything, just pointing out how important it is to always having the real hardware as goal, so things always get improving
I truly apologize if any hostil attitude went towards you, it's already wonderful to have this patch, I just want to ensure it will work on SD2SNES too in the future =)
Really, wasn't expecting you to feel obligated to do anything, just pointing out how important it is to always having the real hardware as goal, so things always get improving
I truly apologize if any hostil attitude went towards you, it's already wonderful to have this patch, I just want to ensure it will work on SD2SNES too in the future =)
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
I'll keep hoping too, but the reality is there is just not enough space in the sd2snes's FPGA to squeeze FX support in there. Unless people want to sacrifice other support chips just to play a few FX games. I wouldn't.
All we can do is wait. If FX ever gets added, then my poor SNES can leave it's attic prison.
Sent from Topic'it App
All we can do is wait. If FX ever gets added, then my poor SNES can leave it's attic prison.
Sent from Topic'it App
pev- Since : 2017-10-16
Re: Super Mario World 2 (finished)
Alright, I followed an advice from Devin Acker to keep the msu code exectuted in ram, now it should work in bsnes and higan.
Redownload patch from first post.
The title screen runs at 30fps, and it seems in bsnes also the msu1 is run at half speed then (snes9x has not this problem). Please don't blame me for this.
daniloroxette, I also fixed a bug with the intro (when at night it played the wrong theme, please also redownload, and reapply the new patch)
Redownload patch from first post.
The title screen runs at 30fps, and it seems in bsnes also the msu1 is run at half speed then (snes9x has not this problem). Please don't blame me for this.
daniloroxette, I also fixed a bug with the intro (when at night it played the wrong theme, please also redownload, and reapply the new patch)
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Argh, just released a v3, not all spc were mute. Please re-download from first post.
The title screen theme has a quite small spc tune in night mode until it gets muted - I can't get rid of it - but it sounds like a sfx because you pressed start. That's ok
The title screen theme has a quite small spc tune in night mode until it gets muted - I can't get rid of it - but it sounds like a sfx because you pressed start. That's ok
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Conn wrote:The title screen runs at 30fps, and it seems in bsnes also the msu1 is run at half speed then (snes9x has not this problem).
Like stated, Snes9x Super FX emulation is shitty, aside from being HLE, it probably bypass too many crucial hardware operations, if there isn't too much to process, it's likely going to be fast. On the other hand, higan/bsnes does its job, you need horse power to play it but at least future hardware compability is granted, supposedly.
pepillopev wrote:I'll keep hoping too, but the reality is there is just not enough space in the sd2snes's FPGA to squeeze FX support in there
It's way beyond that, what's the point of hacking a SNES game that is doomed to never, ever work on real hardware? You can't even call it a SNES game anymore if you are going to do stuff impossible for the SNES to render.
Also, and if anyone comes up with another FPGA? Or whatever Super FX + MSU-1 implementation? Too many efforts would be wasted for a single Win32 application, instead of a SNES rom hack.
Even the Snes9x authors themselves concur with this concept, given they are aware of their own faulty Super FX emulation:
https://board.byuu.org/viewtopic.php?f=8&t=1954
So yeah, with great power comes great responsibility
now it should work in bsnes and higan
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
If you look into the asm the code isn't trivial. It took me a lot of effort to fix and get it done. Together with all the other stuff I took care of in the last days I reached my limits. I'll take care of maintenance if further bugs are present and be a helping hand for other projects if necessary, but that's it.
My personal list of games needing msu is done with this hack, and I'll reject any further request. Time for retirement +
My personal list of games needing msu is done with this hack, and I'll reject any further request. Time for retirement +
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
I speak for everyone in here when I say how much grateful we all are for your efforts. =^.^=If you look into the asm the code isn't trivial. It took me a lot of effort to fix and get it done.
You code is now to be served for future generations, who will get inspired for everything you've done
The same way back in 2015 when you started it all, and gave birth to this recent MSU-1 wave, newcomers will have their minds in place and contribute even more, so not only Super FX or SA-1, but SPC7110, ST018, S-DD1, S-RTC and so on will all get improved =D
Thank you very much, and sorry being a PITA, but quality over quantity
Colines- Since : 2015-05-24
Re: Super Mario World 2 (finished)
Conn, thanks for sticking it out and getting it working in bsnes/higan! When I saw you were going to just leave it as Snes9x-only, all I could think was that we had the first MSU-1 equivalent of the ZSNES-only SMW music hacks, and that would have been really sad...
qwertymodo- Since : 2014-10-21
Re: Super Mario World 2 (finished)
Thanks the both of you. I cross fingers that no further evil surprises emerge but I tested most crucial places with only the msu file and no pcm and all was muted nicely so far (I needed to make different nmi countdown for long and short tracks) so the code is a bit fragile.
Also the msu test with dummy pcm:s went well, both snes9x and bsnes, so with luck this patch is accomplished
As for snes9x, this still is my favorite emulator but I'm happy that all, snes9x, sd2snes and bsnes accept the format I release gamename.pcm without requiring additional files. If only higan would accept both gamename.pcm and track.pcm. But well with mercurial magic I create manifests in 5 minutes
Also the msu test with dummy pcm:s went well, both snes9x and bsnes, so with luck this patch is accomplished
As for snes9x, this still is my favorite emulator but I'm happy that all, snes9x, sd2snes and bsnes accept the format I release gamename.pcm without requiring additional files. If only higan would accept both gamename.pcm and track.pcm. But well with mercurial magic I create manifests in 5 minutes
Conn- Since : 2013-06-30
Re: Super Mario World 2 (finished)
Again, an update: I got rid of the short spc theme play (just a tune) at the title screen, so now it is a perfect mute in v4.
A strange occurence in snes9x: I updated my code, and the new code wasn't updated when restarting the game. First when I renamed my rom it took effect (renaming the rom back resulted in the old code again). It is the part of the code that needs to be shifted to ram, so maybe snes9x keeps the ram somewhere saved.
A strange occurence in snes9x: I updated my code, and the new code wasn't updated when restarting the game. First when I renamed my rom it took effect (renaming the rom back resulted in the old code again). It is the part of the code that needs to be shifted to ram, so maybe snes9x keeps the ram somewhere saved.
Conn- Since : 2013-06-30
Page 1 of 3 • 1, 2, 3
Similar topics
» Super Mario Allstars MSU1 (finished)
» BS Super Mario World
» Super Mario World 2 - Yoshi's Island
» Super Mario World MSU+
» Super Mario World MSU+
» BS Super Mario World
» Super Mario World 2 - Yoshi's Island
» Super Mario World MSU+
» Super Mario World MSU+
Page 1 of 3
Permissions in this forum:
You cannot reply to topics in this forum