The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

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.


Reply
Click here to go to the first staff post in this thread.  
Thread Tools
  #1    
Old April 22nd, 2010, 10:01 PM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
I'll start with a big line.
FireRed's field engine is dated.

Obviously we don't have things like two-trainer double battles, but that's one thing. We already have an RTC implementation, which is another thing. The fact is that FireRed is designed to imitate RBY, and it falls down to several small things. Not only that, but FireRed feels older (ignoring the obvious graphical engine and the mechanics changes), so we should limit our scope to the 3rd Generation only.

The player doesn't face the trainer when initiating a battle.
Okay, I'll be honest: I started the thread mostly because I need some insight into this issue. FR/LG imitates RBY, where the player doesn't look at the trainer before the battle starts. The trainer has been facing the NPC since the Gold/Silver days, and it's still like this.

Speaking of initiating battles, the music when a trainer approaches is limited to three tracks - recent games have about 11, or 12, where an appropriate trainer theme plays for them (e.g. Ace Trainers, Youngsters, Miniskirts, Twins…) Darthatron and I took a bit of time to research it and we thought the music table was at 0x47A2D2, but changing it has no effect.

The item sound.
That Level Up sound is inappropriate for getting items - since Gold/Silver we've had the new Item Get fanfare . Is it also possible to implement the TM Get fanfare when a player receives a TM, and the Berry Get fanfare when the player finds a Berry?

Pokémon Ability behaviours in the field.
Implementing this would be tough. It basically improves Pickup, and abilities like Arena Trap increase the chance of encountering Pokémon. Oh, and items like Light Ball and Magma Armor have breeding effects, but that's going to be absolutely horrible to implement.

An IV checker character.
There's one in Emerald!

Battle Tower?
It's a de facto element of the Pokémon games since Ruby/Sapphire, and we don't have it. Would it be excessively hard to tap into the bank of trainers in the Trainer Tower, for instance? Would it be possible to implement more?

Updated Berry behaviours.
We've seen it in Emerald, but obviously it's much more difficult (in that it requires programming) to implement.

Mach Bike or Acro Bike
Recent games (HG/SS) have at least the behaviour of the Mach Bike, but should we implement anything like that for FR/LG? The default bike is clumsy and still tries to imitate R/B/Y.

--------------------------------------------------

This is a feasibility survey as part of Research & Development. We can choose to get straight into developing, but otherwise, it's more about collecting thoughts and ideas. That said, since this thread is the first of its kind to be introduced here, I should note that if you don't know what you're talking about, then you shouldn't post.
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.

Last edited by Hiroshi Sotomura; May 1st, 2010 at 03:56 AM. Reason: Added
Reply With Quote
  #2    
Old April 22nd, 2010, 10:35 PM
Darthatron's Avatar
Darthatron
巨大なトロール。
Community Supporter Tier 2
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Modest
The player doesn't face the trainer when initiating a battle.
Isn't this as easy as just changing the sprite? :\
EDIT: I miss understood. Nevermind.

The item sound.
This probably wouldn't be overly difficult. I'm fairly sure that all we would have to do is implement something to check the item numbers in the current routine(?), which is not overly difficult.

Pokémon Ability behaviours in the field.
Such as..? But this shouldn't be overly difficult, depending on the ability.

Battle Tower?
I've never looked in to this.

Berry behaviours.
This would probably be the most annoying thing to do.
__________________
あなた は しきしゃ です
わたし は ばか です

Last edited by Darthatron; April 22nd, 2010 at 11:06 PM.
Reply With Quote
  #3    
Old April 22nd, 2010, 10:57 PM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Is there actually some standard trainer script to allow that, though?
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.
Reply With Quote
  #4    
Old April 23rd, 2010, 03:34 AM
Magic's Avatar
Magic
 
Join Date: Jan 2009
Location: UK
Age: 23
Gender: Male
Quote:
Originally Posted by Hiroshi Sotomura View Post
Is there actually some standard trainer script to allow that, though?
As far as I know there is no way to make the player face the trainer in a -normal- trainer script battle.

To make it happen I guess the only ways are either: Replacing the trainer view radius with a line of Script tiles to run simple movements + battle. Although this would mean a lot of scripts it doesn't have to take up a lot of space if you keep track of your pointers and reuse the movements.

