• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best places on the 'net to talk Pokémon and more! Community members will not see the bottom screen advertisements.
  • Want to share your adventures playing Pokémon?
    Check out our new Travel Journals forum for sharing playthroughs of ROM Hacks, Fan Games, and other Pokémon content!
  • IMPORTANT: Following a takedown request, the following hacks have been delisted from PokéCommunity:

    • Pokémon Glazed
    • Pokémon: Giratina Strikes Back
    • Pokémon Flora Sky
    • Pokémon Stranded
    The downloads and discussion threads for these hacks will no longer be accessible, and staff will be unable to return questions regarding accessing this content.

Research: RS Major Tileset Hack

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
Ruby Version
Spoiler:


Emerald Version
Spoiler:


Fire Red Version
Spoiler:


Unfixed Issues
- When you enter Mauville or some other city with loads of animations in Tileset 2 the map becomes screwed up. To fix this you need to edit your animations, Juan's tutorial mentions how to do that, you just need to change the VRAM address for the animation as well of Tileset 2.
Edit: Did more research and found out that cities which was screwed up was due to the large second tileset. So, once you apply this hack - your Tileset 2 cannot be large like Slateports' or Mauvilles' as in Fire Red no tileset 2 is that large.

The reason why, is because when it because large it overwrites the empty data used for the screen and the Town/City/Route label hence causing a weird display. If you don't understand what I'm saying just go study Fire Red in the Tile Viewer for char bases 0x06000000, 0x06004000, 0x06008000. You'll see that no tileset reaches 0x06008000 but when you apply this hack on Ruby and you check char base 0x06008000 - there's tileset data there.

- Tileset 2 tiles are all in a mess, this is because when we changed the location for where Tileset 2 begins in the VRAM to it's new place, the block data still used the original unchanged location. I'll fixed this soon.
Edit: That's wrong XD, everything is fine but you need to redo your tiles in Advance Map's Block Editor

Finally, the animation routines for your previous tileset 2 must be edited to reflect the changes in this hack ^^

This is what I did just now, from what you can see it's from my private home made documentation of all the stuff I hack, I decided to release this to the public... Have fun as always give credit and don't claim this as your tutorial ;)
 
Last edited:

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
diegoisawesome said:
Do you think you could maybe adapt it for use in Fire Red? I'm hacking Fire Red, and this would be extremely useful.

[offtopic]1st post! W00T!
Yeah, adapting it for Fire Red isn't hard, but why? Increasing more space on the major tileset in Fire Red will mean lesser space for the secondary tileset is it? Anyway, I'll post the Fire Red adaption later, you just need to change the VRAM offset as well ;)
 
224
Posts
15
Years
  • Seen Mar 8, 2016
....WOW... You don't understand how much this has helped me and how many restrictions it removed.

I'm simply amazed, once again.
 

~Teh Panda~

Back in hacktion
918
Posts
16
Years
  • Seen Jul 20, 2022
EDIT: Alright so now it all looks good in amap, but now when I load up the rom everything is screwed up
 
Last edited:

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
~Teh Panda~ said:
EDIT: Alright so now it all looks good in amap, but now when I load up the rom everything is screwed up
Yeah XD I re-checked and found the same, so I edited the thread. Read the Unsolved Issues - you must've faced those eh?
 
Last edited:

~Teh Panda~

Back in hacktion
918
Posts
16
Years
  • Seen Jul 20, 2022
Yeah XD I re-checked and found the same, so I edited the thread. Read the Unsolved Issues - you must've faced those eh?

Actually I did not xD, I witnessed the errors then had to go do homework, will talk to you more about it on MSN I presume.
 

Pokepal17

More cowbell~
1,519
Posts
15
Years
Wow, this is awesome. :D

However vould you add some screenies for the people who don't like reading need visual aid, please?

And it's a shame that when one tileset gets bigger, the other one must get shorter. Hope yuo find a fix for this :)
 

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
Okay, I'll add it when I have sometime but the thing with ASM is with visual aids it becomes too long - me I keep them all in .txts in one folder :P Anyway, this hack is copying Fire Red's tileset system so tileset 2 isn't geting shorter. It's just some maps in R/S which previously had big tilesets must be reduced or you'll enter a glitchy map - I'm sure you liked Fire Red's tileset system ;)
 

Pokepal17

More cowbell~
1,519
Posts
15
Years
Okay, I'll add it when I have sometime but the thing with ASM is with visual aids it becomes too long - me I keep them all in .txts in one folder :P Anyway, this hack is copying Fire Red's tileset system so tileset 2 isn't geting shorter. It's just some maps in R/S which previously had big tilesets must be reduced or you'll enter a glitchy map - I'm sure you liked Fire Red's tileset system ;)


