don't click here

Sonic Genesis (Genesis)

Discussion in 'Engineering & Reverse Engineering' started by Xenowhirl, Dec 26, 2006.

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

    Xenowhirl

    Tech Member
    175
    0
    0
    What would you get if you could remove the lag from Sonic Genesis (GBA) and play it on a bigger screen? I don't know, but it would be something like this. Different from Sonic 1, that's for sure, but actually quite playable. See how many changes you can spot - there are tons of them, some blatantly obvious and others very subtle. I'll post a full list of changes later if there is demand for it. This hack is not complete, but at least 80% of the necessary changes have been made.

    Now, this is not my idea of an awesome hack. So what's the real point? Well, it's to give me something to toy with while I'm still new to hacking and to assembly, and it helps make the tool I'm working on less buggy the more I try putting it to actual use, no matter how simple. And maybe someone else will find the altered physics fun to play around with in a lag-free setting. Obviously I couldn't have done what I have so easily without the work of other people such as Hivebrain and Stealth and drx, among others. However, most of the additions (notably the spin dash) were coded 100% from scratch, not taken from elsewhere.

    One more thing: If you're going to post about a bug, make sure it doesn't happen in Sonic Genesis (GBA), because if it does then its inclusion is intentional. And I already know some things are incomplete, like landing on steeply curved ground, which acts too much like the original Sonic 1 and sometimes conflicts with the momentum preservation.

    v1 is here. v2 is here.
     
  2. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    You forgot to add the random occasional controller lock which IMO was the crowning glory of S1GBA.
     
  3. Tweaker

    Tweaker

    Banned
    12,387
    2
    0
    Tell me your methods, sir! I see complete spindash, full background effects... did you do this all solo? Because if so, I see much promise in you. :)
     
  4. Mr. Fox

    Mr. Fox

    Member
    559
    9
    18
    I can edit physics via RAM:
    0x11760 word "Max Speed"
    0x11762 word "Acceleration"
    0x11764 word "Slow down"

    Also, your spindash's animation is buggy. And besides I don't see a point of this hack. Bringing S1 GBA to Genesis? WTF? We already have a perfect one. And Stealth has ported a perfect S2 spindash to it.
     
  5. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    The physics and object code are so different that, intentional or not, it's a completely different game from the original. You wouldn't even be close to S1 GBA no matter how much RAM you edit... Try fighting the first boss or hitting a spring or jumping into a corner at high speed, there are changes everywhere including ones the original engine is not close to being able to do. S1 GBA even fixes some bugs that haven't been fixed in any other version or hack of Sonic 1, and has more solid (but slower) collision, and it was built from the ground up separately from the Genesis version, so it makes for a challenge to "port" it. It is also something of an experiment to see if S1 GBA still completely sucks even without the absurd lag and pop-in and small screen size.

    Also, can you try wording your criticism better or something? Maybe you think it's better to be blunt but it comes out sounding a lot like trolling.

    If you mean what I think you do, that is intentional as part of S1 GBA, replicating it as exactly as I could. At most one of the frames is too long because I kept it in one animation with a fixed speed per frame, but the dust really starts animating before Sonic starts spinning and the spindash animation really animates that slowly even in the absence of lag.

    The background effects are from a guide someone posted here; I was applying changes to Hivebrain's disassembly from a diff of uncommented disassemblies of the the Rev00 and Rev01 ROMs until I discovered that guide, which made it much easier. Like I said the spindash was done from scratch, actually I did a complete Sonic 2/3 spindash for something else then dumbed it down and changed the trigger condition to match S1 GBA. Most of the work was really in the details, not those few most obvious things. Some fixes I got from looking at Stealth's S1K ROM, namely for the caterkiller-damage bug, scrolling-left-too-fast bug, and die-during-level-resize bug, but I think that's it. Left boundary teleport fix, signpost art loading and collision fix, skippable score countdown, "walking jump" fix, momentum preservation (more involved than it looks), "press start" fix and edits, altered rebound physics, altered jump physics, etc. I did alone.

    The vast majority of stuff was done by tweaking in Hivebrain's S1 dissassembly until it was as close as I could get it to the observed behaviour of the GBA game. I also used SonMapEd a little for shuffling Sonic's sprite frames around and duplicating or mirroring them, piecing together the mappings and dynamic loading cues for the spindash and its dust, editing the title screen text, viewing VRAM dumps, and removing some unused tiles to keep the ROM size low.

    Explain, I don't know what you're talking about, does it only happen during lag or what? I did already add the way the skidding to a stop doesn't work if you're facing the wrong way, if that's what you mean, but that's hardly random.


    If you want to see a really subtle bug, try this: Spindash at the start of Labyrinth 1. Then start over, and this time jump before spindashing at the start of Labyrinth 1. The trajectory is completely different if you jump first, just like in the GBA version, for reasons that follow directly from the altered way jumping works (continously changing gravity applied to Sonic, apparently) and not setting a certain flag when the level starts.
     
  6. Puto

    Puto

    Shin'ichi Kudō, detective. Tech Member
    2,013
    0
    16
    Portugal, Oeiras
    Part of Team Megamix, but haven't done any actual work in ages.
    Well, it seems to be nicely done, since this feels just like playing Sonic 1 GBA on NO$GBA (a GBA emulator which seems to shorten the lag a lot)!
     
  7. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,151
    8
    18
    I find this interesting. It reminds me how broke the GBA game is. It's like a bad pirated game or something.
     
  8. Upthorn

    Upthorn

    TAS Tech Member
    239
    0
    0
    Bug report:
    In the original Sonic, holding right caps your speed (unless rolling).
    This isn't in Sonic: Genesis, but is in Sonic Genesis (Genesis).

    Test jumping and holding right immediately after a spindash, you'll see.
     
  9. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    Look again, it does do that in Sonic: Genesis.
     
  10. Upthorn

    Upthorn

    TAS Tech Member
    239
    0
    0
    Nevermind, right you are.
    Considering all of the things that didn't survive the transition from the original game engine to S1GBA, it's bizarre that that one did.
     
  11. bookman the stinky

    bookman the stinky

    literal trash Member
    197
    15
    18
    the dong
    find motivation
    A couple of things that were forgotten. Sonic's every turn is a skid, his spindash is above the ground about 8 pixels or so(I dunno), but the horrible speed control was good. YAY FOR YOU!!
     
  12. Hez

    Hez

    Oldbie
    way to bump
     
  13. Upthorn

    Upthorn

    TAS Tech Member
    239
    0
    0
    Well, since this topic has been bumped, I'd like to point out that (at least with no chaos emeralds), the ending sequence fails to load in Gens.
    I haven't tested this with other emulators yet.
     
  14. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    Looks like a second release is in order. The three problems TheDarkHedgehog and Upthorn had are fixed, and some other oversights. Sonic's sprite art and the life counter text are replaced with the different art from S1GBA [-- unsurprisingly, Sonic has many miscoloured or missing pixels, among some seemingly intentional edits]. The scrolling is changed to give a better sense of speed and Sonic CD style lookahead (that's not in S1GBA, but neither is a bigger screen).

    And now, it's time for some trivia. Everything you didn't want to know about springs in S1GBA and didn't care enough to ask: All springs double your max speed until landing if you go airborne before the spring counter runs out. All sidefacing red springs act like yellow springs. To compensate for the lower speed, slope repel calculations aren't performed after hitting a spring. Vertical springs erase all horizontal velocity not in a direction being pressed.
     
  15. RattleMan

    RattleMan

    Oldbie
    154
    0
    0
    A couple minor quirks:

    - Sonic 1 GBA has Sonic starting off GHZ1 at a location further to the left; you emulate this in the first revision but it's back to normal in the second.

    - This:

    [​IMG]

    This set of platforms in GHZ2 is completely solid. In your hack, they act like normal Sonic 1, I.e. not solid.
     
  16. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    Agh, I had to restore the starting locations from a backup but the file I grabbed was too old.

    Anything else? Already on my list are fixing the slope physics (I can't tell what S1GBA's doing there), fixing the dynamic level resizing, removing the switch under the monitor in LZ, fixing momemtum preservation against upside-down spikes, and making the first buzzbomb fly higher.
     
  17. Upthorn

    Upthorn

    TAS Tech Member
    239
    0
    0
    Is this also why the 80000 point time bonus for ending the act in under 15 seconds disappeared in the second release?
     
  18. MChabez Emihater

    MChabez Emihater

    Member
    6
    0
    0
    When I first played Sonic 1 Genesis (GBA), it made me remember how can this be acieved on the genesis emulators. You need two things:
    - A Genesis emulator, like Gens or Kega Fusion (of course)
    - The ROM of 'Sonic Classics (Compilation) (E) (REV00) [!]'

    Start it using the European Country settings. While running the compilation frontend, switch the country to American and choose to play Sonic 1. It's going to work like S1GBA, except for some things, if I'm correct.
     
  19. Damizean

    Damizean

    As classic as rock Member
    118
    0
    0
    Valencia, España
    Various projects
    That won't play any near to Sonic Genesis, as what you're doing is just change the display refresh rate, hence only the speed of the game.
     
  20. Xenowhirl

    Xenowhirl

    Tech Member
    175
    0
    0
    That was for a different hack and I forgot to remove it for the first release; there is no such bonus in S1GBA.

    Yeah, right. It's going to work like S1GBA except for everything. Switching the country settings doesn't redesign the physics.
     
Thread Status:
Not open for further replies.