Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - More Than 96 Goals
  
User name:
Password:
Reply:
 

UserPost
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?

Acmlm's Board - I2 Archive - Super Mario World hacking - More Than 96 Goals


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.003 seconds.