ocsenave@311: #+title: Notes on Deconstructing Pokemon Yellow ocsenave@311: #+author: Dylan Holmes ocsenave@311: #+email: rlm@mit.edu ocsenave@311: #+description: ocsenave@311: #+keywords: simulated hearing, openal, clojure, jMonkeyEngine3, LWJGL, AI ocsenave@311: #+SETUPFILE: ../../aurellem/org/setup.org ocsenave@311: #+INCLUDE: ../../aurellem/org/level-0.org ocsenave@311: #+BABEL: :exports both :noweb yes :cache no :mkdirp yes ocsenave@311: ocsenave@311: * Mapping the ROM ocsenave@311: ocsenave@311: | ROM address (hex) | Description | Format | Example | ocsenave@311: |-------------------+-----------------+-----------------+-----------------| ocsenave@311: | | <15> | <15> | <15> | ocsenave@311: | 04495- | Prices of items. | Each price is two bytes of binary-coded decimal. Prices are separated by zeroes. Priceless items[fn::Like the Pok\eacute{}dex and other unsellable items.] are given a price of zero. | The cost of lemonade is 0x03 0x80, which translates to a price of ₱350. | ocsenave@311: | 045B7-0491E | Names of the items in memory. | Variable-length item names (strings of character codes). Names are separated by a single 0x80 character. | MASTER BALL#ULTRA BALL#... | ocsenave@311: | 05EDB. | Which Pok\eacute{}mon to show during Prof. Oak's introduction. | A single byte, the Pok\eacute{}mon's internal id. | In Pok\eacute{}mon Yellow, it shows Pikachu during the introduction; Pikachu's internal id is 0x54. | ocsenave@311: | 27D99-27DFF | Names of the Pok\eacute{}mon types. | Variable-length type names (strings of character codes). Names are separated by a single 0x80 character. | NORMAL#FIGHTING#... | ocsenave@311: | 38000- | The basic properties and effects of moves. | Fixed-length (6 byte) continguous descriptions (no separating character): move-index, move-effect, power, move-type, accuracy, pp. | | ocsenave@311: | 39462- | The Pok\eacute{}mon cry data. | Fixed-length (3 byte) descriptions of cries. | | ocsenave@311: | 40687- | Species data from the Pok\eacute{}dex: species name, height, weight, etc. | Fixed-length sequences of bytes. See below for specifics. | | ocsenave@311: | E8000-E876C | Names of the \ldquo{}190\rdquo{} species of Pok\eacute{}mon in memory. | Fixed length (10-letter) Pok\eacute{}mon names. Any extra space is padded with the character 0x80. The names are in \ldquo{}internal order\rdquo{}. | RHYDON####KANGASKHANNIDORAN♂#... | ocsenave@311: | | | | | ocsenave@311: | | | | |