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

Development: The 4th gen class split in 3rd gen

timson733333

Woah.
135
Posts
16
Years
Sorry if this seems a stupid question, but I'm a bit confused. With what sort of hex editor are you supposed to find these eight digit pointers (in Emerald)? I'm sorry, but I'm having trouble finding them and I've looked up some hex editing tutorials which haven't given me any answers. Thanks!

HxD works. Any hex editor where you can "go to" a byte works, basically.

Does anyone know the offsets for Ruby where you change to fix the Blaze/Torrent/Overgrow glitch? I saw the ones for the physical/special class split but can't find the ones for fixing the glitch.
 
69
Posts
11
Years
  • Seen Jul 22, 2019
I haven't posted it since then because I was:
1) Testing the damned thing to make sure it worked
2) Being busy with exams and coursework
3) Having a life beyond hacking

Code:
.text
.align 2
.thumb
.thumb_func
.global LCDPSSGlitchFix
main:
 ldr r0, [sp, #0x8]
 lsl r1, r0, #0x1
 add r1, r1, r0
 lsl r1, r1, #0x2
 ldr r0, attackdata
 add r0, r0, r1
 ldrb r0, [r0, #0x2]
 mov r11, r0
 mov r2, r11
 cmp r2, #0xD
 bne continue
 mov r0, #0x0
 str r0, [sp, #0x0]
 ldr r0, return
 bx r0
continue: ldr r3, returntwo
 bx r3
.align
return: .word 0x0803F10D
returntwo: .word 0x0803F127
attackdata: .word 0x08250C04

At 0x3F102, change the code to 01 4A 10 47 00 00 XX XX XX 08.

That isn't all though, you also need to change:

0803F126: 5B 46
0803F14A: 58 46
0803F17A: 5A 46
0803F1AA: 58 46
0803F1DA: 5A 46

You should be good to go after that.

What does this fix do? Is the ASM code part of the fix?
 

DoesntKnowHowToPlay

Tiny Umbrella with Lots and Lots of Good
265
Posts
12
Years
  • Seen Feb 24, 2024
Now that I have enough posts to put this here I might as well for convenience's sake, it was rather rude of me to not just bypass the filter to get these links up:

FR: http://www.mediafire.com/download/b4j6b4p1rq94l67/PhysSpecSplitFR1.6.ips
Em: http://www.mediafire.com/download.php?ipcjia5b778zj8o

Like with the other implementations in this thread, they work off the eleventh byte of the move data. They also implement the Special Defense boost in Sand, and jump through a number of other hoops to not break existing abilities and attacks, which is why I provide them as patches and not simple hex edits. Be aware that these patches do not touch the move table- you'll have to toggle the moves as physical or special yourself. I recommend using a hex editor or Nightmare for this, but PGE can also do the job (slowly).

Credits go to Tailes for most of the work on the Emerald split.

Also yes you can use these for your hacks just give credit you don't need to pm me for permission and plz don't
 
Last edited:

shinyabsol1

Pokemon DarkJasper!?
333
Posts
13
Years
  • Seen Nov 23, 2022
DoesntKnowHowToPlay said:
Like with the other implementations in this thread, they work off the eleventh byte of the move data. They also implement the Special Defense boost in Sand, and jump through a number of other hoops to not break existing abilities and attacks, which is why I provide them as patches and not simple hex edits. Be aware that these patches do not touch the move table- you'll have to toggle the moves as physical or special yourself. I recommend using a hex editor or Nightmare for this, but PGE can also do the job (slowly).

Will this split still work even if I have repointed the move data, attack names, etc?

Just want to make sure before I patch this to my ROM.
 

DoesntKnowHowToPlay

Tiny Umbrella with Lots and Lots of Good
265
Posts
12
Years
  • Seen Feb 24, 2024
Will this split still work even if I have repointed the move data, attack names, etc?

Just want to make sure before I patch this to my ROM.

You might need to fix a couple pointers to the old move data table, but it should still work.
 
1,323
Posts
16
Years
  • Seen Dec 9, 2023
Now that I have enough posts to put this here I might as well for convenience's sake, it was rather rude of me to not just bypass the filter to get these links up:

FR: http://www.mediafire.com/download.php?7e0m7xhmyaga2af
Em: http://www.mediafire.com/download.php?5t81dh2ep0svp68

Like with the other implementations in this thread, they work off the eleventh byte of the move data. They also implement the Special Defense boost in Sand, and jump through a number of other hoops to not break existing abilities and attacks, which is why I provide them as patches and not simple hex edits. Be aware that these patches do not touch the move table- you'll have to toggle the moves as physical or special yourself. I recommend using a hex editor or Nightmare for this, but PGE can also do the job (slowly).

Credits go to Tailes for most of the work on the Emerald split.
Is the FireRed one safe to apply if you've already applied an earlier version of that patch? (The one you posted on the Nuzlocke forums)
 
69
Posts
11
Years
  • Seen Jul 22, 2019
You might need to fix a couple pointers to the old move data table, but it should still work.

What do you mean by that? Do you need to change the new pointers back to the old ones before applying the patch or does it mean that the patch overwrites the changed pointers and you have to go back and change them again?
 

DoesntKnowHowToPlay

Tiny Umbrella with Lots and Lots of Good
265
Posts
12
Years
  • Seen Feb 24, 2024
Is the FireRed one safe to apply if you've already applied an earlier version of that patch? (The one you posted on the Nuzlocke forums)

It's the same as the most recent version from there, so if you have that one you won't need to. It should be safe though.

What do you mean by that? Do you need to change the new pointers back to the old ones before applying the patch or does it mean that the patch overwrites the changed pointers and you have to go back and change them again?

I meant that the patch may introduce new pointers to the old move table that you'll want to hunt down after applying it, but it looks like it uses the exiting pointers so that shouldn't actually be a problem.
 

Ivee

Ask me about Trailblazer :3
66
Posts
14
Years
  • Seen May 22, 2019
You people are incredibly amazing. So it doesn't mess with the starter abilities/Flash Fire, or moves like Hidden Power? I plan to play with this tonight.
 

shinyabsol1

Pokemon DarkJasper!?
333
Posts
13
Years
  • Seen Nov 23, 2022
dreamengine said:
What do you mean by that? Do you need to change the new pointers back to the old ones before applying the patch or does it mean that the patch overwrites the changed pointers and you have to go back and change them again?

DoesntKnowHowToPlay said:
I meant that the patch may introduce new pointers to the old move table that you'll want to hunt down after applying it, but it looks like it uses the exiting pointers so that shouldn't actually be a problem.

I can confirm that this patch works with repointed move data. I tested it out yesterday (without needing to correct any new pointers) and encountered no problems.
 
10
Posts
11
Years
  • Seen Jan 14, 2016
HAPPY NEW YEAR!

Here's the Emerald hack ported to the other games. I find it amusing that with this hack we got it working for Emerald first, then Ruby, and then FireRed, when usually it's the complete opposite. xD

FireRed (US)
Code:
0803ED54: 80 7A
0803F226: 00 29
0803F228: 00 D0
0803F38C: 02 2F
0803F38E: 00 DB
0803F394: 01 28
0803F396: 00 D0

Hi Darthatron, I'd really like to test out the Physical-Special Split on Fire Red, but I'm having trouble changing the bytes. I am using Hex Workshop and can't seem to locate what you typed in for Fire Red. I just started learning HEX Editing just to try out this P/S feature for 3rd generation games.
 

PokemonMasters

Always Remember Forever&After
389
Posts
11
Years
Hi Darthatron, I'd really like to test out the Physical-Special Split on Fire Red, but I'm having trouble changing the bytes. I am using Hex Workshop and can't seem to locate what you typed in for Fire Red. I just started learning HEX Editing just to try out this P/S feature for 3rd generation games.

dont add 08 when searching. 08 just means its in the game ;)
 

shinyabsol1

Pokemon DarkJasper!?
333
Posts
13
Years
  • Seen Nov 23, 2022
zabimaru1000 said:
Are you sure I'm searching for HEX values? It still says the specified search string was not found even when I did not add 08.

You misunderstand. You don't search for the bytes in the ROM, you goto the specified location. That's where you would remove the 08. So use your hex editor's "goto" function to find the place at which you need to change the bytes.

So for the first one, goto offset 03ED54 and change the bytes there to 80 7A.
 
10
Posts
11
Years
  • Seen Jan 14, 2016
You misunderstand. You don't search for the bytes in the ROM, you goto the specified location. That's where you would remove the 08. So use your hex editor's "goto" function to find the place at which you need to change the bytes.

So for the first one, goto offset 03ED54 and change the bytes there to 80 7A.

Thanks mate. I've got the "go to" part down, but I can't really find the exact bytes I need to change. When I go to 03ED54, I find 0003ED52 instead. Am I supposed to find those exact digits?

EDIT: I've found the exact offset in 0003ED52, I'm at 03ED54 and where do I change the bytes to 80 and 7A? I can only change either 80 or 7A, do I have to change both at one offset?
 
Last edited:

shinyabsol1

Pokemon DarkJasper!?
333
Posts
13
Years
  • Seen Nov 23, 2022
zabimaru1000 said:
Thanks mate. I've got the "go to" part down, but I can't really find the exact bytes I need to change. When I go to 03ED54, I find 0003ED52 instead. Am I supposed to find those exact digits?

EDIT: I've found the exact offset in 0003ED52, I'm at 03ED54 and where do I change the bytes to 80 and 7A? I can only change either 80 or 7A, do I have to change both at one offset?

When you goto 03ED54, the cursor will move to the place where you need to start changing bytes (or it might be highlighted or something depending on what hex editor you're using -- I'm using HxD). From that point,overwrite bytes with the specified bytes (80 7A).

So in an unmodified FR ROM, 03ED54 should take you to an 80 byte, followed by 78 81 46 etc...

So put the 80 7A bytes there. You will end up with 80 7A 81 46 etc...
 
10
Posts
11
Years
  • Seen Jan 14, 2016
When you goto 03ED54, the cursor will move to the place where you need to start changing bytes (or it might be highlighted or something depending on what hex editor you're using -- I'm using HxD). From that point,overwrite bytes with the specified bytes (80 7A).

So in an unmodified FR ROM, 03ED54 should take you to an 80 byte, followed by 78 81 46 etc...

So put the 80 7A bytes there. You will end up with 80 7A 81 46 etc...

Okay, so I've entered all of the bytes. Is that all there is to it? If so, then are the moves in 3rd gen split into Physical and Special moves? Like Shadow Ball is special and Waterfall is physical?
 

tajaros

Hi I'm dawg
855
Posts
11
Years
Okay, so I've entered all of the bytes. Is that all there is to it? If so, then are the moves in 3rd gen split into Physical and Special moves? Like Shadow Ball is special and Waterfall is physical?

No, you have to edit it manually you can use either a hex editor or PGE.
 
Back
Top