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

Quick Research & Development Thread

112
Posts
8
Years
  • Age 27
  • Seen Mar 15, 2024
So you know the animations for end-of-turn events or animations that aren't exactly move animations (e.g. poisoned, sleeping, burn, Leech Seed absorb, Future Sight attack etc)? In Emerald, they're stored in a table at the end of the regular move animations table (so it starts at 2C92F8), which I have gone through and summarised as follows:
Spoiler:

This could be helpful for anyone who wants to edit the status animations or include some of these animations as part of move animations; they can (mostly) be called with 0E XX XX XX 08.
Hi there nice find, I was wondering if you stumbled upon more of those animations?

There's the return/frustration animation changes, ice Ball, solar beam and some others...
 
Last edited:

Konekodemon

The Master of Pokemon Breeding
2,074
Posts
17
Years
  • Age 39
  • NC
  • Seen Nov 20, 2023
I have been wondering something. The 3DS has been out for awhile now. Has anyone figured out how to hack 3DS games yet?
 
25
Posts
8
Years
There is a table for box wallpapers in 0x3D2A10
12 bytes for entry, in this format:
(TILESET POINTER) (TILEMAP POINTER) (HEADER PALLETE POINTER)
The box pallete is immediately after the header one, so don't have an entry on the table.

The offsets for each tileset, tilemap and pallete related to box wallpapers:
Spoiler:
 

Delta231

A noob
681
Posts
7
Years
After doing some research into the Emerald HP boxes, I've found a few useful offsets.
I haven't seen them documented anywhere else on the internet so I thought I'd share them here.

Player HP box - C1F1C8
u7Ohadz.png


Enemy HP box - C1F46C
wIIa4yI.png


The palette used for these two is located at C11B9C

I've also seen this palette in one of Jaizu's post where I found the other palette, C11BBC
It might be related to the other HP boxes I found below.
These could possibly be related to double battles. I haven't tested them so I'm not too sure.

C1F5E8
OqN1sKo.png

C1F76C
2LFI4gk.png

C1F8E8
tQ2TKoG.png

C1F5E8 and C1F76C are for double wild battles and C1F8E8 is for safari zone.
 

Wobb

Wynaut
331
Posts
11
Years
Pickup (Diamond/Pearl/Platinum)
And I found offsets for the Pickup thing. I don't think someone found it already..
Anyway, here's a picture. (Why do I keep making pictures? :( Everyone else writes lots of words..)
Spoiler:
 
Last edited:

Lunos

Random Uruguayan User
3,114
Posts
15
Years
EDIT: So apparently, as discovered by Tlachtli, if you level up from experience while catching a Pok?mon that hasn't yet been recorded to the Pok?dex, then the Pok?dex screen will have the text displayed in the wrong X-position offset. I'll look into it eventually

Did anyone ever fixed that, aside from the Battle Engine Upgrade?
 
14
Posts
11
Years
Ever dreamed about disabling the stat boosts provided by badges? Here is how you can disable them in FireRed:

Write 00 20 at the following offsets: 0x14E1A, 0x14F02 (both for Speed), 0x3EE24 (Attack), 0x3EE56 (Defense), 0x3EE8C (Sp. Attack) and 0x3EEC4 (Sp. Defense).

I've also found a similar method for Emerald, but only currently for Speed: you write 00 20 at the offsets 0x3D052 and 0x3D13E.

Explanation:
Spoiler:
 
Last edited:

Lunos

Random Uruguayan User
3,114
Posts
15
Years
The following offsets are for Pokémon Emerald (U).
In the offset 080308AC you can replace "B1 08" with "91 10" to skip the whole intro except for the name selection.
Naturally, you're gonna be forced to use the male main character.
2017-12-11_10-31-58.gif


Otherwise, if you also want to skip the name selection, you can replace "B1 08" with "31 16" instead.
The ASM Routine that allows you to give the playable character a name is located at 08031090.
So using callasm 0x8031091 in a script will allow you to name him.
The problem with this is that setting the name plays the whole scene inside the truck.
p7Iw8UX.gif


The offsets of the different ASM Routines that as a whole composes the Professor's Intro are:
08031104: This one is executed after setting the character's name.
08031144: The game runs this one a lot of times after the previous one.
08031188: This one runs until you answer the Yes/No question about your character's name.
08031220: The game runs this one a lot of times after answering "Yes".
08031258: This one runs after the game stops executing the previous routine.
0803133C: This one runs while Birch talks to you after setting your name.
080313E4: This one makes the Professor dissappear.
080314C4: This one draws the main character's sprite.
08031580: This one handles the sprite while it fades and slowly becomes an Overworld sprite.
080316BC: This one runs after the previous one.
08031630: The last routine, it makes the game begin and sets the playable character in the beginning map, Inside the Truck.

