don't click here

Sonic Generations Hacking (and More!)

Discussion in 'Engineering & Reverse Engineering' started by Andrew75, Jun 23, 2011.

  1. Azu

    Azu

    I must be stupid. Member
    I want those geometry. That's looking real nice Dami.
     
  2. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Gimme gimme gimme. :v:

    I want the geometry at least for a reference in the editor instead of having to edit in space. No need for the collision yet, but oh god it would be so useful... Can I ask for the script Twilight?
     
  3. darkspines35

    darkspines35

    It's Easy Actually. No, seriously. Tech Member
    248
    0
    16
    .V.
    Sanik Adevnt Casters
    Have fun with that. All of the animation data is stored in bytes or something in the data block. Nothing I've found in the files are able to decompress them, but you know more about that stuff than I do. So you might be able to get something actually working. The only thing I can confirm is that it uses quats for rotations.


    It's actually not a script so much as a program. Then there's an import script to import the median file into 3DS that the program creates. It's still got some bugs to work out, and Link's the guy making it. When it's done is when it'll be released, which might be soon. Don't hold your breath on that though.
     
  4. Twilightzoney

    Twilightzoney

    Tech Member
    353
    0
    16
    Elgin, IL And Hampshire
    Unleashed and Generations Stuff and Custom Works
    What he said, as I said before Link is working on it. And there are thing thats are still wonkers and trying out some things he'd like to add to it. For sake of time purposes really and ease of access. He would like it to export separate files of each folder containing the meshes. He would also incorporate his ar0unpacker into his program since its more like just plugging it in for him since he made it way back. Plus having one whole solid mesh isn't fun not much you can do, and detaching by materials will slow down your computer. So things will have to be added and fixed for sake of everyone's crappy computer. Woo :v:

    Hopefully some good things will come soon.
     
  5. Damizean

    Damizean

    As classic as rock Member
    118
    0
    0
    Valencia, EspaƱa
    Various projects
    Isn't the Havok SDK Viewer able to read the files? Twilightzoney mentioned that it was an actual format upgrade instead of a whole new format. If so, with the SDK you could probably export them to an intermediary format to parse them easily on other apps.
     
  6. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Oh right, since you mentioned maxscript chugged on it a lot, so the conversions had to be done on a program. Fair enough, but really nice to see you guys have a way so far to working on level geometry.

    Regarding my editor, I'd also need to implement an AR0 unpacker. Not all the object data is in setdata_base.set.xml for a single level, so I need to add a way to detect all the XMLs from a single level file(like #ghz100.ar.00), and then save back to it. I gotta figure out the pattern of WHAT xmls hold the data though. Maybe just opening every single one of 'em and checking for <SetObject> should do the trick.
     
  7. Dark Sonic

    Dark Sonic

    Member
    14,632
    1,632
    93
    Working on my art!
    So does anyone in this topic know what the patch on the 360 version today was for? It didn't seem to fix anything, but it did something.
     
  8. Aquaslash

    Aquaslash

    <The Has-been Legend> Moderator
    If it was 3MB then is was just an update to cover something from another game you played. For whatever reason, games have updates that conflict with each other.
     
  9. darkspines35

    darkspines35

    It's Easy Actually. No, seriously. Tech Member
    248
    0
    16
    .V.
    Sanik Adevnt Casters
    It can export to XML, and that's it. You can't actually extract anything from it. And when you export it to XML, it just puts the data from the hkx file into an XML, doesn't convert the data. You still have to crack it, and it's compressed with one of the compression methods Havok Animation can use. As for the collision things handled in the hkx files, I honestly haven't looked into those yet.
     
  10. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    So it seems some of the other objects in the XMLs like the effect ones actually have strings as parameters... And I apparently forgot to add support for that. :v: Still though, things are looking good so far, but there's something hardcoded into the game I'm not sure how to get around.

    Every level seems to reuse an object called GeneralFloor, and it's entirely dependent on the level apparently, be it Green Hill, Chemical Plant, etc. It puzzles me as why Sonic Team decided to go with that limitation? Making GeneralFloorGHZ and GeneralFloorCPZ different objects would save them any trouble if they wanted to merge objects in a same level... apparently they just like setting up more restrictions then.

    EDIT: Ok I added AR.00 level support and saving to it. This allows ALL of the data to be in the editor(even omochao hints and sound lines). Also fixed the crash when deleting. I'll make a test of this version in a bit. (might as well call it v0.2 since it adds more support).

    EDIT2: Here's another early test of the editor, v0.2. Download.

    + Added AR.00 open/saving support. Instead of having to deal with the XMLs, you can just open the .ar.00 file (like #ghz100.ar.00), and edit the level. This time, it will load all data inside the file. Save and it will repack. The used tools are the ones in the OP for extracting ar0 files.
    + Added string parameter support for template files. This allows editting stuff like sound lines/points, particle effects, and even omochao hints.
    * Probably fixed the camera problems
    * Fixed the crash when deleting objects

    No new keys for the camera yet.

    EDIT3: There seems to be a slight problem if you place the editor inside a folder with a space. Fix incoming.
     
  11. Chimera

    Chimera

    I'm not a furry. Tech Member
    1,275
    22
    18
    Castlevania prettyness
    All I'd want from this program, really, is lack of mouse restriction and the ability to undo/redo :v:
     
  12. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Fair enough, though I'm gonna be busy for this weeks for a while. Undo/Redo might take a while to do, but what do you mean with mouse restriction? You mean you want to move the windows freely? QuickGUI has that option AFAIK, it's just a matter of implementing it and putting some extra checks. Or maybe you mean the rendering window capturing the mouse?

    I know it lacks a lot of stuff yet, but it's a start. :)
     
  13. Azu

    Azu

    I must be stupid. Member
    I'd like to see snap to object and zoom to selected object like in Max. Heck, just make the controls like max and you'd have a winner. :v:

    I tired to open the AR.00 file and it told me to drop it on the exe.=/
     
  14. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Yeah, I don't know why the ar0 tools don't work fine with names with spaces, even when I use quotes on them... drop the editor on a path without spaces(like C:\editor for example). If they don't end up working right I can use MainMemory's tool instead I think.

    Also, I fixed a little crash bug and made the mouse not restricted to the window, which is what Chimera requested I think. Download

    EDIT: Redownload the file, also fixed that bug with the paths and ar0 tools. You should no longer get that error Azu.
     
  15. Azu

    Azu

    I must be stupid. Member
    This worked perfectly. Now you need to add the other objects. =P
     
  16. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Glad to know it works. You can add objects in your own if you want. I was planning to write how to on my own thread for the editor, but I can teach you quickly. You just need Max(which is free with the student license), the Non-commercial version of OgreMax plugin for 3DS max (any version), and something to edit XMLs(even wordpad will do fine).

    You can just automatically create new templates if you select an XML of a level(like say, green hill act 2), with the "Dump templates" option on the File menu. Then it's a matter of tweaking those dumped XMLs if needed(most times you don't), export the model you want to use straight from 3DS Max with Darkspines script(with that little modification for naming I did a few pages back), dump the models and materials OgreMax exports into the folders of the edtor, with textures as well... and then you just add the name of the mesh to the template. If you don't want to add models, the dumper will just use the "unknown" white circle by default.

    I was planning on setting up a public repository if people wanted to contribute as much templates and models/textures as possible... but I wasn't sure if it would be worth it if it didn't get much attention. :v: Although maybe I should start my own thread for that.

    I just think that before that, I should add support for alternate meshes on different conditions for the object. Like say, something like:
    <AltMesh>
    <Condition>FloorType==2</Condition>
    <Condition>LevelPrefix==ghz</Condition>
    <Mesh>ghz_general_floor_block_2.mesh</Mesh>
    </AltMesh>

    With something like that, it would be easy to add support for all those different kind of objects that change the model depending on certain conditions, or even the Yellow-Red springs.
     
  17. I'm such a fan of everything that's happening. Thank you guys for working on turning a great game into an even better one.

    And please just keep posting pictures. :3
     
  18. Dark Sonic

    Dark Sonic

    Member
    14,632
    1,632
    93
    Working on my art!
    Find a way to make the characters different abilities to add on in normal levels (ACTIVATE TAILS FLIGHT EVERWHERE)
     
  19. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    I know my words are boring to read, but it's actually important info... At least I hope so. Most of my work now doesn't involve much in the way of screenies now anyway.

    Still, I was procrastinating today anyway and wrote this with rings. So here it is for your need of pics:
    [​IMG]
    :v: Lame attempt at writing Sonic Retro.

    Opening the AR.00 levels directly helps loads. Saves me a lot of trouble with replacing and repacking. I would also recommend using it all the time since it would avoid any possible ObjectID conflicts in the game, in case one of the objects is in the other of the XMLs, but the level doesn't detect it because you just opened one.
     
  20. Azu

    Azu

    I must be stupid. Member
    I wonder is if possible to use objects from other levels.