Acmlm's Board - I2 Archive - Super Mario World hacking - More Than 96 Goals
User | Post |
HyperLamer
Posts: 2503/8210 |
Just thought I'd point this out. Extract the graphics and check out GFX29.bin in Gameboy format. |
Juggling Joker
Posts: 414/1033 |
Oh, I don't know about MAJOR hacking, all it would require is some kind of recursive algorithm to display the digits. Though, having pretty much no knowledge of ASM in any form at all, I can't say how easy that would be. So maybe it IS major. |
HyperLamer
Posts: 2454/8210 |
Originally posted by Juggling Joker It's possible that the routine that displays the tiles would recognize it would need three digits, though I don't know enough about ASM to be sure.
Possible, but most tile-based games will only print as many digits as they need. (For example, if you try to set the time limit to 1000, it doesn't expand to 4 digits, it just reads A00.) They generally have the alphabet follow the number tiles, and use a simple algorithm to increment the tile number and move to the next tile if need be. Since you have to manually set the number of digits (eg: even if only a 1-digit number, it prints 2 spaces, but doesn't print a digit in the first space), they just set it for 2 and leave it. Meaning, if the highest digit goes above 9, the program doesn't check and move on, it just keeps going A, B etc.
If we're lucky we might be able to locate a constant that defines how many digits to print. Otherwise, some major hacking is in order. |
beneficii
Posts: 63/567 |
Habsolute Fate,
Thanks! I've copied and pasted your advice to a text file, to be recalled when I need it again! I don't know yet the exact number of goals I'll be using. What I'm doing right now is just designing stage after stage. I'm going to organize them later. The stages that don't get put in the normal overworld will probably be put in some sort of "Reject World," which I plan to have replace the Special World.
Juggling Joker,
I see. I don't know. It seems quite a bit to test it out. Has anybody else done testing? I hope it does!
HyperHacker,
Thanks! |
Juggling Joker
Posts: 390/1033 |
It's possible that the routine that displays the tiles would recognize it would need three digits, though I don't know enough about ASM to be sure. |
HyperLamer
Posts: 2250/8210 |
Nice!
About the *96, I think the *9 is one tile, and the other is the standard 6. So you just have to edit the *9. Chances are it just places that over the 9 and leaves whatever other number there.
Problem is though, wouldn't it still only show 2 digits? You'd get garbage tiles after 99. (Of course if necessary you could change those tiles to be 10, 11, 12 etc. ) |
HabsoluteFate
Posts: 75/179 |
Hi, Here is a bit of information for you. I'm even going to show you how I figured it out, it take a minute (literaly). Although this is not everything it should help out somewhat. Tools you will need: Peer's Snes9x Tracer, SPASM (SNES Professional ASM Development Kit), calculator... search on gogole for the programs in question... 1. Open up the rom using SNES9X tracer, get to the screen where you can load up your game and click "/" on the Num Pad. Wait one second or more...Click "/" on the Num Pad again. A log file should have been created in the same directory that the rom is in. Open up the file. 2. We need to convert 96 to hexedecimal, you can do that using Window's build-in calculator (make sure your in scientific mode), make sure that "Dec" is selected and type in 96. Now Click "Hex". the number should have changed from 96 to 60. 60 is the hededecimal value. We want to change the part of the code that Compares something with this value. Search for "CMP #$60" which should bring you to the following line: $00/9D6C C9 60 CMP #$60 A:5A04 X:0000 Y:00AD D:0000 DB:00 S:01FB P:envMXdizCHC:0650 VC:112 00 FL:53990 This is the line within the rom we will change. 3. Back up your ROM since you are about to edit it! Open up SPASM and click File->New Project and select your ROM. We will now jump to the instruction we want to change (in this case its instruction at $00/9D6C) Click on Go->Goto (or type f1) Make sure that both "Code" and "SNES" are selected and type in 009D6C. Click Go. Highlight where it says CMP #$60 and change it to the new number you want to compare it to. In your case you want to use 120. Don't enter 120...you need to convert it to hexedecimal first! Using the calculator make sure that "Dec" is selected and enter 120. Now, click "Hex"...the value should have changed to 78...78 is our hexedecimal value we want to now compare to. Change "CMP #$60" to "CMP #$78" and hit enter. Save the ROM using File->Save Project. Click "Yes" when prompted. Open up your rom in an emulator. You will no longer get the star until you have reached 120 completed levels. The only issue with this small hack is the fact that when you do reach 120 levels it will display a star followed by the number 96...i havent looked at the code any further but chances are you might be able to use a SNES graphics editor to edit the graphic (if it is indeed a graphic).
Hope this helps! |
elixirnova
Posts: 126/177 |
Have you tryed passing 120exits? by any chance to see what happens? I personally dont know but I also doubt that FuSoYa releases a LM update in..anytime soon :-P |
beneficii
Posts: 62/567 |
You know that *96 thing that you get in the American version when you get 96 goals? It appears on the screen where you choose what game to play. Well, how do I do that for say *120? There is a maximum of 120 goals to find. I imagine you have to do the gfx change, and then an asm change, but what exactly would that entail? Is it covered by LunarMagic, or do we have to wait for a later version?
|
|