Go Back   The PokéCommunity Forums > ROM Hacking > ROM Hacking Hub

Notices
For all updates, view the main page.

ROM Hacking Hub General discussions about ROM Hacking and Emulation. Not sure where to start? This is the place for you.
Posting links to ROMs is illegal and is not tolerated anywhere on the forum.
New threads in this forum are to be approved by a moderator before they are displayed.



Closed Thread
Click here to go to the first staff post in this thread.  
Thread Tools
  #26101    
Old August 7th, 2013 (07:48 AM).
Branellope's Avatar
Branellope
THIS. IS. SEMPITERNAL.
 
Join Date: Apr 2013
Location: Manchester, England
Age: 19
Gender: Female
Nature: Sassy
Send a message via Skype™ to Branellope
Quote originally posted by gogojjtech:
Find the name of the ??? Type and change it. Then use a program that edits the type effectiveness. I did it manually, but there may be a tool that does it for you.
What did you use for it? I've looked for tools to do that with you see, can't find any.
__________________
Watch this wicked Pokémon Battle, and PM me if you want a battle. Also watch me talking about how I flirted with famous people.
"A good trainer wins despite hinderances" - Serebii
"I can't drown my demons, they know how to swim" - Bring Me The Horizon - Can You Feel My Heart
  #26102    