The other way would be editing the [!]-Walks up to player sequence which would require hacking the game engine directly I assume.

----------------------

With items having different sounds this is easy with a script using the additem command, as you can decide which fanfare to use depending on whether the item is a berry, pokéball-item or whatever. Having to use that command on PokéBall items however means more commands -> more bytes per script used as the 'giveitem' command does the equivalent in a much more simple form.



----------------------

Just realised I totally took this thread the wrong way I thought 'how can we implement these things in to hacks' rather than to improve the FireRed game itself XD which I'm guessing people don't want to go and rescript totally haha.

(And yes I agree hacking the engine directly is better, because then by patching it means in the future people won't have to go through these above efforts )
__________________

Last edited by Magic; April 23rd, 2010 at 03:54 AM.
Reply With Quote
  #5    
Old April 23rd, 2010, 03:37 AM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Quote:
Originally Posted by SwiftSign View Post
The other way would be editing the [!]-Walks up to player sequence which would require hacking the game engine directly.
I'm assured that since the facing was never part of the script, it definitely involves hacking the game engine.

Quote:
Originally Posted by SwiftSign View Post
With items having different sounds this is easy with a script using the additem command, as you can decide which fanfare to use…[cut for brevity]
It could be nice and easy but my concern is that it's automatic in Ruby/Sapphire/Emerald, particularly for Item Balls.

Also, improving the engine does make it better since it brings the games up to date and all…
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.

Last edited by Hiroshi Sotomura; April 23rd, 2010 at 03:44 AM.
Reply With Quote
  #6    
Old April 23rd, 2010, 06:36 AM
JPAN
pokemon rom researcher
 
Join Date: Dec 2008
I'll give my two cents on this...

The player doesn't face the trainer when initiating a battle.
I actually "solved" this problem earlier with the trainer flag hack, by allowing the script to be run like a normal script. There are commands to change the player facing, and the trainer position (and number) is kept on the routine that calls this behaviour. So, it's just a matter of changing my hack around.

The item sound.
In this one, I've got little to offer. I don't usually test with sound, so I never studied that area.

Pokémon Ability behaviours in the field.
I've been studying abilities lately, and this one, with a little asm, is quite feasable. For the egg hatching, It's on the same location of my walking scripts hack, and I've sucessfully made that change before. For other field abilities, I would need to know what they are before making any leaps, but it should be similar.

An IV checker character.
Also made this one earlier. Using the pokemon decrypt special + IV getter, you just need a looping script to find them all.

Battle Tower?
I'm yet to try this out, but I had plans to make something like this. What I thought of was to either have a pool of pokemon numbers or simply use the RNG to generate pokemon numbers, have a function to create a pokemon trainer dynamically on the RAM, and have the trainerbattle command call that trainer.
At the end of the battle, clean that trainer flag and you're ready for the next one. Only problem would be the xp gain, but that could be neutralized by force-level all your party pokemon to level 100 (or similar code).

Updated Berry behaviours.
This last one is involved with Item editing. I've studied them and so far they seem pure assembly, but I thought battles were pure assembly as well... I've managed to create some items that do act on pokemon on the screen, so it's doable, but the process I have is still buggy.

I'm not currently on my hacking computer, but I'm happy to give you the source code for the solutions to the problems I have solved. For the others, I can only offer my help.
__________________
Here are the links for my work


Currently working on:
Battle Script Documentation
Another large project
Reply With Quote
  #7    
Old April 28th, 2010, 08:35 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by Hiroshi Sotomura View Post
[...] so we should limit our scope to the 3rd Generation only.
Why being limited? I get your point, but while modernizing the engine thinking about brand new features won't hurt. We might actually come up with some interesting ones.

Quote:
Originally Posted by Hiroshi Sotomura View Post
The player doesn't face the trainer when initiating a battle.
Okay, I'll be honest: I started the thread mostly because I need some insight into this issue. FR/LG imitates RBY, where the player doesn't look at the trainer before the battle starts. The trainer has been facing the NPC since the Gold/Silver days, and it's still like this.

Speaking of initiating battles, the music when a trainer approaches is limited to three tracks - recent games have about 11, or 12, where an appropriate trainer theme plays for them (e.g. Ace Trainers, Youngsters, Miniskirts, Twins…) Darthatron and I took a bit of time to research it and we thought the music table was at 0x47A2D2, but changing it has no effect.

The item sound.
That Level Up sound is inappropriate for getting items - since Gold/Silver we've had the new Item Get fanfare . Is it also possible to implement the TM Get fanfare when a player receives a TM, and the Berry Get fanfare when the player finds a Berry?
Well, since I'll need all of those for my hack, I'll share my findings when I look into them.

Quote:
Originally Posted by Hiroshi Sotomura View Post
Pokémon Ability behaviours in the field.
Implementing this would be tough. It basically improves Pickup, and abilities like Arena Trap increase the chance of encountering Pokémon. Oh, and items like Light Ball and Magma Armor have breeding effects, but that's going to be absolutely horrible to implement.
Well, maybe Magma Armor might not that hard to implement, for example. What about making a complete list?

Quote:
Originally Posted by Hiroshi Sotomura View Post
An IV checker character.
There's one in Emerald!
In my opinion, the one in Emerald is almost useless, anyway: all he can do is revealing which IV is the highest in a vague manner. I planned something similar for my hack, except all EV/IV values would be shown. Getting the respective values is really a piece of cake. If anyone wants, I can provide a working example.

Quote:
Originally Posted by Hiroshi Sotomura View Post
Battle Tower?
It's a de facto element of the Pokémon games since Ruby/Sapphire, and we don't have it. Would it be excessively hard to tap into the bank of trainers in the Trainer Tower, for instance? Would it be possible to implement more?
I have yet to do research about it, since it's not something I would need soon.

Quote:
Originally Posted by Hiroshi Sotomura View Post
Updated Berry behaviours.
We've seen it in Emerald, but obviously it's much more difficult (in that it requires programming) to implement.
Again, what about writing down a list?
__________________
Reply With Quote
  #8    
Old April 28th, 2010, 02:24 PM
Vrai
can you feel my heart?
 
Join Date: Jun 2008
Age: 20
Gender: Male
Nature: Adamant
Send a message via Windows Live Messenger to Vrai
Quote:
Originally Posted by HackMew View Post
Well, maybe Magma Armor might not that hard to implement, for example. What about making a complete list?
A complete list, you say?

Note: Almost all of these only occur if the Pokemon is in the lead slot. If it's not so, I'll mention it.

Arena Trap - rate of wild battles is doubled
Compoundeyes - rate of wild pokemon holding an item increases
Cute Charm - rate of wild pokemon of opposite gender increases to 66.7%
Flame Body - pokemon eggs hatch in half the time (can be anywhere in party)
Hustle - rate of wild battles decreases
Hyper Cutter - cut removes more grass than normal (can be anywhere in party)
Intimidate - cuts rate of weaker (five levels under and lower) wild battles
Keen Eye - cuts rate of weaker wild battles
Lightningrod - receives more phone calls (Emerald)
Magma Armor - see flame body (can be anywhere in party)
Magnet Pull - rate of seeing wild Steel pokemon +50%
Pressure - rate of wild battles is halved
Sand Veil - rate of wild battles during Sandstorm is halved
Static - see magnet pull but replace steel with electric (can be anywhere in party)
Sticky Hold/Suction Cups - pokemon hooked by a rod are easier to catch (can be anywhere in party)
Swarm - pokemon cries are heard more often (can be anywhere in party)
Synchronize - pokemon with the same nature are 50% likelier to find
Vital Spirit - rate of high leveled battles decreases
White Smoke - see pressure

Yup so that should be it. I don't know any stats about them, just what they do.
__________________
aka Zebraiken | pairs; Ω & ζ | bffl; λ | now; Ϟ | twin; ξ | brother; φ | sister; Ψ | neeks; Ϫ
Reply With Quote
  #9    
Old April 28th, 2010, 10:04 PM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Quote:
Originally Posted by JPAN View Post
Battle Tower?
I'm yet to try this out, but I had plans to make something like this. What I thought of was to either have a pool of pokemon numbers or simply use the RNG to generate pokemon numbers, have a function to create a pokemon trainer dynamically on the RAM, and have the trainerbattle command call that trainer.
At the end of the battle, clean that trainer flag and you're ready for the next one. Only problem would be the xp gain, but that could be neutralized by force-level all your party pokemon to level 100 (or similar code).
The Trainer Tower seems to operate differently with handling trainers - they're loaded from some other space of data. That, and the Pokémon don't appear to follow the table structure we're used to, but are rather more sophisticated: Pokémon have IVs, EVs, set attacks, and set items. It somehow locks Exp. gain, as well.

Oh, and in the Battle Tower, items are disabled. And trainers seem to be loaded in a similar manner. They also speak gibberish phrases.


Quote:
Originally Posted by HackMew View Post
Why being limited? I get your point, but while modernizing the engine thinking about brand new features won't hurt. We might actually come up with some interesting ones.
Sure we could have some feasible 4th generation ideas, such as the Special/Physical attack division.

But other innovations that don't have to do with the engine directly would probably cannibalise the point of the R&D forum. :P

Anyway, Berry behaviours are associated with a Pokémon's EVs. These are the only (I think) Berry changes in Emerald. If any of these berries is used to decrease an EV and the EV is more than 110, the effort value for the stat is decreased to 100. Otherwise, for anything under it will decrease effort values by 10. Additionally, for each time the berry is used (including when there are no more effort values for that particular stat), happiness increases by 2. These are the EVs each berry decreases:
Pomeg Berry - HP
Kelpsy Berry - Attack
Qualot Berry - Defense
Hondew Berry - Sp. Attack
Grepa Berry - Sp. Defense
Tamato Berry - Speed
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.

Last edited by Hiroshi Sotomura; April 28th, 2010 at 10:38 PM.
Reply With Quote
  #10    
Old April 30th, 2010, 01:11 AM
ZodiacDaGreat's Avatar
ZodiacDaGreat
Working on a Mobile System
 
Join Date: Feb 2007
Location: South Pacific
Age: 21
Gender: Male
Nature: Relaxed
Send a message via ICQ to ZodiacDaGreat
Quote:
Originally Posted by JPAN
Battle Tower?
I'm yet to try this out, but I had plans to make something like this. What I thought of was to either have a pool of pokemon numbers or simply use the RNG to generate pokemon numbers, have a function to create a pokemon trainer dynamically on the RAM, and have the trainerbattle command call that trainer.
At the end of the battle, clean that trainer flag and you're ready for the next one. Only problem would be the xp gain, but that could be neutralized by force-level all your party pokemon to level 100 (or similar code).
Uhm, if I'm not wrong there's a special to do a battle for Battle Tower, special 0x3B, I think.

Quote:
Originally Posted by HackMew
Why being limited? I get your point, but while modernizing the engine thinking about brand new features won't hurt. We might actually come up with some interesting ones.
I agree
__________________
Reply With Quote
  #11    
Old April 30th, 2010, 01:22 AM
Ninja Caterpie's Avatar
Ninja Caterpie
Sitting by the back window
 
Join Date: Mar 2008
Location: Best City OCE
Age: 18
Gender: Male
Nature: Bold
Quote:
Originally Posted by ZodiacDaGreat View Post
Uhm, if I'm not wrong there's a special to do a battle for Battle Tower, special 0x3B, I think.
Just checked, no, that's "battle last battled trainer". Something like that, at least.
__________________
Brony represent.
Reply With Quote
  #12    
Old April 30th, 2010, 04:36 AM
mewthree9000's Avatar
mewthree9000
Booted out - don't be like me!
 
Join Date: Sep 2003
Location: Wastelands Of Johto
Age: 23
Gender: Male
Nature: Bold
Send a message via AIM to mewthree9000 Send a message via Windows Live Messenger to mewthree9000
If you want a modern base, then why don't you use Emerald? It's the latest of the 3rd generation.
Reply With Quote
  #13    
Old April 30th, 2010, 05:14 AM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
While this can be debatable, FR's got some pretty cool features of its own in the engine. That and some of us are pretty entrenched in the game we've picked.

(For instance, the VS Seeker.)

Oh, speaking of Emerald items,
The Acro and Mach bikes.
To go with a more modern engine, we'd need to speed the default bike up to work similarly to the Mach Bike, if anything. Acro is probably more of a challenge and the need for it is… low?
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.
Reply With Quote
  #14    
Old April 30th, 2010, 06:51 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by Hiroshi Sotomura View Post
But other innovations that don't have to do with the engine directly would probably cannibalise the point of the R&D forum. :P
Well, the brand new innovations I was talking about were referred to the engine directly, actually.
Anyway, I've remade the ability list Vrai posted to add more detailed information (Vrai's list was missing Illuminate too). See also the notes below:

