- 2
- Posts
- 9
- Years
- Seen May 28, 2015
Hey Community,
I was adding custom Voicegroups starting with a free Offset (0x00FF3200) in Pokemon Emerald.
Then I added them in the Song-Table as Instrument using Sappy.
This worked very well until I reached a higher Offset seemingly causing trouble.
I looked into it using a Hex Editor and found out the Pointer for the Voicegroups are the problem.
Normally it would create a Pointer like this: 0x012B9600 -> 00 96 2B 01 + 08 = 00 96 2B 09
And then the 1st Offset with problems: 0x0205E800 -> 00 E8 05 02 + 08 = 00 E8 05 08
I thought the last two numbers should have been '0A' but it was changed to '08' instead.
Manually changing the numbers and various testing made me realize that somehow the last numbers from 00 E8 05 0A (the '0A') are read as '00'.
So I originally thought I could use the free space of the Rom till 0x07FFFFFC resulting in the pointer FC FF FF 0F.
But instead it seems to be limited to 0x01FFFFFC resulting in the pointer FC FF FF 09.
That would mean I have only 1/7 of free space I thought I have...
I want you help for either confirming this limitation of the Voicegroup-Pointer or finding a solution/workaround for allowing higher Pointers.
I was adding custom Voicegroups starting with a free Offset (0x00FF3200) in Pokemon Emerald.
Then I added them in the Song-Table as Instrument using Sappy.
This worked very well until I reached a higher Offset seemingly causing trouble.
I looked into it using a Hex Editor and found out the Pointer for the Voicegroups are the problem.
Normally it would create a Pointer like this: 0x012B9600 -> 00 96 2B 01 + 08 = 00 96 2B 09
And then the 1st Offset with problems: 0x0205E800 -> 00 E8 05 02 + 08 = 00 E8 05 08
I thought the last two numbers should have been '0A' but it was changed to '08' instead.
Manually changing the numbers and various testing made me realize that somehow the last numbers from 00 E8 05 0A (the '0A') are read as '00'.
So I originally thought I could use the free space of the Rom till 0x07FFFFFC resulting in the pointer FC FF FF 0F.
But instead it seems to be limited to 0x01FFFFFC resulting in the pointer FC FF FF 09.
That would mean I have only 1/7 of free space I thought I have...
I want you help for either confirming this limitation of the Voicegroup-Pointer or finding a solution/workaround for allowing higher Pointers.