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
  #251    
Old May 31st, 2014, 05:35 PM
Agastya's Avatar
Agastya
Grinding failed. Item Grind level dropped by 3.
 
Join Date: Feb 2010
Nature: Quiet
the old 8 byte split breaks everything that isnt damage calc.

type hold items will not work, hidden power won't work, weather ball won't work, weather won't boost relevant moves, pinch abilities won't work.

the solution is to not use ruby and move on to the emerald patch because it actually works and emerald has everything ruby offers + more.
__________________
Reply With Quote
  #252    
Old May 31st, 2014, 10:05 PM
athill1's Avatar
athill1
 
Join Date: Feb 2012
Age: 18
Gender: Male
Quote:
Originally Posted by Agastya View Post
the old 8 byte split breaks everything that isnt damage calc.

type hold items will not work, hidden power won't work, weather ball won't work, weather won't boost relevant moves, pinch abilities won't work.

the solution is to not use ruby and move on to the emerald patch because it actually works and emerald has everything ruby offers + more.
So both Emerald and FR have a flawless physical/special split and one should use those...
__________________
Reply With Quote
  #253    
Old June 1st, 2014, 12:57 AM
Agastya's Avatar
Agastya
Grinding failed. Item Grind level dropped by 3.
 
Join Date: Feb 2010
Nature: Quiet
yes.

the fact it's on emerald at all is a miracle. we really need to move on from ruby already.
__________________
Reply With Quote
  #254    
Old June 9th, 2014, 08:33 PM
RaileysXerilyasRX's Avatar
RaileysXerilyasRX
The Battlefield is Ready
 
Join Date: Feb 2014
Location: Philippines
Gender: Male
Nature: Adamant
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.
__________________
RaileysXerilyasRX
"Light is one peaceful thing. Darkness is one dangerous thing. However, many fears from the darkness. The reality is everyone has his or her own darkness. You cannot have the light without the darkness. The good thing why the darkness is in you: It is because the darkness wants you to control it."
Pokémon Twilight Version
ONGOING! - BETA 1 Release: October 31, 2014

Last edited by RaileysXerilyasRX; 4 Weeks Ago at 07:55 PM. Reason: Inserted a step for those who can't do ASM
Reply With Quote
  #255    
Old 4 Weeks Ago, 03:12 PM
Uikri's Avatar
Uikri
 
Join Date: May 2013
Gender: Male
Is there a more up-to-date patch from DoesntKnowHowToPlay for both Fire Red and Emerald, or should I be good with the ones I have [EM1.4 & FR1.5]? How do I implement the icons [I have no idea how to use ASM code.]?

Last edited by Uikri; 4 Weeks Ago at 02:43 PM.
Reply With Quote
  #256    
Old 4 Weeks Ago, 04:34 PM
Shufflejoy's Avatar
Shufflejoy
♀ not ♂
 
Join Date: Sep 2013
Location: Iowa
Gender: Female
Nature: Timid
Quote:
Originally Posted by RaileysXerilyasRX View Post
Attention! For those who can't get on Tlachtli's Phys/Spec/Stat Icon in Emerald, now, listen here:

*snipped for brevity*

I hope this helps for those who can't make it at the first. It works well, trust me. :)
I can confirm that this is working. Awesome, thanks a lot Raileys!
Reply With Quote
  #257    
Old 4 Weeks Ago, 06:08 PM
Uikri's Avatar
Uikri
 
Join Date: May 2013
Gender: Male
Quote:
Originally Posted by Shufflejoy View Post
I can confirm that this is working. Awesome, thanks a lot Raileys!
I know you weren't talking to me, but you seem to know how to get the icons to work. How do I do that? I don't know what is meant by "insert ASM". Could you explain, please?
Reply With Quote
  #258    
Old 4 Weeks Ago, 07:41 PM
RaileysXerilyasRX's Avatar
RaileysXerilyasRX
The Battlefield is Ready
 
Join Date: Feb 2014
Location: Philippines
Gender: Male
Nature: Adamant
Quote:
Originally Posted by Shufflejoy View Post
I can confirm that this is working. Awesome, thanks a lot Raileys!
Your welcome. I'm glad that I helped.

---

