Binary Hack Research & DevelopmentGot a well-founded knack with your binary Pokémon hacks? Love reverse-engineering them? For the traditional Pokémon ROM hacker, 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!
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:
*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.
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. :)
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.]?
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?
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
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.
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?
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.
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?
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.
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.
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.
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:
(now under management by DraconianWing)
A Gen 3 remake de-make, featuring many new encounters and Gen VI mechanics
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.
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:
(now under management by DraconianWing)
A Gen 3 remake de-make, featuring many new encounters and Gen VI mechanics
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:
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
If you have to make it physical/special yourself, what does this even do?
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.
This is a great hack. One thing to note though, is that it doesn't work with animations.
Basically if you move from one Pokemon's status screen to another status screen directly (through scrolling with the up and down arrow keys) it'll cause a buggy version of the PSS icons to appear over the Pokemon when you select a move. What I mean by this, is that it is cut in half over the Pokemon's sprite using the palette of the Pokemon (last few colours).
If you leave the screen after viewing the moves (by clicking B) and then going to another Pokemon, this glitch does not occur.
Rather interesting. I imagine it has something to do with the way animations are loaded a second time, probably an overlapping variable/raw.
I am personally not really an Emerald hacker so I don't really know where to look, but I'll try some debugging at some point in the future.
This is a great hack. One thing to note though, is that it doesn't work with animations.
Basically if you move from one Pokemon's status screen to another status screen directly (through scrolling with the up and down arrow keys) it'll cause a buggy version of the PSS icons to appear over the Pokemon when you select a move. What I mean by this, is that it is cut in half over the Pokemon's sprite using the palette of the Pokemon (last few colours).
If you leave the screen after viewing the moves (by clicking B) and then going to another Pokemon, this glitch does not occur.
Rather interesting. I imagine it has something to do with the way animations are loaded a second time, probably an overlapping variable/raw.
I am personally not really an Emerald hacker so I don't really know where to look, but I'll try some debugging at some point in the future.
Hmm... but it worked fine to me:
I also tried the scrolling part with two smaller Pokemon. It doesn't appear any problem to me actually. Maybe something's wrong while you make this hack.
I also tried the scrolling part with two smaller Pokemon. It doesn't appear any problem to me actually. Maybe something's wrong while you make this hack.
Interesting! Let me double check my implementation!
Thanks for showing me that.
EDIT: Seems to be with my implementation of the Fairy-type!
If the byte at 61CFC1 is above 17 it causes this glitch.
Interesting! Let me double check my implementation!
Thanks for showing me that.
EDIT: Seems to be with my implementation of the Fairy-type!
If the byte at 61CFC1 is above 17 it causes this glitch.
The Emerald Fairy patch really buggy and it already includes the split viewer. So anyways, (this might be off topic so bear with it) I tried manually add the Fairy type in Emerald without replacing any (I added the icon after the Dark and the 5 contest types). It glitched afterwards, why so? Have you tried adding the Fairy type manually and carefully? If so and very successful, please teach me dude. :)
The Emerald Fairy patch really buggy and it already includes the split viewer. So anyways, (this might be off topic so bear with it) I tried manually add the Fairy type in Emerald without replacing any (I added the icon after the Dark and the 5 contest types). It glitched afterwards, why so? Have you tried adding the Fairy type manually and carefully? If so and very successful, please teach me dude. :)
I'm not using the Fairy type patch... at all.
As I mentioned I expanded it myself without replacing. The only problem is, again as I mentioned the limiter for the type icons at 61CFC1 affects the PSS Icons. If it is 17 then its fine, but you don't get the Fairy-type, if it's 18, then you get the bug I mentioned before. I believe it's not just a limiter, but also an OAM co-ordinate, so I'm just going to find a location where it doesn't overlap.
I'm not using the Fairy type patch... at all.
As I mentioned I expanded it myself without replacing. The only problem is, again as I mentioned the limiter for the type icons at 61CFC1 affects the PSS Icons. If it is 17 then its fine, but you don't get the Fairy-type, if it's 18, then you get the bug I mentioned before. I believe it's not just a limiter, but also an OAM co-ordinate, so I'm just going to find a location where it doesn't overlap.
EDIT: 30 seems to work.
Ahh... alright. I will try that later... but... "30" really works? So like, if it is 30 (hex), I can have 48 types (26 new) in game. LOL Haha! Thanks dude.
Hello, I have a little problem.
I did it on a clean emerald rom and it worked.
But i try to do it with my rom which has extended moves and it fails.
The game run without problem until I go to Pokemon-Summary-Battle Moves and I press A.
With VBA 1.8 I have this error message "Unsupported BIOS function 44 called from 0880043e0. A BIOS file is needed in order to get correct behaviour."
Then it reset the game. With other emulators, it is just reseting.
(I'm sure it is not a BIOS problem)
In all cases, thank you for this helpful tuto !
Édit : I didn't see where the mistakes were. So I restarted from the begining and it seams working. :)