Sonic and Sega Retro Message Board: Sonic Mania: Hacking Discussion - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 41 Pages +
  • ◄ First
  • 12
  • 13
  • 14
  • 15
  • 16
  • Last ►
    Locked
    Locked Forum

Sonic Mania: Hacking Discussion Will update when news comes out

#196 User is offline Chimera 

Posted 01 September 2017 - 04:00 AM

  • I'm not a furry.
  • Posts: 1228
  • Joined: 04-October 10
  • Gender:Male
  • Project:TOO MANY. BUT ONE LESS.
  • Wiki edits:5
making gifs on my computer is suprisingly annoying so check here

https://youtu.be/53mjlRDTFf4?t=25s




EDIT: Marc just told me this guy StoneBanana cracked the sprite anim format pretty much entirely, which, wow, good job.

Quoting here for convenience:

Quote

Entry Title (has no set length)
then afterwards...
0x00 = Amount of frames, word
0x02 = Animation speed (higher the number, the faster it is), word
0x04 = Frame number to loop the animation at, word
0x05 = 0x04, byte (this may change, no idea what it's purpose is though)

then come the individual frame mappings themselves, which are in the following format:
0x00 = Sheet number (specified in the heading of the mappings), byte
0x01 = X coordinate of the top left of the sprite, word
0x03 = Y coordinate of the top left of the sprite, word
0x05 = Horizontal size in pixels of the sprite, word
0x07 = Vertical size in pixels of the sprite, word
0x09 = Horizontal Displacement of the sprite, word
0x0B = Vertical displacement of the sprite, word
0x0D = Horizontal radius in pixels (negative), word
0x0F = Vertical radius in pixels (negative), word
0x11 = ???? (seems like this is connected to the horizontal radius somehow, investigate later)
0x13 = Vertical radius in pixels (positive), word
0x15 = Horizontal radius in pixels (negative) && 0x00FF + 1[?], word
0x17 = Vertical radius in pixels (negative), word
0x19 = ???? - 1
0x1B = Vertical radius in pixels (positive again[?]), word
To indicate the end of the mappings entry, 0x0008 is used. Otherwise, the space is simply filled with 0x0000.

Tails = FFF6 FFF0 FF0A 0010 00F7 FFF0 FF09 0010 0008
Sonic = FFF6 FFEC FF0A 0014 00F7 FFEC FF09 0014 0008
Chibi Sonic = FFF8 FFF4 FF08 000C 00F9 FFF4 FF07 000C 0008

This post has been edited by Chimera: 01 September 2017 - 04:03 AM

#197 User is offline Chimera 

Posted 01 September 2017 - 04:15 AM

  • I'm not a furry.
  • Posts: 1228
  • Joined: 04-October 10
  • Gender:Male
  • Project:TOO MANY. BUT ONE LESS.
  • Wiki edits:5
Double posting because this is another matter entirely.

So I decided to just up and remove the "objects" folder to see what would happen :specialed:/> I figured those files had to do something... And they do!


While I haven't pinpointed yet what specific files affect what, it seems the "Objects" folder controls the menu graphics, Blue Sphere, player physics (!!!!!!!), and for some reason puyo speed. Unsure what else it controls but I'll look into it later.

Removing the files sets everything to null, it seems, or some form of it. Menu graphics straight up disappear if they aren't sprites, Sonic/Tails/Knuckles can face a direction but they can no longer actually move--in fact, their only mode of movement is the spindash, as the power of the spindash seems to be controlled elsewhere--and trying to load Blue Sphere just crashes the game. Obviously what we're more interested in is the player physics.

Don't get your hopes up though, because it's not like whatever's in this folder actually controls player behavior as in character powers and the like. Rather, it seems to control the property differences between Sonic, Tails, and Knuckles, setting things such as their jump height, acceleration, max speed, etc. If you put the characters in any cutscene setting (that doesn't have them jump), they'll behave as you'd expect. However, once they're out of the script, they're no longer able to move forward as their acceleration's set to 0.

