Language…
20 users online: Aguiar Salsicha, com_poser, DixyNL, elegist, Green, Hammerer, Maw, Metal-Yoshi94, ppp9q,  Saphros,  Sayuri, Silver_Revolver, SMW Magic, Sweetdude,  Telinc1, The_Uber_Camper, TheKazooBloccGosh, TheXander, tOaO,  yoshi3706 - Guests: 490 - Bots: 302
Users: 64,795 (2,374 active)
Latest user: mathew

Super Mario World MSU1 hack

Standard

Hi folks,

after successfully making msu1-support for ALTTP I also made a hack for Super Mario World, as the only hack found is for super Mario odyssey but not the native rom. It should work in bsnes as well as sd2snes.
Get it here:

http://bszelda.zeldalegends.net/stuff/Con/smw_msu1.zip


I briefly tested and it all seems all right (music change, when entering a level, getting a star and such). However, I couldn't test it in sd2snes, as I do not own one.

I'm not very familiar with SMW so if anything is missing (like track should not loop and such), let me know... (e.g., give me the tracks number in hex that shall not loop like game over and such).

Ny hack is free so anybody can also advance the code himself:

update: added tracks that shall be not looped!

update: increased sd2snes compatibility

update: enabled 2nd music bank
update: final fixes
???????????????????????????????????????????????????????????????????????Is this complete? If it is, then it's in the wrong sub-forum.
Quote
; MSU1 hack, works on Super Mario World (E) with header

We typically use American ROMs, though it probably wouldn't take way too much effort to change this patch to be compatible with it.
@superbot12: It isn't complete yet:
- I Need a list of the tracks in hex which should not Loop (game over and such)
- sd2snes testing is not done yet
- also not tested for bugs, but the code is simple enough. And SMW has no extra Music thingies like fade in/out I think
- also I hope anybody can provide pcm files

@MercuryPenny:
It works also on US Rom (I checked, the addresses and codes are the same at the places I hooked, so no worries). Do you guys usually provide hacks for roms with or without Header?
Mine is for with Header.
With header. Lunar Magic doesn't have support for unheadered ROMs from what I heard.
All right, thanks. I also found this track list by 1524:
http://www.smwcentral.net/?p=viewthread&t=6665

Code
  
$7E:1DFB
 01 - Piano
 02 - Here we go!
 03 - Water Level
 04 - Fight Bowser 1
 05 - Boss Battle
 06 - Cave Drums
 07 - Ghost House
 08 - Castle
 09 - Mario Died (SFX)
 0A - Game Over (SFX)
 0B - Passed Boss (SFX)
 0C - Passed Level (SFX)
 0D - Have Star
 0E - Direct Coins
 0F - Into Keyhole (SFX)
 10 - Into Keyhole (SFX)
 11 - Zoom In (SFX)
 12 - Switch Palace
 13 - Welcome! (SFX)
 14 - Done Bonus Game (SFX)
 15 - Rescue Egg (SFX)
 16 - Fight Bowser 2
 17 - Bowser Zoom Out (SFX)
 18 - Bowser Zoom In (SFX)
 19 - Fight Bowser 3
 1A - Fight Bowser 4
 1B - Bowser Died (SFX)
 1C - Princess Kiss ^^ (SFX)
 1D - Bowser Interlude (SFX)
 80 - Music fade (Also sets $1DFF to the written value)


I adjusted my code in the first post to not loop the tracks labelled with "(SFX)" -all other tracks loop as far I checked.

Update
http://bszelda.zeldalegends.net/stuff/Con/smw_msu1.zip

Somebody needs to test this on sd2snes, then I guess this patch is finalized. I cannot do something about the music acceleration when the time is running out - this isn't supported by msu-1 (prove me wrong in case it is).
Originally posted by MercuryPenny
With header. Lunar Magic doesn't have support for unheadered ROMs from what I heard.


No, it does not, but if you try opening an unheadered ROM with LM it tells you that and adds a header for you. :)
Twitter
The handomest people in the world are ones who follow my Twitch
Anybody with a sd2snes here who can test my hack?
I tried doing the sd2snes test, but unfortunately it doesn't seem like I'm getting any high-quality audio playback. Furthermore there's a strange glitch with the SPC occasionally briefly "popping" back.

Test video, for reference;
https://www.youtube.com/watch?v=PAYM1m4ABzM
Alright, I made another Version:
http://bszelda.zeldalegends.net/stuff/Con/smw_msu_try2.ips

The difference now is in this code:
Code
LDA $2000     ; wait for msu ready
BIT $2000 
BVS end       ; if not ready end


I made it to
Code
Loop:
LDA $2000     ; wait for msu ready
BIT $2000 
BVS loop       ; if not ready Loop


