Sonic Forces (PC/PS4/XB1/Switch) Hacking & Resources

Discussion in 'Engineering & Reverse Engineering' started by Dario FF, Nov 7, 2017.

  1. Moonight

    Moonight

    Member
    4
    0
    0
    Thanks Skyth! I can finally export the skeleton. I was worried I had to do the rigging myself as I'm horrible at doing rigging, weight paint is a pain for me.
    I can finally work with these models.

    I also found that Buddy (Avatar) has some weird mouths that seem to be the same, if I remember they were "rb_mouth" and "mnq_mouth", also it was weird for me since the only species you can pick that I remember are wolf, cat, bear, dog, bird and hedgehog. Are those some "test models" or dumped ideas from SEGA? They look like hedgehog mouths, they might be from that, but I didn't really play with the hedgehog avatar, to be honest.
     
  2. RandomTBush

    RandomTBush

    Member
    13
    0
    1
    Nope, those are both used. "rb" is for the Rabbit, and the "mnq" is for the mannequin which is used with displaying the cosmetics.
     
  3. Jason

    Jason

    *Results not lab tested. Member
    So, what's the status on this? :v:
     
  4. Moonight

    Moonight

    Member
    4
    0
    0
    Oh, thanks, I was confused about those. I completely forgot about the rabbit and I had a rabbit avatar... That's awkward for me :/
     
  5. codenamegamma

    codenamegamma

    Member
    72
    0
    6
    well, that's because after my work on Mania it was more productive to stay centered in the discord modding community then coming here and creating then updating a thread no one cares about or posting and getting no real feedback on improving the cheat table I am making for the community. not only that but Sonic Forces has been a major pain in the ass compared to other sonic games, even cousins like Generations it was easier to find and make stuff for the cheat table, now I've had to spend a lot of time just learning the how the game is written and learning more about x64 assembly then actually finding useful things and the useful things i actually spent time looking hard for turned up nothing. like the wispon gauge bar, even though I managed to make it stay full it will still stop after a certain amount of time.

    despite all that this new method I'm using for grabbing addresses means that these last two updates I've only had to manually update a few entries as unless they make a change to a function i used to hook everything will just work regardless of where the actual values are in memory or even if the function changes around in memory. unlike mania where mania's addresses were all static so they wouldn't change from run to run, but every update i was manually updating over 100 addresses. IF Mania has another update i'll probably go in and modernize the cheat table but until then like all my work you can find the latest versions on my website. http://codenamegamma.com

    With the ability to decrypt and recryrpt savegames its, I've put work into trying to figure out what does what and how stuff changes so hopefully the limits and how it works can be documented and someone can make a SaveGame Editor for Sonic Forces, in the meanwhile I've been able to use the savegame editing to see what values the game using for things like Avatar items, and so I was able to find the structure and memory location for everything avatar related.

    [​IMG]

    This means even if the Avatar Item or Wispon is locked it can still be set via memory to your character, no need to spend hours collecting moons or getting S-Ranks.

    Here is a Small Demo.
    http://www.youtube.com/watch?v=zxMLbLK-61w

    the next bit is to figure out what changes in the savegame to determine what stages are locked or unlocked so maybe that can be changed via memory as well, failing that then redrings, Numbers, moons ect...
     
  6. Lanzer

    Lanzer

    The saber calls for its master... Member
    6,842
    0
    16
    Glendale, AZ
    Doing Stuff.
  7. rata

    rata

    Member
    528
    5
    18
    Argentina
    Trying to be useful somehow.
    Please stop... hahaha. Modding community is loosing it's mind and I love it.
     
  8. ccateni

    ccateni

    Member
    3
    0
    0
    How would I change the models in the game?
     
  9. Dark Sonic

    Dark Sonic

    I'll find the old avatar eventually Member
    12,240
    35
    28
    Working on my art!
    Good news:

    http://www.youtube.com/watch?v=0MVfN6ExAQk

    It's possible to tweak the physics like in Generations.

    EDIT: Said mod has been released, and would you look at that, it makes Classic Sonic appear to play 100 times better:

    http://www.youtube.com/watch?v=kaxMs58bdfs
     
  10. Lanzer

    Lanzer

    The saber calls for its master... Member
    6,842
    0
    16
    Glendale, AZ
    Doing Stuff.
    Just now seeing this, thats awesome the physics mod fix was able to be worked into Forces after all. hopefully once level layouts can be broken we can see some of these levels redone with good actual level design. I hope to see a complete Classic Sonic redesign mod for this game one day, give us new music and new level layouts along with this physics fix and I'll be happy for his inclusion in this game.

    Is their a way to get Modern's double jump working to be less ass and maybe give him some of his old movesets from Generations/Colors/Unleashed?
     
  11. Pokepunch

    Pokepunch

    Member
    82
    0
    6
    UK
    A Sonic 2 Hack
    I'd love to see the jump dash back, beats the finicky double jump any day.
     
  12. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    Now out on GameBanana.
    A least a shirt, anyhow.
     
  13. does anyone know how to unpack the .pac files inside the .cpk files
     
  14. CornflakeRush

    CornflakeRush

    Member
    24
    0
    0
    Use Skyth's SFPac Python script, works like a charm -

    1) Make sure you've got Python 2.7.14 specifically installed;

    2) Download the SFPac script from here by right-clicking on "Raw", selecting "Save Link As" and saving the script to your PC;

    3) Drag and drop a .pac file onto the script to unpack it, drag and drop the resulting folder back onto the script to re-pack it.


    ~


    On another note, just posting something about texture editing - for anyone like me who has no way of editing modern .DDS texture files, it turns out the game will still accept earlier .DDS formats and compressions. Here's what I did to get the original textures:

    [​IMG]

    1) Grab PicoPixel, which seems to open practically all images;

    2) Open up the original .DDS extracted from the .pac files;

    3) Take a screenshot of the window and crop away everything but the texture in your editor of choice;

    4) After making your edits export it as a .DDS through the free G.I.M.P. plugin.

    Hey, it's rough, but it works!
     
  15. Jason

    Jason

    *Results not lab tested. Member
    Good progress with texture replacements. Are model swaps possible yet?
     
  16. Skyth

    Skyth

    Member
    15
    0
    1
    Here's a skinned model converter Zoney and I made.
    Works only for Sonic Forces, also maybe Sonic Lost World.
    Drag and drop a FBX/DAE file to get your model/material files.

    Sonic Team included metadata at the start of model files, which tells the game to do certain things. I'm going to call them properties. You can add them by adding tags to meshes. Applying to any mesh will apply to the whole model.

    Example: [email protected](ShadowCa, true)@PRP(ShadowRe, true)
    ShadowCa makes model cast shadows and ShadowRe makes model receive shadows.
    In some cases though, they hardcode properties to models so they always apply even if it doesn't exist in model file, such as Sonic's player model.

    They also used a different way of swapping mouths. Instead of swapping mouths by bone, they swapped them by mesh, using their names. This is also supported by the program.
    You need to have left and right mouth as seperate meshes and assign names to them.
    In this case, left mouth should be named Mesh_Mouth_L and right mouth should be named Mesh_Mouth_R.
    Example: [email protected](Mesh_Mouth_R)

    I think it would be better if we added support for skinned models in a Qt program, like Hedgehog Converter or a seperate one, but I currently don't have the time/opportunity to do that, so, anyone...?
     
  17. CornflakeRush

    CornflakeRush

    Member
    24
    0
    0

    Thanks to Skyth's model converter tool and SonicGLVL's modelfbx program I've been making a few original non-animated cosmetics but there's been far more advanced things made by others, including an incomplete port of Sticks to replace Modern Sonic.

    Speaking of the Hooters Waitress OC costume, here's a Sonic Retro exclusive version of my Hooters/Prisoner/Tourist shirt re-skin mod that edits the Sanic Shirt model to bring out the chest a bit too: Download!

    [​IMG]

    Just in case it's of interest I guess!


    ~


    Couple notes on Avatar clothing model replacements/swaps (from a Blender user's perspective):

    • So long as the armature, mesh data block and individual meshes are all named correctly, e.g. "ctp_(body part)_(three-digit number)" (with "_mesh" also added onto the end of the mesh data block's name), and all the weighted Vertex Groups are accurate to the skeleton shared by all the Avatar parts, you can swap out pretty much anything you like over any item type - I'm planning to exploit this to swap out one of the Middle Headgear items for a sword you can have hanging off your back without overwriting the Body item too. Be careful what you replace though - e.g. replacing the Lower Headgear (referred to as "face" items in the files) tends to remove your character's mouth!
    • This might be because I rotated the imported meshes/skeletons upright beforehand (they're on their side when they're imported in), but the correct "Forward/Up" fbx export values seem to be "-Z Forward" and "Y Up", with "Scale all data according to current Blender size" turned off. (Click the button to the right of the Scale slider.)

      [​IMG]
    • It's possible to grab the Avatar's body and skin colors and use them on your custom model, but until we know more about the Sonic Forces .material files my "brute force" method is to copy/pack the .material files from the body/head mesh .pacs in with the mod and assign them to your mesh using an internal Blender material named the same way.

      Downside of this is that it always resembles fur or skin to some extent - that said from what little I could understand opening the .material files in a text editor there seems to be a method of including the player's chosen colors (it's used in the vanilla game at the base of the spiky anime hair item), but I have a feeling making any edits to the .materials in that imperfect way will probably cause a crash!

    I've had no luck replacing anything with animations personally (which unfortunately includes the Wispons), whatever I'm exporting crashes the game if it's replacing something that's animated normally - anyone got any tips on getting these working?
     
  18. RikohZX

    RikohZX

    Member
    374
    0
    16
    Weird, HedgeModManager works with the Classic physics fix and, singularly, character swaps for stages, but it refuses to cooperate with that shirt mod you posted and I just keep the default Sanic shirts.

    EDIT: Nevermind, that was just the manager deciding not to cooperate.
     
  19. CornflakeRush

    CornflakeRush

    Member
    24
    0
    0
    Phew! Had me worried there for a second, I was like "OH JEEZ Did I pack it wrong!?" :'D
     
  20. Windii

    Windii

    stan sakazaki mikoko ya coward Member
    I'm... not sure if the drag-and-dropping works for me. The .py file does not get highlighted or anything when I drag a .pac file onto it. Unless I'm doing something wrong here. I do have Python 2.7 installed. Is there an .exe version?