Yes I did, very much. :)

However, I find it useful for R/S/E but I don't see why a lot of people would want to do the inverse with Fire Red since if you're careful and don't insert multiple tiles, there should be no problem. :P
 

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
Yeah, the thing's updated with how to do it on Emerald, I'll research the Fire Red way now.

Edit: Added the Fire Red version one ^^ But not with the patching bytes, to patch or hack the routine you need an assembler.
 
Last edited:

altariaking

Needs NO VMs...
1,087
Posts
14
Years
ok, i did everything you said for emeeald.
when i open it in advance map, it's fine.
when i open it in vba, not fine.
a lot of tiles like grass are all glitchy.
 

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
What we need now is that Step 2.
EDIT: Applying the patch for Emerald, strangely enough, didn't work.
EDIT2: Not only did it not work as expected, here's exactly what it did:
1. At first, when walking out a door, it loaded Tileset 2 into 0x06004000. I thought, this is strange...
2. Then, when walking to another map, the entire screen crapped up. Looking at the tile viewer, I saw that it had ended up loading Tileset 2 into 0x06005000, but keeping the version in 0x06004000 as well, and loading everything that the 0x06004000 version had overwritten, but after the 0x06005000 version!
My guess is that you found only one of the routines.
EDIT3: I was right! There are three more routines that you need to patch: 0x88DB6, 0x88D68, and 0x88D54, although only the first and fourth bytes, otherwise the other calculations would go awry. But you already know that, I'm talking to the people who look through this thread for a fix.
The end result is still screwed up when walking from one map to the next, but it's working for the most part.
 
Last edited:

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
diegoisawesome said:
What we need now is that Step 2.
EDIT: Applying the patch for Emerald, strangely enough, didn't work.
EDIT2: Not only did it not work as expected, here's exactly what it did:
1. At first, when walking out a door, it loaded Tileset 2 into 0x06004000. I thought, this is strange...
2. Then, when walking to another map, the entire screen crapped up. Looking at the tile viewer, I saw that it had ended up loading Tileset 2 into 0x06005000, but keeping the version in 0x06004000 as well, and loading everything that the 0x06004000 version had overwritten, but after the 0x06005000 version!
My guess is that you found only one of the routines.
EDIT3: I was right! There are three more routines that you need to patch: 0x88DB6, 0x88D68, and 0x88D54, although only the first and fourth bytes, otherwise the other calculations would go awry. But you already know that, I'm talking to the people who look through this thread for a fix.
The end result is still screwed up when walking from one map to the next, but it's working for the most part.
Okay, part of your discovery is right, the screen gets messed up when your tileset 2 is bigger than it is on Fire Red. Cause on Fire Red tileset 2 is small, while R/S/E tileset 2's are bigger.

Edit: Yeah, I remember now why I didn't proceed further to edit the other 3 parts. Because, as you said coming out indoors the tileset 2 gets loaded into 0x06004000. Well, this didn't matter since the map refreshes when you goto another map (outdoors). And there wasn't any bugs, AFAIK. Anyway, if you're interested in patching the full thing feel free :)
 

Sierraffinity

Desperately trying to retire from ROM hacking
1,069
Posts
16
Years
Sorry for double posting, but I finally fixed the routine for Emerald! (almost perfect)
0x88DB6, 0x88D68, and 0x88D54 need to be overwritten with 0A XX XX 01, where XX stands for bytes that you DO NOT change.

Then, paste 00 B5 40 69 C0 21 49 00 A0 22 92 00 FF F7 78 FF 01 BC 00 47 in 0x88D78, and test it out. Ta-da!

I found the solution when I copied over some bytes from FR, and kept messing with them until everything was coming out correctly. This included fixing the bl $08088c78 which was shifted over two bytes (and therefore I wrote my own bl).
 

knizz

192
Posts
16
Years
  • Seen Oct 28, 2020
Here is another function that needs to be edited when changing the tileset sizes on Firered: 08059080
 

Quickster

Dream or Drop?
351
Posts
16
Years
  • Seen Apr 4, 2016
Im pretty sure that theres no thread revival limit in this sub section, but if there is, I apologize mods. I want to do the routine for emeralds tileset, and possibly fire red, but I do not know the first place to start. I tried to learn basic ASM from the multiple tutorials here, but I still cant understand this. Can someone tell me where to begin and the basics of doing this?
 
Back
Top