The Thing is, if I loop the Bit $2000 until the overflow flag is clear, there appeared a flickering in ALTTP. Ikari_01 found the trick that we wait until the overflow flag is cleared naturally on bit $2000, which I tried in my former version for SMW as well.

Anyways, check when there is a music change like getting a star, getting to the end whether you see a flickering. If you'll see one, I need the help of Ikari_01 again.
Test number 2:

https://www.youtube.com/watch?v=4d5Y6hYunP4

Significant progress, but still an amount of things to work on.

1) As you can tell in the video, tracks will play during the wrong cue, such as during title screen/world map.

2) SPC fade-out still seems to happen.

3) That atrocious noise... I recall the same thing happening with Super Mario Odyssey when the MSU-1 music stops and the SPC music comes back. Since I don't notice it in other MSU-1 projects it might be an SMW-specific issue with how SMW switches back to the SPC code. (in comparison, Mega Man X MSU-1 plays Dr. Light's theme as the straight SPC and it doesn't seem to sound problematic.)

4) I think a couple tracks still aren't playing properly, although it's hard to tell when it's apparent I got some of the tracks wrong (Especially whatever's going on with the Bowser fight there.)

EDIT: For anyone wondering about my current setup, I uploaded my WAV/PCMs here;
http://kiddocabbusses.tryhappy.net/MarioMSU1/
I also have upped there an intro that would be nice to set up if video support is added (although it is Japanese... )
Alright, please redownload
http://bszelda.zeldalegends.net/stuff/Con/smw_msu1.zip
and reapply the patch, I updated it with the last fix and hopefully eased the remaining bugs... but I do not understand what you mean at your point 1) with wrong cue

thanks for the pcm, could you also check
http://z9.invisionfree.com/bszelda/index.php?showtopic=1517&st=105&#last
a guy called entroper requested the bszelda 1 hour pcm (this one would also help me a lot)
Originally posted by Con
but I do not understand what you mean at your point 1) with wrong cue


Should be pretty easy to explain with the previous video upload.

Some examples;
1) "Piano" playing on the Title Screen, when the title screen's supposed to be a unique song.
2) World Map songs, all originally unique songs, being replaced inappropriately with level musics.
I again made some small adjustments. Now the sfx are taken from native rom in any case (can be changed though).

I also did some further adjustements so please try with my latest patch:
http://bszelda.zeldalegends.net/stuff/Con/smw_msu1.zip


My best guess is that your pcm:s are labelled incorrectly.
See, the theme list is the following:
Code
  
 01 - Piano
 02 - Here we go!
 03 - Water Level
 04 - Fight Bowser 1
 05 - Boss Battle
 06 - Cave Drums
 07 - Ghost House
 08 - Castle
 09 - Mario Died (SFX)
 0A - Game Over (SFX)
 0B - Passed Boss (SFX)
 0C - Passed Level (SFX)
 0D - Have Star
 0E - Direct Coins
 0F - Into Keyhole (SFX)
 10 - Into Keyhole (SFX)
 11 - Zoom In (SFX)
 12 - Switch Palace
 13 - Welcome! (SFX)
 14 - Done Bonus Game (SFX)
 15 - Rescue Egg (SFX)
 16 - Fight Bowser 2
 17 - Bowser Zoom Out (SFX)
 18 - Bowser Zoom In (SFX)
 19 - Fight Bowser 3
 1A - Fight Bowser 4
 1B - Bowser Died (SFX)
 1C - Princess Kiss ^^ (SFX)
 1D - Bowser Interlude (SFX)
 80 - Music fade (Also sets $1DFF to the written value)


We need pcm for all non-sfx labelled tracks, these are
Code

 01 - Piano
 02 - Here we go!
 03 - Water Level
 04 - Fight Bowser 1
 05 - Boss Battle
 06 - Cave Drums
 07 - Ghost House
 08 - Castle
 0D - Have Star
 0E - Direct Coins
 12 - Switch Palace
 16 - Fight Bowser 2
 19 - Fight Bowser 3
 1A - Fight Bowser 4


However, and here are your pcm to download incorrect - you must label them with dec system:
smw_msu1-01.pcm -> must be smw_msu1-1.pcm (with 1 instead 01)
also smw_msu1-1a.pcm is hex, this would be smw_msu1-26.pcm
Here's how your complete pcm list look like:
Code
   
 smw_msu1-1.pcm - Piano
 smw_msu1-2.pcm - Here we go!
 smw_msu1-3.pcm - Water Level
 smw_msu1-4.pcm - Fight Bowser 1
 smw_msu1-5.pcm - Boss Battle
 smw_msu1-6.pcm - Cave Drums
 smw_msu1-7.pcm - Ghost House
 smw_msu1-8.pcm - Castle
 smw_msu1-13.pcm - Have Star
 smw_msu1-14.pcm - Direct Coins
 smw_msu1-18.pcm - Switch Palace
 smw_msu1-22.pcm - Fight Bowser 2
 smw_msu1-25.pcm - Fight Bowser 3
 smw_msu1-26.pcm - Fight Bowser 4
