Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Reload this Page Quick Research & Development Thread

Notices
For all updates, view the main page.

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
 
Thread Tools
  #526    
Old July 25th, 2014 (11:29 PM).
Alisa180 Alisa180 is offline
 
Join Date: May 2014
Gender: Female
Posts: 48
After several days of digging through and fiddling with the mugshot routine, I managed to produce THIS:



I got this by replacing 0F 48 at offset 080838B2 with 00 00. This confirms for me that the routine cuts the sprites in half before re-sizing them. The sprites are tilted oddly enough, but I can work with it if I have to.
Reply With Quote
  #527    
Old July 27th, 2014 (08:04 PM).
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
Hate to be "that guy," but does anyone know the offset for the wailmer (I think it is) in Emerald that the player surfs on? I tried looking around in NSE, around the OW area, and couldn't find it. However in VBA in the OAM viewer it was there. Sorry if this is the wrong place.
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #528    
Old July 28th, 2014 (01:45 AM).
Windsong Windsong is offline
—the dream is dead
 
Join Date: Dec 2007
Location: Germany
Age: 22
Gender: Male
Nature: Quiet
Posts: 30
Quote originally posted by Dark Sneasel:
Hate to be "that guy," but does anyone know the offset for the wailmer (I think it is) in Emerald that the player surfs on? I tried looking around in NSE, around the OW area, and couldn't find it. However in VBA in the OAM viewer it was there. Sorry if this is the wrong place.
This one? You can find it at 004F5498~

__________________
あなたがいつか消えて行くの?
working on something
Reply With Quote
  #529    
Old July 29th, 2014 (11:06 AM).
daniilS's Avatar
daniilS daniilS is offline
busy trying to do stuff not done yet
 
Join Date: Aug 2013
Age: 15
Gender: Male
Posts: 343
Applymovement 0x9F in FireRed makes the character look left and right. I haven't seen this before, so maybe it's interesting to know.
__________________
Reply With Quote
  #530    
Old July 29th, 2014 (11:32 AM). Edited July 31st, 2014 by Dark Sneasel.
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
Trying out some movements in Emerald because I have nothing better to do

0x4F - Player runs in place, facing down doesn't seem to stop, even with 0xFE after.
0x50 -0x53 - nothing.
0x5A and 0x5B -player faces up, 0xFE doesn't cancel the effects
0x5e - After it finishes when you walk right, it uses the walk left sprite.
0x68 - same as 0x4F
0x69 - same, but runs facing up instead
0x6A - same, but runs facing left instead
0x6B - same, but runs facing right instead
0x6C - seems to be walking in place, facing down
0x6D - seems to be walking in place, facing up
0x6E - seems to be walking in place, facing left
0x6F - seems to be walking in place, facing right
0x9B - player starts flying and does something cool http://imgur.com/qhLqOel

EDIT: I forgot to add another applymovement, my bad. 0x5F cancels the effect of 0x5E.
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #531    
Old July 31st, 2014 (02:47 AM). Edited August 1st, 2014 by daniilS.
daniilS's Avatar
daniilS daniilS is offline
busy trying to do stuff not done yet
 
Join Date: Aug 2013
Age: 15
Gender: Male
Posts: 343
Here's a preview of the stuff in my upcoming Movement Documentation:
A piece of asm that makes you run-jump off ledges if B is pressed and you are not on a bike. It just annoyed me that when you were running you would still walk-jump off them, so I came up with a fix.

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

main:
	push {r4, lr}
	mov r4, r0
	mov r0, #0xA
	bl +0x16090
	mov r0, r4
	bl +0x7ED4
	ldr r1, buttonz
	ldrb r1, [r1]
	mov r4, #0x2
	and r1, r4
	beq next
	ldr r1, walkrun
	ldrb r1, [r1]
	cmp r1, #0x2
	beq next
	add r0, #0x70
next:
	mov r1, #0x8
	bl -0x218
	pop {r4, pc}

.align 2
buttonz:	.word 0x0300311C
walkrun:	.word 0x02037078

