Community

The PokéCommunity

We are still working on a better slogan!

Visit Index



Advertise here

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
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.

Post Reply
 
Thread Tools
  #1    
Old January 27th, 2010, 10:21 AM
Coolboyman's Avatar
Coolboyman
Veteran Hacker
 
Join Date: Sep 2003
Location: The East Bay
Age: 26
Gender: Male
Nature: Bold

Advertise here
Here's a simple thing I did for Prism. It lets you run when you hold B.

First thing's first. When the bike shop owner calls you it's pretty buggy without the correct flags. So lets just disable that.

97BFA:
ld hl,$7BE4 (21 E4 7B) - This will prevent the "bike step count" from working. It will always write 00 to the RAM where it's supposed to add up, so the bike shop owner will never call you.

10000: call $7E66 (CD 66 7E) - This will call the ASM from 13E66 needed to make this work.

13E66:
call $4017 (CD 17 40) - This is what was originally at 10000, to make sure nothing "screws up" we'll just move it here.
ld de,$D682 (11 82 D6) - Loads D682 from the ram into de (which is what determines if Hiro is on the bike or not)
ld c,$04 (0E 04) - Since the RAM uses the same location to check if you are surfing (identified with 04), let's make sure this function does nothing if you are surfing.
ld a,[de] (1A) - Puts the contents of de (D682 in RAM) into a.
sbc a,c (99) - Subtracts c from a
jr z,$7E8B (28 18) - Checks if a is equal to 0. If so, jump ahead 18 bytes which is ret (C9), ending the function. Since a can only equal 0 if it was previous 4, this will only happen if you are surfing.
ld de,$CF29 (11 29 CF) - loads CF29 (indicates what keys are down) into de.
ld a,[de] (1A) - loads the contents of de into a.

Since bit 1 is on if B is down, let's make it so it ignores the other bits. Let me know if there's an eaiser way of doing this, for some reason the other bit commands weren't working for me.

res 0,a (CB 87) - turns bit 0 in a to off (A)
res 2,a (CB 97) - turns bit 2 in a to off (Select)
res 3,a (CB 9F) - turns bit 3 in a to off (Start)
res 4,a (CB A7) - turns bit 4 in a to off (Right)
res 5,a (CB AF) - turns bit 5 in a to off (Left)
res 6,a (CB B7) - turns bit 6 in a to off (Up)
res 7,a (CB BF) - turns bit 7 in a to off (Down)
rcc, a (CB 0F) - shifts the bits in A down 1, changing 2 into 1.
ld de,$D682 (11 82 D6) - loads D682 into de again
ld [de],a (12) - Puts the contents of a into de.
ret (C9)

This will make the game write 01 into D682 if B is held down. If D682 is 01, that will make your characters speed increase. If you use this, just please give me credit. Enjoy.
Check out my Youtube channel. All about ROM Hacks, Indie Games and more!

Brown:


Prism : - Four Gym Summer 2010 Beta available now!

Twitter

Last edited by Coolboyman; January 29th, 2010 at 08:33 PM.
  #2    
Old January 30th, 2010, 10:12 AM
hashtag's Avatar
hashtag
the man in black
 
Join Date: Nov 2008
Location: Salisbury, England
Age: 19
Gender: Male
Wow, no one has replied? This is pretty awesome, CBM. Well done. I'm not sure how many people use it; due to the GBA hacking generation. Nevertheless this is still awesome.
"i am the hero pokécommunity deserves, but not the one it needs right now"

paired with christos
retired rom hacker
please PM me any moderation requests (keep in mind the 24 hour rule)
  #3    
Old January 30th, 2010, 01:21 PM
.com
 
Join Date: Jul 2008
Age: 19
Gender: Male
Send a message via Windows Live Messenger to .com
Quote:
Originally Posted by The Doctor View Post
Wow, no one has replied? This is pretty awesome, CBM. Well done. I'm not sure how many people use it; due to the GBA hacking generation. Nevertheless this is still awesome.
This pretty sums up what I would've posted lol.
  #4    
