• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • Scottie, Todd, Serena, Kris - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • 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

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

So I basically did this on HEX editor and saved it:

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

I've changed the following bytes. Do I have to manually change the moves I want to Physical/Special? What do I do next?
 
zabimaru1000 said:
I've changed the following bytes. Do I have to manually change the moves I want to Physical/Special? What do I do next?

Like tajaros said, you have to manually edit which moves are physical/special/status with either a hex editor or PGE.

So if you want to use PGE, load your ROM and go to the Attack Editor under the Internal Programs tab. Then, for every move, go through and change the Category to physical/special/status.
 
I applied the patch. Gyarados' Waterfall became physical, but Dragonite and Gengar's Dragon Claw and Shadow Ball are still special for some reason. I tried the moves on Pokemon with equal and even weaker levels than my team. It took less than half HP even for STAB moves.
 
I applied the patch. Gyarados' Waterfall became physical, but Dragonite and Gengar's Dragon Claw and Shadow Ball are still special for some reason. I tried the moves on Pokemon with equal and even weaker levels than my team. It took less than half HP even for STAB moves.

You need to manually reassign all the moves and their categories. With the patch in place, all moves will be treated as physical, as the patch adds the necessary code to execute the split, but doesn't change the move data itself to recategorise them.
 
You need to manually reassign all the moves and their categories. With the patch in place, all moves will be treated as physical, as the patch adds the necessary code to execute the split, but doesn't change the move data itself to recategorise them.

Do I use HEX Editor or PGE with the patch applied? How do I know if I'm reassigning the moves?
 
You can just use PGE. The move editor (on the internal tools tab) has a drop does box which lets you select the category of the move.
 
Originally there was work on a ruby patch for this...is there a working version of that or is it just emerald and firered?

Also, by chance has anyone posted a patch that has the moves changed already?
 
Is this possible in Emerald? I was thinking about making my own Emerald remake, and the use of a real physical special split system would help a lot.

EDIT: Never mind, found it -_-
 
Last edited:
Does this version of the split also come with the boxes in
the move window on the sprite screen? Or was that exclusively
on Jambo's 649 patch.


yeah, i'm wondering that too, that must be looks cool, anybody know how to do it?
 
I want to find a better place to put it. Right now, the image showing if it's physical/special/status appears a frame before the rest of the screen is loaded. :\ I mean, it's not that bad. I just don't love it.

Change these bytes:
Code:
@0813A130: 0x2F
@0813A17B: 0x47
@0813A1A0: [Pointer to Routine, plus 1 (one).]

Here's the source:
Code:
.align 2
.thumb
Start:
	push {r0-r4}
	ldr r0, .CurMoveIndex
	ldrb r1, [r0]
	lsl r1, r1, #1
	ldr r0, .Move_List
	add r0, r0, r1
	ldrh r3, [r0]
	lsl r0, r3, #1
	add r0, r0, r3
	lsl r0, r0, #2
	ldr r1, .MoveBase
	add r0, r0, r1
	ldrb r4, [r0, #10]
	lsl r0, r4, #1
	add r4, r4, r0
	lsl r4, r4, #6
	
	ldr r0, .SplitImages
	add r0, r4
	ldr r1, .VRAM
	mov r2, #0x30
	swi #0xB
	
	ldr r0, .SplitImages
	add r0, r4
	add r0, #0x60
	ldr r1, .VRAM
	mov r2, #0x1E
	lsl r2, #0x04
	add r1, r1, r2
	mov r2, #0x30
	swi #0xB
	
Finish:
	pop {r0-r4}
	ldr r4, .Some_Offset
	ldr r0, [r4]
	ldr r1, .Return_Addr
	bx r1

.align 2
.MoveBase:		.word 0x08250C04
.CurMoveIndex:	.word 0x0203B16D
.Move_List:		.word 0x02003268

.VRAM:			.word 0x06001800
.SplitImages:	.word 0xYYYYYYYY

.Some_Offset:	.word 0x0203B148
.Return_Addr:	.word 0x0813A17C+1

Change the .SplitImages (0xYYYYYYYY) pointer to where ever you have the images.
The images are uncompressed. And should look like this:
They need to be in this order. Use TileMolester or something to insert them.
They use the same palette as the Types, which is located at 0x08E95DBC in a clean FireRed ROM.

Bump.... How do you insert this into the fire red rom?
 
So if you grabbed version 1.3 of the Emerald split from me on the previous page there's a rather subtle bug that you'll need to fix- at x4814E, there is an 00 that should be an 08. This causes the game to treat damage as an address and fails various checks for arbitrary amounts of damage- the main effects are Counter, Rough Skin, and Focus Punch acting as if no damage was dealt.

I've updated the patch I posted, but don't try to fix this bug by just applying 1.4 on top of a ROM with 1.3 as the byte was 08 in vanilla, so it won't work.
 
Alright, I'm confused. Out of the countless patches posted, which one(s) do I use, which games do they work for, what bugs are still around, what, if anything, do I have to do after applying the patch, and what do I need to do so? Can I run a patched ROM through pokehacks(DOT)dabomstew(DOT)com(SLASH)randomizer(SLASH)acks(DOT)php to randomize and have the Phys/Spec split at the same time? Also, which program should I use to apply the patch? The only one I know of is LunarIPS, but my copy of that is bound to be ancient and outdated, and I've no idea if Lunar can do GBA patches.
 
Last edited:
So after I apply DoesntKnowHowToPlay's patch to the ROM, I just use PGE Attack Editor and simply toggle all the moves as Physical/Special/Status? I'm not adding any new moves at the moment into the game so I can just leave the "Effect Table" as 0 right?

EDIT: One more question just as a confirmation: The patch also adds the Sandstorm Sp. Def boost into the game as well right?
 
Last edited:
Okay, I want to use this patch, but I would like to know if the previously stated bugs are in it, like electric/fire moves restarting the game, etc. If yes, then I might not use the patch. And is this patch already have moves pre-set to if they are physical or special. Also, is this compatible with FireRed. And where do I get a updated download link, or is the download link provided int he first post updated.. Thanks. =3
 
Is there a physical/special patch for Ruby lurking around somewhere? I've searched and the original one by Chaos Rush has been removed.
 
In PGE do I only change the category of the move to make it physical/special or status or also its effect table ? I kept it at 0...should I have switched it to 1 or 2 ? Because I think my level 8 Pineco is receiving pitifuly low amounts of damage (1 or 2) from a level 2 Furret using Fury swipes...and it's supposed to be a physical move..
 
In PGE do I only change the category of the move to make it physical/special or status or also its effect table ? I kept it at 0...should I have switched it to 1 or 2 ? Because I think my level 8 Pineco is receiving pitifuly low amounts of damage (1 or 2) from a level 2 Furret using Fury swipes...and it's supposed to be a physical move..

You only change the category. And you should be able to change it so you know what category you're changing the move to. And you're probably doing low damage because Pineco has a bit high defense I believe. But I might be wrong.
 
Original post by Darthatron:
Spoiler:


Suggested fix by Jambo:
Spoiler:

I'm trying to add in these images to an Emerald rom, but I seem to have hit a wall. I've added in the actual image with TileMolester already, but as I understand it the offsets in the code here are for a Fire Red rom. I assume they aren't interchangeable with Emerald, so how would I go about finding the equivalent offsets? Also, how do I find the addresses of the bytes for the code pointers?
 
Last edited:
Back
Top