Go to file
Mathias Bynens 21a7d158a6 Make Git ignore any ROM files 2015-04-10 17:04:11 +02:00
action Simplify Battle fight function 2015-04-09 16:53:56 -07:00
ai Cleanup 2015-04-10 02:17:35 -07:00
data Resolve memory table collision 2015-04-10 01:38:35 -07:00
storage Track Nido DVs, standardize Horn Drill speed check 2015-04-09 20:33:43 -07:00
util Resolve memory table collision 2015-04-10 01:38:35 -07:00
.gitignore Make Git ignore any ROM files 2015-04-10 17:04:11 +02:00
Changelog.md Update Changelog.md 2015-04-05 13:33:43 -07:00
LICENSE Initial public commit 2014-07-12 18:47:39 -07:00
NidoranStats.md Create NidoranStats.md 2015-04-03 09:40:23 -07:00
Readme.md Merge remote-tracking branch 'origin/master' 2015-04-09 20:50:03 -07:00
Seeds.md Update details for run with seed `1428414915` 2015-04-08 10:02:43 +02:00
main.lua 1.4 2015-04-10 02:31:57 -07:00

Readme.md

PokéBot

An automated computer program that speedruns Pokémon.

Pokémon Red Any%: 1:51:11 (23 June 2014)

Watch Live

http://www.twitch.tv/thepokebot

PokéBot's official streaming channel on Twitch. Consider following there to find out when we're streaming, or follow the Twitter feed for announcements when we get personal best pace runs going.

Try it out

Running the PokéBot on your own machine is easy. You will need a Windows environment (it runs great in VM's on Mac too). First, clone this repository (or download and unzip it) to your computer. Download the BizHawk 1.6.1 emulator, and procure a ROM file of Pokémon Red (you should personally own the game).

##About BizHawk## BizHawk 1.6.1 (Windows only) is the only version known to work. Later versions, like 1.7.2a do not seem to work, due to differences with reading bytes from memory.

Run the prereq installer, which should update a C++ distributable needed by BizHawk

You can unextract BizHawk-1.6.1.zip anywhere.

##Setting up and verifying the ROM## The ROM file should Pokemon Red.gb. The file name doesn't matter, but upload it to http://www.fileformat.info/tool/hash.htm to verify it's the US version. The linked website will spit out lots of hashes, make sure the two below match:

MD5: 3d45c1ee9abd5738df46d2bdda8b57dc
SHA-1: ea9bcae617fdf159b045185467ae58b2e4a48b9a

Open the ROM file with BizHawk (Drag the .gb file onto EmuHawk), and Pokémon Red should start up. The colors may look weird. To fix this, go to GB>Palette Editor, and then find the POKEMON RED.pal file which should be under Gameboy>Palettes in the directory where BizHawk was unextracted.

##Running the bot## If you want to test the full run, change this line to be false. Then, under the 'Tools' menu, select 'Lua Console'. Click the open folder button, and navigate to the PokéBot folder you downloaded. Select 'main.lua' and press open. The bot should start running!

Seeds

PokéBot comes with a built-in run recording feature that takes advantage of random number seeding to reproduce runs in their entirety. Any time the bot resets or beats the game, it will log a number to the Lua console that is the seed for the run. If you set CUSTOM_SEED in main.lua to that number, the bot will reproduce your run, allowing you to share your times with others. Note that making any other modifications will prevent this from working. So if you want to make changes to the bot and share your time, be sure to fork the repo and push your changes.

Credits

Developers

Kyle Coburn: Original concept, Red routing

Michael Jondahl: Combat algorithm, Java bridge for connecting the bot to Twitch chat, Livesplit, Twitter, etc

Special thanks

To Livesplit for providing custom component for integrating in-game time splits.

To the Pokémon speedrunning community members who inspired the idea, and shared ways to improve the bot.