meekrhino / digimon_world_randomizer

Digimon World 1 (PS1) data randomizer. Create a unique, brand new experience for the classic game.
35 stars 6 forks source link

This tool fail to read data from my game #77

Closed benjdero closed 4 years ago

benjdero commented 4 years ago

I've tried both the GUI and command line tools, none seems to work with my ROM, I get the following error:

D:\Benjamin\Downloads\digimon_randomize\gui\resources\app>digimon_randomize.exe -settings settings.ini Reading data from D:\Benjamin\Downloads\Digimon World PSX-PAL-FR(patched).bin... Traceback (most recent call last): File "digimon_randomize.py", line 53, in File "digimon\handler.py", line 811, in init IndexError: list index out of range [3080] Failed to execute script digimon_randomize

As the name indicate, I use a patched version of the PSX-PAL-FR ROM, which removed the game breaking bug of the Agumon not triggering his dialog lines in the french version of the game, and thus, making it impossible to get inside of the Ogre's Fortress. Is that the problem ? May it have changed all the binary offsets and made your tool unusable ?

meekrhino commented 4 years ago

I'm sorry, @benjdero, but this does not work for the PAL version of the ROM :(

All of the offsets and patches are specifically taylored to the NTSC english version of the game. Very sorry to disappoint!

benjdero commented 4 years ago

Maybe you should state this in the ReadMe.

Would it be hard to find the right offset ? How did you proceed ? I only care about the increased tech learning chances in battle and the fair wheel bonus try, and maybe the random starter.

meekrhino commented 4 years ago

It would be a massive effort to duplicate this for any other version.

If you only want to change those, you can probably do it by changing the appropriate constant in the data python file. You'd have to look at the NTSC ROM, find that block of data, then find the same block of data in your ROM, and update the offset to point to the exact same byte of data. For each thing you want to use.

On Thu, May 14, 2020 at 11:04 AM Benjamin Deroche notifications@github.com wrote:

Maybe you should state this in the ReadMe.

Would it be hard to find the right offset ? How did you proceed ? I only care about the increased tech learning chances in battle and the fair wheel bonus try, and maybe the random starter.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/challenert/digimon_world_randomizer/issues/77#issuecomment-628732474, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPJR5W3JTIDWO55VMHCTN3RRQJCJANCNFSM4NAC6JAA .

benjdero commented 4 years ago

That's what I thought and already took a look, but it look like you can't just do a 1 to 1 conversion of all the address and expect it to work.

For example, the constant "techDataBlockOffset" use address 14D66DF4 for the NTSC version, I was able to find the same chunk of data using a simple hex editor at address 157A0864 on the PAL version.

But for the constant "techDataExclusionOffsets", I've found no similar data in the PAL version. Not sure how to proceed in that case. How have you found the right offsets at first ? Is that the "bubble" techs of in-training digimons btw ?

meekrhino commented 4 years ago

Yeah unfortunately the exclusion offsets aren't going to have the same data. Those are chunks of metadata created by the tool that packages the iso/bin, and thus will be completely different between different versions of the game. The best I can tell you is try to find garbage data in the middle of the appropriate correct data :/ it's not a good solution unfortunately.

On Thu, May 21, 2020 at 10:12 AM Benjamin Deroche notifications@github.com wrote:

That's what I thought and already took a look, but it look like you can't just do a 1 to 1 conversion of all the address and expect it to work.

For example, the constant "techDataBlockOffset" use address 14D66DF4 for the NTSC version, I was able to find the same chunk of data using a simple hex editor at address 157A0864 on the PAL version.

But for the constant "techDataExclusionOffsets", I've found no similar data in the PAL version. Not sure how to proceed in that case. How have you found the right offsets at first ? Is that the "bubble" techs of in-training digimons btw ?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/challenert/digimon_world_randomizer/issues/77#issuecomment-632141079, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPJR5S76URMWFXAZ3AE5YTRSVAFBANCNFSM4NAC6JAA .

benjdero commented 4 years ago

Yeah there is no way to convert this for PAL with the little information I have. Most of the time the same chunk just plain doesn't exist or it is duplicated multiple time for whatever reason (spawn rate for various digimons for example).

It's not possible to do this blindly like that with just an hex editor and some "find"/"go to address".

meekrhino commented 4 years ago

Like I said, that’s really the best I can do. It’s a massive effort to find this stuff.

On Thu, May 21, 2020 at 2:17 PM Benjamin Deroche notifications@github.com wrote:

Yeah there is no way to convert this for PAL with the little information I have. Most of the time the same chunk just plain doesn't exist or it is duplicated multiple time for whatever reason (spawn rate for various digimons for example).

It's not possible to do this blindly like that with just an hex editor and some "find"/"go to address".

— You are receiving this because you modified the open/close state.

Reply to this email directly, view it on GitHub https://github.com/challenert/digimon_world_randomizer/issues/77#issuecomment-632293685, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPJR5SNMYBNTY6RDUL2ISDRSV45JANCNFSM4NAC6JAA .