The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Research & Development programs in this forum are subject to moderator approval before they are displayed.


Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #176    
Old January 15th, 2013, 04:58 PM
shinyabsol1's Avatar
shinyabsol1
Pokemon DarkJasper!?
 
Join Date: Aug 2010
Gender: Male
Nature: Calm
Quote:
Originally Posted by zabimaru1000
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.
Reply With Quote
  #177    
Old January 16th, 2013, 07:40 PM
zabimaru1000
Unhatched Egg
 
Join Date: Jun 2012
Gender: Male
Quote:
Originally Posted by shinyabsol1 View Post
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 by zabimaru1000; January 16th, 2013 at 07:53 PM.
Reply With Quote
  #178    
Old January 17th, 2013, 03:29 PM
shinyabsol1's Avatar
shinyabsol1
Pokemon DarkJasper!?
 
Join Date: Aug 2010
Gender: Male
Nature: Calm
Quote:
Originally Posted by zabimaru1000
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...
Reply With Quote
  #179    
Old January 17th, 2013, 09:40 PM
zabimaru1000
Unhatched Egg
 
Join Date: Jun 2012
Gender: Male
Quote:
Originally Posted by shinyabsol1 View Post
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?
Reply With Quote
  #180    
Old January 17th, 2013, 10:48 PM
tajaros's Avatar
tajaros
Hi I'm dawg
 
Join Date: Apr 2012
Location: Philippines
Age: 15
Gender: Male
Nature: Timid
Send a message via Windows Live Messenger to tajaros
Quote:
Originally Posted by zabimaru1000 View Post
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.
__________________
Reply With Quote
  #181    
Old January 17th, 2013, 11:05 PM
zabimaru1000
Unhatched Egg
 
Join Date: Jun 2012
Gender: Male
Quote:
Originally Posted by tajaros View Post
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?
Reply With Quote
  #182    
Old January 18th, 2013, 04:46 PM
shinyabsol1's Avatar
shinyabsol1
Pokemon DarkJasper!?
 
Join Date: Aug 2010
Gender: Male
Nature: Calm
Quote:
Originally Posted by zabimaru1000
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.
Reply With Quote
  #183    
Old January 18th, 2013, 06:17 PM
Agastya's Avatar
Agastya
Grinding failed. Item Grind level dropped by 3.
 
Join Date: Feb 2010
Nature: Quiet
is there a good reason that none of you pointed him towards the physical/special patch posted by doesntknowhowtoplay that actually works instead of turning this thread into a hex editing tutorial if you were just going to say "use pge" when he got to move class?
__________________
Reply With Quote
  #184    
Old January 20th, 2013, 09:53 PM
zabimaru1000
Unhatched Egg
 
Join Date: Jun 2012
Gender: Male
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.
Reply With Quote
  #185    
Old January 20th, 2013, 10:48 PM
Jambo51's Avatar
Jambo51
Glory To Arstotzka
 
Join Date: Jun 2009
Gender: Male
Nature: Quiet
Quote:
Originally Posted by zabimaru1000 View Post
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.
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
  #186    
Old January 20th, 2013, 10:59 PM
zabimaru1000
Unhatched Egg
 
Join Date: Jun 2012
Gender: Male
Quote:
Originally Posted by Jambo51 View Post
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?
Reply With Quote
  #187    
Old January 21st, 2013, 03:34 AM
Jambo51's Avatar
Jambo51
Glory To Arstotzka
 
Join Date: Jun 2009
Gender: Male
Nature: Quiet
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.
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
  #188    
Old January 26th, 2013, 08:11 PM
Noossab Blue's Avatar
Noossab Blue
 
Join Date: Dec 2012
Location: USA
Gender: Female
Nature: Quirky
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?
__________________
IGN: Anna/Noossab Blue
3DS FC: 3196 3609 8450

Thanks to SilverGrey for the awesome banner! Click to see!
Current as of 1/31/14: I updated again!

Reply With Quote
  #189    
Old February 1st, 2013, 10:39 AM
LCCoolJ95's Avatar
LCCoolJ95
Limited Capacity
 
Join Date: May 2009
Location: The World That Never Was
Age: 19
Gender: Male
Nature: Naive
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
__________________
"The greatest obstacle in life is Yourself. Overcome it, and you will achieve the greatest accomplishment of all." -Art Beins, 1982

Fairy-type in Pokémon Emerald: http://www.pokecommunity.com/showpos...&postcount=288

Last edited by LCCoolJ95; February 1st, 2013 at 02:24 PM.
Reply With Quote
  #190    
Old February 5th, 2013, 04:13 AM
MrDollSteak's Avatar
MrDollSteak
Formerly known as 11bayerf1
 