/*insert at 0805C23C*/
EDIT: fixed a typo.
__________________
Reply With Quote
  #532    
Old August 1st, 2014 (07:05 PM).
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
Not sure if this could be of use to anyone, but I found this in emerald. sadly, it has no checkflag, I was trying to find a way to make you be able to use surf without the badge, but then again, maybe this could be useful to someone?

'---------------
#org 0x271EA0
checkattack 0x39
compare LASTRESULT 0x6
if 0x1 goto 0x8271ED6
bufferpartypokemon 0x0 LASTRESULT
setanimation 0x0 LASTRESULT
lockall
msgbox 0x8272FD6 MSG_YESNO '"The water is dyed a deep blue[.]\n..."
compare LASTRESULT 0x0
if 0x1 goto 0x8271ED5
msgbox 0x827300D MSG_KEEPOPEN '"[buffer1] used SURF!"
doanimation 0x9
releaseall
end

'---------------
#org 0x271ED6
end

'---------------
#org 0x271ED5
releaseall
end


'---------
' Strings
'---------
#org 0x272FD6
= The water is dyed a deep blue[.]\nWould you like to SURF?

#org 0x27300D
= [buffer1] used SURF!
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #533    
Old August 3rd, 2014 (02:06 PM).
DJTiki's Avatar
DJTiki DJTiki is offline
Just Some Average Anthropomorphic Gallade
 
Join Date: Mar 2014
Location: On The Edge of Tommorow
Gender: Male
Nature: Adamant
Posts: 1,058
Send a message via Skype™ to DJTiki
So I want to implement a feature, which has a ZERO requirement for HM's. Of course, I wanted the things like Surf, Cut, etc. to still be available, at least in the overworld. I do believe that Pokémon, uses a something of a "check move" command, to initate the HM Overworld Exploring process. But since, we are removing HM's, what about a TM/HM Compatibility Check, to see if it could learn the moves, rather than if it haves the HM. It makes more sense that Pokémon can use HM's without their moves. All Water Pokémon can use Surf and Waterfall, not even having to use the HM's given.

The dynamic offsets for the TMHM Compatibilty Table follows as so:
BPRE(Fire Red)- 43C68
AXVE(Ruby)- 403B0
BPEE(Emerald)- 6E048

I'm pretty sure that is absolutely useless, but wanted to post something other than my ideas. I may start looking over Move Tutors, since they need to look into TMHM Compatibilty to teach moves. I'll edit this post with future findings.
__________________
Links For All The Things:
DJTiKi's Guide To Planning Your Awesome ROM Hack! Planning For Dummies
The Idea Exchange Thread- Inspiring Bigger Things!
A (Very) Short Dictionary To ROM Hacking Lingo!
Reply With Quote
  #534    
Old August 3rd, 2014 (02:25 PM). Edited August 3rd, 2014 by Deokishisu.
Deokishisu's Avatar
Deokishisu Deokishisu is offline
Mr. Magius
 
Join Date: Feb 2006
Location: If I'm online, it's a safe bet I'm at a computer.
Gender: Male
Nature: Relaxed
Posts: 458
Quote originally posted by DJTiKi:
So I want to implement a feature, which has a ZERO requirement for HM's. Of course, I wanted the things like Surf, Cut, etc. to still be available, at least in the overworld. I do believe that Pokémon, uses a something of a "check move" command, to initate the HM Overworld Exploring process. But since, we are removing HM's, what about a TM/HM Compatibility Check, to see if it could learn the moves, rather than if it haves the HM. It makes more sense that Pokémon can use HM's without their moves. All Water Pokémon can use Surf and Waterfall, not even having to use the HM's given.

The dynamic offsets for the TMHM Compatibilty Table follows as so:
BPRE(Fire Red)- 43C68
AXVE(Ruby)- 403B0
BPEE(Emerald)- 6E048

