supershadow64ds
Confused Noob Programmer
- 25
- Posts
- 13
- Years
- They/She
- Seen Oct 27, 2024
If I'm posting in the wrong forums, I apologize, I couldn't find anything that pertained to my specific question, and the new Simple Questions thread was closed for some reason.
Explanation:
So my question is as follows:
Have I done anything wrong? Do the pointers point to a different Bank in the ROM? Is the ROM map incorrect and I followed the wrong bytes?
Thank you for your time and consideration.
Explanation:
Spoiler:
Anyways, recently I have been getting into Generation I hacking, and I've been trying to replace Red's backsprite with a custom sprite. I have converted a BMP to a Game Boy format image, then converted that into a compressed R/B/G/Y sprite.
I had assumed that after that I would need to open both files (Pokemon Red.gb and my compressed sprite) in a Hex Editor and paste the code for the sprite over Red's trainer backsprite. I began to follow the ROM map located at Data Crystal.
I read the ROM map and it said that the pointers for the Red Backsprite were located at 0x3EC97-0x3EC98. I go there, and see the bytes "0A 7E". I followed the reverse (I assume) correct steps:
Switch the two bytes so they read 7E 0A, turn that into an offset 0x7E0A, subtract 0x4000 to get 0x3E0A, and add that to the start of the Bank, which began at 0x3C000. I do that, and I end up with the offset 0x3FE0A.
This wouldn't be much of a problem except that 0x3FE0A is in the middle of completely blank data.
I had assumed that after that I would need to open both files (Pokemon Red.gb and my compressed sprite) in a Hex Editor and paste the code for the sprite over Red's trainer backsprite. I began to follow the ROM map located at Data Crystal.
I read the ROM map and it said that the pointers for the Red Backsprite were located at 0x3EC97-0x3EC98. I go there, and see the bytes "0A 7E". I followed the reverse (I assume) correct steps:
Switch the two bytes so they read 7E 0A, turn that into an offset 0x7E0A, subtract 0x4000 to get 0x3E0A, and add that to the start of the Bank, which began at 0x3C000. I do that, and I end up with the offset 0x3FE0A.
This wouldn't be much of a problem except that 0x3FE0A is in the middle of completely blank data.
So my question is as follows:
Have I done anything wrong? Do the pointers point to a different Bank in the ROM? Is the ROM map incorrect and I followed the wrong bytes?
Thank you for your time and consideration.