• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Double Wild Pok?mon Battles in Emerald

GoGoJJTech

(☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
2,475
Posts
11
Years
Double Wild Pokémon Battles in Emerald



So I ported what was on this thread, which was ported from Jambo51's 649 patch.

Simply put, it's the same thing, you just need a bunch of changes :P

Before I put the code up, I'll list the issues:
  1. You can use the bag twice (two pokeballs for example [dunno how it's handled in Unova games])
  2. You can run twice (Can't escape! Got away safely! [still dunno how it works in Unova games])
  3. Upon fainting, it asks if you want to send out the next Pokémon or run. If both faint, it does it twice (still have no idea how it works in blah blah blah games)
  4. The Pokémon in slot 0 (the one on the right) is the one displayed when you successfully catch
  5. Only the 0th Pokémon (the one on the right again) is faded in the battle intro

So the code:
Spoiler:

generate.asm is not present in the FireRed versions of this implementation. The reason is that this function is actually from FireRed. Since it's not present in Emerald, I just copied it. Just thought you might want to know since this'd make the overall size of this hack larger than the FireRed one. :)

1.asm generates a table
Code:
.word 0x0005000D
.word 0x000501C6
.word 0x000501C7
.hword 0xFEFE

0005 = 0x5
000D = 0xD
the 5 is the percent chance that a double wild battle will occur. To have double wild battles every single time, you'd put 0x64 (100 in decimal)
0xD is the tile in the tileset that it will occur in. The tiles I have here are the grass tiles used in general areas in Emerald, tileset 0 of course.
0xFEFE ends the table, so be sure to keep it at the end!

This hack does not allow double wild Pokémon if the player only has one Pokémon available to battle!
 

Jaizu

Average rom hacker
282
Posts
14
Years
Do you mind about fixing those bugs?
The video looks great, thanks for the port.
 
457
Posts
10
Years
  • Age 28
  • Seen Apr 9, 2024
You can use the bag twice (two pokeballs for example [dunno how it's handled in Unova games])

As far as I remember, you cannot throw a Poke Ball (or any other) when there are two of them. When you faint one of the two, you can now catch the other one.

Example:
  • Turn 1. Poochyena and Zigzagoon. Poke Ball usage disabled.
  • Turn 2. Poochyena has been fainted. Zigzagoon alone. Poke Ball usage enabled.

Hope I'm correct about it.
 
1
Posts
7
Years
  • Age 33
  • Seen Mar 30, 2023
1. Bag is allowed to be used twice (Example: healing), although I'd have to check the case with Pokeballs. I can test this for you really quickly here.
2. I think Run is only done once.
3. Same as above, I can check for you, however, I think what happens is once a Pokemon faints, the game will immediately make you send out a replacement.

Give me 10 minutes and I can check both for you :)

Okay, tests indicate:
1. Bag can be used twice for healing. HOWEVER, if a Pokeball is tossed, it can only be on the first Pokemon. If you try to use a Pokeball with the second Pokemon, it'll tell you "It's impossible to aim without being focused!" If you do toss a Pokeball with the first Pokemon, the second Pokemon doesn't get to do anything.
2. First time Run is selected, the game will try to get you to run. If it fails, it skips the second Pokemon.
3. If any Pokemon faint on the field, the game waits for all moves to proceed and all items to be used, then prompts you to send out new Pokemon. If both faint, it'll ask for the first, then immediately after the second, then it'll show them going out.

Can you please do a patch? T_T i don't know nothing about ASM and i need this for my game. I'll be granted
 
Back
Top