• 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?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[ARCHIVE] Simple Questions (SEARCH BEFORE ASKING A QUESTION)

Status
Not open for further replies.

Hiidoran

[B]ohey[/B]
6,213
Posts
18
Years
My question:
How do i change the sprite color from the character wearing running shoes?
Did you change all the frames under the hero? You have to make sure that all the frames have been changed.
i'm having a problem when using a program like bewildered or dexter. When I try to open the rom it says: "Supported ROM, but pokedex data unspecified"
Let me guess you're hacking FireRed, Leaf-Grean, or Emerald, correct? Sorry, but the INIs have not been updated for these programs, sadly they will not work.

where can I get a "complete rom hacking package"
Hmm...To start off with download Elitemap, it comes with quite a few tools "for the trade". Here you go: Elitemap 3.7
As for roms; well, those are illegal and as such are against the rules to post a link to.

I do not really know if I can ask this question here. Its related to Rom-Hacking, but not to Rom-Hacking Pokemon games.

Does anyone know a level editor for LoZ:OoA/OoS(The two oracle games)?
You may ask this question here, it is the forum for general hacking. It just so happens that many of us hack pokemon games only, so many of us, including myself, do not know much about Zelda hacking....

used advance map to make a new house and it works fine, but no matter what I do, the border block looks magenta-pink when playing the game. Can this be fixed?
I've gotten this before, most of the time it's a tilemap issue, othertimes you're just not using the correct "black" tile.

I'm currently having problems with editing Fire Red version of pokemon. I can edit everything, houses, warps and EVERYTHING, but scripts(Which I see and hear...But not sure how it works.)

So if maybe I can get some guides for the hexshop and how to edit starters, stuff people say, and how I can make a trainer..Actually a trainer.

Thanks in Advance.
Yes, scripting can be difficult. Infact, in my opinion it's the most difficult part of hacking! But we all have to start somewhere. First off, decide which path you want to choose, are you going to be a ScriptED or Pokescript hacker. These should help you either way:
Pokescript: Irish Witch's tutorial
ScriptED: Click on the icon that says "Tutorial" in your Elitemap package. It should explain the basics.
As for your your trainer conundrum: http://www.pkmncommunity.com/showthread.php?t=84971
Infact, a lot of problems members seem to have can be solved simply by looking at the Tutorial discussion here on the site. *hint*

As always, Hope it helped!
-Hiidoran
 
Last edited:

BlackDragonite

Austrian Pokémon Expert
191
Posts
17
Years
GAME: POKEMON FIRE RED.

i edited my start characters colors whit the program called SPREAD.exe

only when u use running shoes normal color come back.

My question:
  • How do i change the sprite color from the character wearing running shoes?

Thanks in advance,
Soemaal.
Pokemon Platinum Developer.

Overworld Editor. (comes with Elitemap)
 

Hiidoran

[B]ohey[/B]
6,213
Posts
18
Years
@Palkia&Groudon
Are you asking for a link to another forum? If so, it's against the rules, we cannot post links to other forums outside of our signatures. If you need help with hacking pokemon Emerald, just read the documents and tutorials section of the site. I'm sure at least one of your questions will be answered.
-Hiidoran
 
Last edited:

Cullin1

Larvitar Master!
8
Posts
18
Years
Um...Well. I downloaded EliteMap TWICE, and it's working(Although I like advance map better) But....The rest of the icons don't work?
PS: Is there any more EliteMap Links that work? Maybe a hack package that works???? Help...This is really annoying.
 

Hiidoran

[B]ohey[/B]
6,213
Posts
18
Years
Um...Well. I downloaded EliteMap TWICE, and it's working(Although I like advance map better) But....The rest of the icons don't work?
PS: Is there any more EliteMap Links that work? Maybe a hack package that works???? Help...This is really annoying.
I'm sorry, but the link does work.
Do you have a rom in the folder? If not the other programs will not work. Hope it helped!

What would I use for ASM hacking and where would I find tutorials?
Try this thread: http://www.pkmncommunity.com/showthread.php?t=92586&highlight=ASM

-Hiidoran
 

HackMew