Spoiler:
1. Arena Trap
If the Pokémon with Arena Trap is leading the party, then Arena Trap causes wild Pokémon to appear 2 times more often.

2. Compoundeyes
If the Pokémon with the ability leads the party, even if it has fainted, the chance of finding a Pokémon in the wild holding an item increases by 50%.

3. Cute Charm
If the Pokémon with Cute Charm is first in the party, the chance of encountering a Pokémon of the opposite gender is 66.7%, regardless of gender ratios. This does not affect the swarming Pokémon species.

4. Flame Boby
Halves the number of steps it takes for an egg to hatch. Both the Pokémon with Flame Body and the egg must be in the party in order for this to work. Magma Armor also has a similar effect. However this effect will not stack up if multiple Pokémon with Flame Body and Magma Armor are in the party.

5. Hustle
If the Pokémon with Hustle is leading the party, then Hustle increases the chance of battling a higher-leveled wild Pokémon by 50%.

6. Hyper Cutter
Using Cut will remove all tall grass within a two square radius of the player's position, as opposed to a one square radius without this ability.

7. Illuminate
See Arena Trap.

8. Intimidate
If the Pokémon with Intimidate is leading the party, Intimidate decreases the chance of encountering a lower-level wild Pokémon by 50%.

9. Keen Eye
See Intimidate.

