don't click here

Sonic 2: Battle Race

Discussion in 'Engineering & Reverse Engineering' started by ColinC10, Jul 24, 2012.

  1. ColinC10

    ColinC10

    Tech Member
    I've had no time to work on any new hacks this year. However, I like to submit something for the contest each year, and I found this while looking through my old laptop. It's the first hack I ever made, back in 2006 (before Robotnik's Revenge). It was about 95% complete when I hit some technical issues and gave up. With six years more hacking experience the issues were simple to fix, so here it is, finally finished! All I ask is that you judge it by the standards of 2006 rather than 2012. :)

    Sonic 2: Battle Race is a TWO PLAYER ONLY hack. Players race against each other on the same screen. If a player falls too far behind his opponent and disappears off the screen, he dies. The leading player then gets a point, the losing player reappears next to him, and the race continues. Whoever has the most points at the end of the level wins.

    Pause + A: Quit the current level and return to the level select.
    Pause + B: Kill both players and return to the last checkpoint. This is handy for "standoff" situations, where the players can't progress (they fell off a MTZ nut, for example) but they don't want to backtrack for fear of losing a point to their opponent.


    Screenshots:

    [​IMG]
    Monitors work the same way as in split screen mode, but with an extra life giving you an extra point instead.

    [​IMG]
    Knowing the level layout is important, particularly in the later levels.

    [​IMG]
    All zones are playable except Sky Chase and Death Egg.


    Edit: Here's a video of the hack in action, courtesy of Iceman404. It probably gives a better idea of what the hack's about than screenshots:

    http://www.youtube.com/watch?v=TN6e4P446W0


    I realise that the vast majority of you were probably expecting to play a single player game and have no interest in a two player one, so if that's the case then I'm sorry for the disappointment.
    However, if like me you've always wanted to play Sonic 2 against a friend on anything other than Emerald Hill, Casino Night and Mystic Cave then hopefully you'll have some fun with this hack.

    ++Download++

    All comments are welcome!
     
  2. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    This gives us a great excuse to team up with some netplay.
    I look forward to having the opportunity to playing this. =P
     
  3. redhotsonic

    redhotsonic

    Also known as RHS Tech Member
    1,587
    10
    18
    United Kingdom
    YouTuber
    I just downloaded it, went to Battle Race, picked MCZ1. Lost tails to the side and gained a point, then this:

    [​IMG]


    EDIT: Same with EHZ 1.


    EDIT2: Actually, mate, this game seems unplayable on Regen. As soon as a player gets lost, the game comes up with the same error.

    Kega seems fine with it though.
     
  4. ColinC10

    ColinC10

    Tech Member
    I've tested it on Fusion and Gens, so it should work fine on those. I've not tried it on Regen but it looks like a pretty simple issue to fix. Back then I obviously wasn't aware that long data needs to go on addresses that are multiples of 4... :rolleyes:
     
  5. redhotsonic

    redhotsonic

    Also known as RHS Tech Member
    1,587
    10
    18
    United Kingdom
    YouTuber
    Yeah, it should be easy to fix. Just looks like you're moving a longword to another starting with an odd address 35(a0). As long a it starts with an even, it's fine, but of course, you're aware of that =P
     
  6. ColinC10

    ColinC10

    Tech Member
    Okay, fixed. Anyone having the same issue should re-download.
     
  7. jasonchrist

    jasonchrist

    Give Us A Wank Banned
    1,893
    0
    0
    Sonic Classic Hybrid Project
    Gutted! I feel like Oasis fans felt when they released "Standing On The Shoulders of Giants". Let my words speak volumes of what I think of your talents and potential Colin, and not as an insult.
     
  8. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Heh, nice to see that address error screen of mine is getting used :v:

    Anyway, will try it a bit later on, when I fixed all bugs in SCH.
     
  9. dsrb

    dsrb

    Member
    3,149
    0
    16
    “Relax, guy!” He did say he hadn't had time to do anything properly new, so it's a nice gesture to have done something at all—plus, with this having been his first hack, don't you like getting an insight (albeit slightly revised) into the rise of a legend? ;)
     
  10. redhotsonic

    redhotsonic

    Also known as RHS Tech Member
    1,587
    10
    18
    United Kingdom
    YouTuber
    Any reason why it only works in Regen and not other emulators?




    Anyway, this may not be the "hack of the year", but it's a very interesting concept. It's more unique to the normal splitscreen. Also, many hacks do not bother with split screen, but this would be a much better solution to hacks.



    Either way, I like it. I'll have to netplay this with someone, as all my mates aren't interested in Sonic.
     
  11. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,735
    334
    63
    SonLVL
    Most emulators don't emulate the address error, including Gens and I think Fusion.
     
  12. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Another year, another something special from ColinC10. If I could get my girlfriend to play Sonic 4 Ep. 2... surely this will be better. :D
     
  13. ColinC10

    ColinC10

    Tech Member
    Yeah, thanks for that, Flamewing. I was having a weird crash issue so I added that screen to see if it would help with debugging, but it wouldn't trigger. This is the first time I've actually seen it come up, and it made it very easy to find the cause of the problem, so good work!

    Also, I had never used Regen before, but the debug version seems to have some pretty useful tools. Being more accurate when emulating errors helps too. I wonder if this hack runs on real hardware?
     
  14. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Beware of one thing in Regen: at present, it has a bug that triggers occasionally regarding SRAM. AamirM (the author) is trying to fix it. Just an FYI, so you don't lose your hair trying to debug an emulator error :v:

    More information on this topic.
     
  15. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Hey Colin, I use Gens GS r7 (the emulator that came with Sonic Sage2010) Everything locks up when I start the level. The music plays and the graphics are active, but controls are frozen. Works on Fusion just fine though. Just thought I'd throw that out there.
     
  16. BSonirachi

    BSonirachi

    Wiki Sysop
    If you play on a level for a bit, then press START + A to quit the level and load another one, the starting positions get bugged and that causes the players to start either at a halfway point in the level or outside the level boundaries, causing them to die over and over.
     
  17. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,641
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    Just had a full run through with neowl.
    I must thank you for putting a new awesome, fun way to play through one of my all time favourites.
    Now, I'm feeling so good after that game, I'm gonna go have a joint. :v:
     
  18. ColinC10

    ColinC10

    Tech Member
    That's the same version of Gens that I use and it works fine, so not sure what's going on there. You might need to fiddle with your settings.


    Okay, fixed. Thanks for pointing it out.


    Glad you enjoyed it. Like I said before, it won't be for everyone, but at least a few people can get some fun out of it, instead of it just lying forgotten on my old laptop.
     
  19. Fred

    Fred

    Taking a break Oldbie
    1,563
    117
    43
    Portugal
    Sonic 3 Unlocked
    Breaking silence just to say that I loved this hack! Thanks for posting it.

    There's just one problem I'd like to see fixed; it seems like you left in the spindash camera delay, which only applies to Sonic, making it a bit unfair since Tails can spindash in situations where it would otherwise kill Sonic.
     
  20. Athelstone

    Athelstone

    Oldbie
    Hi there - I don't post much here anymore but I do enjoy popping by every now and again to see what's new in the retro community. I just had to login to thank you for this hack. It's been a childhood fetish of mine to have some form of multiplayer in the classic sonic games - this hack is the closest that's ever come to it, so thank you very much :)

    I have a couple of suggestions: perhaps there could be some sound effect to indicate when a player has scored a point? (Along with a nifty but not-too-invasive graphical effect of some sort. Perhaps the score number becoming extra-large for a moment and then returning to its normal size again).

    I'd also like to ask - would it be possible to combine this with your Sonic 1 and 2 hack, so that the Sonic 1 levels would be accessible?
    Other (more lofty) possibilities:

    Characters

    - Character selection screen with more classic characters (such as Knuckles, Amy, Fang, Chaotix crew, Metal Sonic. Only standard spindash enabled for balance).

    Game modes
    - Same player race. If players want to glide, they choose a Knuckles vs Knuckles race. If players want to fly, they choose a Tails vs Tails race. Colour scheme example:
    [​IMG]
    - 4-player Multitap team-race. 2 teams, with 2 players each, racing against one another. Both players on one team have to get left behind for the other team to score a point.
    - 4-player Multitap Link-ring team-race (from Chaotix / Sonic Crackers). 2 teams, 2 players each, using their link ring to stay ahead.
    - 4 player Multitap Relay team-race. One of your team-mates is waiting 50% of the way through the level. When 50% of the level is completed he takes over.
    - 4 player Multitap Boss battle. Players have to beat bosses from Sonic 1 and 2, which have been made vastly more difficult in some way (sped up crazily and given lots of hit points perhaps). The player that scores the most hits whilst taking the least amount of damage wins. All players are automatically shifted to the next boss zone after one boss is defeated (like when a player is automatically shifted to the beginning of the level if he dies).

    Issues:
    - Metropolis zone cork screws. If players fall off there's no way to get back up again because the cork screw is no longer there.

    [​IMG]

    One possible fix is a permanent cork screw at the bottom, which can allow more to appear when players run on it. Players would be able to jump through any corkscrews above. Don't know how difficult it would be to code though.

    [​IMG]

    An easier fix would be to eliminate the corkscrews and put springs down.

    -Wing Fortress Zone. There's a shortcut that can be taken through the level by running through one of the propellers.

    [​IMG]

    Possible fixes: make the propeller kill instantly upon touching it, regardless of ring count. Easier fix would be to replace propellers with a high wall.

    - Switches. This would only be issue for some levels where players have to open doors. One player is forced to press the switch, allowing the others to run ahead of him:

    [​IMG]

    Possible fix: force players to open doors for themselves. Doors open only when players moves directly in front of it, and then snaps immediately closed again as soon as the player passes through.

    [​IMG]

    An easier fix would be to eliminate switches and open all doors by default.