I'm pretty sure that is absolutely useless, but wanted to post something other than my ideas. I may start looking over Move Tutors, since they need to look into TMHM Compatibilty to teach moves. I'll edit this post with future findings.
I've had something exactly like this implemented in my hack for quite some time, where if a Pokemon is capable of learning a HM, it can use it in the field. I just did it the lazy way and scripted cut trees/rock smash rocks/surf script/etc. to check your party for a list of pokemon compatible with the moves. It will prefer Pokemon that know the move before choosing one that doesn't but can learn. It's inelegant, and lazy, but it works and is indistinguishable graphically from using HM moves in the field normally. I haven't come up with a solution for Fly, and since I'm on the fence about including it as a field move, I've not really tried. Ideally, the option for Fly in the party menu would appear after obtaining the badge and its HM, as that would be conceivably the earliest the player would be able to use it if they're not trading. But, that begs the question, do teleport and dig get the same treatment? Would having them available at no cost with a Pokemon that can learn it in your party make the game too easy?

EDIT: I suppose if you were really lazy, you could have the person that gives you Fly give you a Flight Map key item, or something, that checks the party for a Pokemon capable of using Fly before callasm-ing the flight map and letting you select a location.
Reply With Quote
  #535    
Old August 3rd, 2014 (02:42 PM).
DJTiki's Avatar
DJTiki DJTiki is offline
Just Some Average Anthropomorphic Gallade
 
Join Date: Mar 2014
Location: On The Edge of Tommorow
Gender: Male
Nature: Adamant
Posts: 1,058
Send a message via Skype™ to DJTiki
Quote originally posted by Deokishisu:
I've had something exactly like this implemented in my hack for quite some time, where if a Pokemon is capable of learning a HM, it can use it in the field. I just did it the lazy way and scripted cut trees/rock smash rocks/surf script/etc. to check your party for a list of pokemon compatible with the moves. It will prefer Pokemon that know the move before choosing one that doesn't but can learn. It's inelegant, and lazy, but it works and is indistinguishable graphically from using HM moves in the field normally. I haven't come up with a solution for Fly, and since I'm on the fence about including it as a field move, I've not really tried. Ideally, the option for Fly in the party menu would appear after obtaining the badge and its HM, as that would be conceivably the earliest the player would be able to use it if they're not trading. But, that begs the question, do teleport and dig get the same treatment? Would having them available at no cost with a Pokemon that can learn it in your party make the game too easy?
The usage of Fly, would be a tough one. The main problem with this is the limitations, bound by Badges. I belive there is ASM, for turning the HM's to TM's, so I'd use that. So maybe, if we remove the option for badge orientated limitations, then this could be looked around. Funny you say that, about the scripts, because I thought of the same thing. xD

In terms of making the game easier. In my game, having the access to Dig and Teleport, wouldn't make much of a deference. But if we are talking hacks as a whole, it would make it easier. But that means, the player can focus more on the design aspects of the region, without worrying about placing many barriers. Also another issue, may be that you can go anywhere. Being how, most progression barriers, are HM overworld limits. So this is more of an implematation, more focused to an open setting, than a linear one. So yes, it would definetly make an 8 badge journey hacks, more easier. But it's also a convience to hackers, making more open-orientated game, like me , who would love a feature like this, as both a player and hacker,
__________________
Links For All The Things:
DJTiKi's Guide To Planning Your Awesome ROM Hack! Planning For Dummies
The Idea Exchange Thread- Inspiring Bigger Things!
A (Very) Short Dictionary To ROM Hacking Lingo!
Reply With Quote
  #536    
Old August 3rd, 2014 (11:15 PM).
daniilS's Avatar
daniilS daniilS is offline
busy trying to do stuff not done yet
 
Join Date: Aug 2013
Age: 15
Gender: Male
Posts: 343
I'd rather go with a type check. So you'd need a grass or bug type for cut, a fighting type for rock smash, a flying type for fly, and so on.
__________________
Reply With Quote
  #537    
Old August 4th, 2014 (03:22 AM).
Le pug's Avatar
Le pug Le pug is offline
Creator of Pokémon: Discovery
Crystal Tier
 