10. Magma Armor
See Flame Body.

11. Magnet Pull
If the Pokémon with Magnet Pull is leading the party, then the likelihood of encountering wild Steel-type Pokémon is increased to 150%.

12. Pressure
See Hustle.

13. Sand Veil
If the Pokémon with Sand Veil is leading the party in an area with a sandstorm, Sand Veil decreases the wild Pokémon encounter rate by 50%.

14. Static
Similar to Magnet Pull, targets Eletrict-type Pokémon instead.

15. Stench
if the Pokémon with Stench is leading the party, then Stench reduces the chances of encountering wild Pokémon by 50%.

16. Sticky Hold
Causes bites to occur more often while fishing.

17. Suction Cups
See Sticky Hold.

18. Swarm
Increases the rate in which the cries of wild Pokémon could be heard on the field.

19. Synchronize
If the Pokémon with this ability is leading the party, Synchronize gives a 50% chance of encountering a wild Pokémon with the same nature. However, this does not apply to any Pokémon created with Method 1 of the PRNG. This includes Emerald's 'one-off' Pokémon such as legendaries, Castform, and Beldum.

20. Vital Spirit
See Hustle.

21. White Smoke
See Stench.

  1. I was able to implement Flame Body and Magma Armor already. Source code available on request. (From 21 to 19).
  2. Among the others which are still missing, the ones that simply increase/decrease the encounter rate should be the easiest to implement. Such abilities are: Arena Trap, Illuminate, Sand Veil, Stench, and White Smoke. (So theoretically from 19 to 14).
  3. While Sticky Hold and Suction Cups cause bites to occur more often while fishing, I don't know exactly how much "more often". Does anyone know? Also, apparently Suction Cups requires that the Pokémon having it is the leading one in the player's party. At least according to Bulbapedia. Is that true or not? What about Sticky Hold?
  4. Regarding Swarm, Bulbapedia says that the chances of encountering wild Pokémon increase. True or false? Also, since it increases the cry rate, how much?
  5. As you can see, Lightningrod is missing, due to its peculiar effect. Does anyone think it's still worth it? If so, does anyone know the exact values? Bulbapedia doesn't say anything about its field effect.
  6. About Static and the similar ones... Vrai said the Pokémon can be anywhere in the party. However Bulbapedia thinks otherwhise. Who is wrong?
  7. Just to be sure, can anyone confirm the data on the list above? Also, is it complete?