Quote:
Originally Posted by Uikri View Post
I know you weren't talking to me, but you seem to know how to get the icons to work. How do I do that? I don't know what is meant by "insert ASM". Could you explain, please?
Oh, sorry about that. I haven't been busy checking this thread. (I hope you recognize this now) Hmm... if you can't do the ASM, but can you do HEX EDITING, right? Read the revised steps again and Step 2B will help you a lot.
__________________
RaileysXerilyasRX
"Light is one peaceful thing. Darkness is one dangerous thing. However, many fears from the darkness. The reality is everyone has his or her own darkness. You cannot have the light without the darkness. The good thing why the darkness is in you: It is because the darkness wants you to control it."
Pokémon Twilight Version
ONGOING! - BETA 1 Release: October 31, 2014

Last edited by RaileysXerilyasRX; 4 Weeks Ago at 07:53 PM. Reason: no consecutive posts... that's a rule here.
Reply With Quote
  #259    
Old 4 Weeks Ago, 08:05 PM
Uikri's Avatar
Uikri
 
Join Date: May 2013
Gender: Male
Quote:
Originally Posted by RaileysXerilyasRX View Post
Oh, sorry about that. I haven't been busy checking this thread. (I hope you recognize this now) Hmm... if you can't do the ASM, but can you do HEX EDITING, right? Read the revised steps again and Step 2B will help you a lot.

Well, how do I do ASM? Like, what tools do I need and what steps, if that's okay?

Last edited by Uikri; 4 Weeks Ago at 08:18 PM.
Reply With Quote
  #260    
Old 4 Weeks Ago, 08:13 PM
RaileysXerilyasRX's Avatar
RaileysXerilyasRX
The Battlefield is Ready
 
Join Date: Feb 2014
Location: Philippines
Gender: Male
Nature: Adamant
Quote:
Originally Posted by Uikri View Post
Well, how do I do ASM? Like, what tools do I need and what steps, if that's okay?
I was also having no idea about ASM at the first. Well, the link below will help you. The download links for the tools of ASM you've been looking for are also in there. Say a thanks to karatekid552.
http://www.pokemonhackersonline.com/...itor-Assembler
__________________
RaileysXerilyasRX
"Light is one peaceful thing. Darkness is one dangerous thing. However, many fears from the darkness. The reality is everyone has his or her own darkness. You cannot have the light without the darkness. The good thing why the darkness is in you: It is because the darkness wants you to control it."
Pokémon Twilight Version
ONGOING! - BETA 1 Release: October 31, 2014
Reply With Quote
  #261    
Old 4 Weeks Ago, 09:26 PM
Shufflejoy's Avatar
Shufflejoy
♀ not ♂
 
Join Date: Sep 2013
Location: Iowa
Gender: Female
Nature: Timid
Quote:
Originally Posted by Uikri View Post
I know you weren't talking to me, but you seem to know how to get the icons to work. How do I do that? I don't know what is meant by "insert ASM". Could you explain, please?
Here's an IPS patch that applies version 1.4 of the Emerald patch, has all of the moves set to the correct Physical/Special/Status byte, and has the icons installed and working. Warning: I didn't take note of where I inserted the image or the ASM, so back up your game first.
Attached Files
File Type: ips Physical Special Split.ips‎ (2.9 KB, 55 views) (Save to Dropbox)

Last edited by Shufflejoy; 4 Weeks Ago at 03:23 AM.
Reply With Quote
  #262    
Old 4 Weeks Ago, 01:05 AM
Uikri's Avatar
Uikri
 
Join Date: May 2013
Gender: Male
Quote:
Originally Posted by Shufflejoy View Post
Here's an IPS patch that applies version 1.4 of the patch, has all of the moves set to the correct Physical/Special/Status byte, and has the icons installed and working. Warning: I didn't take note of where I inserted the image or the ASM, so back up your game first.

Thank you! With this I will be one step closer to my ideal experience! Which version is it for, though? FR or Emerald?

Last edited by Uikri; 4 Weeks Ago at 01:29 AM.
Reply With Quote
  #263    
Old 4 Weeks Ago, 03:24 AM
Shufflejoy's Avatar
Shufflejoy
♀ not ♂
 
Join Date: Sep 2013
Location: Iowa
Gender: Female
Nature: Timid
Quote:
Originally Posted by Uikri View Post

