[X360] Sonic Adventure (Aug 01, 2010) beta coming soon!

Discussion in 'General Sonic Discussion' started by N!NJA, Feb 12, 2020 at 10:03 PM.

  1. Clownacy


    Tech Member
    Oh hell yes! Admittedly, I'm not an SADX modder myself, but this stuff should be immensely-helpful for figuring out how the game works. Me and Cucky were able to make a full decompilation of the original Windows version of Cave Story, using debug data found in the Linux port. Granted, I don't think SA1 has ever had the luxury of an unoptimised EXE like Cave Story did, but that didn't stop people from decompiling Diablo.
  2. Shakidna


    Rehash Rampage Member
    Is this the full source code that can be used to port SADX to every system imaginable?
  3. Clownacy


    Tech Member
    The short answer is 'no', sorry - it can be used to create something similar to the original source code, but it would still require months, possibly years, of work.

    Technically, decompilations are possible without debug data (just look at the Super Mario 64 decompilation project), but stuff like this makes it a lot easier. Me and Cucky would never have been able to make our decompilation without it.
    Last edited: Feb 14, 2020 at 6:51 PM
  4. Exant


    Wow, this is amazing!
    That chao_garden_info stuff looks like is the main chao save struct, while CHAO_PARAM_GC is what we called "ChaoDataBase" in the disassembly (sizeof matches and everything), which still has a lot of missing fields that would be useful to know for editors (I would have never thought those first fields are all GBA stuff, I figured the first one is but not all the other ones)
    I would appreciate it a lot if you could send that struct early cuz I can't wait to see it, this has been the longest two days ever lol

    EDIT: thought i would also elaborate on some other neat details, task is ObjectMaster which has been evident from some SA2 object names and some debug messages in SADX, taskwk* is probably what we call "Data1". CCL_Init is probably Collision_Init, which will also be nice to look into since the collision data wasn't ever really clear.
    Back to the chao, I noticed in that screenshot that there's AL_MOTION_INFO, which based on the size is probably MotionTableEntry, the naming convention is odd because motiontable's where used for other things other than chao, yet the AL_ prefix suggests it's a Chao-only thing.
    AL_SHAPE_ELEMENT is KarateOpponent, which is used in RaceTimeData, which seems to be called AL_RECORD here. There's also EDIT_FUNC_ENTRY which is ChaoDebugFunction, the name probably comes from the chao debug menu being called EDIT MODE MENU in that one SADXGC proto.
    Last edited: Feb 14, 2020 at 5:15 PM
    • Informative Informative x 2
    • List