don't click here

SADX/SA1 Hacking/Modding

Discussion in 'Engineering & Reverse Engineering' started by MainMemory, Aug 15, 2009.

  1. synchronizer

    synchronizer

    Member
    2,278
    103
    43


    Wow that's pretty interesting. I can see the resemblance.
     
  2. Here's what I get when I try to load a level in SADXLVL2.

    I can load sadxlvl.ini just fine, it's definitely the one that came with the SADXPCTools set as I recently performed a completely clean install of SADX and the tools.

    Here's the info the file gives me:

    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Requested value 'PerfectChaos' was not found.
    at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
    at SADXPCTools.SA1LevelAct..ctor(String levelact) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniData.cs:line 102
    --- End of inner exception stack trace ---
    at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
    at System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaringType)
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    at SADXPCTools.StringConverter'1.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniData.cs:line 2261
    at System.ComponentModel.TypeConverter.ConvertFromInvariantString(String text)
    at SADXPCTools.IniFile.ConvertFromString(Type type, String value) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniFile.cs:line 452
    at SADXPCTools.IniFile.DictionaryDeserializer'2.Deserialize(Object listObj, Dictionary'2 group, String groupName, Boolean usecollectionname, String name, Dictionary'2 ini, String fullname) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniFile.cs:line 589
    at SADXPCTools.IniFile.DeserializeInternal(String name, Type type, Object defaultvalue, Dictionary'2 ini, String groupName, Boolean rootObject, Boolean usecollectionname) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniFile.cs:line 305
    at SADXPCTools.IniFile.Deserialize(Type Type, Dictionary'2 INI) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniFile.cs:line 215
    at SADXPCTools.IniFile.Deserialize[T](Dictionary'2 INI) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniFile.cs:line 209
    at SADXPCTools.SA1StartPosList.Load(String filename) in C:\RetroSVN\Programs\SADXPCTools\SADXPCTools\IniData.cs:line 404
    at SonicRetro.SAModel.SADXLVL2.MainForm.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e) in C:\RetroSVN\Programs\SAModel\SADXLVL2\MainForm.cs:line 195

    Any ideas what I may have done wrong? I saw no errors on splitting, unless it's looking for something that hasn't been split?
     
  3. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    365
    63
    SonLVL
    SADXLVL2 must have an old SADXPCTools.dll for some reason. Try copying the one in the main folder to SADXLVL2's folder.
     
  4. Yep, that seems to have resolved the problem. Thanks.
     
  5. Any idea on how to change 'where' textures are loaded?

    Let me explain what I mean. I'm attempting to create a HD texture set for Speed Highway. Now some textures are okay, but others are switched: for instance, the highway barrier texture is now applies to a spire roof. By this, I guess I mean the order in which textures are loaded within the PVM file. I'm aware I can do this when I create an archive with Puyo Tools, but I would like to know if I can do it without creating the PVM archive anew.

    Can I also ask a favour? I don't own the PC version of Sonic Generations. But I would like to have a few elements from Speed Highway there to use in my mod. I'm thinking mainly of the following:

    -Cop Speeder
    -Entrance corridor of the level (Modern)
    -Hotel corridor before "Going Down"
    -Hotel Lobby
    -Helicopter
    -Cars
    -Rockets

    If possible would I be able to have these in OBJ format? Any help would be appreciated.

    Plus, is it possible to alter the cutscene heads to work with new models?
     
  6. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    365
    63
    SonLVL
    I don't think there are any PVM editors that allow you to reorder textures. The only other option would be to edit all the models to match the new PVM order.

    Technically it is, but you'd have to recreate all the morph frames, extract their vertex lists, and overwrite the originals, all by hand. I have no idea how I could even begin to automate that.
     
  7. I didn't think there was, but it was worth asking anyways. Thanks.

    Would it be easier to disable the cutscene heads altogether?

    Plus, I seem to be having problems creating an archive for Perfect Chaos with PuYo Tools. After I create the archive it seems to be empty, but it's taking up space anyway. It's set to create a PVM archive with no compression. I'm assuming it's having problems reading new textures I've incorporated into the set.
     
  8. pablodrago

    pablodrago

    Member
    34
    0
    0
    BS AS
    I think MainMemory interpreted that you wanted a new "talking head" model, but if you want a static model for the cutscene head is quite easy (for tails and knuckles), just replace the model pointers of the normal body with the flying model on the very first animation pointer data, if you use replace in your hex editor, find the first result with the pointer of the normal body and replace with the pointer of the flying. If you want I can find the actual address. All that's left is port your new model.
    For Sonic that metod doesn't work, but if you sacrifice the auto weld for the arms and legs is possible using metalsonic model.
     
  9. I did want new talking heads but unless we can find out how to modify those morph codes, I think it would look better to disable them altogether, either by disabling the model swap or pointing it so that the models 'swap' but only with themselves instead.

    Can somebody help me out with adding new textures to Perfect Chaos? Every time I have tried to modify the PVM file, it either winds up not reading at all, or for some reason shunts the textures one or two spaces along.
     
  10. synchronizer

    synchronizer

    Member
    2,278
    103
    43
    Has there been any significant progress with porting or importing the alpha/beta windy valley levels into SADX?
     
  11. SpaceyBat

    SpaceyBat

    Member
    2,037
    309
    63
    United States
    Freedom Planet 2
    A couple of random things I'm curious about:

    - When Tails enters his usual race locations through a previous area in the stage (I.e. hacking him into Casinopolis's lobby and going through the pinball machines into Dilapidated Way), Sonic and the race meter never spawn and he can play through it as a regular stage. Is there something I can adjust through Cheat Engine that would always make this happen whenever he enters his stages through the Adventure Field or Trial menus?
    - Is it possible to make Gamma's final boss vulnerable to other characters' attacks, or is this something that only Gamma's attacks can do?
    - Is there a simpler way of making boss fight start locations universal for every character other than inputting the coordinates manually through Cheat Engine? (It might be cool to create a hacked boss rush that takes each character through every boss battle that they are able to complete without hacking, regardless of whether or not they fight it in their story.)
     
  12. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    365
    63
    SonLVL
    Set the byte at 47D940 to 0xC3 to disable the AIs entirely.
    Probably not... although other characters may have some "projectile" type attacks that could work, IIRC (Sonic's light dash particles, Knuckles' punches).
    Edit everyone's start position lists to include all the levels. SA Tools can do this.
     
  13. SpaceyBat

    SpaceyBat

    Member
    2,037
    309
    63
    United States
    Freedom Planet 2
    I tried it with Sonic's light dash and he rapidly swarms around E-101 mkII's weak spot without being able to damage it. If only there was some kind of flag that would set the weak point to be vulnerable to physical attacks...

    Also, thanks for the rest of the tips!
     
  14. BlazeHedgehog

    BlazeHedgehog

    A "Community Enigma"? Oldbie
    1,472
    18
    18
    Is there no way to edit resolutions in SADX 2004 anymore? I'm trying to add widescreen/HD resolutions to SADXFE and the old SADX Tweaker is giving me JIT errors and doesn't seem to be saving my changes. I don't think SADX Tweaker 2 will do the job and I don't have the foggiest idea how to do hex editing.
     
  15. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    365
    63
    SonLVL
    That sounds more like a problem with your .NET install, unless you mean the blurb about JIT debugging at the start of the error details, which is irrelevant, the important part is what's after that.

    As far as I'm aware, SADXTweaker should work with SADXFE just like any other exe, I think it's US? Maybe you need to change the version setting?

    Edit: Actually, I highly recommend installing the mod loader, even if you use it for nothing other than the custom resolution capability.

    Edit2: Actually never mind, it wouldn't work unless SF94 changed the system folder back to system.
     
  16. BlazeHedgehog

    BlazeHedgehog

    A "Community Enigma"? Oldbie
    1,472
    18
    18
    Oh, okay. Setting it to US fixed it.

    [​IMG]

    Hooray!
     
  17. Christopher

    Christopher

    Member
    3
    0
    0
    Hi MainMemory,

    I have been using your SADXTweaker (R12) to increase the resolution of SADX PC to 1920x1080 and after playing through the whole game, I have come across a couple minor issues with the resolution tweak.

    The first and most noticeable issue is that the percentage text in the results screens of the Sky Chase levels are misaligned. Here is a screenshot of the problem: http://I.imgur.com/fOt2zj3.png

    The second issue is that there is approximately 1 or 2 pixels of empty space on the left and top sides of the game, but it's only noticeable when transitioning from loading screens and on the title screen. Here is a screenshot of the problem: http://I.imgur.com/ErIQs4n.png

    Both issues are very minor and do not affect the gameplay, but I figured I would post them anyway in case you want to fix them. Sorry if you are already aware.

    Thank you for your hard work on improving the SADX PC Port!
     
  18. SF94

    SF94

    Tech Member
    The second issue you mentioned (the top and left empty space) happens normally. I've seen it many times without a modified resolution.
     
  19. Christopher

    Christopher

    Member
    3
    0
    0
    Yeah, oops! You're right. I guess I got confused because I also have the Steam version of the game which does not have this issue, so disregard the second bug. You had me doubting that the other bug may be in the port itself, so I double checked just to be sure. The first bug only happens with tweaked resolution.

    Sorry for the mix up and thanks again!
     
  20. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,785
    365
    63
    SonLVL
    I haven't the slightest clue how the results screen works, so I can't really fix it.