__________________

Last edited by HackMew; October 23rd, 2010 at 12:49 AM.
Reply With Quote
  #15    
Old May 1st, 2010, 03:48 AM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Well HackMew, are these "brand new features" that improve the engine something that we've seen in a current game? If not, they probably are things we should spin off into another thread. Whatever the case, let's hear them. :D (Also, let's see code for what you've found related to this thread.)

I know that the abilities are similar, but should we implement a placeholder number (e.g. 30%, 50%, etc.) for the chances we don't know, is it trivial to change them later?

If Lightningrod actually does increase Match Calls, then it'd be irrelevant to FR/LG unless it was used to alter the chance of alerting trainers of VS Seeker. Or something like that. We could just not include it at all, and if some FR/LG hack includes a mobile phone, let the hacker decide the chance.

Oh, and don't forget about the enhancements made to Pickup.

edit: According to a certain site's "AbilityDex" (now you know what site it is) it relies on the lead Pokémon to trigger it.
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.

Last edited by Hiroshi Sotomura; May 1st, 2010 at 04:16 AM.
Reply With Quote
  #16    
Old May 1st, 2010, 06:58 AM
HackMew's Avatar
HackMew
Mewtwo Strikes Back
 
Join Date: Jun 2006
Quote:
Originally Posted by Hiroshi Sotomura View Post
Well HackMew, are these "brand new features" that improve the engine something that we've seen in a current game? If not, they probably are things we should spin off into another thread. Whatever the case, let's hear them. :D (Also, let's see code for what you've found related to this thread.)

