The PokéCommunity Forums Fan Games ROM Hacking Research & Development
Development The 4th gen class split in 3rd gen

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!

Reply
 
Thread Tools
  #301    
Old November 6th, 2016 (1:51 AM).
-Piccolo-'s Avatar
-Piccolo- -Piccolo- is offline
 
Join Date: May 2016
Location: Sweden
Gender: Male
Nature: Calm
Posts: 50
I managed to change all the moves to physical, special, status on my own, surprisingly.

But how do I use that source code? Does it involve ASM or whatever it's called?
And how and where do I import in TileMolester, is the lime green area free space in the rom?

I apologize if i'm a bit annoying and asking so meny questions but i'm new to this and would be really happy if i managed to pull this off.
__________________
Reply With Quote

Relevant Advertising!

  #302    
Old November 6th, 2016 (2:13 AM).
The_learner's Avatar
The_learner The_learner is offline
 
Join Date: Sep 2014
Location: Nepal
Age: 18
Gender: Male
Nature: Brave
Posts: 421
Quote:
Originally Posted by -Piccolo- View Post
I managed to change all the moves to physical, special, status on my own, surprisingly.

But how do I use that source code? Does it involve ASM or whatever it's called?
And how and where do I import in TileMolester, is the lime green area free space in the rom?

I apologize if i'm a bit annoying and asking so meny questions but i'm new to this and would be really happy if i managed to pull this off.
It semms as if you dont know much about asm codes... just visit some thread in the forum... I remember if there is a thread teaching you to insert the asm codes into the rom, but its hard for me to explain.. because I cant explain well... but search for some threads in the rom hacking forum and you can do it

and for inserting the image...
I would suggest NSE

first open your rom in NSE
then click on "Open sprite"
and open the image provided in that thread I linked earlier.. the split images...
then click on "Insert" -----> "Image data"
NSE gives you an offset there... remember it(Note somewhere)
click on "save"

In the source code you will see..
.SplitImages: .word 0x08YYYYYY

in place of "YYYYYY" you will write the offset you noted earlier


Try it once if it still wont help you then contact me... I will do it for you
__________________
My Progressing Hack



Discord Is fun.

My works:
TOOL: TL's Quick Enhancer
TUTORIAL: Fire red habitat editing
TUTORIAL: Fire red Transparent text-box


| |
Reply With Quote
  #303    
Old November 6th, 2016 (3:42 AM). Edited November 6th, 2016 by -Piccolo-.
-Piccolo-'s Avatar
-Piccolo- -Piccolo- is offline
 
Join Date: May 2016
Location: Sweden
Gender: Male
Nature: Calm
Posts: 50
I tried it out, although I have no idea of what i'm doing.
I copied the the source code into a txt.file and saved it as a asm file. ''split.asm''

