Skip to content
A set of scripts and C code used to create a Bug-Catching Contest for the Generation 3 Pokémon games.
C Python Assembly
Branch: master
Clone or download
Latest commit d235228 Apr 11, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example_rom Added files via upload Apr 5, 2016
game_scripts Update level_script.rbc Apr 10, 2016
scripts Added files via upload Apr 5, 2016
src Rename automovecamera.asm to automovecamera.s Apr 9, 2016
BPRE.ld Added files via upload Apr 5, 2016
LICENSE Initial commit Apr 5, 2016
README.md Update README.md Apr 11, 2016
hooks Added files via upload Apr 5, 2016
linker.ld Added files via upload Apr 5, 2016

README.md

Bug-Catching Contest

A set of scripts and C code used to create a Bug-Catching Contest for the Generation 3 Pokémon games.

Tested on BPRE.

To set up:

  • Create a map with 12 person events
  • Position one as the Guard, which the player can interact with to forfeit the contest
  • Position one as the Judge in a suitable position
  • Line the rest up in the top corner of the map and give them different sprites
  • Update the definitions in the bug_catching_contest_values.rbh file for the Person event numbers
  • Assemble automovecamera.asm and insert it into your ROM
  • Update the definition for ASM_AUTOMOVECAMERA in the bug_catching_contest_values.rbh file with its address (remember to + 1)
  • Paste your ROM into the root directory of this project and rename it to BPRE0.gba

  • Modify main.c, level_script.rbc and bug_catching_contest_values.rbh to suit your needs

  • Compile main.c using the command line command python script\build && python scripts\insert --debug to generate output.gba

  • You should have the GBA-C infrastructure set up already; for more information, see FBI's tutorial
  • Take note of the offset of calculate_score and update the definiton of ASM_CALCULATESCORE in the bug_catching_contest_values.rbh file with the routine's address (remember to + 1)
  • Compile level_script.rbc into the generated output.gba file
  • Paste the offset @start compiled to in the Map script offset: field for the map in Advance Map's Professional view Header tab

Things to note:

  • There is no consolation prize, unlike the canon Bug-Catching Contest
  • This can easily be added, though, with some scripting
  • This assumes that the player only has one Pokémon in their party during the contest
  • It's recommended to force the player to deposit their Pokémon before allowing entry
  • As it currently works, the first Pokémon the player captures is the one they enter, unlike the canon Bug-Catching Contest
  • The Contest therefore does not end when the player runs out of Balls, nor is there a time limit
  • The score calculation is accurate as of HeartGold and SoulSilver's Bug-Catching Contest:
  • The level of the Pokémon relative to the maximum that can be found in the contest, as a percentage
  • The Pokémon's IVs relative to the maximum (186), as a percentage
  • The Pokémon's HP relative to its maximum, as a percentage
  • A rarity factor, either 60, 80, or 100 (Pokémon are assigned their rarity in main.c)
  • The highest possible score is therefore 400
  • You will need to create your own dialogue scripts for the Judge, Guard and contestants
  • The code in main.c which forces Mega Stone items as the first place prize is commented out by default as the items themselves are not in items.h by default; you will need to add them yourself and uncomment the code
You can’t perform that action at this time.