These offsets were found by Samu from Wahackforo right here.

EDIT: Samu completed his research and here's the result.
To skip the introduction entirely, including that one small glimpse of it (the 3 green bars from the background), you can write the bytes "31 16" in 08030440.
If you want to give a name to your playable character, there's a better ASM Routine than the one previously mentioned which is the callasm 0x80E5075. This is the result.
2017-12-12_09-43-27.gif


Alternatively, if you want to skip the whole intro but don't want to skip the name selection, then you just have to write the bytes "91 10" in 08030440 and "31 16" in 08031100.
2017-12-12_09-49-05.gif


Also, Samu added a lot more of information on the Routines that composes the Intro.
In this post I only mentioned 11 routines, but he added 21 more!
So yeah, Professor Birch's introduction apparently uses 32 ASM Routines in total.
The details are in his post at Wahack which I linked up, if anyone's curious enough.
 
Last edited:
113
Posts
8
Years
  • Age 29
  • Seen Aug 3, 2023
The table for pokeball capture chance rate is located at 0x0831C48D in Pokemon Emerald. That being said, does anybody know how the data is arranged?
 

Lunos

Random Uruguayan User
3,114
Posts
15
Years
gen 6 exp share system (FR)

Just make the byte changes
21C3A - 02 21
21CD0 - 01 22
21D70 - 01 20
gen vi exp share system (em):

4A4BE - 02 21
4A594 - 01 22
4A634 - 01 20

ok this should be finalized
no more crap from me ahaha
Is there a way to block the Pokémon Eggs from getting exp. points though?
 
146
Posts
11
Years
  • CO
  • Seen Mar 16, 2023
Hello all,
Trying to make a max low friendship evolution (happiness between 0-10).
But as I am just not used to the decrypt and encrypt functions.
Not to mention having to brush up on all I had forgot.

At the moment it just resets the game and nothing more.
I have been at this for 5+ hours and decided it was time to ask for some help...

Code:
.text
.align 2
.thumb
.thumb_func
.global loathFriendship

main:
push {r0-r7, lr}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrb r2, [r3, #0x2]
mov r0, r8
bl decrypt
ldr r6, [r2]
ldr r6 , [r6]
ldrb r6, [r6, #0x9]
cmp r6, #0x10
bls max_lowhappy
b exit

max_lowhappy:
mov r10, r3
pop {r0-r7}
mov r1, r10
add r1, #0x2
ldr r0, evolution_loc
bx r0

exit:
pop {r0-r7}
ldr r0, no_evo
bx r0

decrypt: 
push {r0-r7}
mov r1, #0x20
ldr r2, decryptpoke
bx r2

.align 2
no_evo: .word 0x08043111
evolution_loc: .word 0x0804310D
decryptpoke: .word 0x0803FBE9

Any advice would be much appreciated...
I was up for 5 hours last night working on this...
Too much time wasted an nothing to show for it hahahaha which is why I broke and game for help.



Update:

So after more testing and rewriting I came to this:
Code:
.text
.align 2
.thumb
.thumb_func
.global loathFriendship

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrb r2, [r3, #0x2]
mov r0, r8
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, #0x10
blo max_lowhappy
b exit

max_lowhappy:
mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, evolution_loc
bx r0

exit:
pop {r0-r7}
ldr r0, no_evo
bx r0

decrypt: 
push {r0-r7}
mov r1, #0x20
ldr r2, decryptpoke
bx r2

.align 2
no_evo: .word 0x08043111
evolution_loc: .word 0x0804310D
decryptpoke: .word 0x0803FBE9

I call it the LoathFriendship evolution.
Requires Pokemon Happiness to be between 0-10.
To add it use this thread
 
Last edited:

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
A quick edit to the IV System that will basically automatically set all wild Pokemon IVs to 30 or 31. I originally found it based on some original findings by azurile13 to set all IVs to 31 only.

EDIT: Wait it isn't quite that simple unfortunately, will need branching to handle probably.

Fire Red
Spoiler:


Emerald
Spoiler:
 
Last edited:
239
Posts
8
Years
  • Age 31
  • Seen Apr 15, 2024
[FR] Ride your bike anywhere (even indoors)

write 01 20 C0 46 at 0x55ca0

Note: I don't think this changes cycling road, but I haven't extensively tested. This also means potential bugs.
 

puzaxoxyda

Banned
4
Posts
6
Years
  • Age 31
  • Seen May 1, 2018
JPAN, what about the flags? Is there a way to fix the flags above 0x900 or something?
 
Back
Top