Mewtwo Strikes Back
1,314
Posts
17
Years
  • Seen Oct 26, 2011
Dude.. you didnt :P I still dont know how to do it

...
Click here (and read carefully)

How do i change the sprite color from the character wearing running shoes?

Take my advice, use Overworld Editor - Rebirth Edition. It's just a way better and it's fully compatible with all Advance ROMs. You can get it from the Toolbox thread.
If you're getting trouble with colors (which are palettes, after all) you could use APE to change them. As before, it could be obtained from the Toolbox.


Did you change all the frames under the hero? You have to make sure that all the frames have been changed.

Well, Spread is really old and it cannot display more than 8 frames per each sprite which is one of its huge limitations. Spread shouldn't be used at all I think.


Overworld Editor. (comes with Elitemap)

Usually Overworld Editor doesn't came with EliteMap (at least in the offical package). And Overworld Editor is unuseful since my Rebirth Edition :P
 
Last edited:

Epsilon

Shiny Scizor
249
Posts
17
Years
...
Click here (and read carefully)



Take my advice, use Overworld Editor - Rebirth Edition. It's just a way better and it's fully compatible with all Advance ROMs. You can get it from the Toolbox thread.
If you're getting trouble with colors (which are palettes, after all) you could use APE to change them. As before, it could be obtained from the Toolbox.




Well, Spread is really old and it cannot display more than 8 frames per each sprite which is one of its huge limitations. Spread shouldn't be used at all I think.




Usually Overworld Editor doesn't came with EliteMap (at least in the offical package). And Overworld Editor is unuseful since my Rebirth Edition :P


