Open Ayanami3rd opened 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.
Do you have any hints on how to retrieve the proper offsets? How did you figure them out for the original version?
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).
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...
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:
See ROM version in screenshot.
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.
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,
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.
[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]
Found the issue, but I am still working on it.
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.
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).