I know that the abilities are similar, but should we implement a placeholder number (e.g. 30%, 50%, etc.) for the chances we don't know, is it trivial to change them later?

If Lightningrod actually does increase Match Calls, then it'd be irrelevant to FR/LG unless it was used to alter the chance of alerting trainers of VS Seeker. Or something like that. We could just not include it at all, and if some FR/LG hack includes a mobile phone, let the hacker decide the chance.

Oh, and don't forget about the enhancements made to Pickup.

edit: According to a certain site's "AbilityDex" (now you know what site it is) it relies on the lead Pokémon to trigger it.
Regarding the new features... I was just saying, I don't have anything special in my mind so far. The goal of the thread is indeed modernizing the engine, so I guess you're probably right about having another thread to talk about completely new features.

Surely we could use some placeholder values, but after all we need the exact ones to properly emulate then, at some point. So I think we should get all the detailed info first, and then think about implementing and whatnot.

I definitely agree on the Lightningrod ability.

As for Pickup, I did not forget about Emerald's enhancements. Considering it works in a similar fashion already, IMHO we could even leave it as is.

Now, here's the Flame Body/Magma Armor hack:

Code:
.text .align 2 .thumb .thumb_func .global MagmaArmorHack main: sub r0, #0x1 cmp r0, #0x1 blt return push {r0, r4-r6} ldr r4, .POKEMON_PARTY mov r5, #0x6 loop: add r0, r4, #0x0 mov r1, #0xB ldr r3, .READ_DATA bl bx_r3 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2E ldr r3, .READ_DATA bl bx_r3 add r1, r0, #0x0 add r0, r6, #0x0 ldr r3, .GET_ABILITY bl bx_r3 cmp r0, #0x28 beq fast_hatch cmp r0, #0x31 beq fast_hatch add r4, #0x64 sub r5, #0x1 cmp r5, #0x0 bne loop pop {r0, r4-r6} return: str r0, [sp] add r0, r4, #0x0 mov r1, #0x20 ldr r3, .RETURN_ADR bx_r3: bx r3 fast_hatch: pop {r0, r4-r6} sub r0, #0x1 b return .align 2 .POKEMON_PARTY: .word 0x02024284 .READ_DATA: .word 0x0803FBE8|1 .GET_ABILITY: .word 0x08040D38|1 .RETURN_ADR: .word 0x08046398|1
Once assembled and inserted, replace the bytes at 0x46390 with 00 49 08 47 XX XX XX XX (XX XX XX XX being the pointer to the routine's address increased by 1). FR US v1.0, by the way. Feel free to test and use it yourself, just don't claim it as yours.

On a side note, the sub-routine located at 0x3FBE8, used in the routine above, it's a powerful routine which can retrieve just any Pokémon info. The routine has two parameters, r0 being the Pokémon base address, and r1 being what I call "data index". As usual, the return value is written to r0. Here's the list I've collected so far:

Code:
0x00 - Pokémon ID 0x01 - Trainer IDs 0x02 - Nickname Max Length 1 (r6 should be the nickname's address) 0x03 - Font / Language 0x04 - Sanity 0x05 - Sanity 0x06 - Sanity 0x07 - OT Name Max Length 0x08 - Marks 0x09 - Checksum 0x0A - Filler 0x0B - Species 0x0C - Held Item 0x0D - Attack 1 0x0E - Attack 2 0x0F - Attack 3 0x10 - Attack 4 0x11 - PP 1 0x12 - PP 2 0x13 - PP 3 0x14 - PP 4 0x15 - PP Bonuses 0x16 - Coolness 0x17 - Beauty 0x18 - Cuteness 0x19 - Exp. Points 0x1A - HP EV 0x1B - Attack EV 0x1C - Defense EV 0x1D - Speed EV 0x1E - Sp. Attack EV 0x1F - Sp. Defense EV 0x20 - Happiness 0x21 - Smartness 0x22 - Pokérus Status 0x23 - Catch Location 0x24 - Catch Level 0x25 - 0x26 - Hometown / Poké Ball / Trainer Gender 0x27 - HP IV 0x28 - Attack IV 0x29 - Defense IV 0x2A - Speed IV 0x2B - Sp. Attack IV 0x2C - Sp. Defense IV 0x2D - IsEgg 0x2E - Ability Bit 0x2F - Toughness 0x30 - Sheen 0x31 - 0x32 - 0x33 - 0x34 - 0x35 - 0x36 - 0x37 - Status Ailment 0x38 - Level 0x39 - Current HP 0x3A - Total HP 0x3B - Attack 0x3C - Defense 0x3D - Speed 0x3E - Sp. Attack 0x3F - Sp. Defense
__________________
Reply With Quote
  #17    
Old May 14th, 2010, 11:39 PM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Quote:
Speaking of initiating battles, the music when a trainer approaches is limited to three tracks - recent games have about 11, or 12, where an appropriate trainer theme plays for them (e.g. Ace Trainers, Youngsters, Miniskirts, Twins…) Darthatron and I took a bit of time to research it and we thought the music table was at 0x47A2D2, but changing it has no effect.
Bump!

Also, is the Bike behaviour particularly easy to implement?
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.
Reply With Quote
  #18    
Old May 15th, 2010, 08:06 PM
Vrai
can you feel my heart?
 
Join Date: Jun 2008
Age: 20
Gender: Male
Nature: Adamant
Send a message via Windows Live Messenger to Vrai
Quote:
Originally Posted by HackMew View Post
While Sticky Hold and Suction Cups cause bites to occur more often while fishing, I don't know exactly how much "more often". Does anyone know? Also, apparently Suction Cups requires that the Pokémon having it is the leading one in the player's party. At least according to Bulbapedia. Is that true or not? What about Sticky Hold?
Regarding Sticky Hold, both Serebii and Psypoke also agree that it is not required to be in the lead for it to work. :(

I dunno about the percentages, though.

Quote:
Originally Posted by HackMew View Post
Regarding Swarm, Bulbapedia says that the chances of encountering wild Pokémon increase. True or false? Also, since it increases the cry rate, how much?
This one I'm more confused about. Serebii and Psypoke, again, agree that it only increases cry rate, although Veekun agrees with Bulbapedia that it increases wild Pokemon encounter rates. I dunno. ):
Quote:
Originally Posted by HackMew View Post
As you can see, Lightningrod is missing, due to its peculiar effect. Does anyone think it's still worth it? If so, does anyone know the exact values? Bulbapedia doesn't say anything about its field effect.
It's not worth it. :D
Quote:
Originally Posted by HackMew View Post
About Static and the similar ones... Vrai said the Pokémon can be anywhere in the party. However Bulbapedia thinks otherwhise. Who is wrong?
Just to be sure, can anyone confirm the data on the list above? Also, is it complete?
Static was a mistake on my part, like the missing Illumination. It is, indeed, meant to be in the lead.

It seems to me that it's correct and complete, although clearly I'm not the best at judging these things. :)
__________________
aka Zebraiken | pairs; Ω & ζ | bffl; λ | now; Ϟ | twin; ξ | brother; φ | sister; Ψ | neeks; Ϫ
Reply With Quote
  #19    
Old May 25th, 2010, 12:32 AM
Hiroshi Sotomura's Avatar
Hiroshi Sotomura
 
Join Date: Sep 2003
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Lax
Quote:
Originally Posted by HackMew View Post
In my opinion, the one in Emerald is almost useless, anyway: all he can do is revealing which IV is the highest in a vague manner. I planned something similar for my hack, except all EV/IV values would be shown. Getting the respective values is really a piece of cake. If anyone wants, I can provide a working example.
I'd actually like to see something similar to the Emerald one, but a sample would be nice anyway.
__________________
Hiroshi Sotomura

That's Our Switch.
Pre-Service Teacher. Tech Guy. Web Designer. PokéCommunity Administrator. Wanderer. Novice Hockey Player. rijonAdventures Developer. #westjournal. Views are my own.
Reply With Quote
  #20    
Old May 29th, 2010, 04:41 PM
altariaking's Avatar
altariaking
Needs NO VMs...
 
Join Date: Dec 2009
Location: Scotland, Lesmahagow
Age: 39
Gender: Male
Nature: Naive
Send a message via Windows Live Messenger to altariaking
another thing i think would be pretty cool is the animations from emerald.
this could be pretty tricky, but it would need a routine to check when a pokemon comes into battle, change the sprite, change it back again.
also, volt tackle. emerald has it, why not firered?
__________________
http://www.pokecommunity.com/member.php?u=253113
Reply With Quote
  #21    
Old May 30th, 2010, 01:11 AM
Hashtag's Avatar
Hashtag
king cook
 
Join Date: Nov 2008
Location: Salisbury, England
Age: 19
Gender: Male
FireRed does have Volt Tackle actually, just not the breeding methods Emerald uses to get it.
__________________
#projectshinx :: moderator
axton :: #firedave :: spheal
Reply With Quote
  #22    
Old June 29th, 2010, 06:26 PM
sir.euge's Avatar
sir.euge
Bunchies Back!
 
Join Date: Jun 2009
Gender: Male
Nature: Naughty
Send a message via Yahoo to sir.euge
Ok! So if i wanted to insert the flame body hack i would use XSE and decompile that offset then replace it and recompile? This is going to be my first try so bear with me.
__________________
Reply With Quote
  #23    
Old June 29th, 2010, 11:38 PM
Tropical Sunlight's Avatar
Tropical Sunlight
The Faltine
 
Join Date: Mar 2008
Location: Slovenia
Age: 18
Gender: Male
Send a message via Windows Live Messenger to Tropical Sunlight
Quote:
Originally Posted by sir.euge View Post
Ok! So if i wanted to insert the flame body hack i would use XSE and decompile that offset then replace it and recompile? This is going to be my first try so bear with me.
Actually, no. You need an ASM-thing-tool, but I don't know anything more. If you decompile those offsets in XSE it should be pretty weird.
__________________
Reply With Quote
  #24    
Old July 13th, 2010, 08:46 PM
Mr.Silver's Avatar
Mr.Silver
Say Hello To Nurse Barbra
 
Join Date: Jun 2009
Location: The Ushimi region.
Age: 20
Gender: Male
Send a message via Windows Live Messenger to Mr.Silver
I would like to add a suggestion if i may.

Gender differences (and gender based events).
Not just for pokemon, but for player events.
Its in ruby,sapphire and emerald. Heck its even in GenIV.

I would go into it further, but its 5:45am here
__________________







Reply With Quote
  #25    
Old July 13th, 2010, 11:44 PM
Darthatron's Avatar
Darthatron
巨大なトロール。
Community Supporter Tier 2
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Modest
Quote:
Originally Posted by Mr.Silver View Post
I would like to add a suggestion if i may.

Gender differences (and gender based events).
Not just for pokemon, but for player events.
Its in ruby,sapphire and emerald. Heck its even in GenIV.

I would go into it further, but its 5:45am here
They already are. Use the checkgender command in a script.
__________________
あなた は しきしゃ です
わたし は ばか です
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
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 07:34 PM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 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.
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.