Old January 30th, 2010, 04:19 PM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
Thank you very much for posting this, this should come in very handy for a project I am still working on. Great job.
  #5    
Old February 2nd, 2010, 07:16 PM
Team Rocket's Raichu
Bye-Bye!
 
Join Date: Mar 2009
Age: 19
Quote:
Originally Posted by Melash View Post
Thank you very much for posting this, this should come in very handy for a project I am still working on. Great job.
I thought you said on Skeentendo you had canceled it or put it on hiatus or something like that.

Well anyway. Nice thing you made there CBM. Might just do this for a crystal game anyway.

I'm a supermod of that forum.

I've left, bye PC.
  #6    
Old February 2nd, 2010, 09:48 PM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by Team Rocket's Raichu View Post
I thought you said on Skeentendo you had canceled it or put it on hiatus or something like that.
I actually meant to say that the project has not been cancelled, it will be revived and continued soon. But to stay on topic....
Quote:
Originally Posted by Team Rocket's Raichu View Post
Well anyway. Nice thing you made there CBM. Might just do this for a crystal game anyway.
Would this hack work for Crystal also? Crystal is slightly different, so it's possible it wouldn't work.
  #7    
Old February 4th, 2010, 02:17 PM
Coolboyman's Avatar
Coolboyman
Veteran Hacker
 
Join Date: Sep 2003
Location: The East Bay
Age: 26
Gender: Male
Nature: Bold
Quote:
Originally Posted by Melash View Post
I actually meant to say that the project has not been cancelled, it will be revived and continued soon. But to stay on topic....

Would this hack work for Crystal also? Crystal is slightly different, so it's possible it wouldn't work.
You would have to find the new RAM addresses, but I believe once you do that it shouldn't be hard to put this into Crystal
Check out my Youtube channel. All about ROM Hacks, Indie Games and more!

Brown:


Prism : - Four Gym Summer 2010 Beta available now!

Twitter
  #8    
Old August 2nd, 2010, 09:20 PM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
I seem to be having several problems with this. I input it exactly as you have posted, and checked it several times to confirm it was correct, and it seems to be so.

The major glitch I'm having is that whenever I hold down "B" when exiting a textbox (with an NPC or similar) the player will automatically mount the bike.

I've also had the same glitch occur after battling certain trainers, but I think I can fix that. I may have also been caused by holding down the "B" button.
  #9    
Old August 3rd, 2010, 02:45 AM
Sawakita's Avatar
Sawakita
Not Invented Here
 
Join Date: May 2010
Gender: Male
Nice tutorial!

Quote:
Originally Posted by Coolboyman View Post

Since bit 1 is on if B is down, let's make it so it ignores the other bits. Let me know if there's an eaiser way of doing this, for some reason the other bit commands weren't working for me.

res 0,a (CB 87) - turns bit 0 in a to off (A)
res 2,a (CB 97) - turns bit 2 in a to off (Select)
res 3,a (CB 9F) - turns bit 3 in a to off (Start)
res 4,a (CB A7) - turns bit 4 in a to off (Right)
res 5,a (CB AF) - turns bit 5 in a to off (Left)
res 6,a (CB B7) - turns bit 6 in a to off (Up)
res 7,a (CB BF) - turns bit 7 in a to off (Down)
rcc, a (CB 0F) - shifts the bits in A down 1, changing 2 into 1.
ld de,$D682 (11 82 D6) - loads D682 into de again
ld [de],a (12) - Puts the contents of a into de.
ret (C9)

This will make the game write 01 into D682 if B is held down. If D682 is 01, that will make your characters speed increase. If you use this, just please give me credit. Enjoy.
Maybe it's a stupid suggestion but, instead of resetting one bit at a time, why don't you use:
and 02 (E6 02) - so it reset all bits but the "B"-bit
rcc, a (CB 0F) - shifts the bits in A down 1, changing 2 into 1.
ld de,$D682 (11 82 D6) - loads D682 into de again
ld [de],a (12) - Puts the contents of a into de.
ret (C9)

Is it one of the commands you said weren't working?



