• 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 fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Research: Exploring Ruby and Emerald

1,323
Posts
16
Years
  • Seen Dec 9, 2023
Oh wait...


Did you ever figure out the rest of the problems with your method?
There's only one problem (pressing SELECT to bring up the mode change menu and then going right back will have the dex position reset to 0), and it's not even a major problem, but I'm still trying to figure out how to fix it. I fixed the Castform issue days ago.
 

LCCoolJ95

Limited Capacity
638
Posts
14
Years
There's only one problem (pressing SELECT to bring up the mode change menu and then going right back will have the dex position reset to 0), and it's not even a major problem, but I'm still trying to figure out how to fix it. I fixed the Castform issue days ago.
I thought you were going to write a routine to prevent the Select problem. I think that's what you said in the Emerald expansion thread.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
I thought you were going to write a routine to prevent the Select problem. I think that's what you said in the Emerald expansion thread.

but I'm still trying to figure out how to fix it.
Not to sound rude, but is it really that hard to put two and two together? ASM isn't magic and neither am I, you have to figure things out and that's what I'm in the process of doing. Honestly, the only reason why I haven't left PokéCommunity by this point is the vast amount of ROM hacking documentation. Impatient, exasperating comments like these makes me sick of sharing whatever work I do on here if people are going to be impatient just because I haven't figured one small thing out. If you want it that badly, it doesn't hurt to look into it yourself.
 

Agastya

Grinding failed. Item Grind level dropped by 3.
73
Posts
14
Years
  • Age 33
  • Seen Mar 19, 2023
So as Doesnt and I found out in Emerald, if you go to 0xAAF48 in the ROM and replace whatever's there with DD DD, the game will jump to a RTC reset-debuggy thing where you can control how long the game thinks it's been played.

uAh6i5r.png


Don't ask how we found this. Maybe somebody can do something useful with this?
 
51
Posts
9
Years
  • Age 38
  • Seen Dec 20, 2022
Its not much of a contribution but I haven't actually seen it mentioned anywhere else. In order to make the special tickets work in emerald these flags need to be set first:
0x8B3 - Activates Eon Ticket
0x8D5 - Activates Aurora Ticket
0x8D6 - Activates Old Sea Map
0x8E0 - Activates Mystic Ticket
Alternatively, the checks for these flags can simply be removed from the Lilycove Harbour script.

I see as usual the real expert hackers in this thread getting over sensitive and irritated with everyone. I sincerely hope that for once we can just get over ourselves and help each other to work on the best Generation 3 game - Emerald (screw Ruby).
 
51
Posts
9
Years
  • Age 38
  • Seen Dec 20, 2022
Here is a double post. But I don't actuallt care seeing as I'm the only one here who seems to be willing to share anymore information. If you want eggs to hatch at level one, make the following changes:
Code:
1C3200: XX 21
071414: XX 22
070A38: XX 22
XX means the level of the Pokemon, in hex.
Edit: apolgies for douchebag comments..
 
Last edited:

Tlachtli

Crit happens.
267
Posts
12
Years
So it turns out Castform's type in-battle isn't dictated by the type set in the Poke data at all. You can use YAPE to make it a Grass-type for example, but it will still be Water/Fire/Ice in weather and Normal with no weather. It's all controlled by an ASM routine checked after every individual attack each turn. This presents a problem for hacks that add Fairy to Emerald, because many of them--mine included--migrate Normal over into ???'s slot (index 0x9) and put Fairy in Normal's place (index 0x0). This means that Castform would transform into index 0x0 (Fairy) at the beginning of each battle, but here's how to fix it:

