Tip: Take advantage of easy to install Patches in your hack. The No More Sprite Tile Limits or SA-1 patches should be considered if you're encountering glitches where Mario and/or sprites are turning invisible.
When you set a level ID, you can't set it to 25-100, and when you try to go to any of those levels, it shows a test level, or a minigame level. (You also can't set the names of those levels either.) Is there a way to disable this, and if there is, what do you do to fix it?
On my hack when you get secret exit 1 on level 4, it collapses the castle, even though level 4 is set to trigger event 4, and the collapse event is on even 5. It also goes the other way around. When you beat level 5 (the castle), and then get secret exit 1 on level 4, it doesn't take you anywhere. Does anyone know how to fix this?
Event numbers work so that a level's normal exit triggers event X, secret exit 1 triggers event X+1, secret exit 2 triggers event X+2, and so on. If you put a secret exit in a level you also have to reserve the next event number for it. Assuming there's only one secret exit in level 4, you should make the Castle use event 6 instead.
Thanks that was the main problem with my hack so far
I have some levels on my ROM where it lags or glitches because of too many sprite on screen so I tried to install the SA-1 patch but if you try to install it on a modified ROM it just gives a black screen so I would need to transfer all the data or start over if I wanted it on the ROM. Is there a way you can patch it on a modified ROM or any alternatives that you can do it on? I tried "No more sprite limits" patch but IDK how to install it and I couldn't find a readme anywhere and I'm not even sure if you can install it on a modified ROM or if it even does the same thing as SA-1.
SA-1 requires a clean SMW rom in order to insert without problems.
If you're already using a modified rom then your best option is to port everything into a new one that's patched with SA-1.
As an alternative you can use the No More Sprite Tile Limits, like you mentioned. You insert the patch like any other patch, using asar. (It works on a modified rom, I think)
Edit: An even better alternative is to just remove some sprites in the levels where it lags. No ASM needed.
Thanks I just need to re-download it because when I re-download it looked completely different than the version I already had. NMSL didn't fix the lag but it did fix the glitches which I think is more important
I can't convert it into a BRR IDK how to open C700 and snesBRR and BRRtools just close themselves whenever I try to open them
Edit: I found out how to open C700 but it still doesn't work it just converts a default preset and when I try to open a .wav file it doesn't even do anything.
Edit 2: I found it out if anybody else has the same problem the loop points need to be a multiple of 16 for you to put it into C700
Ok now one more thing. How do you make know the ASDR tuning in the TXT? I made a sample but it doesn't sound right and I need to change the code so it changes the tuning but IDK how to do it
I'm having a problem with sample whenever I try to convert the sample into a BRR (using the MPT addon method) it just converts one of the default presets, and when I try to make it a custom preset where it says "Drop .wav .brr .spc" it doesn't even let me convert it. The button doesn't even work. I tried to drag and drop the .wav or load it in when it says that but it doesn't do anything. Can anybody help me?
I got it to work the end loop just needed to be a multiple of 16 which I feel dumb for not trying it out earlier since the post literally said it needed to be a multiple of 16
I wanna make it so instead of speeding the music up when there's 99 seconds left it changes the music. I got close but it's a little buggy and I wanna find a way to fix it. It keeps repeating itself and only plays normally if the time goes back to 100 and above. Here's a video.
this is the code of the patch
autoclean JSL Play
and this is the original code it's hijacking
CODE_008E4C: AD 31 0F LDA.W $0F31 ; \
CODE_008E4F: D0 0F BNE CODE_008E60 ; |
CODE_008E51: AD 32 0F LDA.W $0F32 ; |
CODE_008E54: 2D 33 0F AND.W $0F33 ; |If time is 99,
CODE_008E57: C9 09 CMP.B #$09 ; |speed up the music
CODE_008E59: D0 05 BNE CODE_008E60 ; |
CODE_008E5B: A9 FF LDA.B #$FF ; |
CODE_008E5D: 8D F9 1D STA.W $1DF9 ; |
CODE_008E60: AD 31 0F LDA.W $0F31 ; \
Does anybody know how to fix this? Sorry if this is an easy fix I haven't coded in ASM in a while and everything before this were just tests.
Your hijack's in an odd place; you're replacing the CMP and BNE, so the =99 check is gone; only the <100 check at $008E4C-$008E50 is left intact, which explains why the music is getting reset constantly when the timer's lower than 100; $1DFB is being stored to in every tick. I think you wanted to hijack $008E5B instead?
You also wouldn't need freespace; you can replace the LDA #$FF : STA $1DF9 with LDA #$0E : STA $1DFB perfectly.
Thanks, you guys are very quick to respond. The placement of the "speed up the music" comment really confused me. After I posted this I saw the "CMP #$09" by the hijack and was slowly figuring it out but now it works