Join Date: Aug 2013
Location: Le bed
Age: 22
Gender: Male
Nature: Bold
Posts: 610
Alright so me and DarkSneasel were trying to find a way to checkpokemon in your party for events in Emerald...

so I looked at all the different in-game trading scripts and I figured out this script:

Spoiler:
#org @event
lock
setvar 0x8008 0x1
copyvar 0x8004 0x8008
special2 LASTRESULT 0xFF
copyvar 0x8009 LASTRESULT
special 0xA2
waitstate
copyvar 0x800A 0x8004
compare 0x8004 0xFF
if 0x1 goto @noaa
copyvar 0x8005 0x800A
special2 LASTRESULT 0x102
copyvar 0x800B LASTRESULT
comparevars LASTRESULT 0x8009
if 0x1 goto @noaa
msgbox @talk 0x6
release
end

#org @noaa
msgbox @talk3 0x6
release
end

#org @talk3
= YOU HAVE THE VOLBEAT

#org @talk
= You have nothing!


This script won't go through with the script unless you select from your party a volbeat. Here is a video rep of it:
https://www.dropbox.com/s/lb4kj8h1quelcz7/here.AVI

So I noticed that what actually should change it is the 0x8008 var. There are 4 different in-game trading scripts. Check out the difference between three of them:

For volbeat:
Spoiler:
setvar 0x8008 0x0
copyvar 0x8004 0x8008
special2 LASTRESULT 0xFF
copyvar 0x8009 LASTRESULT
msgbox 0x82159E8 MSG_YESNO '"Huh? My POKéMON is cute?\nSure, I ..."
compare LASTRESULT 0x0
if 0x1 goto 0x82159BD
special 0xA2
waitstate
copyvar 0x800A 0x8004
compare 0x8004 0xFF
if 0x1 goto 0x82159BD
copyvar 0x8005 0x800A
special2 LASTRESULT 0x102
copyvar 0x800B LASTRESULT
comparevars LASTRESULT 0x8009
if 0x5 goto 0x82159C7
copyvar 0x8004 0x8008
copyvar 0x8005 0x800A
special 0x100
special 0x101
waitstate
msgbox 0x8215A77 MSG_KEEPOPEN '"Eheheh[.]\nPlease be good to my PO..."
setflag 0x99
release
end


For Ralts:
Spoiler:
setvar 0x8008 0x1
copyvar 0x8004 0x8008
special2 LASTRESULT 0xFF
copyvar 0x8009 LASTRESULT
msgbox 0x821637B MSG_YESNO '"Wrooooaaar! I need it!\nI have to ..."
compare LASTRESULT 0x0
if 0x1 goto 0x821633D
special 0xA2
waitstate
copyvar 0x800A 0x8004
compare 0x8004 0xFF
if 0x1 goto 0x821633D
copyvar 0x8005 0x800A
special2 LASTRESULT 0x102
copyvar 0x800B LASTRESULT
comparevars LASTRESULT 0x8009
if 0x5 goto 0x8216347
copyvar 0x8004 0x8008
copyvar 0x8005 0x800A
special 0x100
special 0x101
waitstate
bufferpokemon 0x0 0x8009
msgbox 0x8216440 MSG_KEEPOPEN '"Oh, yeah, right on!\p[buffer1], we..."
setflag 0x9B
release
end


For Skitty:
Spoiler:
setvar 0x8008 0x3
copyvar 0x8004 0x8008
special2 LASTRESULT 0xFF
copyvar 0x8009 LASTRESULT
msgbox 0x826508D MSG_YESNO '"My POKéMON is a [buffer2].\nDo you..."
compare LASTRESULT 0x0
if 0x1 goto 0x826506B
special 0xA2
waitstate
copyvar 0x800A 0x8004
compare 0x8004 0xFF
if 0x1 goto 0x826506B
copyvar 0x8005 0x800A
special2 LASTRESULT 0x102
copyvar 0x800B LASTRESULT
comparevars LASTRESULT 0x8009
if 0x5 goto 0x8265075
copyvar 0x8004 0x8008
copyvar 0x8005 0x800A
special 0x100
special 0x101
waitstate
msgbox 0x8265128 MSG_KEEPOPEN '"Oh, it's adorable!\nThank you!\lI ..."
setflag 0x9C
release
end


