TWITCH PLAYS POKEMON: ANNIVERSARY CRYSTAL

The second fully-custom ROM-hack. This time created for the 2-year anniversary TwitchPlaysPokemon, Anniversary Crystal adds more content than ever before, while blowing the existing hack, Anniversary Red, completely out of the water. New dungeons, new encounters, new maps, music, trainers, and more! Take a journey from your hometown in Kanto like never before on your quest to capture all 251 Pokemon!


Update 4.24 - Patches are updated to version 1.1.1 to fix some initial bugs discovered after release.
Update 4.28 - Patches are updated to version 1.1.2: Additional bug fixes and enhancements.
Update 5.14 - Patches are updated to version 1.2.1: Additional bug fixes and enhancements, enable Distribution.
Update 5.15 - Patches are updated to version 1.2.2: Additional bug fixes.
Update 5.22 - Patches are updated to version 1.2.3: Final bug fix release.

Download Standalone ROM IPS Patch

Apply this patch to a clean Pokemon Crystal ROM
Base ROM should have a checksum of 9F2922B235A5EEB78D65594E82EF5DDE.
If you don't want to set up external AI using Python and LUA, or aren't sure which file to download, use this.

Download Advanced AI Package and IPS Patch

Download this package to play using the more advanced, external AI program.
Base ROM should have a checksum of 9F2922B235A5EEB78D65594E82EF5DDE.
If you are familiar with LUA and are aware this isn't a simple task, download this.

Emulator and AI setup



The emulator we used when developing Pokemon Crystal 251 is a custom build of Visual Boy Advance ReRecording (VBA-RR), which is a fork of Visual Boy Advance.

Setting Up the AI


This section and the one below are only required if you are running the AI build and are attempting to set up the external AI. If you are not, you can simply use the ROM you have patched above.
  1. 1. Download Python 3 for Windows.
  2. 2. Run the installer. Opt to install for all users if you know what you're doing.
  3. 3. Open a Command Prompt window and run "pip install --upgrade pip". You may get an OSError; ignore it.
  4. * NOTE: To open Command Prompt, hold the Win key and press "R". In the window that pops up, type "cmd" and hit Enter/Return.
  5. * OPTIONAL: In the same Command Prompt window, run "pip install flask".
  6. 4. Download the "AI build + dependencies" pack from the link above.
  7. 5. Extract the files from the ZIP archive.
  8. 6. Patch the ROM using the included .ips file.


Running the AI with the game


  1. 1. Open a Command Prompt window, and navigate to the directory "ai" in the extracted zip file.
  2. * To do this, type "cd" and hit the spacebar. In Windows Explorer, copy the path from the address bar.
  3. * If the address does not start with "C:\", type "/d" in the command prompt window, then hit the spacebar.
  4. 2. Now, paste the copied path into the command prompt window, and hit Enter/Return.
  5. 3. If you ran step 4 of Installing Python, type "python AIServer.py" and hit Enter/Return. Otherwise, type "python AIServerStandalone.py" and hit Enter/Return.
  6. 5. Launch the emulator, VBA-RR-244/VBA-RR-244.exe.
  7. 6. Open the newly-patched ROM.
  8. 7. In the emulator, click on Tools > Lua Scripting > New Lua Script Window...
  9. 8. Click the button that says Browse...
  10. 9.If you haven't touched anything in VBA's directory settings, click Open. Otherwise, you'll have to navigate to VBA-RR-244/lua first.
  11. 10. Click Run.
  12. 11. Play the game!

Distribution Codes



Below are all of the currently released codes used to acquire unique and specially distributed Pokemon at the PokeCom center located in Goldenrod City. Distribution is enabled after you have captured all 251 Pokemon. Keep on the look out for new codes and ways of obtaining them!

Documentation



This section will be uploaded soon with a more user friendly version (and web-interactive version) of the documents. These documents were created by asdf14396 and detail all wild encounters, trainers, items, and other useful information. Make sure to open them in a proper text editor and resize the window, as there are many columns.

The Team


DIRECTOR
TwitchPlaysPokemon

PROJECT MANAGER
ProjectRevoTPP

PROGRAMMERS
PikalaxALT
pigdevil2010
Koolboyman
chaos_lord2
Chauzu_VGC
padz

GAMEPLAY/MAP DESIGN
LightningXCE
Addarash1
egobuff
Roysourking
Danimg
Koolboyman

SPRITE ARTISTS
Eraclito
Pioxys

MUSIC
pigdevil2010
GACT
FroggestSpirit

AI DESIGN
Beesafree

TESTERS
Deadinsky66
Boombafunk
The Chef1337
Chauzu_VGC
1hlixed
Eraclito
TrainerTimmy

DOCUMENT CREATION
asdf14396

MISC
walle303

Changelog


Version 1.2.3
* Version number now shown on options menu
* Actually reference new sprites for Johto starters
* Various sprite fixes
* Text overflow issues in a few dialogue instances fixed

Version 1.2.2
* Fix Paras' menu icon not animating
* Slight alteration to male player sprite to stop hair from growing when walking
* Fix PokeDex completion check for Diploma
* Pokemon Distribution now gated behind having 16 GYM Badges, rather than all 251 Pokemon