This half explains why it affects puyo puyo, assuming it's 0 "resistance" or something idk.

Unless there's other things within the Data folder I'm missing, this leads me to believe a lot of the core behavior in the game is hard coded. Back to the ASM days either way I guess :V though does look like some things can be edited without a need for cracking into the EXE.


I'll pinpoint what specific files do this soon. There's just a lot of 1KB .bin files and I honestly don't feel like shifting through them right now lol
This post has been edited by Chimera: 01 September 2017 - 04:18 AM

#198 User is offline TheStoneBanana 

Posted 01 September 2017 - 05:02 AM

  • Posts: 3
  • Joined: 11-July 14
  • Gender:Male

View PostChimera, on 01 September 2017 - 04:00 AM, said:

EDIT: Marc just told me this guy StoneBanana cracked the sprite anim format pretty much entirely...

I just want to note that it isn't entirely cracked, as there's still a few things that need to be figured out (like the purpose of some stuff in the header), as well as a different, smaller format used for objects like badniks, rings, and stuff. There are also a few minor mistakes that I made which need to be corrected.
Tpot has been helping to figure out a few things with the format, and I intend on documenting the shorter format when I can. An updated document should come later today and will hopefully be more helpful.

For now, the notes that were posted apply almost exclusively to characters. That's all.
This post has been edited by TheStoneBanana: 01 September 2017 - 05:03 AM

#199 User is offline McAleeCh 

Posted 01 September 2017 - 05:43 AM

  • Posts: 725
  • Joined: 12-January 03
  • Gender:Male
  • Wiki edits:27
Another thing I've not seen mentioned - the naming of the sound effects for the different bouncy chemicals in Chemical Plant seem to imply they were different colours at one point, with the cyan chemical's sound named ChemYellow and the green chemical's sound named ChemRed. Presumably they were changed either becuase the old colours are traditionally associated with danger, or because they blended in with the large areas of red in Act 2's background.

Also, the sound effects for Press Garden's shuriken launchers are named ArrowLaunch and ArrowHit - along with the ARZ arrow launcher graphics found in the Act 2's Objects-Temp sprite file, this seems to suggest they were just regular arrow launchers for a period of development.

Finally, Flying Battery's Objects-Classic sprite sheet is a little different to some of the others - unlike other stages that have these, the classic version seems to have been partially combined with Wing Fortress and Wacky Workbench's graphics already. Some minor colour changes have been made to the elements originating from other stages, but other than that it's the unchanged Mega Drive art. Things of note: the Clucker's turret was originally changed to grey rather than the orange seen in the final stage - personally prefer the final colour choice as it makes it look more similar to how it looked in Wing Fortress. The Wacky Workbench electrical spheres were blue rather than orange - presumably this was changed to give them better visibility against the stormy background. Finally, it seems the circular turrets from Wing Fortress were considered for the stage early on as they're present here, recoloured to grey to match Flying Battery's palette.
This post has been edited by McAleeCh: 01 September 2017 - 05:48 AM

#200 User is offline Alkaiser 

Posted 01 September 2017 - 05:55 AM

  • Posts: 2
  • Joined: 31-August 17
Really amazing progress folks. Metal Sonic was cool to see being implemented, as well as modding sound effects. I guess that means music could also be modified? One potentially good idea might be to remove Super music altogether, as the stage themes are generally what are worth listening to instead of the Super loop. Not that it's a bad song at all, but once you unlock Super mode you do get to hear it very often instead of the stage theme.

#201 User is offline McAleeCh 

Posted 01 September 2017 - 07:52 AM

  • Posts: 725
  • Joined: 12-January 03
  • Gender:Male
  • Wiki edits:27
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?
This post has been edited by McAleeCh: 01 September 2017 - 08:10 AM

#202 User is offline Surgesurfer 

Posted 01 September 2017 - 08:27 AM

  • Posts: 4
  • Joined: 31-August 17

View PostAlkaiser, on 01 September 2017 - 05:55 AM, said:

Really amazing progress folks. Metal Sonic was cool to see being implemented, as well as modding sound effects. I guess that means music could also be modified? One potentially good idea might be to remove Super music altogether, as the stage themes are generally what are worth listening to instead of the Super loop. Not that it's a bad song at all, but once you unlock Super mode you do get to hear it very often instead of the stage theme.

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.

#203 User is offline Dark Sonic 

Posted 01 September 2017 - 12:29 PM

  • Posts: 10926
  • Joined: 21-April 06
  • Gender:Male
  • Project:Working on my art!
  • Wiki edits:10
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:

#204 User is offline ICEknight 

Posted 01 September 2017 - 01:10 PM

  • Posts: 10524
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18

View PostSurgesurfer, on 31 August 2017 - 09:55 PM, said:

Looking through the files again and the SFX for bouncing on the Chemical Plant jelly or whatever it's actually called are called "ChemRed" for bouncing on the green jelly and "ChemYellow" for bouncing on the blue jelly.

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

#205 User is offline codenamegamma 

Posted 01 September 2017 - 02:33 PM

  • Posts: 54
  • Joined: 29-August 17
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.


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
This post has been edited by codenamegamma: 01 September 2017 - 02:46 PM

#206 User is offline Kharen 

Posted 01 September 2017 - 02:42 PM

  • Posts: 592
  • Joined: 29-October 11
  • Gender:Male
  • Location:Eastern Washington University

View PostMcAleeCh, on 01 September 2017 - 05:43 AM, said:

Another thing I've not seen mentioned - the naming of the sound effects for the different bouncy chemicals in Chemical Plant seem to imply they were different colours at one point, with the cyan chemical's sound named ChemYellow and the green chemical's sound named ChemRed. Presumably they were changed either becuase the old colours are traditionally associated with danger, or because they blended in with the large areas of red in Act 2's background.

Also, the sound effects for Press Garden's shuriken launchers are named ArrowLaunch and ArrowHit - along with the ARZ arrow launcher graphics found in the Act 2's Objects-Temp sprite file, this seems to suggest they were just regular arrow launchers for a period of development.

Finally, Flying Battery's Objects-Classic sprite sheet is a little different to some of the others - unlike other stages that have these, the classic version seems to have been partially combined with Wing Fortress and Wacky Workbench's graphics already. Some minor colour changes have been made to the elements originating from other stages, but other than that it's the unchanged Mega Drive art. Things of note: the Clucker's turret was originally changed to grey rather than the orange seen in the final stage - personally prefer the final colour choice as it makes it look more similar to how it looked in Wing Fortress. The Wacky Workbench electrical spheres were blue rather than orange - presumably this was changed to give them better visibility against the stormy background. Finally, it seems the circular turrets from Wing Fortress were considered for the stage early on as they're present here, recoloured to grey to match Flying Battery's palette.


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.

#207 User is offline MainMemory 

Posted 01 September 2017 - 02:46 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 3973
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
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.

#208 User is offline codenamegamma 

Posted 01 September 2017 - 03:07 PM

  • Posts: 54
  • Joined: 29-August 17

View PostMainMemory, on 01 September 2017 - 02:46 PM, said:

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.

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.
This post has been edited by codenamegamma: 01 September 2017 - 03:53 PM

#209 User is offline Chimera 

Posted 01 September 2017 - 04:30 PM

  • I'm not a furry.
  • Posts: 1228
  • Joined: 04-October 10
  • Gender:Male
  • Project:TOO MANY. BUT ONE LESS.
  • Wiki edits:5
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.

#210 User is offline Dark Sonic 

Posted 01 September 2017 - 06:01 PM

  • Posts: 10926
  • Joined: 21-April 06
  • Gender:Male
  • Project:Working on my art!
  • Wiki edits:10
So do we have a way of editing the level layout/level art yet?

  • 41 Pages +
  • ◄ First
  • 12
  • 13
  • 14
  • 15
  • 16
  • Last ►
    Locked
    Locked Forum

3 User(s) are reading this topic
0 members, 3 guests, 0 anonymous users