Welcome to the PokéCommunity!

Hi there! Thanks for visiting PokéCommunity. We’re a group of Pokémon fans dedicated to providing the best place on the Internet for discussing ideas and sharing fan-made content. Welcome! We’re glad you’re here.

In order to join our community we need you to create an account with us. Doing so will allow you to make posts, submit and view fan art and fan fiction, download fan-made games, and much more. It’s quick and easy; just click here and follow the instructions.

We’re on social media!

Research & DevelopmentGot a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Research & Development programs in this forum are subject to moderator approval before they are displayed.

Pointer on map for tying up:
This pointer is used only if the map is loaded as binding.

Map pointer index:
Sapphire-Japanese = 2DD310
Ruby-Japanese = 2DD380
Sapphire English = 304EA8
Ruby English = 304F18
[Pointers on map with index 1] [pointer on map with index 2]…
This Table is used only if the map is loaded as main map.

Edge right parallelepiped:
[Block on the left of above] [block on the top right] [block on the left of down] [block right down]
(Reference: Blocks are 2x2 Tiles largely, a whole right parallelepiped are 4x4 Tiles largely)

Line of sight:
Person can turn freely:
00-02 = down
03-04 = above
05 = left
06 = right

Statically:
09 = above
0A = left
0B = right
0C = down

Movement:
01 = no movement
02 = simple movements

Nummer+Status:
Number:
Inquiry number (If)

Status:
02 = if Abfrage<>0, then visibly
03 = if Abfrage=0, then visibly

Wild Pokemon data:
THX go at Philb, without which I would have found the data very many later warscheinlich only.
Sapphire-Japanese = 3792FC
Ruby-Japanese = 379304
Sapphire English = 39D29C
Ruby English = 39D454
Each segment of this table is divided as follows:

[Bank and number the map on that the Pokemon to appear are] [00] [00]
[Pointers on grass] [pointer on water] [pointer on tree] [pointer on fishing rod]

Importantly:
If a map has e.g. no Baumpokemon, is in place of the tree pointer 00000000.

All segments sequence directly.
End of the table is characterized by [FFFF0000].

In order to find the Pokemondaten to a map, the table must completely
are scanned, until the number agrees with that the map.

I'm trying to develop a tool that reads maps from Pokemon Ruby. So far I've gotten it to come up with the right amount of Map Banks, but not the right amount of maps in that bank. I'm really struggling to understand this documentation, so I might be assuming that something's a pointer when it really a header or something. If these are supposed to be the pointers to the headers in the mini-listing, then how do I tell how many maps there are?

I'm trying to develop a tool that reads maps from Pokemon Ruby. So far I've gotten it to come up with the right amount of Map Banks, but not the right amount of maps in that bank. I'm really struggling to understand this documentation, so I might be assuming that something's a pointer when it really a header or something. If these are supposed to be the pointers to the headers in the mini-listing, then how do I tell how many maps there are?

In G/S/C, there are "map bank pointers" which point to the first map header of that bank. I assume there can be as many map headers in map bank as you like. Then, the second map bank pointer points to start of map headers of bank 2 and so on...

So basically, if the system in Ruby is actually the same as in 2nd gen games, you can't know in the beginning how many map headers are in a selected bank. You're going to have to see it yourself.

I'm trying to develop a tool that reads maps from Pokemon Ruby. So far I've gotten it to come up with the right amount of Map Banks, but not the right amount of maps in that bank. I'm really struggling to understand this documentation, so I might be assuming that something's a pointer when it really a header or something. If these are supposed to be the pointers to the headers in the mini-listing, then how do I tell how many maps there are?

There are no set of bytes or anything at the end of the map table for a bank that you can use to tell the code to go to the next bank. What I did what have a check that compares the current pointer to the original. If the pointer is the same it load a preset number of maps. If it isn't then it means it is repointed and you have it load and stop when it is at a specific byte buffer. Advance map uses 0xF7F7F7F7 so I would recommend using that to make it compatible.

If you do not understand what I am trying to say feel free to PM me because the mods on this site like to delete my posts for no reason.

__________________

ENERGYSEARCH.MEA Pokemon TCG database and Social network!Pokemon Game Editor Download!PGE is not being worked on currently but is there for those that need it.
Fun Fact: Even though PGE isn't posted on PC anymore it still has the same number of downloads per day.
Accept no imitations!

Does this mean that every map in the game without wild pokemon technically has "empty" wild pokemon data? If so, that should mean it's always safe to use the "wild pokemon" tab in A-Map, right? I only ask because I'm working mostly with Emerald which is notorious for sound corruption due to the common mistake of overwriting certain offsets.

But if this is true then the map banks might store the wild pokemon data safely even in maps that are created by the hacker...maybe. Can anyone confirm my suspicions and/or keep me from getting my hopes up?

EDIT. To clarify, I could hex edit the table if I absolutely had to...but I love utilities. Someone please save me from my hex editor...it's just so tedious.

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.