Sierraffinity / GBAIntroManager

Edits the intro sequence for Pokémon 3rd generation games.
GNU General Public License v3.0
6 stars 3 forks source link

Does not work with FireRed German Version #3

Open Ayanami3rd opened 6 years ago

Ayanami3rd commented 6 years ago

German FR has the ROM shortcut BRPD instead of BRPE, but there is no corresponding section in the INI file.

Copied the section and renamed it to [BRPD]. ROM is now loaded, but the offsets seem to be wrong (garbage data is loaded into the dropdown lists).

Sierraffinity commented 6 years ago

Well if you're going to add a new entry to the INI file, you also need to give that entry the proper offsets. Some stuff is also hardcoded for the English versions (as this is an old crappy program I'm ashamed of) so even changing the offsets in the INI might not yield the right results.

Ayanami3rd commented 6 years ago

Do you have any hints on how to retrieve the proper offsets? How did you figure them out for the original version?

Sierraffinity commented 6 years ago

I figured them out through a combination of hacking resources and debugging. It should be pretty easy to find where the data has shifted in between languages since they'll still be in the same general area (mostly).

Ayanami3rd commented 6 years ago

I guess the values in GBAIntroManager.inui like

IntroPokemonPicture=0x130FA0

are the offsets for the values? I might grab an English ROM tomorrow and try to research a little...

Ayanami3rd commented 6 years ago

The tool does not work for certain English ROMs too. I was unsuccessful finding the data described in GBAIntroManager.ini with a Hex Editor, so I loaded the ROM into the program, and it reads wrong values:

gbafrrom

See ROM version in screenshot.

Sierraffinity commented 6 years ago

This is because you're using v1.1 of FireRed, which the program isn't compatible with. I was considering doing something about that, but honestly this program is very poorly written and I would want to rewrite it completely.

Ayanami3rd commented 6 years ago

Luckily, I was able to retrieve the 1.0 ROM and already figured out some of the offsets for the German ROM.

Well, you'd just have to improve your ROM version detection (since 1.0 and 1.1 both identify as BRPE) and create a new INI section with proper offsets for 1.1.

I can only encourage you to put some time in this project. It's a small tool, but its features are unique,

Ayanami3rd commented 6 years ago

Edit: Changing Prof. Pokémon works, but the game resets to title screen at the point where you are asked for your name. Sigh.

Here comes the INI section for the German ROM. Correct values are now loaded into Intro Manager, no further testing yet. gbaromger

[BPRD] GameName=Pokémon Feuerrot GameType=FR ItemData=0x3DA518 NumberOfItems=374 PokemonNames=0x245DB0 NumberOfPokemon=411 PokemonImageTable=0x234F7C PokemonPaletteTable=0x2371DC StartingPosition=0x54A20 IntroPokemonNumber1=0x130F9C IntroPokemonNumber2=0x12FB88 IntroPokemonPicture=0x130FF0 TitlescreenCry=0x79152 StartingPCItem=0x402224 StartingMoney=0x54B80 TitlescreenMusic=0x78A58 ProfessorMusic=0x12F886 TitlescreenTime=0x78B80 SkipGender1=0x12FDF4 SkipGender2=0x12FE4C SkipGender3=0x12FF0D SkipGender4=0x130050 FlashbackRemove=0x110004 RivalNamingRemove=0x130224 [/BPRD]

Ayanami3rd commented 6 years ago

Found the issue, but I am still working on it.

Sierraffinity commented 6 years ago

It probably has to do with the rival naming removal. That was one of the big factors in my calling this program poorly written, in that the removal method is hacky and most likely would break compatibility with any ROM besides FR and LG 1.0.