(Edit from previous post: it turns out the original method only applied to the player's castform. This method will change both the player's and the opponents' as well.)

Changing Castform's 'default' (weatherless) type in Emerald:
Code:
0x42710:  21 32 10 78 [U][B]XX[/B][/U] 28 0D D0 [U][B]22 34 20 78 XX 25 XX[/B][/U] 28
0x42720:  08 D0 15 70 [U][B]25[/B][/U] 70 01 20 76 E0 00 00 84 40 02 02

0x42780:  [U][B]XX[/B][/U] 28 06 D0 22 31 08 78 [U][B]XX 22 C0 46[/B][/U] 1A 70 0A 70
Just make the bolded changes to these lines. Replace XX with the index of the type you want. Index 0x0 is the default (Normal), 0x9 is the ??? slot, etc.

The sprite change only happens where there's a type change, so if you set the default type to Fire the sprite won't transform during Sunny Day (but the element will still be Fire). For anyone interested, the start of the player's Castform's weather-checking ASM seems to be at 0x4275A, and the opponent's is somewhere around 0x42714. Could be useful for anyone who wanted to research new Castform types. It looks like there are three separate checks for rain, sun, and hail, so adding a fourth for sandstorm doesn't seem like it would be hard.

Funny story, I spent forever trying to figure out why this was doing nothing in double battles. Took me 15 minutes to realize I had a Rayquaza with Air Lock out :|
 
Last edited:
252
Posts
10
Years
  • Age 27
  • Seen Jul 6, 2019
Swooping by to show this off. Particles are love. Particles are life.

Link: Emerald Custom Particles

I'll make a tutorial soon, but for the impatient, I'll include the needed offsets in the spoiler below:

Spoiler:


Follow MrDollSteak's tutorial on custom particles with those offsets, and this should work. Btw, I haven't tested Step 7 yet, so if someone could test it out for me, that'd be appreciated. (I'm 99% sure it's right, but still)

Credits are appreciated.

Ciao!

EDIT: Also shoutout to MrDollSteak for his original tutorial and for helping me when I got stuck at the end.
 
Last edited:

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
Swooping by to show this off. Particles are love. Particles are life.

Link: Emerald Custom Particles

I'll make a tutorial soon, but for the impatient, I'll include the needed offsets in the spoiler below:

Spoiler:


Follow MrDollSteak's tutorial on custom particles with those offsets, and this should work. Btw, I haven't tested Step 7 yet, so if someone could test it out for me, that'd be appreciated. (I'm 99% sure it's right, but still)

Credits are appreciated.

Ciao!

EDIT: Also shoutout to MrDollSteak for his original tutorial and for helping me when I got stuck at the end.

Rather than writing a tutorial yourself, I could just credit you for all the Emerald offets and add them to my tutorial.
EDIT: I've done so now! For anyone wanting to follow the tutorial for Emerald you now can thanks to HidoranBlaze! Just navigate to the link in my signature and use the Emerald offsets.
 
Last edited:
89
Posts
10
Years
I'm impressed with the amount of research on Emerald so far. However, I have a few questions:
-Is it possible to add more than 511 moves into Emerald yet by a port of Jambo51's ASM?
-Can more map header names be added yet?
-How do you add more Flying positions?
-Is it possible to add more TMs?
 

Shiny Quagsire

I'm Still Alive, Elsewhere
697
Posts
14
Years
I'm impressed with the amount of research on Emerald so far. However, I have a few questions:
-Is it possible to add more than 511 moves into Emerald yet by a port of Jambo51's ASM?

Yes, I can't say exactly how since I am lacking in hacking tools at the moment (away from home) but it's most certainly possible.
-Can more map header names be added yet?
No, the reason being is that it would screw with how the location the pokemon was caught would be in relation to other versions (ie Fire Red). The current solution is to just edit the existing location names (the Fire Red ones work nice if you want to keep Hoenn's names)
-How do you add more Flying positions?
IIRC, it's hardcoded into the game (as in, it's done via ASM rather than a table approach). I believe there was a hack inserted by A-Map which moved it to a table which can be expanded, but I can't be certain at the moment.
-Is it possible to add more TMs?
Probably. Again, away from home (and thus my IDA Emerald disassembly) so I can't confirm anything for certain at the moment. Anyone can feel free to correct me or add on to what I've said so far. :)
 
265
Posts
11
Years
I have some few questions for emerald,

Is it possible to make experience system like b/w?
Is it possible to insert more hms?
It is possible to add wild battle item?
Is it possible to add sky battles(like some moves cant be used and only flying pokemon aviliable)?
Also is it possible to edit or add more tag battles?
 
