Tool-assisted game movies
When human skills are just not enough

Submission #2824: p4wn3r & FractalFusion's GBC Pokémon Trading Card Game in 21:40.67

Console: Game Boy Color
Game name: Pokémon Trading Card Game
Game version: USA
ROM filename: 0456 - Pokémon Trading Card Game (U)(Menace).gbc
Emulator: (unknown)
Movie length: 21:40.67
FrameCount: 78040
Re-record count: 20585
Author's real name: Felipe Lopes & Justin Chan
Author's nickname: p4wn3r & FractalFusion
Submitter: p4wn3r
Submitted at: 2010-08-31 01:32:45
Text last edited at: 2020-07-29 06:18:07
Text last edited by: Spikestuff
Download: Download (4238 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

(Link to video)

MP4 download at archive.org: http://www.archive.org/details/PokemonTradingCardGame
Youtube Part 1: http://www.youtube.com/watch?v=uuLSTwLC2K4
Youtube Part 2: http://www.youtube.com/watch?v=DFt_OGz4Cdg

Lua script used: http://pastebin.com/gRCDfWSq

p4wn3r's comments

Run attributes

  • Aims for fastest completion of the game
  • Heavy luck manipulation
  • Uses loss as a shortcut
  • Attempts to color a dinosaur, but fails miserably

Emulator used

Visual Boy Advance re-recording v23-interim svn217

The movie should synch on v19.3 and newer, with the exception of the "problematic" v20

Overall comments

(From Wikipedia) Pokémon Trading Card Game (ポケモンカードGB Pokemon Kādo Jī Bī?, Pokémon Card GB) is the video game incarnation of the popular Pokémon Trading Card Game (TCG). There are currently two games in the series. Both the series and the card game are based on the famous Pokémon video game series. Mimicking the style of the original Pokémon video games, this series featured the protagonist, Mark, that wanted to be the best at the Pokémon Trading Card Game. He would then travel between areas collecting cards and challenging Club Masters (equivalent to Gym Leaders). Upon defeating all of the Club Masters, he would face the Grand Masters (equivalent to the Elite Four). Afterwards he would fight his rival Ronald for the title of Champion. Winning would win him the four Legendary Pokémon Cards: Moltres, Zapdos, Articuno, and Dragonite. Each of the Grand Masters built their decks around one of these cards. Ronald uses a deck containing all four. The first game in the series was released in Japan for the Game Boy Color on December 18, 1998. It was then released in North America on March 31, 2000 and in Europe on December 8, 2000.

Pokémon TCG is one of the best spin-off games of the Pokémon franchise. The game is quite challenging when played on Game Boy, to win, you have to defeat your opponents many times to collect booster packs to build a deck that counters your opponent's strategy. However, none of this happens in this TAS, the battles won are just enough to complete the game, even losing forced battles when it's faster to do so. Luck is manipulated to its limit, allowing opponents to be beaten in 1 or 2 turns. As a consequence, the game is completed in less than 22 minutes, whereas a normal gameplay would last hours.

Luck manipulation

Luck is obviously the most time-saving aspect of this run and what makes the movie interesting.

Pseudo-randomality in this game is controlled by the bytes in addresses CACA-CACB. They don't change at all during battles, except when a random event is called (for example, shuffling the deck or doing an attack that requires a coin flip). That means that the random map for a battle is completely set before it takes place. However, it's still possible to manipulate a good random result with the use of cards that shuffle the deck (like Computer/Energy Search), which change the RNG seed.

Manipulation in this run abuses the fact that the RNG is affected only by frame delay, doesn't roll when changing decks and only card offsets are randomized. The method used to manipulate luck consists of:

  • Open and close the menu to simulate a deck change before a battle
  • Check every frame observing opponent's hand. Look for one that has few weak basic pokemon.
  • Take note of the values at CACA-CACB and the position of the cards that went into your hand.
  • Observe the randomness in the battle, mostly coin flips
  • Change the deck, putting the cards necessay to win the match in the hand positions.
  • If the coin flips aren't favorable, put Computer/Energy Search to try to manipulate, or remove all pokemon to redraw the hand.
  • Start the battle when the values at CACA-CACB are the same you wrote down.
  • Watch your enemy cry in agony as you deliver the mortal blow.

Player card positions during battle start at C200, ther IDs start at C400. For the opponent, the addreses are, respectively, C280 and C480. A Lua script was used to visualize this better.

When removing a card from the deck, the first card of that type in the array is removed and the remaining cards are shifted left. When adding a card, it's appended to the end of the deck.

This way, it's possible to manipulate "normal" opponents to have only one basic pokemon in hand, making them lose when you KO their only pokemon. For "bosses" (club leaders, Ronald and grand masters), things work quite differently. Shortly before the prizes are put, the game changes their hand to have a minimum of two basic pokemon and some energy cards. Because of this, two turns is the minimum necessary to defeat bosses. Courtney, Steve, Jack and the final Ronald are an exception to this rule, since they carry a legendary basic card and the AI will choose not to put those cards at the start of the match to abuse their poképower.

Since changing decks costs time, we often went for sub-optimal 1-turn battles that would be slower if manipulated flawlessly. In two-turn wins, though, since the result expected is harder to achieve, this strategy is applied everytime.

Cards used

  • Ponyta, Rattata, Staryu and Hitmonchan - 20 damage with one energy card
  • NidoranM and Farfetch'd - 30 damage with one energy card and coin flip
  • Energy Search and Computer Search - used to manipulate coin flips
  • Pluspower - raises the amount of damage you deal, allowing OHKO
  • Defender - blocks 20 damage from opponent, the AI doesn't attack when it won't deal damage, saving time.

Possible Improvements

Like any other luck-based TAS, this run is quite improvable. Most of the improvements may come from an in-depth analysis of the RNG, which would allow victory with the fewest amount of deck changes. Better luck manipulation in general could also be used, as there were some sub-optimal battles in this run simply because changing the deck for the fastest solution would take too much time. Also, booster packs received could be manipulated not to give new types of cards, that would reduce the amount of options in the card menu and make deck changing faster.

FractalFusion's comments

I didn't work on it much (just the first two clubs), and that was three years ago, but I set the groundwork that p4wn3r eventually took up. I remember kirbymuncher also worked on it even earlier than I did.

Anyway, before I gave up, I decided to beat Ronald even though losing to him was faster. However p4wn3r decided that losing to Ronald was better, and so redid the Ronald battle I beat. Anyway, I found it rather surprising that p4wn3r had TASed so fast, faster than I could have done. I would have thought manipulating would be hard enough.

Too bad the tutorial was so long, it consumed 1/3 of the movie. At least you have a chance to see how a TCG battle works. You can read the Wikipedia page, which covers the rules of the game. I'll summarize it here.

After drawing hands and placing prize cards, each player puts down one or more basic Pokemon in play (if no basic Pokemon, hand is redrawn), designating one Pokemon each as an active Pokemon. Flip a coin to see who goes first. From then on, players take turns doing stuff such as drawing a card from the deck (mandatory), putting energy cards (optional, one max per turn), evolving a Pokemon (optional), using trainer cards (optional), and ending the turn with a move by the active Pokemon (optional). A player who knocks out a Pokemon claims a prize card. A player wins if he/she claims all of his/her prize cards, or the other player has no Pokemon remaining, or the other player has no cards left in the deck.

To win really quickly, this run manipulates so that the opponent has as few (one or two) basic Pokemon left as possible, and that they are weak. These Pokemon are beaten in one move each, using basic Pokemon that do 20 or 30 damage with one energy. Manipulation can be done with altering the deck, waiting outside battle, redrawing own hand, and using cards that randomize (such as energy search and computer search). The game cheats for leaders (and Ronald) by giving them at least two basic Pokemon and some energy cards.

There are a couple instances where losing is faster than winning.

By the way, the four "legendary cards" are inventions of this game and do not exist in real life.

Suggested screenshot:

Baxter: Accepting due to good audience response.

Similar submissions (by title and categories where applicable):