So we're trying to figure out how to make this fully functional so the hacker can change what pokemon it's looking for. I'm pretty sure it's in 0x8008 var. So if anyone has any more clues, it'd be awesome to help out!
__________________







/// Pokémon: Discovery
/// Pokémon: Fat Kid
/// Tile Insertion Tutorial For AdvanceMap
/// Pokémon Emerald Specials Resource Thread
/// Pokémon Emerald Decapitalization Patch
/// Emerald Titlescreen Cloud Removal Tutorial
/// Tutorial For Fixing Any ROM-related Bug
Reply With Quote
  #538    
Old August 4th, 2014 (05:31 AM).
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay DoesntKnowHowToPlay is offline
some loser
 
Join Date: Jan 2012
Posts: 221
Requested mons for trades are in the trade data. The format isn't documented anywhere that I know of, but if you search the ROM for the nicknames/OTs of the traded mons you'll find the structs which contain that, as well as what mons you recieve.

It's almost certainly possible to repoint and expand this, too. If you can figure out what more than five or so of the parts of that table do please write it down, I'm sure a lot of people could put it to use.
__________________

Yet Another Fire Red Hack

Physical/Special Split
Reply With Quote
  #539    
Old August 4th, 2014 (09:11 AM). Edited August 4th, 2014 by Le pug.
Le pug's Avatar
Le pug Le pug is offline
Creator of Pokémon: Discovery
Crystal Tier
 
Join Date: Aug 2013
Location: Le bed
Age: 22
Gender: Male
Nature: Bold
Posts: 610
Quote originally posted by DoesntKnowHowToPlay:
Requested mons for trades are in the trade data. The format isn't documented anywhere that I know of, but if you search the ROM for the nicknames/OTs of the traded mons you'll find the structs which contain that, as well as what mons you recieve.

It's almost certainly possible to repoint and expand this, too. If you can figure out what more than five or so of the parts of that table do please write it down, I'm sure a lot of people could put it to use.
Well I found that DOTS the Ralts is at 338ED0 ... no repoints go to it or any of the following also:
PLUSES the Volbeat at 338F0C and 338F84 for MEOWOW the Meowth

Edit: still researching around ... but I found that at 338F44 is the appropriate "82 01" which is Volbeat's pokemon number. Changed it to 81 01 to see if it would now register to look for Castform and it worked!

edit 2: so i used the program Trader Advanced ... there is an option to add more trades to the game. When I added more and tested to see if the var 8008 would allow the player to search for the pokemon in his party and it worked. So for a checkpokemoninyourparty command all you need:

This script:
Spoiler:
setvar 0x8008 0x(your number from Trader Advance minus one)
copyvar 0x8004 0x8008
special2 LASTRESULT 0xFF
copyvar 0x8009 LASTRESULT
special 0xA2
waitstate
copyvar 0x8005 0x8004
special2 LASTRESULT 0x102
copyvar 0x800B LASTRESULT
comparevars LASTRESULT 0x8009
if 0x1 goto @continuewithscript


and download Trader Advanced and add as many as you want and change what pokemon each number checks for :D

credits go to me for the research... mr_mako helped out by suggesting the program Trader Advanced and of course the maker of T.A. ty for the program
__________________







/// Pokémon: Discovery
/// Pokémon: Fat Kid
/// Tile Insertion Tutorial For AdvanceMap
/// Pokémon Emerald Specials Resource Thread
/// Pokémon Emerald Decapitalization Patch
/// Emerald Titlescreen Cloud Removal Tutorial
/// Tutorial For Fixing Any ROM-related Bug
Reply With Quote
  #540    