I laso inserted the image and copied the offset it gave me and inserted it into .SplitImages: .word 0x08YYYYYY in the source (replacing the Y's).

I went into cmd and got into the folder where split.asm was located and typed ''thumb split.asm split.bin'' and a split.bin was created. I open the split.bin in HxD and copied the values and insert them into some free space in my fire red rom.

Quote:
Originally Posted by Darthatron View Post
Change these bytes:
Code:
@0813A130: 0x2F
@0813A17B: 0x47
@0813A1A0: [Pointer to Routine, plus 1 (one).]
What does the 0x mean? and [Pointer to Routine, plus 1 (one).]?
If i figure this out it should work right?

Here's the ASM tutorial by HackMew I followed. http://www.pokecommunity.com/showthread.php?t=117917#ASM1
Here's another ASM tutorial by FBI I looked at: http://www.pokecommunity.com/showpost.php?p=8526603&postcount=199

Sorry for all the edits :/
Reply With Quote
  #304    
Old December 4th, 2016 (2:57 PM).
Prietodactyl's Avatar
Prietodactyl Prietodactyl is offline
 
Join Date: Oct 2016
Gender: Male
Posts: 31
I have a problem. I applied the patch to a FireRed rom but I don't know what I have to do next. How do I change the moves to Special or Status? And how do I insert the images for each category?

Thanks
Reply With Quote
  #305    
Old December 4th, 2016 (6:42 PM).
ShyRayq's Avatar
ShyRayq ShyRayq is offline
Unprofessional Unprofessional
 
Join Date: Aug 2007
Gender: Male
Nature: Adamant
Posts: 1,422
Quote:
Originally Posted by Prietodactyl View Post
I have a problem. I applied the patch to a FireRed rom but I don't know what I have to do next. How do I change the moves to Special or Status? And how do I insert the images for each category?

Thanks
Okay. In order to change the move categories:
In many of the new move editors, there should just be a section that allows you to change the byte. Check out the tools section.

For the images, you're gonna need to know how to insert ASM and images. Look through the thread for Darthatron's post containing the ASM code and the images. You also need to get a Hex editor in order to perform the byte changes he has laid out as well.
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter; (X, Y, OR, AS, M)
Friend Safari: (Fighting) Throh, Meditite, Breloom
Living Pokedex Complete: LG, E, Pl, Y, OR, M
Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

PM me if you want to trade, or add my FC.
Reply With Quote
  #306    
Old December 5th, 2016 (6:24 AM).
Prietodactyl's Avatar
Prietodactyl Prietodactyl is offline
 
Join Date: Oct 2016
Gender: Male
Posts: 31
Quote:
Originally Posted by ShyRayq View Post
Okay. In order to change the move categories:
In many of the new move editors, there should just be a section that allows you to change the byte. Check out the tools section.

For the images, you're gonna need to know how to insert ASM and images. Look through the thread for Darthatron's post containing the ASM code and the images. You also need to get a Hex editor in order to perform the byte changes he has laid out as well.
Yes, with Gamer2020's PGE I can edit if a move is Physical, Special or Status. That's it? I don't need to hex edit anything?
Reply With Quote
  #307    
Old December 5th, 2016 (1:04 PM).
ShyRayq's Avatar
ShyRayq ShyRayq is offline
Unprofessional Unprofessional
 
Join Date: Aug 2007
Gender: Male
Nature: Adamant
Posts: 1,422
Quote:
Originally Posted by Prietodactyl View Post
Yes, with Gamer2020's PGE I can edit if a move is Physical, Special or Status. That's it? I don't need to hex edit anything?
Yep for the catergories, that's it. I'ts much easier now than when this was first released.
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter; (X, Y, OR, AS, M)
Friend Safari: (Fighting) Throh, Meditite, Breloom
Living Pokedex Complete: LG, E, Pl, Y, OR, M
Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

PM me if you want to trade, or add my FC.
Reply With Quote
  #308    
Old December 5th, 2016 (1:05 PM).
BluRose BluRose is offline
school in a nutshell
 
Join Date: Apr 2014
Location: hyakkoku city
Age: 15
Gender: Male
Nature: Timid
Posts: 578
Quote:
Originally Posted by Prietodactyl View Post
Yes, with Gamer2020's PGE I can edit if a move is Physical, Special or Status. That's it? I don't need to hex edit anything?
editing the move to be one of those categories with pge will make it physical, special, or status, yes.

if you want images, you need to find the asm code for that made public by darthatron a while ago and follow his mini-tutorial on it
__________________
you've just met the sponginator.

please note that when/if i answer questions i am likely doing it from an ipad on which i do not actually have a rom dump of any game/ways to check out the data <3
Reply With Quote
  #309    
Old December 6th, 2016 (9:07 AM).
Prietodactyl's Avatar
Prietodactyl Prietodactyl is offline
 
Join Date: Oct 2016
Gender: Male
Posts: 31
Quote:
Originally Posted by ShyRayq View Post
Yep for the catergories, that's it. I'ts much easier now than when this was first released.
Quote:
Originally Posted by BluRose View Post
editing the move to be one of those categories with pge will make it physical, special, or status, yes.

if you want images, you need to find the asm code for that made public by darthatron a while ago and follow his mini-tutorial on it
Thank you!
Reply With Quote
  #310    
Old December 6th, 2016 (10:37 AM).
Prietodactyl's Avatar
Prietodactyl Prietodactyl is offline
 
Join Date: Oct 2016
Gender: Male
Posts: 31
Perhaps I'm too idiot, but I can't make this thing work.

Patching the game with the P/S split patch: done
Inserting the graphics with NSE 2: done
Inserting the ASM routine into the free space of my FR rom: done

But I don't know what other bytes I have to edit to make it run. That's all I've got. I need help :(
Reply With Quote
  #311    
Old December 6th, 2016 (1:28 PM).
ShyRayq's Avatar
ShyRayq ShyRayq is offline
Unprofessional Unprofessional
 
Join Date: Aug 2007
Gender: Male
Nature: Adamant
Posts: 1,422
Quote:
Originally Posted by Prietodactyl View Post
Perhaps I'm too idiot, but I can't make this thing work.

Patching the game with the P/S split patch: done
Inserting the graphics with NSE 2: done
Inserting the ASM routine into the free space of my FR rom: done

But I don't know what other bytes I have to edit to make it run. That's all I've got. I need help
Well, you go into a hex editor, go to the addresses mentioned in Darthatron's post and change the bytes there to the ones he has mentioned.

For the one about the pointer, take the address you inserted the routine at. e.g/ ABCDEF
split it into sections of 2: AB CD EF, swap the first and last: EF CD AB
and stick 08 at the back: EF CD AB 08
And he says at 1 to it, so its more like: EF+1 CD AB 08
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter; (X, Y, OR, AS, M)
Friend Safari: (Fighting) Throh, Meditite, Breloom
Living Pokedex Complete: LG, E, Pl, Y, OR, M
Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

PM me if you want to trade, or add my FC.
Reply With Quote
  #312    
Old December 6th, 2016 (1:48 PM). Edited December 6th, 2016 by Prietodactyl.
Prietodactyl's Avatar
Prietodactyl Prietodactyl is offline
 
Join Date: Oct 2016
Gender: Male
Posts: 31
Quote:
Originally Posted by ShyRayq View Post
Well, you go into a hex editor, go to the addresses mentioned in Darthatron's post and change the bytes there to the ones he has mentioned.

For the one about the pointer, take the address you inserted the routine at. e.g/ ABCDEF
split it into sections of 2: AB CD EF, swap the first and last: EF CD AB
and stick 08 at the back: EF CD AB 08
And he says at 1 to it, so its more like: EF+1 CD AB 08
Which bytes do I have to change with the pointer? The first four?

Edit:

YOU ROCK MAN! I was finally able to do it. Thank you so much.



Can I make a tutorial on how to do it from scratch, for people who don't know anything about rom hacking?
Reply With Quote
  #313    
Old December 6th, 2016 (7:37 PM).
ShyRayq's Avatar
ShyRayq ShyRayq is offline
Unprofessional Unprofessional
 
Join Date: Aug 2007
Gender: Male
Nature: Adamant
Posts: 1,422
Quote:
Originally Posted by Prietodactyl View Post
Which bytes do I have to change with the pointer? The first four?

Edit:

YOU ROCK MAN! I was finally able to do it. Thank you so much.



Can I make a tutorial on how to do it from scratch, for people who don't know anything about rom hacking?
No problem man.
I mean, if you want to. Most people just use a rom base.
__________________
3DS Friend Code: 5069-3944-3902
IGN: Peter; (X, Y, OR, AS, M)
Friend Safari: (Fighting) Throh, Meditite, Breloom
Living Pokedex Complete: LG, E, Pl, Y, OR, M
Big thanks especially to DestinedJagold, Xerneas_X, Elements1 and ~RNC~

PM me if you want to trade, or add my FC.
Reply With Quote
  #314    
Old December 13th, 2016 (3:41 PM). Edited December 15th, 2016 by Jeesh.
Jeesh's Avatar
Jeesh Jeesh is offline
The Emerald Rights Activist.
 
Join Date: Oct 2016
Gender: Male
Posts: 48
Quote:
Originally Posted by Sky High View Post
Attention! For those who can't get on Tlachtli's Phys/Spec/Stat Icon in Emerald, now, listen here:


I've finally got it working and it is very a big success. Thanks Tlachtli! Gonna credit you once I made an Emerald base hack. I used DoesntKnowHowToPlay's Emerald Physical/Special/Status split first. I'll also give you credits too. Here are some screenshots:




Tlachtli,
At the first, I've found your entire work to be not working. But, I tried adding some missing "hows" so I can make this work. Here are some info I want you to change and add:

1.)
I noticed the part .SplitImages: .word 0x[insert address to images] that there is something's missing to it. You've forgotten to put 08 at the beginning of [insert address to images]. So then, that will be .SplitImages: .word 0x08[insert address to images]. Example, I've made it on offset E43780. So, that will be .SplitImages: .word 0x08E43780.

