don't click here

S2 Early prototype GHZ fix

Discussion in 'Engineering & Reverse Engineering' started by Rika Chou, Nov 28, 2006.

Thread Status:
Not open for further replies.
  1. Rika Chou

    Rika Chou

    Tech Member
    5,276
    169
    43
    http://www.homestead.com/specialvegetadays...x_rika_chou.bin

    That fixes all the art, and applies the proper collision tags to the loops. To fix the collision, use these game genie codes: (thanks tweaker)

    Known bugs:

    * The collision on the loops, and 'S' tubes is not working 100% correctly, dunno why.
    * I didn't bother to fix the boss art, too much work. :P
    * When you aproch the end of the level, shield graphics will be overwritten with hidden bonus graphics. (ran out of VRAM space..)
     
  2. JcFerggy

    JcFerggy

    Do you want to taco 'bout it? Member
    1,364
    58
    28
    Nova Scotia, Canada
    GoldenEye: Source, Other Stuff
    This hack is really good, I don't know what else to say, but will here be another version with Fixed Eggman art, and maybe another zone to replace LZ?
     
  3. superstarCSB

    superstarCSB

    snootch Member
    621
    0
    16
    Lawrence, Kansas
    I probably should get back to work on my site someday...
    Great stuff. One thing I noticed is that the spikes don't show up and the signpost art is still garbled, but other than that awesome work.
     
  4. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    Really? Signpost was fine for me.

    As for the spikes, I think they removed the spike art from the ROM altogether so there's nothing to restore. (Confirmation of that would be nice though...?)
     
  5. Nicholas Onimura

    Nicholas Onimura

    Lurker Member
    108
    0
    0
    Awesome job. But although GHZ's collision is fixed, the rest of the levels' collision is fucked.

    -Nick O.
     
  6. TapamN

    TapamN

    Member
    101
    2
    18
    My best reason for that is as follows:

    For level collision, every 16*16 level tile mapping has a collision number assosiated with it. The number is used to read off a global collision table which describe which pixels are solid (well, columns of pixels, really) and how steep the slope is. The global table is appearently different in Sonic 2, but GHZ uses numbers refering to the Sonic 1 table. If you pay attention to the beta, the messed up collision in GHZ happens predictably on slopes; the "flat 16*16 mapping" collision is still correct. The Game Genie code seems to change the global collision table to match Sonic 1's.

    If one went and fixed the 16*16 mapping collision table for GHZ to use Sonic 2's new global collision table, it would probably be possible to make the collision for the Sonic 2 levels and Sonic 1 to work at the same time. (However, you'd have to look though the global collision table to find by hand to find correct entires. And this assumes Sonic 2's global collision table has entries that match up to the old ones in Sonic 1.)

    But... I really haven't stopped to look at how the beta and this fix works... it just appears to me to works out like this.

    (Note: This post has not been proofread.)
     
  7. Rika Chou

    Rika Chou

    Tech Member
    5,276
    169
    43
    The spike from S1 were replaced with the spikes from S2, they DO show up, but they are different than those from S1.

    The signpost art...this is because GHZ2 and 3.....for some reason these two levels don't load the checkpoint or end of level graphics at all. It's a problem with the early beta ROM that I haven't looked into.

    Just turn off the game genie codes. :P (for now...)

    Not likley, 'cause all the non GHZ S1 objects have been removed.
     
  8. McAleeCh

    McAleeCh

    Oldbie
    1,472
    532
    93
    Excellent work, Rika! =P

    Hmm, with the graphics back in place, you can see that the mappings for the Meleon / Newtron badnik have been altered slightly; while the 'blue' ones are exactly the same, the 'green' ones no longer use the second palette line..
     
  9. JcFerggy

    JcFerggy

    Do you want to taco 'bout it? Member
    1,364
    58
    28
    Nova Scotia, Canada
    GoldenEye: Source, Other Stuff
    I nodiced that Eggman's wrecking ball has some of it's grapics back.
     
  10. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,151
    8
    18
    Plaaying through GHZ now is almost like playing through any other level. The garbled gfx should probably go back where the spikes go though, in their case garbled gfx is better than no gfx.
     
  11. Sanqui

    Sanqui

    Random nobody Member
    67
    11
    8
    Czechia
    Good, it works. But the 2p mode is getting worse ... I want GHZ 2P working!
     
  12. Mystical Ninja

    Mystical Ninja

    For old time's sake. Oldbie
    3,342
    5
    18
    New Castle, Delaware
    Nothing that concerns this place in the least.
    Nice work on the hack, Rika Chou. This was the best thing, since Hivebrain tried porting Green Hill into Sonic 2 Final, a while back. By the way, I noticed ONE other bug:

    [​IMG]
    I don't know if this screen explains it enough, but on the part with the crumbling floors, Sonic will fall right through it.
     
  13. 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.
    How about a version without needing game genie codes, for those of us who don't have Game Genie-supporting emulators?
     
  14. Mr. Fox

    Mr. Fox

    Member
    559
    9
    18
    You can always convert them to hex yourself and apply the changes in any hex editor. The conversion tool was included in ESEII IIRC. Also, don't forget that if these changes are always enabled they'll fuck up collision for all other levels.
     
  15. StephenUK

    StephenUK

    Liquor in the front, poker in the rear Tech Member
    1,678
    0
    16
    Manchester, UK
    Quackshot Disassembly
    You could always run a little compare routine to make the game load the S1 array for GHZ and the S2 array for all the rest. It shouldn't be too hard to pull off, even in hex.
     
  16. Rika Chou

    Rika Chou

    Tech Member
    5,276
    169
    43
    I heard something of a routine for this already in the game, just not active.

    Anyway, I am working on this a bit more... I've fixed the end of level art so it does not interfere with the shield graphics. Also, now the checkpoint art loads for all acts. I fixed the color of the Newtron back to green.

    Any other ideas?
     
  17. JcFerggy

    JcFerggy

    Do you want to taco 'bout it? Member
    1,364
    58
    28
    Nova Scotia, Canada
    GoldenEye: Source, Other Stuff
    Um, Tails in EHZ?

    What about making HTZ bigger so that you can finish the level, or finishing HPZ?
     
  18. Mr. Fox

    Mr. Fox

    Member
    559
    9
    18
    Can you fix boss' graphics?
     
  19. MathUser

    MathUser

    3rd top wiki contributor Researcher
    2,151
    8
    18
    My suggestion should be easy to implement. How about adding the correct level names in the level select.
     
  20. LocalH

    LocalH

    roxoring your soxors Tech Member
    Yeah, that's easy, as it's the exact same straightforward format as Sonic 1. Just find it in S1 rev 01, grab a good snippet of hex bytes (like 16 or 24) and then search for them in this proto. Here are the charset mappings, one byte per char:

    Code (Text):
    1. Hex  Character
    2. ---  ---------
    3. 00   0
    4. 01   1
    5. 02   2
    6. 03   3
    7. 04   4
    8. 05   5
    9. 06   6
    10. 07   7
    11. 08   8
    12. 09   9
    13. 11   A
    14. 12   B
    15. 13   C
    16. 14   D
    17. 15   E
    18. 16   F
    19. 17   G
    20. 18   H
    21. 19   I
    22. 1A   J
    23. 1B   K
    24. 1C   L
    25. 1D   M
    26. 1E   N
    27. 1F   O
    28. 20   P
    29. 21   Q
    30. 22   R
    31. 23   S
    32. 24   T
    33. 25   U
    34. 26   V
    35. 27   W
    36. 28   X
    37. 0F   Y
    38. 10   Z
    39. FF   Space
    40. 0A   $
    41. 0B   -
    42. 0C   =
    43. 0D   -> (right arrow)
    44. OE   -> (right arrow)
     
Thread Status:
Not open for further replies.