don't click here

Sonic Generations Hacking (and More!)

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

  1. Twilightzoney

    Twilightzoney

    Tech Member
    353
    0
    16
    Elgin, IL And Hampshire
    Unleashed and Generations Stuff and Custom Works
    Nice work there Dario! Too bad I've been away so much I haven't done anything worth while, but it is great to see this progressing super fast before our eyes here. Also, we should stop talking about "Lets port Sonic *insert title here* Levels!" I'd rather see custom things being done rather than ported levels that would not work well to begin with.

    And what Dude says is right. Would be nice to find out the distancing of how fast Sonic moves. If only we could get the debug to work to figure that out nicely. haha

    Would probably be easy to tell by setting up a test level of our own to figure out the distancing for Sonic and the Object size unit compared to Sonic. Since I usually keep my Units system in something different when I'm in Max. Since I usually export out to UDK and I have to make it mega huge. But I love what you've done and I can't wait to start modeling again to do something for this, busy with job hunting and my writing non-profit job. So I'll just lurk for now so I can see more later on.

    Congrats though for all your hard work you've put into this, and I can't wait to see it completed; since, I understand how much work your putting into this.
     
  2. Lobotomy

    Lobotomy

    35% Cognac Misfit
    4,394
    1
    0
    Traverse City
    Project: Matter/Energy
    PM me. You may have just discovered something I gave up looking for.
     
  3. BlazeHedgehog

    BlazeHedgehog

    A "Community Enigma"? Oldbie
    1,464
    6
    18
    Dario should try some Sonic Colors levels next, given there are level rips of that floating around for BlitzSonic and such :eng101:
     
  4. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Anyone can start working on one if you want. Only limitation is that the engine doesn't support more than 1 material per mesh. Although models actually have sub-meshes on their own to overcome that(let's just call it entities inside a movable mesh). I'm just not sure how to deal with the 3D Editor -> Ogre conversion in some cases. Ogre supports sub-meshes definitions in the scene format. But some 3D editors like Max apparently have a weird way of saying what's a "submesh". For example, "linking" meshes in max apparently makes it consider it's a submesh. If that's all it is then I guess I'm fine, but I'm just saying it might cause some confusion.

    Another alternative I have rather than reading the relatively open Ogre format(given that it can be written to XML and supports many features along with its material format, and there's binary converters officially), is another even more and open universal format that supports the following:
    - Material definitions with multi-mapping for defining normal, specular, etc. maps.
    - A mesh format that supports normals and at least 2 UV Channels(one for the general stuff, and another one for the GIA)
    - Some basic definitions for light objects I guess
    - A good number of characters available per name.

    For the above I thought 3DS would work, but the name limitation is annoying. OBJ would probably be ideal, but it's a text-based format and quite slow to parse.

    Alternatively what I'm doing now is basing myself on some scripts from the fairly popular free indie game Proun. The scene configuration file would be simply a txt like the following:
    <object type> <filename> <internal name> [attributes...]

    Where attributes would be stuff like position, rotation. A single line would be a new declaration. It should be something relatively easy to write from any editor...(and if not I can just make it write it on the .scene format that it's just a simple XML), and if all else fails I would just say forget it and allow you to select multiple meshes from the file menu and done. :) I would have stayed with OgreMax since it works really well, but the free version doesn't support more than one UV channel, and the paid version is costly...

    Regarding lightmaps, they're simply modulate maps baked used in the second texture unit for each mesh. While I did render it with vray, all that you would need is in the folder to have a dds texture called <instance_name>_lightmap.dds for it to get loaded, so it's nothing exclusive to any editor yet.

    Preferrably I would try to keep everything to the ogre format since most stuff is text-based and some can be parsed to binary easily. So as long as another candidate doesn't show up, that's what I will stay with I guess.
     
  5. Yarharhar

    Yarharhar

    Oldbie
    55
    0
    6
    Have you considered Collada?

    The format is open source, xml, and can describe everything.
    My only complaint about it, is that it is really *really* verbose.
     
  6. DustArma

    DustArma

    Member
    1,325
    5
    18
    Santiago, Chile
    Learning Python.
    Congratulations on your tech membership Dario!
     
  7. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    I've found that even though it says it can import COLLADA, 3DS Max fails to import even the files it exports. If it weren't for that, I would definitely recommend COLLADA, and use it in my SAModel programs.
     
  8. Chimera

    Chimera

    I'm not a furry. Tech Member
    1,263
    8
    18
    Castlevania prettyness
    You have no idea how many times this cockblocked me when doing brawl hacking :V though doesn't opencollada have its own plugin that works with 3DS Max?
     
  9. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    It seems they do, but attempting to import a file with it results in... nothing.
     
  10. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    It seems I'm finally WAY more closer to cracking the actual vertex format Generations uses. This will allow for Dynamic shadows, normal mapping, and lots of other goodies to come!
    [​IMG]

    So yes... beware of actually good looking Unleashed stages in the near future. :v:
     
  11. JaxTH

    JaxTH

    Pudding Deity Oldbie
    9,972
    416
    63
    Los Angeles
    Jack shit.
    How goes it on the teleport thing in Jungle Joyride?
     
  12. Evil Hedgehog

    Evil Hedgehog

    Member
    32
    0
    6
    [​IMG]
     
  13. Chimera

    Chimera

    I'm not a furry. Tech Member
    1,263
    8
    18
    Castlevania prettyness
    Look at the shit you do while I'm asleep :specialed: or maybe it's your new powers of tech membership letting you advance.

    And finally, normal maps (probably) will work now! AFTER ALL 3 MONTHS OF WAITING ;-;


    ...I should open up crazybump :V (hint hint: Nintendo doesn't make normal maps for their Wii games it seems; need to make my own for Whomp's Fortress, that is if anyone gives a shit about my import ;-; ).
     
  14. Lanzer

    Lanzer

    The saber calls for its master... Member
    6,845
    3
    18
    Glendale, AZ
    Living life.
    Dario finally your a tech member! congrats bro!!

    All this hacking and modding right here in this thread was Sonic Team's true anniversary present. not Generations itself but a modern sonic engine that can be cracked open like an egg and modified beyond what we ever thought possible, things we dreamed of what to do with this engine when we first saw Unleashed in action back in 2007 are now very much within our grasp! its mindblowing!!

    Thank you Sonic Team for releasing Generations to PC and Thank you Dario and everyone else for doing this beyond amazing work. you guys don't get enough credit so I just wanted to spend a post gushing over this amazing work.
     
  15. Elratauru

    Elratauru

    Little Shiny Emurralds Member
    Ooooooh! *shiny pic*~~ I can't wait to see more videos of everything looking pretty good :O!
     
  16. Why Sonic and clouds isn't shiny? You edited shaders, or what? o_O
     
  17. DustArma

    DustArma

    Member
    1,325
    5
    18
    Santiago, Chile
    Learning Python.
    Since it hasn't been mentioned before, you can transplant Unleashed's Sonic parameter file (Which handles much of Sonic's physics) into Generations, and the result is M.Sonic handling much like his Unleashed counterpart (Floatier jumping, wider drifting, easier water drifting, X-button HA), like-wise you can transplant Generation's parameter file into Unleashed, which results in Unleashed Sonic handling like Generations (including A-button HA). A side effect of doing this however is that both Crisis City and Planet Wisp are unbeatable, in Crisis City you glitch into a loop and in Planet Wisp the Rocket Wisp is useless (due to there not being any settings at all for it)

    Interestingly, the sonic.prm.xml (the parameter file) for Unleashed is nearly empty, indicating that most of the values are hard-coded into the game and the parameter file acts as an override for them.
     
  18. Lobotomy

    Lobotomy

    35% Cognac Misfit
    4,394
    1
    0
    Traverse City
    Project: Matter/Energy
    As I mentioned in the IRC, the Unleashed parameter file is almost empty. It does not include any parameters for Drift, yet the Drift acts like it does in Unleashed when it's used.

    What this means is, in Generations, Sonic's physics default to hard-coded Unleashed definitions if it isn't specified in the XML. The XML merely overwrites the default.

    You can completely comment out the parameter XML, and the game will still control like Unleashed.
     
  19. DustArma

    DustArma

    Member
    1,325
    5
    18
    Santiago, Chile
    Learning Python.
    Forgot to mention, but interestingly using the Unleashed parameter file fixes Modern's walljumping in the PC version. This shows the bugged one:

    http://www.youtube.com/watch?v=YIqjjbnG6GU

    As you can see Sonic gets stuck in the wall when he should slide down slowly, this doesn't happen if you use the Unleashed parameter file implying that one of the modifications Sonic Team did broke the walljump for PC users, now we have to find out which so it can be fixed.
     
  20. Falk

    Falk

    Member
    1,569
    13
    18
    My theory on that is that Generations was designed to run at 30fps (as opposed to Unleashed's 60fps with w/e framedrops) and one of the side effects was the numerical tweaks they made didn't account for the PC version still being technically uncapped in comparison. A can't-happen happening, if you will.

    edit: caught myself there, x360 Unleashed was capped? My point stands though!