2.)
Then, about you're going to change the offsets to inserted ASM address +1, some people would just write and change the inserted ASM address +1 on certain offsets. Example: I have E43668 to be the ASM offset and I've changed and written 6936E4 on 1C0F88, 1c1328, and 1c17a0. When I did it, it froze just like Shufflejoy just commented:



It is because you just only write and change the inserted ASM address +1. I've noticed the value next to it "03". With 03 next to it, the routine will not ever work.


So then, try to change 03 to 08.


It is because with the value 08 next to it, it will locate the routine (or 09 if you put the routine on 1000000+. Ex: you have inserted the routine on 1234568, change and write 69452309). With this, I've finally made it working. Well, I haven't found bugs and glitches when I revised this.

3.)
This maybe a small problem but I would be big in just one mistake. You may just have inserted the image into compressed image (with unLZ program). Don't use unLZ to insert this. I highly recommend to use NSE 2.1 to insert the image because insertion of images has options is compressed or uncompressed. "Load ROM" then "Open Sprite" then "File => Insert => Image Data".



Revised Steps
I also rewrite the complete tutorial about it according to his original tutorial with the revises I made. So, here it is:

1.)
Insert this image as an uncompressed image...

Use NSE 2.1 to do so. To insert it on NSE 2.1: First, "Load ROM" load your Emerald file; Second, "Open Sprite" open your sprite; Then, "File => Insert => Image Data"