I know, and i succeeded but when i try it with the tree's for example it wont go right :P
(Sorry if i'm irritating :P)
 
788
Posts
17
Years
  • Age 29
  • Seen today
You may ask this question here, it is the forum for general hacking. It just so happens that many of us hack pokemon games only, so many of us, including myself, do not know much about Zelda hacking....
As always, Hope it helped!
-Hiidoran
As happy as I am my question can asked here, I am crushed that most people here can't help me.
 

>Bent<

awhups
51
Posts
17
Years
I do not really know if I can ask this question here. Its related to Rom-Hacking, but not to Rom-Hacking Pokemon games.

Does anyone know a level editor for LoZ:OoA/OoS(The two oracle games)?
Due to the extremely high level of compression in the games, there is no level editor released. If you're handy with a hex editor however, I've got some info on it, mostly from the old Acmlm archives.
Jigglybells said:
The format for the dungeons I found is like this: First, there are 256 rows of pre-defined blocks. Second, each row in a room is defined by 2 bytes. The first byte has 2 uses: The first nybble is the first byte that references rows of data between 60000 to 61000(first bank), the next nybble is the position of the row. The next byte is almost similar: The first part is the length of the row. Sometimes the row wraps down to the next one, so what it does is it repeats the first few bytes in that row if the row is big enough. The next nybble is the second reference.

Let's use an example: In Oracle of Seaons, in the room with the stairway to the ember seeds, the second row(two walls with normal ground tiles between them). The two byte value is 10 FF. Here's how it works: The 1 in 10 is the second most right number in the offset for which row to use. The 0 in 10 is the x co-ordinate of the row in conjunction to the other rows. The first part of FF is F, which means the length of the row. I haven't totally figured it out yet though. The next part is the second offset value, so the row of data is stored at 60F10, or if you read the bytes backwards, FF 01, or F1.

The hard part is that many of the rows used in the game are repeats and combos of several rows of data. for example, in this same room, there is a bottom row that is two inside wall connector pieces with bottom wall tiles between them. There is no such row in the game, which means that it actually uses 2 rows, cut to length and pasted together to make it look like one wall.
Jigglybells said:
If you look at offset 60000 you will find the rows that make up the dungeons. I hear the whole data is compressed to hades and back but I dunno. Other things I found out is that somewhere I found the asm? data for shutters and such where if I changed a byte I could make it so you have to bomb a block instead of push it to open the door. The exact location eludes me. Also, just like in Link's Awakining, the room order is exactly the same, including the fact that levels 7 and 8 are on a seperate map. Also, each unique room belongs to a certain dungeon unlike the la ones that could be changed arround. Music, map and compass data, enemy, pallete, which dungeon you are in, and other things are expressed via each map piece, so the map data would technically be easier to manipulate than la's data.

That's all I know for now. Oh, one more thing. Any door you go through that doesn't have a warp assigned to it will warp you, and I only tried this in Seasons, to the place in winter where you talk to Impa in her cave.
Jigglybells said:
Okay, first of all, I found out that shutters require 2 parts. The level data is merely graphical in nature, and it makes the animation look correctl. The other part is in another section of the rom, and it consists of a co-ordinate and an animation byte. The animation byte is what the door will look like as it's opening, up down, left or right. Then, I found out enemy data. Yes, for now I can swap enemy groups in rooms, and overworld and such. The enemy data is 2 bytes, and works(so far) like the enemy data in LA, but is more flexable. For example, c7 49 is in the roo above the enterence in level 1. What it does is makes bushes contain stuff. Then there is a special object byte that basically sets up the triggers, chests, keys, ect for the room. Also is the person you want to appear. It seems that you can make a person say different things, as the sprite is not a seperate entity, but rather a two-byte pointer, thus far. I still need to do more work.
Jigglybells said:
I found enemy data! Now I should be able to place enemies in dungeons and such!. Also, sprites have this weird co-ordinates thing. Say I want to put somthing in position 64. Instead of it being 64, the data looks like 6848. I have no idea why that is, unless the 8 is a pixle offset, just like bytes ending in 8 in the megaman games make's it exactly on the square. I should try that.
Jigglybells said:
As for the enemy bytes, there are 4 per enemy, and it seems as if there are several areas that enemies are drawn from. The first 2 bytes I haven't deciphered yet, nor do I know exactly what any f* bytes inbetween are for. As for the actual enemy data, there are 2 bytes. Let's take traps for example, 0e. The bytes for a standard trap is oe01, while a faster trap is 0e05, while the super fast trap is 0e02. The traps that follow you are 0e00. Moblins? 0a00. Want to turn them blue? 0a01. The second byte seems to be the properties of the sprite, but I'm not sure exactly of all the sprites and their commands.
Jigglybells said:
Basically, the dungeon data has been fully decoded. At first, there were problems because some bytes didn't seem to match up. that's been figured out now.

Basically, the structure of each room in the rom is that each room is made from a mixture of 2 byte pairs that reference pre-defined horizontal macros, only their length can be adjusted. With the first byte, the first part is half of a pointer that leads to a row of data. The second part is how many bytes into the row the data starts. The second byte has a part that determines the length of the row. If the row exceeds the edge of the screen, either the remainder of the data will be drawn, or it will start to draw the next macro that's below it. The last part is the second pointer. So the byte pair 20 D2 means that at 60220 In the first byte, the 2 is the 10's digit in the offset(20), and the 0 means the row starts on the first byte. In the second byte, the D means that the row goes for 13 bytes, plus 2(which is always added). The other 2 is the 100's digit in the offset(200).

Now, each room starts off with a unique byte. This byte is a bitflag, and most rooms are set it as FF. For each bit, starting from the right, each bit represents 2 bit pairs. If the game encounters a 0, then on that byte the game will draw a single tile from the tile index. So lets say for example that the room starts with F7. This means that there will be 3 byte pairs, and then a single tile drawn. After there will be 4 byte pairs, and then another length byte. Some rooms seem to only have the FF, and the rest are all byte pairs. It's also interesting to note that a lot of rooms have either 24 bytes(with a second one of these length bytes), or 27 bytes(wthout a second one). My guess is that if the game detects the size of the room to be a certain size, then it reads the other bytes or somthing.

BTW, the pointers are all relitive or somthing. They look local, but the pointer list and the room data arn't in the same bank. I though I'd mention my breakthrough in case somebody want's to make a level editor. Using this data it's possible, although it would still require a little bit extra hand work unless the pointers are able to be re-adjusted.
HyperHacker said:
Anyway, sounds like a crazy combination of two different types of LZ77 compression. One type, which I often refer to as MIO0 (since the first time I saw it was in N64 games, which have that in the compression header), has 3 elements. Raw data, compressed data, and bit flags. For each byte, if the flag is a 1, it reads a length/position pair from the compressed data, and outputs the raw data. (Ex: Length = 4, position = 2, means output 4 bytes from raw data starting at #2.) If the flag is a zero, it simply outputs a byte from the raw data. (Of course, these can be reversed.)

The second type is the more traditional LZ77 seen in GBA games, in which the raw and compressed data are mixed together. It simply copies the raw data, but if it finds a certain byte, that means there's a length/position pair after it. (Though this means you have to do extra coding to be able to use that byte.)

Now what it sounds like this game is doing is mixing those methods together. The raw and compressed data are mixed, but all of it is considered compressed. If the flag bit is a 1, it's assumed that whatever is at the current position is a length/position pair, otherwise it's a single tile number. (I assume that for the actual LZ77 part, it uses the already-decompressed data as the raw data. It doesn't make a lot of sense to reference forward anyway. A lot of normal LZ77 implementations do this too.))

So I hope that makes it even clearer (not that your post was unclear, but best to have as much info from as many sources as possible) for anyone who intends to work on this. (The only thing I don't get is only having one flag byte. )
Jigglysaint said:
ORACLE OF SEASONS HACKING GUIDE BY JIGGLYSAINT








Contents:

1. Introduction

2. Dungeon editing

3. Overworld editing

4. Sprite and object editing

5. Dungeon maps editing

6. Warp editing.









Introduction

This is a documentation of various data in the Oracle of Seasons ROM It's purpose is for educational value, and also to aid in the creation of a level editor. Please note that Oracle of Ages shares the same data format, but they do not share the same rom offsets.

I first became interested in hacking Oracle of Seasons long ago, so long ago in fact, that the actual cartrage wasn't even released yet! Yes, I obtained a Japanese rom, and no, I can't give it to you, sorry. Anyway, after playing the game for a while, I thought I'd have some fun and do a little searching. This was my first introduction to the game's very unique dungeon level format. I'll go into more late, but let's just say that this format took quite a while to crack. It's my hope that somebody is able to build a working level editor for this game, because wouldn't we want new dungeons to crawl arround in?


Dungeon Editing

In Oracle of Seasons, the overworld and dungeons each have a different level format. This is actually not surprising, since just about every 2d Zelda with the exception of The Adventure of Link and Link's Awakening, has this feature. The Oracle Games are no exception to this rule, and I am starting with the dungeon format because it's the one I found first without any outside help, and because it's so messed up that you've got to see it to believe it.

Anyway, to get started, let me first explain the three data parts to the dugeon room editing. The first part is a series of bytes, each in rows of 16, with the exception of the last byte on the row being 00(a dungeon room is 15 blocks wide, but some rows are differnt). Each row represents 15 blocks, by byte ID, that is placed in a level. For example, there may be a series of 15 blocks that have 13 floor tiles sandwiched between 2 wall tiles. If you change one of the floor tiles to somthing else, you will make a change. However, you will seem to edit more than just one piece of the dungeon. It will seem like you've edited a good portion of the whole dungeon! What this means is that this row is used many, many times in the rom bank, and that changing this row alone will not yield a good level edit.

The second piece of data is found later in the ROM, and it contains an unbroken chunk of data that is very hard to read unless you have a good starting place. This is the room's row data. The format is actualy easy, yet very difficult. At the start of a room there is one byte that starts it all off. In many rooms it's an FF. Why? Well FF is 256 in decimal, but more importantly it's 8 bits, or 11111111. See, if you read the bitstring from the right, like you are supposed to, each bit that's turned on represents a two byte pair that is actually a combination pointer/row size value. If the bits are turned off, the corrosponding data will, instead, be a block ID value, exactly like the ones used to make up the rows. So FF means that there will be 8 rows of data used, or 16 byes. If 00 was used, the next 8 bytes would be 8 blocks, each byte a different block. The room will continue to read this data in this format untill the room is fully defined, which is 15 rows by 11 columns.

Now, to describe the two byte pairs: This is by far the most unique compression system I've seen, and had the privilage of actually figuing out. Each nybble in this pair has a function. The first nybble of the first byte is half of a pointer, and it points back to the row. The first nybble points to the row between 256 bytes of data. That is, depending on the other pointer, that nybble will reference 256 bytes. The second nybble is part of the length indicator. It tells the game what byte on the row to start at. However, by default, it will add 3 tiles, so the very minium a row can be is 3 tiles. Anything less and you need to use the individual tile ID's. The next nybble, or the first nybble in the second byte is when the row ends. If the length overflows, it will use some of the next row as data. The game uses this overflow a lot, so be careful. The last nybble is which set of 256 bytes to use. Because of this method of pointers, only 16 pages of data can be referenced, which is fine since each bank contains exactly 16 pages.

The last bit of the data comes right after the row definitions, and they are the room pointers. They arn't tradditional pointers, but are relative. That means that starting at the start of the dungeon data, one byte is what out of 256 bytes the pointer starts, and the second is what out of 256 pages the pointer starts.



6. Warp Editing

Warp data starts at arround 13000 or so. At 13457 are 8 pointers that lead to 8 warp data sections for 8 "regions". The regions are as follows: 0 - Overworld, 1 - Subrosia, 2 - Maku Tree, 3 - houses and such, 4 - dungeon bank 1, 5 - dungeon bank 2, 6 - side scrolling sections bank 1, 7 - side scrolling sections bank 2.

After the region pointers is the start of the warp data. How the data works, is there are 4 bytes. The first byte is a branch, if set to 40, it will affect the last 2 bytes of the 4. The second byte tells the game what room or section of the map to put the warp(s). The third byte is the destination byte, and is a reletive pointer to the destination room and co-ordinates. The last byte is a nybble byte, where the first nybble is from 0 to 7, and is the region selector. The last nybble is the warp action(stairs uses 2, doors use 4, ect). Now, if the first byte is set to 40, then the last 2 bytes become a pointer to special data that is used in multiple warps on the same screen. For example, the very first set of 4 bytes uses this. The second byte is D4, for the Hero's Cave. The next two bytes point to the new values, which are 4 bytes like the last, except the room byte is replaced by a co-ordinate byte of where on screen it's located(normally it's assumed that if you enter a door or stairs, you activate the warp, but if there's more than one this tells the game to read it as such). Then the next two are same as usual. The first byte is used to connect more than one string together. If the first byte of the next set of 4 bytes is set to 80, that data will be used on the same screen as the previous set of bytes.

Destination values start at 12d5e, and their pointers start at 12d4e. Destination values consist of 3 bytes. The first is what screen you end up on, the second byte is the x/y co=ordinates, and the last byte is direction and maybe exit action. For example, dungeon entrances tend to have the second byte as FF, and the third as 93. I think it basically tells the game to ignore normal co-ordinates and just make the entrance in the bottom centre of the screen.

Ring chest values:

00 - no chest

01 - no chest

02 -

03 -

04 - Discovery Ring

05 - Moblin Ring

06 - Steadfast Ring

07 - Blast Ring

08 - Rang Ring L-1

09 - Octo Ring

0a - Quicksand Ring

0b - Armor Ring L-2

0c - Spin Ring

0d - Snowshoe Ring

0e - Power Ring L-1

0f - Power Ring L-3

10 - Subrosian Ring

11 -
 

Kyber-Groudon

After all, I'm only human.....
50
Posts
16
Years
  • Seen Jan 29, 2008
Can anybody tell me how to use one of The pokemon Spare slots? I want to add arceus into my hack and I don't know how to do it. I have a sprite but I don't know how to use it, such as attaching it to a New pokemon, giving it pokedex data, etc. Can anybody help me?
 

Naoshi

lawl
72
Posts
18
Years
  • Seen Aug 11, 2023
Is there a way to add more frames for overworld sprites? (Some of the characters needs walking frames =()
 

Darkrai64

Pokemon expert trainer
35
Posts
16
Years
  • Seen Jan 10, 2009
I'm haking firered right now and I want to know, how do I change the music into English instead of that weird language it's in?
 
Status
Not open for further replies.
Back
Top