PHO - Pokémon Hackers Online
Go Back   PHO - Pokémon Hackers Online > Discussion Board > Archive

Notices

Archive Old threads that serve no purpose are here.

 
 
Thread Tools Display Modes
Old 11th October 2012, 04:05 PM   #1
Linkandzelda
RHO つぃちょう
Webmaster
 
Linkandzelda's Avatar
 
Join Date: Apr 2012
Location: United Kingdom
Posts: 286
Linkandzelda Linkandzelda Linkandzelda
Default Quick Pokémon Research Thread

Found anything cool and quick you would like to share with the community? Post it here to help out other users.

Note: This is not for asking help or for something to be researched.
__________________





Linkandzelda is offline  
Sponsored Links
Old 11th October 2012, 05:21 PM   #2
Linkandzelda
RHO つぃちょう
Webmaster
 
Linkandzelda's Avatar
 
Join Date: Apr 2012
Location: United Kingdom
Posts: 286
Linkandzelda Linkandzelda Linkandzelda
Default

Game start intro palette offsets for FireRed.

Gamefreak intro palettes
Bootscreen
0x402260

Symbol
0x40270C

Background
0x402630

Stars
0x402ABD

Game starting sequence
Controls guide
0x471E2C

Control buttons
0x4605C8

Game intro 2
Background + border
0x4605A8

Oak's background
0x46056A

Underneath oak
0x4629D0
__________________





Linkandzelda is offline  
Likes mewthree9000 liked this post
Old 2nd December 2012, 08:48 PM   #3
Pride
Newbie
 
