don't click here

Sonic Mania: Hacking Discussion

Discussion in 'Engineering & Reverse Engineering' started by Chimera, Aug 29, 2017.

  1. McAleeCh

    McAleeCh

    Oldbie
    1,274
    281
    63
    Another thing filename-wise - the sprite artwork/sound effect filenames help confirm internal names for most (sadly not all) of the bosses. Note that these names might not be final - the Heavy Magician is referred to as Heavy Mystic, for example - but in the absence of anything else to go on it's better than nothing, similar to how most of the names we have for Sonic CD's enemies are simply the names they're referred to by in the internal code.

    Names found via sprite artwork in this way include:

    • Green Hill Zone Mid-Boss - DD Wrecker (no clue what the DD stands for - any ideas?)
    • Green Hill Zone Boss - Death Egg Robot (actually DE Robot in the filename, but unlike above we already know what that stands for!)
    • Chemical Plant Zone Mid-Boss - Amoeba Droid
    • Chemical Plant Zone Boss - Though no dedicated sprite files exist for this boss, the player/Eggman art related to it is all prefixed with MBM, unlike the unlockable Mean Bean mode for which the art is named Puyo. From this, it can be inferred the boss name is likely Mean Bean Machine, the same as the game it's referencing.
    • Studiopolis Zone Boss - Weather Mobile
    • Flying Battery Zone Mid-Boss - Big Squeeze
    • Flying Battery Zone Boss - Spider Mobile
    • Stardust Speedway Zone Mid-Boss - Hotaru Hi-Watt. Interestingly, if this is the final name it'd also canonise Sonic CD's internal name for the badnik it's based on!
    • Stardust Speedway Zone Boss - Metal Sonic (duh!). Interestingly, the sound effects for the badniks based on the 8-bit Mecha Sonic which appear during this fight are all prefixed SS - as the sounds for Metal Sonic are prefixed MS, the SS almost certainly stands for Silver Sonic, the popular nickname for the original boss and also apparently the name of this badnik.
    • Mirage Saloon Zone Boss - Heavy Mystic (prototype name - superceded by the finalised name Heavy Magician as given in the game manual. All the internal sound files are also prefixed Mystic, so this was definitely the character's name for a period during development).
    • Oil Ocean Zone Mid-Boss - Meter Droid
    • Oil Ocean Zone Boss - Mega Octus
    • Lava Reef Zone Boss (Sonic/Tails) - Heavy Rider, as per the game manual
    • Lava Reef Zone Boss (Knuckles) - Heavy King, as per the game manual
    • Egg Reverie Boss - Eggman's craft is the Klepto Mobile and the Heavy King's upgraded form is the Phantom King. The other upgraded Heavies are all filed in here too, so presumably they're the Phantom Gunner/Shinobi/Rider/Magician per the King's naming here. Interestingly, all the upgraded Heavies' art is named starting PhantomKing, suggesting they may all have been part of a single boss-fight at one point - there's also unused art in the Titanic Monarch boss machine's art showing what appears to be the very top of a giant mech or something, so both fights may have been conceived as being quite different at one point!

    I know some people said Stealth mentioned some boss/enemy names on his stream - I avoided it at the time to avoid spoilers, so don't know what exactly was mentioned there. For anyone who saw it and took notes - if we combine the info from the stream with this internal data, do we now have a relatively complete list of boss names throughout the game?
     
  2. Surgesurfer

    Surgesurfer

    Member
    4
    0
    0
    Can't say for sure but that would probably involve removing the script that makes the game play the Super loop, or just making it play a sped-up level song like S3K Complete. I think the issue for the latter is unlike S3K there's no sort of immediate function for that since speed shoes play a different song entirely. There probably is some way to do it but I think we have to figure out how the scripting works for this game first.
     
  3. Dark Sonic

    Dark Sonic

    Member
    14,356
    1,402
    93
    Working on my art!
    I wonder what tools the community will come up with to edit this game? It'd be great if this game could serve as a new base for projects instead of having to rely on Sonic 1 and 2 anymore.

    I would love to try and make a Sonic 3 & Mania and port over all of Sonic 3 and Knuckles' levels into Mania so we could have Sonic 3 with all the added benefits of the new engine, but unfortunately I would have no idea where to begin. At least a lot of the objects and environmental gimmicks seem to already be in Mania, so if they could be moved around and the graphics could be swapped out that wouldn't require a lot of coding (I don't think). I also would have no idea how to implement new bosses or cutscenes.

    I'm not a coder but a man can dream :specialed:
     
  4. ICEknight

    ICEknight

    Researcher Researcher
    They probably wanted to save the syringes with red fluids for Doctor Mayhem Zone in Mania 2. =P
     
  5. codenamegamma

    codenamegamma

    Member
    73
    1
    8
    Ok, so I could use some help, probably with someone who knows assembly or Cheat Engine better than i do. Maybe MainMemory???


    so I found the trigger for Insta-Shield.
    http://www.youtube.com/watch?v=Rrr5Cp3ZOeI&feature=youtu.be

    basically, the assembly tells it to do a compare, and if it's correct, then Jump to an Address. so if I nop it out then instead of Dropdash we get insta-shield. so what id like to do is find the end of the the insta-shield instruction then add the jump for DropDash, this way we could have both. but I'm a bit lost on how to do that.

    Any Help?

    Add me on Discord!
    codenamegamma#3910
     
  6. Cyan = Yellow
    Cyan doesn't bounce you as high. It's the slime equivalent of the Yellow Spring.

    Green = Red
    Red bounces you incredibly high. It's the slime equivalent of the Red Spring.
     
  7. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    Huh... maybe we do need custom code support after all... The only trouble is finding a good place in the game's code to inject my code because you can't load DLLs from a DllMain function.

    As for the issue at hand, I'm not sure. It might be possible, you'd have to follow the code and see what it does. I find this is much easier in IDA Pro than in Cheat Engine, not least because it has a decompiler.
     
  8. codenamegamma

    codenamegamma

    Member
    73
    1
    8
    well, id love to do what I can to help out or work with the infamous MainMemory. maybe what we can do is just enable and disable that code jump in certain conditions instead of rewriting the code.
     
  9. Chimera

    Chimera

    I'm not a furry. Tech Member
    1,263
    8
    18
    Castlevania prettyness
    It's been suggested before that a good way of having both Insta-Shiild and Drop Dash is by setting Drop Dash to down(+forward/back) + Jump, since it's basically an aerial spindash. If you could possibly detect if down is being held while in the air, you could set it so the switch is set to Drop Dash, otherwise it's set to Insta-Shield. Of course, another way could be checking which of the jump buttons was pressed first, then based on which one enable/disable Insta-Shield before it comes out. Something tells me that'll be significantly more difficult though.
     
  10. Dark Sonic

    Dark Sonic

    Member
    14,356
    1,402
    93
    Working on my art!
    So do we have a way of editing the level layout/level art yet?
     
  11. Rageguy

    Rageguy

    Member
    9
    0
    1
    is there any actual way of editing/ripping the models that are currently in-game yet?
     
  12. codenamegamma

    codenamegamma

    Member
    73
    1
    8
    i got version 1 of my save editor almost done, if anyone can get me graphics of The Medals and the background that would really help me out.
     
  13. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    Well the art for the 16x16 blocks are just a GIF file, but I don't believe there is a level editor yet. I might try making one, but I think I'd need someone to reverse engineer the files first.
     
  14. Flygon

    Flygon

    Member
    Not gonna be the most helpful guy here, but DD locally tends to mean 'Double Decker'. For example.

    Cue the pun Double Decker Wrecker!
     
  15. Arcaden

    Arcaden

    Member
    10
    0
    0
    Sonic AMV: Boss - Big Arms
    Sounds plausible to me. Sonic games do tend to love their puns (and alliteration with names like “Metallic Madness”)
     
  16. Surgesurfer

    Surgesurfer

    Member
    4
    0
    0
    [​IMG] [​IMG]

    Here you go. What do you mean by the background, though?

    EDIT: Took another look at the Blue Sphere objects and found this:

    [​IMG]

    Anyone know what it's used for?
     
  17. Rageguy

    Rageguy

    Member
    9
    0
    1
    I've been making a few joke mods here and there.





    Mainly doing this to get used to the modloader and also experiementing here and there. It seems that some palettes for things are hardcoded (like the players, some chemical plant tiles, etc.)

    As soon as model replacing is a thing, I'm making the emeralds Arizona cans. I plan on making a full vaporwave type mod just for fun.
     
  18. Tiranno

    Tiranno

    Steveosaurus Rex Member
    I could really use some help!

    So I'm trying to do a sprite hack to change Sonic's colors to a bit more deep blue (ala Sonic 3) and this is what happens when I import the sprites:

    [media]https://imgur.com/gFXR4pX[/media]

    this is one of the sheets I'm using:

    [media]https://imgur.com/5GGKvzp[/media]
     
  19. Rageguy

    Rageguy

    Member
    9
    0
    1

    The only possible reason I think that this would happen is because you saved it as a gif but since it has a larger palette it went berserk.

    I tried saving as a normal gif when I was making a test metal sonic and the sprites got all wacky too, so what I had to do was make my sheet, and then open Sonic's sheet, and since that sheet has a restricted palette; it worked when I tested it as a mod.

    So basically:

    Edit the sheet separately in a diff program/project
    Save/Copy your sheet.
    Open the default Sonic1.gif (Sonic sheet.)
    Paste/Import your sheet.
    Save
    ????
    Profit.
     
  20. Tiranno

    Tiranno

    Steveosaurus Rex Member
    Alright so now the sprite loads, but in the default color. Any way I can change it?