2A.)
Insert this ASM...
If you can't do ASM and/or if you have no idea about ASM at all, proceed to Step 2B.
Revised ASM:
Spoiler:

Spoiler:

.text
.align 2
.thumb
.thumb_func

Prestart:
add r0, r0, r5
lsl r0, r0, #0x03
ldr r1, .Replaced_Address
add r4, r0, r1
push {r0-r5}
ldr r0, .SplitImages
ldr r1, .OBJVRAM
mov r2, #0xC0
swi #0xB

ldr r0, .CurMoveIndex_DMA
ldr r0, [r0]
mov r2, #0x10
lsl r2, #8
add r2, #0xD
add r0, r2
ldrb r0, [r0]
cmp r0, #0x0
bne StatFinish

mov r2, #0x10
lsl r2, #8
add r2, #0xA
cmp r6, #0x0
beq StatPreStart

Start:
ldr r0, .CurMoveIndex_DMA
ldr r0, [r0]
add r0, r2
cmp r6, #0x1
bne Continue
add r0, #0x1

Continue:
ldrb r1, [r0]
cmp r1, #0x0
bne GetMove
mov r2, #0x20
lsl r2, #8
add r0, r2
ldrb r1, [r0]

GetMove:
cmp r1, #0x4
beq GetFifthMove
lsl r1, r1, #1
ldr r0, .Move_List_DMA
ldr r2, [r0]
add r2, #0x84
mov r0, r2
add r0, r1
ldrh r3, [r0]

