• 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.

ROM Hacking Discussions

Status
Not open for further replies.
Secondly, while this is an issue that is pushed away often, not given a **** about, and overall isn't respected (even by me), but owning a rom of a game you don't own is indeed illegal.
Possessing a ROM of a game you do own is illegal as well.
 
Possessing a ROM of a game you do own is illegal as well.
Jeez, I gotta start looking up my facts better.




If I recall, the only real legal rom is a rom that you dumped?
IIRC it was legal if it was dumped for a purpose such as a back-up.

That kinda means ROM Hacking has to start with an illegal method, which makes me understand why a company would be against it.
 
People have been through this argument thousands of times, and, in my opinion, it comes down to the fact that if Nintendo and the other people really cared, then places like this wouldn't excist.
 
I agree with Surf, this topic comes up every few months, its getting pretty annoying @_@.

Does anyone really care though? Nintendo is hardly a struggling company and the fact that they keep releasing the same game every couple of years doesn't give them the right to any sympathy in my books.
 
I agree with Surf, this topic comes up every few months, its getting pretty annoying @_@.

Does anyone really care though? Nintendo is hardly a struggling company and the fact that they keep releasing the same game every couple of years doesn't give them the right to any sympathy in my books.

And I definitely agree with you. Now, what about some more interesting topic?
 
How about the stuff stored in the ram, has anyone managed to find out how to change things in there?
Like the Mystery Gift?
 
I don't understand you...
Ofcause we can change things there...

I don't know about the Mystery Gift, right at the momment...

Well a few commands in the script of the guy in the Poke Center that gives you a Mystery item, it has special 0x188 and executeram in it.
I was wondering if anyone knew how to edit the stuff there.
 
I have a question. How many of you like the original mapping in FR? I think a lot of the routes look nice but most of the towns/cities look terrible.
 
I don't mind some of them. I agree about the cities and towns, they are kinda... Yeah. As well as Viridian Forest, with the grass, path and basic tree layout, all square shaped...
 
FR pretty much is Red, which was horrible, so I don't like it.

I do, however, love the Emerald mapping. The whole big load of it. There's only ONE tiny itsy bitsy little thing that I don't like about Emerald. If there was one thing I could change, it would be the doors. :| Huge things. :| And the Pokemon Centres/Marts and Gyms. Horrible. :|
 
I like FR's maps because of that nostalgic feeling I get when I look through them.
But in terms of actual mapping quality, I think they're mediocre. Though the Sevii Islands maps are actually pretty good, probably because they were made more recently.
Also, I agree with Ninja Caterpie: R/S/E had some of the best maps I've ever seen in a Pokémon game. Route 119 was my inspiration to create my first big map, which turned out to be my first map of decent quality.
 
I love the Sevii Islands mapping, so natural and Nintendo at the same time!
My absolute favorite map is Mt Ember, so epic!
As for RSE, I like most of them, except the thunder city.
 
To be honest no one makes tiles like GameFreak do, so natural so perfect I mean look at the palettes, not too bright and at the same time they're not overly dark either. GameFreak make the most natural tiles and in turn make some wondeful maps.
 
Last edited by a moderator:
I have found something recently not big enough to make a document about, so I hope I am right in posting it here.

In regard to the Overworld (OW) data, I have found three peculiar things that change the way we can edit them.

First of all, after looking at the thumb code, I have found that in Fire Red, the default behaviour in the case it finds a OW sprite numbered after 151 (0x97), isto replace it by the young boy sprite at number 16 (0x10), unless it is also bigger than 238 (0xEE). In that case, the sprite is determined by a value that was placed in the temporary variables used by Union room, so it can give a "random", different sprite to every visitor.

Secondly, I found the code that decrypts the Palette data, and it uses a two byte identifier, not a single byte. For the Hero, for example, it is not palette 0x00, but pallete 0x1100, that being what is called the first mistery byte. Looking at the code, I found that there is a way to get little over 4600 different OW to choose from, as long as no more than 16 different ones appear in the same map. It would only need to repoint the pointer data, that is stored quite ineffectively through a key system, on the format:
Code:
pppppppp kkkk0000
with p = pointer to uncompressed palette, reversed; k = key, less than 0x11ff, reversed
in any order and any lenght, as long as the table ends in 00000000 ff110000

Thirdly, I have found that several unused palettes can be found in that same table in Fire Red. Besides the already used in OWEditor, there is also 1101, 1102, 1107, 1108, 1109, 110a, 110c and 1111, having a total of 18 already available palettes.

As I work only with the Fire Red (US), I can only give the offsets for that version. As the data has the same structure in all GBA pokemon games, searches for similar data must bring results.

Code:
0x083a5158 -> start of Palette pointers.
0x0805f4b0 -> palette fetching function. Changing here would increase the number of palettes. this function is bugged, the failsafe was broken
0x0805f2c8 -> Overworld loader function. changing here would allow for 255 different overworld sprites.
0x0805f5a0 -> the confusing function that turns the palette key into an address.

I hope this information may be put to good use.
 
0x0805f2c8 -> Overworld loader function. changing here would allow for 255 different overworld sprites.

Could you explain what changes you need to make to allow 255 sprites. Thanks.
 
Could you explain what changes you need to make to allow 255 sprites. Thanks.
This is the Thumb code:
Code:
ROM:0805F2C8                 PUSH    {LR}
ROM:0805F2CA                 LSL     R0, R0, #0x18
ROM:0805F2CC                 LSR     R1, R0, #0x18
ROM:0805F2CE                 CMP     R1, #0xEF      ;change here to 0xff if you don't need the union room link
ROM:0805F2D0                 BLS     loc_805F2E0
ROM:0805F2D2                 ADD     R0, R1, #0
ROM:0805F2D4                 ADD     R0, #0x10
ROM:0805F2D6                 LSL     R0, R0, #0x18
ROM:0805F2D8                 LSR     R0, R0, #0x18
ROM:0805F2DA                 BL      sub_806E5A4
ROM:0805F2DE                 ADD     R1, R0, #0
ROM:0805F2E0
ROM:0805F2E0 loc_805F2E0                             
ROM:0805F2E0                 CMP     R1, #0x97        ;change here to 0xEF  or to 0xff if you changed before.
ROM:0805F2E2                 BLS     loc_805F2E6
ROM:0805F2E4                 MOV     R1, #0x10
ROM:0805F2E6
ROM:0805F2E6 loc_805F2E6                             
ROM:0805F2E6                 LDR     R0, =off_839FDB0
ROM:0805F2E8                 LSL     R1, R1, #2
ROM:0805F2EA                 ADD     R1, R1, R0
ROM:0805F2EC                 LDR     R0, [R1]
ROM:0805F2EE                 POP     {R1}
ROM:0805F2F0                 BX      R1

In case you can't compile this code, or don't know how, just make these changes in an Hex Editor:

Code:
Without union Room
0x0805F2CE -> [B]ef29[/B] becomes [B]ff29[/B]
0x0805F2E0 -> [B]9729[/B] becomes [B]ff29[/B]

Code:
With union Room
0x0805F2E0 -> [B]9729[/B] becomes [B]ef29[/B]

That way, it will not replace the sprites. But with it, you must make sure you have a valid sprite in that location. If it's "empty", the game will crash.
Also, you will need to repoint the Sprite table at 0x0039FDB0 to a new location, as the table there is limited to 151 sprites.
 
Status
Not open for further replies.
Back
Top