don't click here

Sonic Spinball help needed

Discussion in 'Engineering & Reverse Engineering' started by Tom41, Nov 23, 2008.

Thread Status:
Not open for further replies.
  1. Tom41

    Tom41

    Pheer the baby EggRobo! Oldbie
    291
    0
    0
    UK
    I remember a long time ago, I accidentally stumbled across an Action Replay code that made the game have 'zero gravity' for Sonic. Basically whenever you flipped Sonic or moved the D-pad, Sonic would continue moving slowly in that direction until he hit something. You could use this to get past the badniks that blocked off certain areas until you'd collected emeralds - the closest thing to debug mode I've ever seen on Spinball.

    However, I lost the notebook where I wrote all the codes down, and to this day have not been able to recreate it! All I remember is that it was an 'FF' code, I.e. it locked a certain RAM value. If any of you have in-depth knowledge of how the Spinball engine works, could you try and find a code that does this?

    I think a good starting point would be to investigate what the 'normal' and 'fast' options change; gravity, max speed etc.
     
  2. Qjimbo

    Qjimbo

    Your friendly neighbourhood lemming. Oldbie
    Oh I remember that code, I used another low gravity code from the same place to get to the Tails 1up box in the half-deleted Hidden Palace Zone with Tails to see if he got the 1up years ago.

    Can't remember where I got it from though...
     
  3. superstarCSB

    superstarCSB

    snootch Member
    621
    0
    16
    Lawrence, Kansas
    I probably should get back to work on my site someday...
    Well...here's a code for the Game Gear version although I haven't tested it:

    Enter the Options Menu and play these sounds on the SFX Option: 0, 9, 0, 1, 6, and 8. The screen should shake if you entered the code correctly. Next, hold Buttons 1 and 2 and press Start.

    Hopefully someone with a greater knowledge of hacking can help you out.
     
  4. Tom41

    Tom41

    Pheer the baby EggRobo! Oldbie
    291
    0
    0
    UK
    I've created a few Action Replay codes that you could possibly use as a starting point for more hacking. If I was a programmer, I'd put all the game variables in one area of RAM rather than spread it out, and put values for similar things (like gravity and speed) together. But I don't know how Spinball works; these are just codes I've found:

    FF579 E00xx - number of lives
    FF579 F000x - number of emeralds collected
    FFF8D 900xx - maximum velocity of Sonic (default = 0E)

    Surely the gravity code should be nearby, but I haven't been able to find anything yet!
     
  5. Tweaker

    Tweaker

    Misfit
    12,389
    1
    0
    Spinball was programmed in C, so all of the memory allocation was automated. It's kind of hard to put variables together when you don't exactly define exactly where in RAM they are, don't you think? :)
     
  6. Tony H

    Tony H

    Member
    16
    0
    0
    Awhile back I found the actual ROM offset that controls the amount of gravity in Sonic Spinball. This is only for this version of the game: Sonic_Spinball_(U)_[!].bin

    At ROM address $0DD73C you'll find a value of 3838. A lower number will give you lower gravity, higher number - higher gravity. So for example, if you changed the value there from 3838 to 0808, you'd have super low gravity. The Game Genie code for that would be: BDMT-4TB6 = Super low gravity.

    In order to find that ROM address, I had to find the RAM address for gravity and use a debugger. So if you're still interested (I know this is an old post), I can look through my notes and see if I can find more info (RAM address, ASM traces, etc).

    This RAM address has something to do with gravity: FF574D. In Gens (emulator), use a single byte for your value (ie. FF574D:38) and you'll get some interesting results when you use the directional controls. FF574C also has something to do with gravity, but does weird things. Didn't have much time to experiment.
     
  7. Sik

    Sik

    Sik is pronounced as "seek", not as "sick". Tech Member
    6,719
    0
    0
    being an asshole =P
    Compilers tend to put all variables together however, and old compilers weren't exactly good optimizers, so I highly doubt they'd have moved addresses randomly. Actually it'd be more likely that Sonic-related variables are all put together.
     
Thread Status:
Not open for further replies.