| 1st Gen Hacking: Useful Links | A good example of REAL ROM Hacking |
  #10    
Old August 3rd, 2010, 07:09 AM
Full Metal's Avatar
Full Metal
C(++) Developer.
Community Supporter
 
Join Date: Jan 2008
Location: In my mind.
Age: 19
Gender: Male
Nature: Timid
Send a message via Windows Live Messenger to Full Metal
The following:
Spoiler:

call $4017 (CD 17 40) - This is what was originally at 10000, to make sure nothing "screws up" we'll just move it here.
ld de,$D682 (11 82 D6) - Loads D682 from the ram into de (which is what determines if Hiro is on the bike or not)
ld c,$04 (0E 04) - Since the RAM uses the same location to check if you are surfing (identified with 04), let's make sure this function does nothing if you are surfing.
ld a,[de] (1A) - Puts the contents of de (D682 in RAM) into a.
sbc a,c (99) - Subtracts c from a
jr z,$7E8B (28 18) - Checks if a is equal to 0. If so, jump ahead 18 bytes which is ret (C9), ending the function. Since a can only equal 0 if it was previous 4, this will only happen if you are surfing.
and 02 (E6 02) - so it reset all bits but the "B"-bit
rcc, a (CB 0F) - shifts the bits in A down 1, changing 2 into 1.
ld de,$D682 (11 82 D6) - loads D682 into de again
ld [de],a (12) - Puts the contents of a into de.
ret (C9)

could also be repointed, correct?
I'm thinking I might use this as a test for my new package system I'm making.
If it's alright with you, could I post the finished package on this thread for the metal gen. hackers to test?

★ full metal.

I like to push it,
and push it,
until my luck is over.
  #11    
Old August 5th, 2010, 09:11 AM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
Still waiting for Coolboyman's response...
  #12    
Old August 19th, 2010, 11:39 AM
miksy91's Avatar
miksy91
A GB/C Rom Hacker since 2010
 
Join Date: Oct 2008
Location: A small country in the North
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by Melash View Post
I seem to be having several problems with this. I input it exactly as you have posted, and checked it several times to confirm it was correct, and it seems to be so.

The major glitch I'm having is that whenever I hold down "B" when exiting a textbox (with an NPC or similar) the player will automatically mount the bike.

I've also had the same glitch occur after battling certain trainers, but I think I can fix that. I may have also been caused by holding down the "B" button.
Why not just modify the bike-sprite to look like the walking one ?
I'm pretty sure CBM has done that if the script works that way.

EDIT:
Thanks CBM as it works fine for me (and, I actually understood part of the things I was doing)
I'll give you credit for this.
My Rom Hack



Hacks I support





Learn how to hack GB/C games:

Check my GameBoy/Color hacking videos in Youtube
-The video set uses Pokemon Silver (U) rom for demonstrations

Last edited by miksy91; August 19th, 2010 at 12:03 PM.
  #13    
Old August 19th, 2010, 01:31 PM
wiidude645's Avatar
wiidude645
I'm Just Beast Like That
 
Join Date: Oct 2009
Gender: Male
what do you use to insert them? Is there a certain program to do so? Someone please tell me!

Last edited by wiidude645; August 20th, 2010 at 09:13 AM.
  #14    
Old August 19th, 2010, 09:02 PM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by miksy91 View Post
Why not just modify the bike-sprite to look like the walking one ?
I'm pretty sure CBM has done that if the script works that way.

EDIT:
Thanks CBM as it works fine for me (and, I actually understood part of the things I was doing)
I'll give you credit for this.
Yes, the bike sprite and the bike music need to be disabled for this to work.
  #15    
Old August 19th, 2010, 09:20 PM
miksy91's Avatar
miksy91
A GB/C Rom Hacker since 2010
 
Join Date: Oct 2008
Location: A small country in the North
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by Melash View Post
Yes, the bike sprite and the bike music need to be disabled for this to work.
For me, the code automatically disabled the bike music
My Rom Hack



Hacks I support





Learn how to hack GB/C games:

Check my GameBoy/Color hacking videos in Youtube
-The video set uses Pokemon Silver (U) rom for demonstrations
  #16    
Old August 20th, 2010, 12:54 AM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by miksy91 View Post
For me, the code automatically disabled the bike music
Hold on, are you talking about just regularly using the running shoes? During normal use of holding down the "B" button, everything functions just fine. However, if you hold down B when exiting a textbox, it will sometimes cause the player to mount the bike and cause the music to start playing.

The exact same code isn't going to function differently for the same game.
  #17    
Old August 20th, 2010, 11:02 AM
miksy91's Avatar
miksy91
A GB/C Rom Hacker since 2010
 
Join Date: Oct 2008
Location: A small country in the North
Gender: Male
Nature: Relaxed
No, when exiting a textbox it will mount the bike but will not start playing the bike music. I've tested it both Outside & Inside.
My Rom Hack



Hacks I support





Learn how to hack GB/C games:

Check my GameBoy/Color hacking videos in Youtube
-The video set uses Pokemon Silver (U) rom for demonstrations
  #18    
Old August 22nd, 2010, 10:05 AM
miksy91's Avatar
miksy91
A GB/C Rom Hacker since 2010
 
Join Date: Oct 2008
Location: A small country in the North
Gender: Male
Nature: Relaxed
Double-post, but for especially good reason.

You're right about the fact it plays the bike-music (for example sometimes after losing a battle).
It depends on the Map Loading Process -data (see the Scripting Compendium).

I tested it with Blackthorn City by changing 07 to 08 at 154c2, and bike music didn't start playing anymore after I failed in a trainer battle.
However, there are other locations too where you have to do the same thing.
My Rom Hack



Hacks I support





Learn how to hack GB/C games:

Check my GameBoy/Color hacking videos in Youtube
-The video set uses Pokemon Silver (U) rom for demonstrations
  #19    
Old August 22nd, 2010, 06:18 PM
Melash's Avatar
Melash
Back for now.
 
Join Date: May 2008
Location: Idaho
Age: 20
Gender: Male
Nature: Relaxed
Quote:
Originally Posted by miksy91 View Post
Double-post, but for especially good reason.

You're right about the fact it plays the bike-music (for example sometimes after losing a battle).
It depends on the Map Loading Process -data (see the Scripting Compendium).

I tested it with Blackthorn City by changing 07 to 08 at 154c2, and bike music didn't start playing anymore after I failed in a trainer battle.
However, there are other locations too where you have to do the same thing.
Changing the map loading process for every map that needs it is a little impractical, and could potentially cause glitches. Try disabling the bike music instead, just search for it in the VBA debugger.
  #20    
Old March 17th, 2013, 01:27 PM
80C
11m4r<ku5 15 4 |=49907
 
Join Date: Oct 2012
Very nice CBM!

I have got an idea\question:
could that be converted and used in Pokemon Red\Blue\Yellow?
Formerly not active on this forum anymore.


Download Demo 2: Click the banner above!

Check this video and decide if Pokemon Grape is now better than Pokemon Brown or not! http://youtu.be/qtUTRc7IPuo
Koolboyman, Danny-E 33... From Frejo with Love you suckers!
Oh, and if you're a l33t too read my custom title to know what I think about IIPorkus.
  #21    
Old March 30th, 2013, 04:15 AM
FroggestSpirit's Avatar
FroggestSpirit
 
Join Date: Feb 2012
Yes, it could be. it'd probably be a lot different, but I imagine it'd be like the bicycle
I'm ASM
My Youtube channel
Chain correctly in 4th gen Click here
Post Reply
Quick Reply

Sponsored Links


Advertise here
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 04:28 PM.

About Us
© 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.

Copyright
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. Header artwork by Jordanice of deviantART.

Social Media
If you would like to stay up-to-date with us on the go, when we're down, or other such things, follow us on social media sites--most notibly Twitter, Facebook, and Google Plus--by clicking on the links provided.

Design presented by Peitharchia. Special thanks to Hiroshi Sotomura and Ausaudriel.