Join Date: Dec 2008
Location: Hong Kong
Age: 19
Gender: Male
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.
__________________
Reply With Quote
  #191    
Old February 7th, 2013, 10:02 PM
Garuga17's Avatar
Garuga17
 
Join Date: Apr 2011
Location: Indonesia
Age: 19
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by 11bayerf1 View Post
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?
__________________
dunno what to write here....
Reply With Quote
  #192    
Old May 13th, 2013, 06:42 PM
Voltron's Avatar
Voltron
Unhatched Egg
 
Join Date: May 2013
Gender: Male
Quote:
Originally Posted by Darthatron View Post
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?
Reply With Quote
  #193    
Old May 14th, 2013, 11:51 AM
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay
some loser
 
Join Date: Jan 2012
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.
__________________

Yet Another Fire Red Hack

Physical/Special Split
Reply With Quote
  #194    
Old May 20th, 2013, 12:30 PM
Uikri's Avatar
Uikri
 
Join Date: May 2013
Gender: Male
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 by Uikri; May 20th, 2013 at 02:14 PM.
Reply With Quote
  #195    
Old May 21st, 2013, 08:05 AM
nyczxjay
 
Join Date: May 2013
Gender: Male
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 by nyczxjay; May 21st, 2013 at 09:22 AM.
Reply With Quote
  #196    
Old May 21st, 2013, 08:19 AM
Uzumaki Naruto Jr.'s Avatar
Uzumaki Naruto Jr.
Champion
 
Join Date: Apr 2013
Location: 木ノ葉隠れの里
Age: 16
Gender: Male
Nature: Timid
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
__________________
- Uzumaki Naruto Jr. -
"I won't run away anymore... I won't go back on my word... that is my shinobi way!"
Reply With Quote
  #197    
Old May 28th, 2013, 11:55 AM
nyczxjay
 
Join Date: May 2013
Gender: Male
Is there a physical/special patch for Ruby lurking around somewhere? I've searched and the original one by Chaos Rush has been removed.
Reply With Quote
  #198    
Old June 13th, 2013, 12:37 PM
Glitch Kitty
 
Join Date: Apr 2011
Gender: Female
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..
__________________
Reply With Quote
  #199    
Old June 13th, 2013, 03:05 PM
ShyRayq's Avatar
ShyRayq
Unprofessional Unprofessional
 
Join Date: Aug 2007
Gender: Male
Nature: Adamant
Quote:
Originally Posted by Glitch Kitty View Post
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.
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter, Pokemon Y
Friend Safari: (Fighting) Throh, Meditite, Breloom
Live Pokedex Completed as of 02/03/14
Big thanks especially to DestinedJagold, Xerneas_X and Elements1

PM me if you want to trade, or add my FC.
Reply With Quote
  #200    
Old July 27th, 2013, 06:35 PM
dd409's Avatar
dd409
For the Swarm!
 
Join Date: Jul 2008
Gender: Male
Nature: Lax
Original post by Darthatron:
Spoiler:
Quote:
Originally Posted by Darthatron View Post
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.


Suggested fix by Jambo:
Spoiler:
Quote:
Originally Posted by Jambo51 View Post
I think I've found the code which causes the Mirror Coat/Counter bug in Fire Red.
Change it to this, and it should hopefully fix it.
Code:
0801F6C2: 86 7A
0801F908: 00 2E
0801F90A: 41 D1
Also, Darthatron's routine for showing the images is slightly buggy. It turns out the move index is actually DMA protected, but in a really odd way. It only gets DMA shifted after certain actions are taken within the game's overworld. Anyway - to solve this, change the parts in BOLD in Darthatron's original routine (or just copy this routine, I suppose), and then follow Darthatron's original post to insert it.

Code:
.align 2
.thumb
Start:
 push {r0-r4}
 ldr r0, .CurMoveIndex
 ldrb r1, [r0]
 lsl r1, r1, #1
 ldr r0, .Move_List_Loc
 ldr r0, [r0]
 ldr r3, .number
 add r0, r0, r3
 add r0, r0, r1
 ldrh r3, [r0]
 cmp r3, #0x0
 beq Finish
 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
.number: .word 0x00003258
.CurMoveIndex: .word 0x0203B16D
.Move_List_Loc:  .word 0x0203B140
.VRAM:   .word 0x06001800
.SplitImages: .word 0x08YYYYYY
.Some_Offset: .word 0x0203B148
.Return_Addr: .word 0x0813A17D


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 by dd409; July 28th, 2013 at 10:05 AM. Reason: Added in a second quoted post
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 08:07 PM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.