I think the problem here is the lack of consideration for the fact that SMW has two different music banks. One for levels, one for overworlds and the title screen.

Because they exist in separate music banks, the music numbers used by both overlap and lead to stuff like the title screen playing "Piano" and the main overworld playing "Here We Go". Either you could do what AddMusicK did and make the two a single bank (along with changing the music values for each map to not overlap with any level tracks) or you could find something else crazy to fix it.
Originally posted by MercuryPenny
I think the problem here is the lack of consideration for the fact that SMW has two different music banks. One for levels, one for overworlds and the title screen.

Because they exist in separate music banks, the music numbers used by both overlap and lead to stuff like the title screen playing "Piano" and the main overworld playing "Here We Go". Either you could do what AddMusicK did and make the two a single bank (along with changing the music values for each map to not overlap with any level tracks) or you could find something else crazy to fix it.


Pretty much this. The problem isn't related to file names because the tracks I gave for examples play correctly on the corresponding levels - the problem is them ALSO playing at points where they clearly aren't supposed to.

Also: Another notable thing that would be missed from having the SPC (since the speedup when time's running out has been mentioned already) is the extra drum effects you get while riding on Yoshi. I presume there's no way MSU1 could get a similar effect going? Well, I bet even if it could we'd need to have the remixes designed from the ground-up for the hack with separate "primary" and "Extra drums" tracks.
Thanks for the hint with the 2 banks... I didn't realize this (but as said, I'm not familiar with this game...)

Phew, that was hard, but I think I made successfully the differentiation between the two banks.

Nothing I can do about Yoshi drums I guess

Get the new patch:
http://bszelda.zeldalegends.net/stuff/Con/smw_msu1.zip

The pcm tracks must be named (I used the not used sfx from level bank for the overworld bank):

Code
pcm theme list
smw_msu1-1.pcm    	level1 - Piano
smw_msu1-2.pcm    	level2 - Here we go!
smw_msu1-3.pcm   	level3 - Water Level
smw_msu1-4.pcm   	level4 - Fight Bowser 1
smw_msu1-5.pcm 		level5 - Boss Battle
smw_msu1-6.pcm 		level6 - Cave Drums
smw_msu1-7.pcm 		level7 - Ghost House
smw_msu1-8.pcm 		level8 - Castle
smw_msu1-9.pcm 		ow1 - title
smw_msu1-10.pcm 	ow2 - ?
smw_msu1-11.pcm 	ow3 - ?
smw_msu1-12.pcm 	ow4 - ?
smw_msu1-13.pcm 	level0D - Have Star
smw_msu1-14.pcm 	level0E - Direct Coins
smw_msu1-15.pcm 	ow5 - ?
smw_msu1-16.pcm 	ow6 - ?
smw_msu1-17.pcm 	ow7 - ?
smw_msu1-18.pcm 	level12 - Switch Palace
smw_msu1-19.pcm 	ow8 - ?
smw_msu1-20.pcm 	ow9 -?
    (smw_msu1-21.pcm not used level15 - Rescue Egg (SFX)  
smw_msu1-22		level16 - Fight Bowser 2
   (smw_msu1-23.pcm not used level17 - Bowser Zoom Out (SFX)
    (smw_msu1-24.pcm not used level18 - Bowser Zoom In (SFX)
smw_msu1-25.pcm 	level 19 - Fight Bowser 3
smw_msu1-26.pcm 	level1A - Fight Bowser 4


Hmm... as an aside, does anyone have any nice remix-y tracks for the overworld portions? I don't think any of the albums I've collected cover them....

I'll look into this as soon as I can dig something up.
I used the ALTTP pcm:s for the overworlds so far :) so I know which one belong to which bank ^^
Alright. Anyway, the new test is looking very good so far. It seems all of the bugs are gone now. I'd just have to get new remixes for the map music to test those. I also am tinkering with polishing up the music tracks I already got. Speaking of which, which track corresponds with the ending song? Also would like to figure out the track for when Bowser is off-screen shooting fire, since it kinda throws things off-kilter to switch back and forth between MSU1 and SPC in the boss fight like that.

New test video here:
https://www.youtube.com/watch?v=SZkbchA67Fc

Standard