91
Posts
14
Years
  • Seen Feb 22, 2023
I have some few questions for emerald,

Is it possible to make experience system like b/w?
Is it possible to insert more hms?
It is possible to add wild battle item?
Is it possible to add sky battles(like some moves cant be used and only flying pokemon aviliable)?
Also is it possible to edit or add more tag battles?

yes, yes, yes, yes, yes ; It is a game, coded in a programming language (probably C...) which was then compiled to assembly code which you can edit. As long as you stay in the hardware boundaries you could probably make an ego shooter out of pokémon (I do not recommend it though)

I would say that most of your suggestions are very hard to implement, and involve tearing apart parts of the games engine. HMs for example, as well as TMs use a boolean array to determine if a pokémon can learn it, this has a fixed length and editing it would at least be a nuisance.
Same goes for flying battles, you would need to hack the battle engine and add the necessary checks.
I dont know what you mean by wild battle item, sorry, neighter do I know how the experience system im B/W works.
Tag battles already exist in emerald, so hacking those is not THAT difficult, I wrote a routine for it which I never published though because it turned out to be quick&dirty after all.

If you want to take up emerald hacking (or romhacking in general) I would suggest starting with something that does not involve re-creating features from scratch, you can do pretty awesome stuff even without.

~SBird
 
89
Posts
10
Years
If it's any help, here are some of the corresponding offsets for Jambo51's move extension ASM:
First ASM:
return : 3EB65 - 693F5
return2 : 3EB73 - 69403
there : 02024022 -> 020244E8
Second ASM:
gothere : 3E8B5 - 69145
Addresses that require editing:
- 0x3EB84 : 0x69414
- 0x3EB20 : 0x693B0
- 0x3EA10 : 0x692A0
- 0x43CE8 : 0x6E118
 
Last edited:
199
Posts
12
Years
  • Seen Jul 18, 2016
Unsure if looked at before but, I found the "first" offsets for the "Trainers Hill" Pokemon in Expert Tag Match mode.

It goes like this at 0x629518
Code:
8F 00 B7 00 19 00 F7 00 18 01 59 00
So that would be Snorlax holding a Quick Claw, with the moves Mega Kick, Shadow Ball, Brick Break and Earthquake.

Interesting note is that changing the species doesn't make the name change.
To change it for the Snorlax above, go to 0x629538
You could give a custom name or something I guess.

The other Pokemon are right below it, so should be easy enough to edit to your liking.

and lastly, there are some parts that I am not sure as to what they do. Didn't try to change them because I am lazy.

E: I decided to flood the parts that were not so obvious in their function with 00 bytes. It changed the phrase the npc says using the easy chat system, the trainer class and their sprite - in battle and on the ow. In this case it just said "???? ?????" when i talked to it before battle, immediately after losing the battle and when talked to on the ow after battle. The sprite was transformed from a cooltrainer to a hiker.
Still need to play around with it more.
 
Last edited:

Danny0317

Fluorite's back, brah
1,067
Posts
10
Years
  • Age 24
  • Seen Nov 19, 2023
Posted this in the other thread a few days ago. Could go here too I guess :)

So I don't know if this has been done before, but in Emerald I was able to find out how to use surf while controlled by a different flag(in this case I made it the first gym flag)
It was very simple, go to 0x9c81c and replace those two bytes with the reverse hex number.

Here is a video as demonstration. https://www.dropbox.com/s/xmzdo1dc32cyz9c/vid.AVI

However, as of now, it can't be used from the Pokemon menu, gonna try to fix that.
 

Le pug

Creator of Pokémon: Discovery / Fat Kid
870
Posts
10
Years
Spoiler:


You need to remove your fairy type patch from PC immediately and fix it because that patch is not functioning properly. It is currently heavily messing up the battle system and the type effectiveness table. I know a few others including myself who have used your patch on an untouched emerald rom to later on see that the battle system is jacked up. Level 100s that can lose over 25% HP from a lvl 20 hit.. lvl 15s one shot by lvl 5s... types are all jacked and it's because of the fairy type patch. I'm sorry if that offends you but you need to fix it. Please and thank you!
 
Last edited:
Back
Top