Join Date: Nov 2012
Age: 29
Posts: 2
Pride is on a distinguished road
Default Reusable TMs in Pokemon Ruby and FireRed[

I was wanting to have reusable TMs in my hack, like Black & White do, so I did some research to see if I had already been done before but the closest I could find was this thread on a different forum. So I decided I need to do some work on my own. The main routine that checks the TM and HM pocket in Ruby is at 0x8060F1D0. There's some stuff going on that I'm not sure exactly what's happening but the point of interest is here:

Code:
0806F20E: ldrh r1,[r5,6h]			Load Item Index #
0806F210: mov r0,0A8h				r0 = A8h
0806F212: lsl r0,r0,1h				r0 = 152h (A8 * 2)
0806F214: cmp r1,r0				Compare r1 (Item index #) to r0
0806F216: bhi 806F220h				Branch if r0 > 152
0806F218: mov r0,r1					
0806F21A: mov r1,1h					
0806F21C: bl 80A9538h				Branch and Link to Item Reduction routine (All items go here)
Changing 0806F210 from A8 to 90 (90h * 2 = 120h) allows the user to use the TM but retain the item. All other items appear to be consumed correctly. The only thing I want to figure out is to remove the "x1" display but that's only a minor issue and doesn't affect the functionality. So changing 0x6F210 to 90 creates reusable TMs in Ruby ^_^

Pokemon FireRed appears to have very similar, separate routines that check for a HM and I don't know the entirety of it yet.

Code:
08124FE4: 20A9 mov r0,A9h
08124FE6: 0040 lsl r0,r0,1h

08124F18: 20A9 mov r0,A9h
08124F1A: 0040 lsl r0,r0,1h
So same thing, change 0x124FE4 and 0x124FE6 in the rom from xa9 to 90 should make reusable TMs but I haven't tested it out thoroughly enough to be sure (I was surprised that there was even more then one routine for this in FireRed O_o). For both games, you probably want to change the "mystery value 1" (0x18) byte from 0x00 to 0x01 in all TMs so the player can't "hold" the TMs on a Pokemon, like the HMs.
Pride is offline  
Old 28th January 2013, 01:37 PM   #4
Jambo51
Glory To Arstotzka
Ex-Staff
 
Jambo51's Avatar
 
Join Date: May 2012
Location: Scotland
Posts: 85
Jambo51
Default

Type Effectiveness

So, last night, I worked out how type effectiveness is done in FireRed. You'll be pleased to know that it's relatively simple. Firstly, the method of storage:

Code:
[Attack type - 1 byte][Target Type - 1 Byte][Effectiveness value - 1 Byte]
This data is stored at 0x24F050.

There are several of these, kept in an array which ends with a 0xFE value. The game loops over each entry in the array, checking if the attack type matches the used attack's type, and if it does, then checks the Target Type against the 2 types of the targeted Pokémon.

If either type matches, it loads the effectiveness byte and branches off to another routine which takes care of physically making the attack super effective/not effective. The type effectiveness values are as follows:

Code:
Note, these are in hex
00 - Has No effect (Eg, Ghost on Normal)
05 - 50% effectiveness
14 - 200% Effectiveness
I don't know why they used these values, but that's what they are nonetheless. What you may gleam from these values, however, is that, unless explicitly told otherwise, the game treats all moves as normal effectiveness on any type.

If neither type matches, it jumps to the loop counter, increments it and continues checking until it hits that magical 0xFE value.

However, the way it is implemented leaves something to be desired as it is very slow (looping over several entries), and taking up more space than needed, both in terms of code and data. It's obviously wasteful in so far as it continues to check even after having already found both effectiveness values, as well as the wasteful nature of the loop in and of itself.

Changing the Level At Which Eggs Hatch

So, a very simple hack here. Simply allows you to define what level the hatched Pokémon will be at when it hatches.

Code:
081375B0: XX 21
08046CBE: XX 22
0804623E: XX 22
See? Easy. Simply change the XX's to the level you want eggs to be. The XX's must all have the same value, or weird things will happen. The maximum allowed value is 0x64 (100). The game bugs out if you set it any higher.
__________________
I have nothing interesting to add

Last edited by Jambo51; 17th March 2013 at 01:25 AM.
Jambo51 is offline  
Old 6th July 2013, 12:22 PM   #5
Linkandzelda
RHO つぃちょう
Webmaster
 
Linkandzelda's Avatar
 
Join Date: Apr 2012
Location: United Kingdom
Posts: 286
Linkandzelda Linkandzelda Linkandzelda
Default

This little tip has been floating around for a while and was contributed originally by an unknown individual.

Total amount of Direct Tracks playing
At 0x1DD0C8 on FireRed and 0x02E0104 in Emerald is 2 bytes, 00 C5. Changing these bytes to 00 CD will allow up to 11/12 direct tracks to be played at a time. The ROM won't physically support more than this if a higher number is used. Setting it to 00 00 will cause it to revert to 5, the default.
__________________





Linkandzelda is offline  
Old 27th September 2013, 04:30 AM   #6
droomph
握りモンスター
Ex-StaffPHO VIP
 
droomph's Avatar
 
Join Date: Apr 2012
Location: maybe.
Age: 21
Posts: 418
droomph
Default

Unsticky-ing this as a general move away from Pokémon exclusivity.
__________________
droomph is offline  
Old 6th October 2013, 07:21 PM   #7
AriNikoBradshaw
Greetings.
 
AriNikoBradshaw's Avatar
 
Join Date: Jul 2010
Posts: 97
AriNikoBradshaw
Default

Quote:
Originally Posted by droomph View Post
Unsticky-ing this as a general move away from Pokémon exclusivity.
Perhaps it should be re-stickied now?
__________________
AriNikoBradshaw is offline  
Old 6th October 2013, 07:28 PM   #8
droomph
握りモンスター
Ex-StaffPHO VIP
 
droomph's Avatar
 
Join Date: Apr 2012
Location: maybe.
Age: 21
Posts: 418
droomph
Default

Quote:
Originally Posted by AriNikoBradshaw View Post
Perhaps it should be re-stickied now?
I would, but I can't
__________________
droomph is offline  
Old 5th November 2013, 12:09 PM   #9
AntiRellik
Glorified n00b
 
AntiRellik's Avatar
 
Join Date: Oct 2013
Age: 26
Posts: 6
AntiRellik
Default

Does anybody know if the worldmap from FRLG is on Emerald? If it is... maybe we could manage to make it work. FireRed's worldmap is much more accomodating than the one in RSE.
AntiRellik is offline  
Likes mewthree9000 liked this post
 

Tags
pokemon, quick, research, thread

Thread Tools
Display Modes

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 GMT. The time now is 07:08 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, vBulletin Solutions, Inc. User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Pokémon characters and images belong to Pokémon USA, Inc. and Nintendo.
Pokémon Hackers Online (PHO) is in no way affiliated with or endorsed by Nintendo LLC, Creatures, GAMEFREAK inc,
The Pokémon Company, Pokémon USA, Inc., The Pokémon Company International, or Wizards of the Coast.
All forum/site content (unless noted otherwise) and site designs are © 2006-2013 Pokémon Hackers Online (PHO).
Green Charizard Christos TreeckoLv100

"Black 2" by ARTPOP. Kyurem artwork by XOUS.

no new posts