Old August 5th, 2014 (01:31 PM). Edited August 6th, 2014 by Dark Sneasel.
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
If anyone ever wants to make a tag battle script in Emerald, here's something that can help you

#dynamic 0xE40000
#org @start
lock
special 0x28
fadescreen 0x1
special 0x2A
waitstate
compare LASTRESULT 0x0
if 0x5 goto @yes
special 0x29
goto @end

#org @yes
special 0xFB
setvar 0x8004 0x2
setvar 0x8005 0x4
special 0xEA
setvar 0x8004 0x8
setvar 0x8005 0x0
special 0xEF
waitstate
setvar 0x8004 0x6
special 0xEA
special 0x29
copyvar 0x8000 LASTRESULT
compare 0x8000 0x1
if 0x1 goto @continue
fadescreen 0x1
special 0xCB
waitstate
goto @continue

#org @end
release
end
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #541    
Old August 6th, 2014 (12:02 PM). Edited August 12th, 2014 by Hopeless Masquerade.
Hopeless Masquerade's Avatar
Hopeless Masquerade Hopeless Masquerade is offline
カミツレ
Silver Tier
 
Join Date: Mar 2010
Location: Nimbasa City
Age: 18
Gender: Female
Nature: Lax
Posts: 1,127

Check/Count a Specific Pokémon Species in the Party (FR/LG/Em)


So I'm not sure if there is a way to do this by scripting in these games, and I saw that trading-style thing post just a few above, but I wrote up a quick bit of ASM code to count the number of a specific species of Pokémon in the party, as a bit of practice for myself, and I thought I would share it.

The reason I wrote is so that it could be mainly used as a checkpartypokemon-like command in a script.

It works for FireRed and LeafGreen with no changes, works for Emerald by performing the changes given, and will probably work with any game as long as you find the matching offsets.

Anyway, here's the ASM for FR/LG:
Code:
.text
.align 2
.thumb
.thumb_func
.global CountPartyPokemonSpecies

main:
	push {r0-r7, lr}
	mov r5, #0x0 @ This means fail
	ldr r6, var
	ldr r7, party_amount
	ldrb r4, [r7] @ Get Pokemon count from r7
	cmp r4, #0x0
	beq exit
	ldrh r3, [r6] @ Get the species to check
	cmp r3, #0x0
	beq exit @ Don't allow Missingno. This doesn't limit the species from going up, though.
	mov r7, #0x0
loop:
	ldr r0, first_pokemon @ Offset of first Pokemon
	mov r1, #0x64 @ Length of Pokemon RAM data
	mul r1, r1, r7 @ r7 holds current index
	add r0, r0, r1
	bl decrypt_poke_species @ Get this specific species.
	mov r9, r0
	pop {r0-r7}
	cmp r9, r3
	bne next
	add r5, r5, #0x1 @ Increase the counter
next:
	add r7, r7, #0x1 @ Increase party index
	cmp r7, r4 @ And compare against the number in the party
	blo loop @ I could use a bls here?