Old August 7th, 2013 (08:39 AM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by Branellope:
I want to replace ??? type with Fairy type. How would I go about doing that?
NOOO, you don't. ??? is used for eggs and the move Curse. So think. Think before you do.
__________________

Paired with Simba
  #26103    
Old August 7th, 2013 (08:51 AM).
Branellope's Avatar
Branellope
THIS. IS. SEMPITERNAL.
 
Join Date: Apr 2013
Location: Manchester, England
Age: 19
Gender: Female
Nature: Sassy
Send a message via Skype™ to Branellope
Quote originally posted by karatekid552:
NOOO, you don't. ??? is used for eggs and the move Curse. So think. Think before you do.
Bleeehhhh how can I just add a new type?
__________________
Watch this wicked Pokémon Battle, and PM me if you want a battle. Also watch me talking about how I flirted with famous people.
"A good trainer wins despite hinderances" - Serebii
"I can't drown my demons, they know how to swim" - Bring Me The Horizon - Can You Feel My Heart
  #26104    
Old August 7th, 2013 (09:27 AM).
pokefreake's Avatar
pokefreake
 
Join Date: Nov 2012
Gender: Male
Quote originally posted by Branellope:
What did you use for it? I've looked for tools to do that with you see, can't find any.
Here's the tool.
http://www.sendspace.com/file/685yxv
  #26105    
Old August 7th, 2013 (09:59 AM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by Branellope:
Bleeehhhh how can I just add a new type?
Hacking the types with ASM.
__________________

Paired with Simba
  #26106    
Old August 7th, 2013 (03:29 PM).
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay
some loser
 
Join Date: Jan 2012
Quote originally posted by karatekid552:
Hacking the types with ASM.
Do you actually need ASM for that? The type advantages are handled by a (somewhat strange) table somewhere, so you should just be able to change things to types past the normal ones without any ASM. Might have to break a few limiters and you'd obviously have to edit the type graphic, but IIRC there was space for a few freebie types.

(not to mention that if you retype curse and don't have eggs, ??? is perfectly usable as long as you either use the phys/spec split or break all the related checks)

http://www.pokecommunity.com/showthread.php?t=266698 relevant
__________________

Yet Another Fire Red Hack

Physical/Special Split
  #26107    
Old August 7th, 2013 (04:03 PM).
pokefreake's Avatar
pokefreake
 
Join Date: Nov 2012
Gender: Male
Is it possible to add new graphics to unlz gba without replacing them?
  #26108    
Old August 7th, 2013 (05:46 PM).
destinedjagold's Avatar
destinedjagold
Oh Hai Thar~ 'ω'
Community Supporter
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
A simple question: what are the variables which are safe to use in a Ruby ROM?

I am just recently introduced to vars (don't ask), and I created my very first script using vars, but I am not sure what variables are safe to use. :3
__________________
#495 Snivy
Supporter Collab January 2015



  #26109    
Old August 7th, 2013 (05:49 PM).
GoGoJJTech's Avatar
GoGoJJTech
http://GoGoJJTech.com (WIP!)
Community Supporter
 
Join Date: Nov 2012
Location: Earth
Age: 16
Gender: Male
Nature: Quiet
Well DJG, there is no list for Ruby, but maybe deleting certain events that use them can ensure they're free. However, a var can hold a value from 0-65535, so you may only need like two. So just to be safe, vars in the 4000 area. I'm pretty sure 8000 and higher are unsafe or temporary

Pokefreake
Use NSE or in un-lz, import an image, write the import offset, import pal, and don't click automatically fix pointers.
__________________
  #26110    
Old August 7th, 2013 (06:51 PM).
destinedjagold's Avatar
destinedjagold
Oh Hai Thar~ 'ω'
Community Supporter
 
Join Date: May 2007
Location: Philippines
Gender: Male
Nature: Careful
Quote originally posted by gogojjtech:
Well DJG, there is no list for Ruby, but maybe deleting certain events that use them can ensure they're free. However, a var can hold a value from 0-65535, so you may only need like two. So just to be safe, vars in the 4000 area. I'm pretty sure 8000 and higher are unsafe or temporary
Yesh, the very first var I used is 4000, since I based it on Birch's script where he's being chased by a Poochyena.

Thankies for the info, by the way~
__________________
#495 Snivy
Supporter Collab January 2015



  #26111    
Old August 7th, 2013 (08:06 PM).
kearnseyboy6's Avatar
kearnseyboy6
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Hi all, I am new to ASM and it's going pretty well. Here's my code

Quote:
.text
.align 2
.thumb
.thumb_func
.global nature

main:
push {r0-r1, lr} \\lets me work with r0 and r1
ldr r0, .POKE_DATA \\ Loads the address of specified below as a 'word'
ldr r1, [r0] \\ Loads the value of the address into r1 as a 'word'
add r1, r1, #0x1 \\ adds 1 to the word in r1
str r0, [r1] \\ stores the 'word' in r1 to the address in r0.
pop {r0-r1, pc} \\ puts the registers back


.align 2
.POKE_DATA:
.word 0x02024284 \\address of the the PID
Now is their a reason why this doesn't add 1 to the PID? I know its encrypted but I expected a bad egg instead of nothing. 100% sure the script works.
__________________
HOLIDAYING CURRENTLY!!
  #26112    
Old August 7th, 2013 (08:28 PM). Edited August 7th, 2013 by karatekid552.
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by kearnseyboy6:
Hi all, I am new to ASM and it's going pretty well. Here's my code



Now is their a reason why this doesn't add 1 to the PID? I know its encrypted but I expected a bad egg instead of nothing. 100% sure the script works.
Just because it doesn't make a bad egg, doesn't mean it doesn't work. Did you open up the memory viewer at that address and check it before and after? (I haven't read your asm yet, I'm going back now..)

Edit: You made a very common mistake. One sec...

Code:
.text
.align 2
.thumb
.thumb_func
.global nature

main:
push {r0-r1, lr} \\lets me work with r0 and r1
ldr r0, .POKE_DATA \\ Loads the address of specified below as a 'word'
ldr r1, [r0] \\ Loads the value of the address into r1 as a 'word'
add r1, r1, #0x1 \\ adds 1 to the word in r1
str r1, [r0] \\ stores the 'word' in r1 to the address in r0.
pop {r0-r1, pc} \\ puts the registers back 


.align 2
.POKE_DATA:
.word 0x02024284 \\address of the the PID
Str and ldr tend to confuse people.

ldr works like this:

ldr rX, [rH]
<-----------

str works like this:

str rX, [rH]
------------>

Understand? They move in different directions. You load right to left, and store left to right. There are very few commands that work left to right, and str is one of them, which trips people up. Remember, [] signify the data at an address. So, str r0, [r1] would read the PID as a memory address and try and store the address in r0 there. Not good..XD
__________________

Paired with Simba
  #26113    
Old August 7th, 2013 (08:39 PM). Edited August 7th, 2013 by Elaitenstile.
Elaitenstile's Avatar
Elaitenstile
I am legend
 
Join Date: Feb 2013
Send a message via Skype™ to Elaitenstile
Quote originally posted by DoesntKnowHowToPlay:
(not to mention that if you retype curse and don't have eggs, ??? is perfectly usable as long as you either use the phys/spec split or break all the related checks)

http://www.pokecommunity.com/showthread.php?t=266698 relevant
The only problem being I'm positive that the escapade move Struggle is the ??? type. I'm not sure about that but I think so. However Curse is a defensive move so yeah, the re-typing wont effect it

Quote originally posted by destinedjagold:
A simple question: what are the variables which are safe to use in a Ruby ROM?

I am just recently introduced to vars (don't ask), and I created my very first script using vars, but I am not sure what variables are safe to use. :3
You'd be surprised to know that after a certain point (near Fortree I think) the game stats using vars like 0x1, 0x2, 0x3 etc.
__________________
~
  #26114    
Old August 7th, 2013 (08:51 PM). Edited August 7th, 2013 by kearnseyboy6.
kearnseyboy6's Avatar
kearnseyboy6
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Spoiler:
Quote originally posted by karatekid552:
Just because it doesn't make a bad egg, doesn't mean it doesn't work. Did you open up the memory viewer at that address and check it before and after? (I haven't read your asm yet, I'm going back now..)

Edit: You made a very common mistake. One sec...

Code:
.text
.align 2
.thumb
.thumb_func
.global nature

main:
push {r0-r1, lr} \\lets me work with r0 and r1
ldr r0, .POKE_DATA \\ Loads the address of specified below as a 'word'
ldr r1, [r0] \\ Loads the value of the address into r1 as a 'word'
add r1, r1, #0x1 \\ adds 1 to the word in r1
str r1, [r0] \\ stores the 'word' in r1 to the address in r0.
pop {r0-r1, pc} \\ puts the registers back 


.align 2
.POKE_DATA:
.word 0x02024284 \\address of the the PID
Str and ldr tend to confuse people.

ldr works like this:

ldr rX, [rH]
<-----------

str works like this:

str rX, [rH]
------------>

Understand? They move in different directions. You load right to left, and store left to right. There are very few commands that work left to right, and str is one of them, which trips people up. Remember, [] signify the data at an address. So, str r0, [r1] would read the PID as a memory address and try and store the address in r0 there. Not good..XD
Yes it does thanks! Thanks for clearing it up the [] as well, I now understand how values are pulled from an address without moving the address too XD. But are you 100% on the str though? In JPANs doc it quotes thumb assembly doesn't swap the convention unlike other languages:

Quote:
Notice that str, unlike some other assembly languages, is not an inverted form of Ldr. In thumb, both str’s and ldr’s have the same format
I am happy to change my thinking but when I use this code (modifies HP) it works perfectly. I also have memory viewer on auto update too
Spoiler:
.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldrh r0, .POKE_DATA
ldr r1, [r0]
add r0, r0, #0x64
strh r0, [r1]
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x02024287


Sorry KK552, your method worked, I must have understood JPAN wrong. It worked like a charm! I got my bad egg Now to fix the checksum and I will be rolling. Thanks for the push!

Also has anyone edited the PID? Or is it impossible haha!
  #26115    
Old August 7th, 2013 (09:04 PM). Edited August 7th, 2013 by karatekid552.
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by kearnseyboy6:
Yes it does thanks! Thanks for clearing it up the [] as well, I now understand how values are pulled from an address without moving the address too XD. But are you 100% on the str though? In JPANs doc it quotes thumb assembly doesn't swap the convention unlike other languages:



I am happy to change my thinking but when I use this code (modifies HP) it works perfectly. I also have memory viewer on auto update too
Spoiler:
.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldrh r0, .POKE_DATA
ldr r1, [r0]
add r0, r0, #0x64
strh r0, [r1]
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x02024287
What he meant there, was that str and ldr don't look like this:

ldr r1, [r0]
str [r0], r1

see how they are opposites?

~~~~~~~~
Judging from what I know, that code should not work.....
Seeing as how I wrote my own forme change code... I know how str works.....


Edit: what threw me off was the ldrh. That code will work. One sec....


.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldrh r0, .POKE_DATA /*You are loading an address into r0, always load the full thing, not half. Though, it may not make a difference, not a good habit.*/
ldrh r1, [r0] /*load what is at the address .POKE_DATA into r1. Here you are loading a word, shouldn't you be loading a half-word?*/
add r0, r0, #0x64 /*Add 100 to r0, and place on r0. Looks like, we are moving to the next pokemons HP, which is 100 bytes away...*/
strh r0, [r1] /*Store the bottom half of the address of the second pokemon at the random number you loaded from the pokemon data.*/
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x02024287


Creating a correct version now....

Code:
.align 2
.thumb
.thumb_func
.global healthbooster

main:
    push {r0-r1, lr}
    ldr r0, .POKE_DATA
    ldrh r1, [r0]
    add r1, r1, #0x64
    strh r1, [r0]
    pop {r0-r1, pc}


.align 2
.POKE_DATA:
    .word 0x02024287
That should work. I also seriously confused myself while correcting the first one. Let me fix that... Fixed.
__________________

Paired with Simba
  #26116    
Old August 7th, 2013 (09:18 PM).
kearnseyboy6's Avatar
kearnseyboy6
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Quote originally posted by karatekid552:
What he meant there, was that str and ldr don't look like this:

ldr r1, [r0]
str [r0], r1

see how they are opposites?

~~~~~~~~
Judging from what I know, that code should not work.....
Seeing as how I wrote my own forme change code... I know how str works.....


Edit: what threw me off was the ldrh. That code will work. One sec....


.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldrh r0, .POKE_DATA /*You are loading an address into r0, always load the full thing, not half. Though, it may not make a difference, not a good habit.*/
ldrh r1, [r0] /*load what is at the address .POKE_DATA into r1. Here you are loading a word, shouldn't you be loading a half-word?*/
add r0, r0, #0x64 /*Add 100 to r0, and place on r0. Looks like, we are moving to the next pokemons HP, which is 100 bytes away...*/
strh r0, [r1] /*Store the bottom half of that address as the new HP on the original first pokemon.*/
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x02024287


So, effectively, you stored the address of the second pokemon as the HP of the first pokemon. Which would have maxed it out.

Creating a correct version now....
Oh god! Sorry this is not my code! I edited it for my new one! This is the original (I know it's not 100% efficient!)

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldr r0, .POKE_DATA
ldr r0, [r0]
ldr r1, .POKE_DATA
add r0, r0, #0x64
strh r0, [r1]
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x020242DC


Thanks for the help!
  #26117    
Old August 7th, 2013 (09:22 PM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by kearnseyboy6:
Oh god! Sorry this is not my code! I edited it for my new one! This is the original (I know it's not 100% efficient!)

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldr r0, .POKE_DATA
ldr r0, [r0]
ldr r1, .POKE_DATA
add r0, r0, #0x64
strh r0, [r1]
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x020242DC


Thanks for the help!

No problem.

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global healthbooster

main:
push {r0-r1, lr}
ldr r0, .POKE_DATA
ldr r0, [r0]
ldr r1, .POKE_DATA <- REALLY IMPORTANTE!!!
add r0, r0, #0x64
strh r0, [r1]
pop {r0-r1, pc}


.align 2
.POKE_DATA:
.word 0x020242DC


Edit: Don't worry about being inefficient. Game freak was SUPER inefficient in their code. When you start looking at the in game code, you will see what I mean.
__________________

Paired with Simba
  #26118    
Old August 7th, 2013 (09:40 PM).
Aethestode's Avatar
Aethestode
Hacker
 
Join Date: Jan 2008
Location: Australia
Gender: Male
Nature: Serious
How to remove the need of Badge to use HM moves outside of battle for Firered?

e.g. I want to remove the need of Soul Badge to use the move, Hm: Surf.
__________________
Hello, my friend created a Youtube Channel that features Pokemon gameplay/strategy and some Lol stuff. It will mean a lot to him and me if you guys can like and subscribe to his channel. Thank you. Here's a link to his channel.

https://www.youtube.com/watch?v=ekp-oEFcKU0&list=UUppO2JvMl3_3Ihr1Z_YwMig
https://www.youtube.com/channel/UCppO2JvMl3_3Ihr1Z_YwMig
  #26119    
Old August 7th, 2013 (09:45 PM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by rockmanmegaman:
How to remove the need of Badge to use HM moves outside of battle for Firered?

e.g. I want to remove the need of Soul Badge to use the move, Hm: Surf.
Find the scripts, remove the check flag.
__________________

Paired with Simba
  #26120    
Old August 7th, 2013 (09:59 PM).
Aethestode's Avatar
Aethestode
Hacker
 
Join Date: Jan 2008
Location: Australia
Gender: Male
Nature: Serious
Quote originally posted by karatekid552:
Find the scripts, remove the check flag.
That's the thing. If i remove the checkflag, it'll set the badge on. I don't want that. I want the player to be able to use the HM freely without the need of the badges.
  #26121    
Old August 7th, 2013 (10:09 PM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by rockmanmegaman:
That's the thing. If i remove the checkflag, it'll set the badge on. I don't want that. I want the player to be able to use the HM freely without the need of the badges.
No, not that script. The script that is called when you want to use an HM. It has a check flag, that needs to be removed. If it doesn't check the flag, it will just move through without the need of a badge. You are like the 500th person to ask that on this thread.
__________________

Paired with Simba
  #26122    
Old August 8th, 2013 (04:41 AM).
AtecainCorp.'s Avatar
AtecainCorp.
Rejishan awake...
 
Join Date: Jun 2008
Location: Takoabe Town (Region Thonsu)
Age: 22
Gender: Male
Nature: Hardy
Two questions about Pokemon Ruby.

1. It is possible to add more types without repleacing existing Types? <I need to add 3 types>
- If it was possible... How to edit their effectivnese.

2. How add new Voicegroup to Pokemon Ruby? I want add to my hack something like GB PLAYER. And I need to inster GBC Soundfonts.
__________________
- Thonsu Region will never die when Rejishan take care about them. Even the evilnesse of Team Mystic do not destroy land of Thonsu.

POKEMON DIRTY SUN - Comming Soon.
POKEMON RUBY RENEV - http://www.pokecommunity.com/showthread.php?t=341964

In case of any Questions... Go HERE
  #26123    
Old August 8th, 2013 (05:10 AM). Edited August 8th, 2013 by Wobbu.
Wobbu's Avatar
Wobbu
Silt Sunrise
 
Join Date: Mar 2012
Location: Vvardenfell
Gender: Male
Nature: Relaxed
Quote originally posted by Ksiazek Bartlomiej:
Two questions about Pokemon Ruby.

1. It is possible to add more types without repleacing existing Types? <I need to add 3 types>
- If it was possible... How to edit their effectivnese.

2. How add new Voicegroup to Pokemon Ruby? I want add to my hack something like GB PLAYER. And I need to inster GBC Soundfonts.
1. A couple pages earlier in this thread there was a discussion about adding types.

2. Using a hex editor, find 0x600 free bytes, then write 00 3C 00 00 00 00 00 08 00 00 00 00 to the free space 128 times (I recommend using a fill selection feature). This would be the setup for a single sample instrument. Fortunately, Sappy can change the setup for you if you have a multi sample instrument.

I'd rather not go too in-depth because gogojjtech has explained this: http://www.pokecommunity.com/showthread.php?t=301027

Fortunately for you, Ruby already has the GBC 'soundfonts.' They're called squares, waves, and noises, and can be created with Sappy.
__________________
  #26124    
Old August 8th, 2013 (06:27 AM).
karatekid552's Avatar
karatekid552
What happens if I push it?....
 
Join Date: Nov 2012
Location: Do you really want to know? Really?
Gender: Male
Nature: Bold
Send a message via AIM to karatekid552 Send a message via Windows Live Messenger to karatekid552 Send a message via Skype™ to karatekid552
Quote originally posted by Ksiazek Bartlomiej:
Two questions about Pokemon Ruby.

1. It is possible to add more types without repleacing existing Types? <I need to add 3 types>
- If it was possible... How to edit their effectivnese.
Stop asking questions like these. You know that in order to increase limits and add more, it will require a little bit of ASM, even if it is just following the loading routine and increasing the limits. However, you adamantly refuse to learn even the most basic of ASM. Instead hounding us for a different answer, which there is none.
__________________

Paired with Simba
  #26125    
Old August 8th, 2013 (01:53 PM).
Alice's Avatar
Alice
(>^.(>0.0)>
Community Supporter
 
Join Date: Mar 2009
Location: Oregon
Age: 23
Gender: Female
Nature: Careful
Send a message via Skype™ to Alice
So this is weird... the name of routes/towns/etc only display in the starter town, and nowhere else. Any idea why that's happening? I have it set to show name of course.
Closed Thread
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:35 PM.