Body:
mov r0, #0x0
lsl r0, r3, #1
add r0, r3
lsl r0, r0, #2
ldr r1, .MoveBase
add r0, r1
ldrb r4, [r0, #10]
lsl r4, #1

mov r0, #0x40
lsl r0, #20
ldr r1, [r0]
mov r2, #0x20
orr r1, r2
stm r0!, {r1}

ldr r0, .OAMMemAddress
ldr r1, .IconOAM1
ldr r2, .IconOAM2
cmp r4, #0x2
beq SpecAdd
cmp r4, #0x4
beq StatAdd

Draw:
stmia r0!, {r1, r2}
ldr r0, .OAMMemAddress
mov r1, #0x70
lsl r1, #20
add r1, #0xD8
mov r2, #0x4
swi #0xb

StatFinish:
cmp r6, #0x1
beq MoveFinish
cmp r6, #0x2
beq LearnFinish
pop {r0-r6}
ldr r0, .Return_Address_Stat
bx r0

GetFifthMove:
cmp r6, #0x2
bne StatFinish
ldr r0, .CurMoveIndex_DMA
ldr r0, [r0]
mov r2, #0x10
lsl r2, #8
add r2, #0xA
add r0, r2
sub r0, #0x2
ldrh r3, [r0]
cmp r3, #0x0
bne Body
mov r2, #0x20
lsl r2, #8
add r0, r2
ldrh r3, [r0]
cmp r3, #0x0
bne Body
b Start

StatPreStart:
mov r3, #0x20
lsl r3, #8
add r2, r3
b Start

LearnFinish:
pop {r0-r6}
ldr r0, .Return_Address_Learn
bx r0

MoveFinish:
pop {r0-r6}
ldr r0, .Return_Address_Move
bx r0

SpecAdd:
mov r3, #0x20
lsl r3, #8
add r3, #0x04
add r2, r3
b Draw

StatAdd:
add r2, #0x08
b Draw

.align 2
.MoveBase: .word 0x0831C898
.CurMoveIndex_DMA: .word 0x0300090C
.Move_List_DMA: .word 0x0203CF1C
.Replaced_Address: .word 0x03005E08
.Return_Address_Stat: .word 0x081C0F57
.Return_Address_Move: .word 0x081C12F7
.Return_Address_Learn: .word 0x081C175D
.IconOAM1: .word 0x40280078
.IconOAM2: .word 0x0000D580
.OBJVRAM: .word 0x06013000
.OAMMemAddress: .word 0x030023E4
.SplitImages: .word 0x08FCFDFE


*Note: Change FCFDFE to the offset where you've inserted the uncompressed image. OR, if you have inserted the ASM before the image and you're going to edit on a hex editor after inserting, go to the location of the inserted ASM and look for the FE FD FC 08 part on it. Again, change it but this time, in a reversed way (Example: Uncompressed image offset: ABCDEF. Think this: AB CD EF. And do this: EF CD AB. And finally change FE FD FC 08 to EF CD AB 08)

For 1000000+, I will have the example as 1234568 as the offset, do this: don't do 0x081234568. Do this: 0x09234568. For hex-editing: Mind little endian so it becomes 01 23 45 68. Reverse it so it becomes 68 45 23 01. Replace 01 with 09 (because 08+01=09). Final answer for it is 68 45 23 09.


2B.)
This is an alternate step for 2A for those who can't do ASM. For those who can't do ASM but can do HEX EDITING, below is the hex values of it. Insert this on the offset that ends with 0, 4, 8, C and nothing else.

Spoiler:

40 19 C0 00 3B 49 44 18 3F B4 42 48 3F 49 C0 22 0B DF 36 48 00 68 10 22 12 02 0D 32 80 18 00 78 00 28 36 D1 10 22 12 02 0A 32 00 2E 4B D0 2F 48 00 68 80 18 01 2E 00 D1 01 30 01 78 00 29 03 D1 20 22 12 02 80 18 01 78 04 29 29 D0 49 00 28 48 02 68 84 32 10 1C 40 18 03 88 00 20 58 00 C0 18 80 00 21 49 40 18 84 7A 64 00 40 20 00 05 01 68 20 22 11 43 02 C0 26 48 22 49 23 4A 02 2C 2C D0 04 2C 2F D0 06 C0 22 48 70 21 09 05 D8 31 04 22 0B DF 01 2E 1E D0 02 2E 19 D0 7F BC 16 48 00 47 02 2E F6 D1 11 48 00 68 10 22 12 02 0A 32 80 18 02 38 03 88 00 2B D0 D1 20 22 12 02 80 18 03 88 00 2B CA D1 B3 E7 20 23 1B 02 D2 18 AF E7 7F BC 0B 48 00 47 7F BC 09 48 00 47 20 23 1B 02 04 33 D2 18 CF E7 08 32 CD E7 98 C8 31 08 0C 09 00 03 1C CF 03 02 08 5E 00 03 57 0F 1C 08 F7 12 1C 08 5D 17 1C 08 78 00 28 40 80 D5 00 00 00 30 01 06 E4 23 00 03 FE FD FC 08


If you have inserted the uncompressed image first, replace FE FD FC 08 with the offset where you have inserted the uncompressed image and the offset must be like in this example: Uncompressed image offset: ABCDEF. Mind little endian: AB CD EF. Reverse them: EF CD AB. And finally change FE FD FC 08 to EF CD AB 08. If you have keen eyes, you will not get a mistake doing this.

3.)
Replace some Hex-Values on offsets...
Revised Hex Edits:
Spoiler:

Change 0x1C0F88, 0x1C1328 and 0x1C17A0 to XX XX XX 08 (or XX XX XX 09 for offset 1000000+)
Change 0x1C0F54, 0x1C12F4 and 0x1C175A to 08 47
Change 0x1C0F4E to 40 B4 00 26
Change 0x1C12EE to 40 B4 01 26
Change 0x1C1754 to 40 B4 02 26

Replace XX XX XX with the offset of your ASM, already +1, little endian and reversed. Example: You have inserted the ASM to E43668. Plus one so it becomes E43669. Mind little endian so it becomes like this E4 36 69. Then, reversed it so it becomes 69 36 E4.

For 1000000+, I will have the example as 1234568 as the offset. Plus one so it becomes 1234569. Mind little endian so it becomes 01 23 45 69. Reverse it so it becomes 69 45 23 01. Replace 01 with 09 (because 08+01=09). Final answer for it is 69 45 23 09.


I hope this helps for those who can't make it at the first. It works well, trust me.
Okay, this may have already been talked about, but I'm gonna ask it cuz I'm tl;dr-ing on this entire thread '

Everybody is talking about "use the patch and stuff without expanding anything." I used the patch and added the icons on an unexpanded rom, and the whole thing worked (yay). But I want to use expanded moves and 'mons, and when I expand those two aspects after adding this split, it doesn't matter if a move is physical, special, or status: the icon always shows physical. I feel like it's just a table problem that I have to update with expanded numbers, but I haven't found anything that is immensely helpful regarding this problem. Could I get a help?

Btw, If you need an image, just ask.
__________________
>Emerald hacks need to come back.
>Make EMerica great again.
>I'm a Hoenn PROenn.
>Free the E.
>All hacks are created equal...but Emerald is cool.
>Charizard got nothin' on Rayquaza.
>Learn to hack the hard way. Go with Emerald.
Reply With Quote
  #315    
Old January 6th, 2017 (4:54 AM).
The_learner's Avatar
The_learner The_learner is offline
 
Join Date: Sep 2014
Location: Nepal
Age: 18
Gender: Male
Nature: Brave
Posts: 421
I dont know if I am allowed to this or not,
but if anyone is facing problem in inserting the PSS split and the icons then you can use the tool linked in my signature to do the task by just clicking a single button,
.
but the task of giving the move proper class will be your task :)
__________________
My Progressing Hack



Discord Is fun.

My works:
TOOL: TL's Quick Enhancer
TUTORIAL: Fire red habitat editing
TUTORIAL: Fire red Transparent text-box


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

Forum Jump


All times are GMT -8. The time now is 12:37 AM.