exit:
	str r5, [r6, #0x10] @ Store the result (r5) in r6 (the var -- 0x800D)
	pop {r0-r7, pc} @ Return

decrypt_poke_species:
	push {r0-r7}
	mov r1, #0xB @ This is the index for the Pokemon species.
	ldr r2, decrypt_poke @ Call the Pokemon decryption code
	bx r2
	
.align 2
party_amount:
	.word 0x02024029
first_pokemon:
	.word 0x02024284
var: @ Got this beauty from HackMew.
	.word 0x020270B8 + (0x8004 * 2)
decrypt_poke:
	.word 0x0803FBE9
And to work for Emerald, you need only change the end stuff:
Code:
.align 2
party_amount:
	.word 0x020244E9
first_pokemon:
	.word 0x020244EC
var: @ Got this beauty from HackMew.
	.word 0x020275D8 + (0x8004 * 2)
decrypt_poke:
	.word 0x0806A519
Some of it is based off some stuff from HackMew's Pokemon take away code, so yeah.

And of course, here's a sample script explaining how to use it:
Code:
#dynamic 0x800000

#include stdpoke.rbh

#org @start
lock
faceplayer
bufferpokemon 0x0 PKMN_MAGIKARP
setvar 0x8004 PKMN_MAGIKARP // Change this to the species you want
callasm 0x08XXXXXX // This is the offset of the routine + 1
compare LASTRESULT 0x1 // The count is stored in 0x800D
if B_>= goto @some // It will be 0 if there is none, or 1-6 for the count
msgbox @m1 MSG_KEEPOPEN // It also counts eggs, so yeah...
release
end

#org @some
buffernumber 0x1 LASTRESULT
msgbox @m2 MSG_KEEPOPEN
release
end

#org @m1
= You don't have any [buffer1]!

#org @m2
= Wow! You have [buffer2] [buffer1]!

I hope someone finds this useful, even if for just an example for beginners to learn from.
Enjoy~!

EDIT: I added Emerald, although I didn't test it.
EDIT 2: I tested the Emerald code, and it works.
Reply With Quote
  #542    
Old August 7th, 2014 (09:55 PM).
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
writebytetooffset 0x2 0x2037590 in Emerald makes you go fast (mach bike fast). Thanks kboy6 for helping me find that =).
Anyways, when you use the bike, that's what happens. However, when I do the writebytetooffset 0x2 0x2037590 your speed changes, but not OW. I'm gonna try to figure something out to make the sprite change, once I do, I'll post that here =)
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #543    
Old August 13th, 2014 (05:18 AM).
Hiroshi Sotomura's Avatar
Hiroshi Sotomura Hiroshi Sotomura is online now
Proud Gork
Administrator
CS
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Posts: 15,383
Quote originally posted by Dark Sneasel:
writebytetooffset 0x2 0x2037590 in Emerald makes you go fast (mach bike fast). Thanks kboy6 for helping me find that =).
Anyways, when you use the bike, that's what happens. However, when I do the writebytetooffset 0x2 0x2037590 your speed changes, but not OW. I'm gonna try to figure something out to make the sprite change, once I do, I'll post that here =)
Why not build on this—could this be invoked to speed up bike-riding in FireRed, I wonder? By having this automatically execute in place of how it currently works?

Since it works in Emerald, I imagine the same could be done (to a different offset) in Ruby/Sapphire.

By the way, has anyone figured out exactly how HM badge limits are done?
__________________

Chuckie Finster
Occupation: Student
Likes: Family
Dislikes: Clowns
Reply With Quote
  #544    
Old August 13th, 2014 (05:22 AM).
Magic's Avatar
Magic Magic is offline
キュウコン
Moderator
CS
 
Join Date: Jan 2009
Location: UK
Age: 23
Gender: Male
Posts: 5,316
Quote originally posted by Hiroshi Sotomura:
By the way, has anyone figured out exactly how HM badge limits are done?
I saw this post just yesterday. Should be able to work off the offset given?
__________________
Looking for spriters/pixel artists for a ROM hacking project.
Join in Hack-a-long #1

Moderator of The Roleplay Corner
Reply With Quote
  #545    
Old August 13th, 2014 (05:31 AM).
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
Quote originally posted by Hiroshi Sotomura:
Why not build on this—could this be invoked to speed up bike-riding in FireRed, I wonder? By having this automatically execute in place of how it currently works?

Since it works in Emerald, I imagine the same could be done (to a different offset) in Ruby/Sapphire.

By the way, has anyone figured out exactly how HM badge limits are done?
There is an offset for Fire Red, found by diegoisawesome, I'll get it in a bit. And about your question, are you talking about the ones like rock smash, or the ones like surf, waterfall, etc?
In Emerald, I found the surf script, it had no checkflag 0x(badge) but rather checkattack 0x39(surf) so maybe it's in the movement permission 4?
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #546    
Old August 13th, 2014 (06:23 AM). Edited August 13th, 2014 by Hiroshi Sotomura.
Hiroshi Sotomura's Avatar
Hiroshi Sotomura Hiroshi Sotomura is online now
Proud Gork
Administrator
CS
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Posts: 15,383
Quote originally posted by Magic:
I saw this post just yesterday. Should be able to work off the offset given?
I'm actually looking to change rather than completely remove the HM limits. But I imagine they'd be found at 0x124620, then?
__________________

