Thread: Development: Porting RS Tile System to Firered
View Single Post
Old June 1st, 2012 (2:50 PM). Edited October 30th, 2012 by NintendoBoyDX.
NintendoBoyDX NintendoBoyDX is offline
    Join Date: Jul 2010
    Gender: Male
    Posts: 94
    Originally Posted by Chaos Rush View Post
    Are you sure those offsets are correct? None of those offsets are originally 0x180 or 0x280 (reading your logic in the first post), and when I tried the whole process (yes, I edited the AMap ini, and yes, I imported tile and palette data for both tilesets from Pokemon Ruby), but all I ended up with is a black screen.

    Are you working with a different-language ROM?
    Sorry man, should have specified this. Assuming you want the RS tileset system exactly... well, let's take a look at this (fr US):

    1. change 080590D4 to 0xFFFFF800
    2. change 0805A9B0 to 0xFFFFFE00
    3. change 080590A4, 0809B808, and 0805A97C to 0x1FF
    4. change 08059A56, 08059A70, 08059A84, 08059ABA, 0807015C, 08059A6C, 08059A80, and 08059AC8 to 0x200.

    1. 080590D4 is word that is loaded. Originally, this is 0xFFFFF600. Take 0x280 and shift it left twice and subtract that from 0x100000000, is the easiest way to figure it out. It works in reverse. We want 0x200 left shifted twice, so simply change it to 0xFFFFF800.

    2. 0805A9B0 is also a loaded word. Originally it is 0xFFFFFD80, which is 0x100000000 minus 0x280. We need 0x200, so change it to 0xFFFFFE00.

    3. 080590A4, 0809B808, and 0805A97C are all loaded halfwords, and are all 0x27F by default. (0x280 - 1). We're again aiming for 0x200, so change these 3 to 0x1FF.

    4. These last 8 locations are sections of code. (By default all of these are 0x280 or 0x180, And we need want 0x200 to use the RS tileset system). They use a trick that save memory, and is much faster than loading to create the values. It uses a mov command to generate a certain value, then just bitshifts it left. So again, these are asm code areas, not data. Easiest way to do this is to copy 0x80 into the register then shift it left twice. I can provide a patch if you like.

    In other words for 4 just do this:
    In hex:
    Change 08059A58 to 80
    Change 08059A6C to 80 and 08059A6E to 89
    Change 08059A70 to 80
    Change 08059A80 to 80 and 08059A82 to 89
    Change 08059A84 to 80
    Change 08059ABA to 80
    Change 08059AC8 to 80 and 08059ACA to 89
    Change 0807015C to 80

    Should take care of it
    Reply With Quote