Thank you! With this I will be one step closer to my ideal experience! Which version is it for, though? FR or Emerald?
Emerald. I have edited my initial post with this information. I thought it would be obvious since the icon post I was replying to was specifically for Emerald.
Reply With Quote
  #264    
Old 3 Weeks Ago, 09:05 AM
Uikri's Avatar
Uikri
 
Join Date: May 2013
Gender: Male
Quote:
Originally Posted by Shufflejoy View Post
Emerald. I have edited my initial post with this information. I thought it would be obvious since the icon post I was replying to was specifically for Emerald.
Sorry about that.I've been coming on during some pretty crazy times, so sometsometimes I'm on when I'm tired. Thank you again, and would you possibly have a patch for Fire Red, as well? I never got to play FR/LG back when they came out so I'm currently tweaking a copy of FR to my liking.
Reply With Quote
  #265    
Old 1 Week Ago, 09:38 PM
Tlachtli's Avatar
Tlachtli
Crit happens.
 
Join Date: Jan 2012
Location: Faraway place
Age: 23
Gender: Male
Nature: Modest
EDIT: Redacted. Turns out the bug was caused by something else.
Attached Files
File Type: avi Castform Transform.avi‎ (5.77 MB, 15 views) (Save to Dropbox)
__________________
Pokemon Sigma Σmerald (alpha 1):

A Gen 3 remake de-make, featuring many Gen VI mechanics

Last edited by Tlachtli; 1 Week Ago at 10:21 AM.
Reply With Quote
  #266    
Old 1 Week Ago, 04:48 PM
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay
some loser
 
Join Date: Jan 2012
Are you getting this on a clean ROM? I'm able to duplicate this on a friend's Emerald hack if I put Forecast back on Castform's slot, but not on a clean Emerald ROM that just has the split.
__________________

Yet Another Fire Red Hack

Physical/Special Split
Reply With Quote
  #267    
Old 1 Week Ago, 07:28 PM
Tlachtli's Avatar
Tlachtli
Crit happens.
 
Join Date: Jan 2012
Location: Faraway place
Age: 23
Gender: Male
Nature: Modest
Quote:
Originally Posted by DoesntKnowHowToPlay View Post
Are you getting this on a clean ROM? I'm able to duplicate this on a friend's Emerald hack if I put Forecast back on Castform's slot, but not on a clean Emerald ROM that just has the split.
Well sure enough, patching a clean rom didn't reproduce it. Haven't really played with Castform much so I hadn't noticed it until now. Seemed like the most likely cause to me (haven't messed around with weather at all myself, so seems like the only place it could have come from).

Out of curiosity and idea what caused it to happen in your friend's hack? Might help me diagnose mine.
__________________
Pokemon Sigma Σmerald (alpha 1):

A Gen 3 remake de-make, featuring many Gen VI mechanics
Reply With Quote
  #268    
Old 1 Week Ago, 08:28 PM
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay
some loser
 
Join Date: Jan 2012
I have no clue. I do know there's a battle scripting command that does stuff with Castform, and would be inclined to look into that, but his hack does very little with custom battle scripts and nothing with abilities so I'm quite confused as to how it emerged there as well.
__________________

Yet Another Fire Red Hack

Physical/Special Split
Reply With Quote
  #269    
Old 1 Week Ago, 10:20 AM
Tlachtli's Avatar
Tlachtli
Crit happens.
 
Join Date: Jan 2012
Location: Faraway place
Age: 23
Gender: Male
Nature: Modest
Quote:
Originally Posted by DoesntKnowHowToPlay View Post
I have no clue. I do know there's a battle scripting command that does stuff with Castform, and would be inclined to look into that, but his hack does very little with custom battle scripts and nothing with abilities so I'm quite confused as to how it emerged there as well.
After spending most of the morning on this, I've figured it out: Castform doesn't like being ???-type (or anything other than Normal for that matter).

When I added Fairy to my game, I did it by moving Normal over to what used to be ???-type. I think Castform is failing a "is Castform Normal" check somewhere, which is causing him to transform. Now I just need to find where said check might be, and change the type byte it's comparing to.

EDIT: Found a way to fix it. For anyone else having this problem, see my post here.
__________________
Pokemon Sigma Σmerald (alpha 1):

A Gen 3 remake de-make, featuring many Gen VI mechanics

Last edited by Tlachtli; 1 Week Ago at 01:30 PM. Reason: Fixed it
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 06:36 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.