Chuckie Finster
Occupation: Student
Likes: Family
Dislikes: Clowns
Reply With Quote
  #547    
Old August 13th, 2014 (07:30 AM).
Magic's Avatar
Magic Magic is offline
キュウコン
Moderator
CS
 
Join Date: Jan 2009
Location: UK
Age: 23
Gender: Male
Posts: 5,316
Does anyone know how/why many OW's have default text-colours (red/blue) and how this could be changed?
__________________
Looking for spriters/pixel artists for a ROM hacking project.
Join in Hack-a-long #1

Moderator of The Roleplay Corner
Reply With Quote
  #548    
Old August 13th, 2014 (07:33 AM).
Spherical Ice's Avatar
Spherical Ice Spherical Ice is offline
Moderator
CS
 
Join Date: Nov 2007
Location: UK
Posts: 3,425
Send a message via Skype™ to Spherical Ice
Quote originally posted by Magic:
Does anyone know how/why many OW's have default text-colours (red/blue) and how this could be changed?
This link should help you out.
__________________
Reply With Quote
  #549    
Old August 13th, 2014 (01:54 PM).
Dark Sneasel's Avatar
Dark Sneasel Dark Sneasel is offline
I like being a drone.
Gold Tier
 
Join Date: Jun 2013
Location: Miami, FL
Age: 15
Gender: Male
Nature: Hasty
Posts: 910
So I don't know if this has been done before, but in Emerald I was able to find out how to use surf while controlled by a different flag(in this case I made it the first gym flag)
It was very simple, go to 0x9c81c and replace those two bytes with the reverse hex number.

Here is a video as demonstration. https://www.dropbox.com/s/xmzdo1dc32cyz9c/vid.AVI

However, as of now, it can't be used from the Pokemon menu, gonna try to fix that.

And if anyone wants to do this for FR, I found this by first:
Looked for the hex version of checkattack 0x39 in the rom.
Found the script (surf script), and got the offset.
Made it a pointer, looked for it in the rom, then I noticed that close to it, it had a flag, the fifth gym flag, so as a test I tried to change it to the first gym flag, and it worked ^__^
__________________
Pokémon Fluorite Version (Beta 2 Released)


Join Poketch.com, a new ROM hacking community! Click on the image for more!
Reply With Quote
  #550    
Old August 14th, 2014 (03:45 AM).
Touched's Avatar
Touched Touched is offline
Resident ASMAGICIAN
 
Join Date: Jul 2014
Gender: Male
Posts: 204
Quote originally posted by Dark Sneasel:
So I don't know if this has been done before, but in Emerald I was able to find out how to use surf while controlled by a different flag(in this case I made it the first gym flag)
It was very simple, go to 0x9c81c and replace those two bytes with the reverse hex number.

Here is a video as demonstration. https://www.dropbox.com/s/xmzdo1dc32cyz9c/vid.AVI

However, as of now, it can't be used from the Pokemon menu, gonna try to fix that.

And if anyone wants to do this for FR, I found this by first:
Looked for the hex version of checkattack 0x39 in the rom.
Found the script (surf script), and got the offset.
Made it a pointer, looked for it in the rom, then I noticed that close to it, it had a flag, the fifth gym flag, so as a test I tried to change it to the first gym flag, and it worked ^__^
Haven't tested this, but there is a dword at 0806D59C that is loaded by the surf routine that currently reads 24 08 00 00 (0x824 - fifth gym badge). That's a flag check right there. That might help you with the Pokemon menu issue.
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 UTC -8. The time now is 02:55 AM.