Version 1.2
* Remove OLDEN from the Pokemon Quiz Show
* More text fixes
* More party menu icons
* Moved an NPC on Route 4 to correct some visual errors
* You can no longer white out due to overworld poison damage (Gen 4 style)
* Fix the Name Rater bug
* Fix SS Ticket displaying the name of the wrong ship in Early Game Kanto
* Add a custom logo to the startup sequence
* Fix a bug where the Rooftop Sale prices were interpreted wrong
* Actually fix: You can no longer receive phone calls prior to actually getting the phone card
* Clarify Simon in the volcano
* MASSIVE movepool update
* Fixed the moveset of the dragon shrine dratini
* Fixed bug causing stats to not be properly recalculated for caught mons (levelling up or performing the box trick ends this glitch too)
* Fixed a bug causing wild mons to not benefit from DVs
* Fixed issue with Moltres replacing many overworld birds
* Removed kanto mons from rock smash mon tables
* Apply a different check for the TM Depot elevator
* Implement Poke Distribution system in the Goldenrod PCC - enabled after catching all 251
* Remakes of the original Kanto Pokemon Centers now replace all centers in EGK and normal Kanto
* Opened up a BOUTIQUE in Goldenrod to allow the player to change their player model's colors. Stay fresh!
* Different checks for overworld music resuming
* Misc other fixes

Version 1.1.2
* Grammar fixes
* Nerf the Raticate on the Rocket Executive in Mt Moon
* Nerf trainers in Morty's Gym
* Nerf an Executive in the Mahogany Base
* Revert random naming screen cursor initialization
* Restore start button functionality on the naming screen
* Restore NEW GAME option if you already have a save file
* Fix bug where pressing A or B in instant text speed mode would slow the text down
* Fix a glitch where dex entries that differ between metric and imperial units would be loaded incorrectly in radio programs
* Fix rival not despawning on Route 22 if you've already beaten Brock
* Fix some color-related glitches when talking to Whitney or Janine for rematches
* Fix Unown words in Ruins of Alph sourcing the wrong tiles
* Fix fourth stats screen displaying the wrong caught time-of-day
* The lights in the Battle Tent Generator Room now turn on as soon as you activate the generator
* Lights in the abandoned Rocket Hideout now behave correctly
* Possible fix for a glitch in the external AI where a foe with no usable moves would freeze the game
* Fix incorrect text pointer on SS Anne
* Fix Azure/Rust standing in Cerulean City, waiting for the player, in full view of the player
* Dummied out useless branching TM mart
* Custom party menu icons
* Raikou's overworld sprite is yellow now
* Fix a bug where the stock AI would favor stat-lowering moves while the player has Mist or Guard Spec. up
* Fix a bug where wild Moltres, Articuno, Zapdos, Mewtwo, and Mew are not forced to hold their respective items when encountered
* Wild Meowth now has a 25% chance of holding an Amulet Coin
* Updated Psywave to deal between (0.5 * level) and (1.5 * level) damage
* Added Rock Smash to a new house in Cianwood; removed it from Goldenrod Mart
* Added Repels to Viridian and Pewter Marts in Early Game Kanto; also added X-Speed to Pewter Mart
* Pay Day now gives (5 * level) money per use (up from (2 * level))
* Flash and Fly have swapped locations and activation badges, meaning you get Fly and can use it as soon as Violet City
- Existing files that have completed Sprout Tower and recieved Flash can get Fly from Cianwood as normal
* A boulder now exists in Dark Cave to stop the player from getting to Route 46 early and fighting higher-level trainers sooner than intended
* Restructured the Hitmon-line's level-up movepool
* Chansey gets Mimic as an Egg move
* Zubat now gets Leech Life at level 9 and Mega Drain at level 1
* Mankey now learns Encore at level 15, with Metronome becoming an Egg move
* Poliwag now learns Mimic at level 15, and Poliwhirl now gets it at level 1, with Metronome becoming an Egg move
* Geodude now learns Bide at level 6, with Metronome becoming an Egg move
* Drowzee now learns Safeguard at level 3, and hypno now gets it at level 1, with Metronome becoming an Egg move
* Grimer got a movelearn reshuffle:
- Level 4: Acid
- Level 8: Lick
- Level 12: Mega Drain
- Level 15: Disable
- Level 18: Sludge
- Level 21: Mean Look
* Fix glitches with the Bug Catching Contest
* Fix bug where BILL's PC is referenced before helping Bill when sending a caught Pokemon to the PC
* The game now tells you to which box your newly-caught Pokemon was sent

Version 1.1.1
* Grammar fixes
* Fixed some crashes with the AI server scripts
* Remove faulty callback in the Battle Tent Battle Room
* Remove product placement from the Pewter Museum of Science
* Fix Pokegear clock not updating in AI build
* You can no longer receive phone calls prior to actually getting the phone card
* Updated title from "CRYSTAL ANNIVERSARY" to "ANNIVERSARY CRYSTAL"

Version 1.1.0
* Initial release