You are not logged in.
A: Hacking is best defined as the reverse-engineering of the GameBoy and GameBoy Color games for creative and educational needs.
This is a broad umbrella that ranges from simple graphical hacks to major overhauls in how the game reads data.
A: They are prefixes that let the reader know which numerical system the proceeding number belongs to.
Binary = % Hexadecimal = $, 0x, x
A: All of us are taught in our societies' schools to do mathematics with a number system that has 10 digits:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
These are the constituents of the decimal system. However, there are other ways to count things; one numerical system employed in hacking is the binary counting system. The binary system uses two digits to count things:
These digits are combined to create representations of numbers much like the digits of the decimal system.
Like the binary system, the hexadecimal system is used in hacking quite often. It is based on sixteen numbers:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
These digits are, too, combined to represent larger numbers.
A: A digit refers to a number in the decimal system, and a bit refers to a number in the binary system.
Bits, which are either 0 or 1, can hold numerical value that can be then translated into the decimal and or the hexadecimal system.
A: A set bit is when a bit is changed from 0 to 1.
A reset bit is when a bit is changed to 0.
A: Bytes are groups of eight bits that form a single unit of data. They are important in the binary system as well as the hexadecimal system.
Bytes are rudimentary to hex editing, in which hexadecimal units are grouped together to form two unit numbers.
To clear up any confusion, here are some home-made examples:
A. Byte in binary form: %00000000 Byte in decimal form: 0 Byte in hexadecimal form: $00 B. Byte in binary form: %00000001 Byte in decimal form: 1 Byte in hexadecimal form: $01 C. Byte in binary form: %00000010 Byte in decimal form: 2 Byte in hexadecimal form: $02 D. Byte in binary form: %00000011 Byte in decimal form: 3 Byte in hexadecimal form: $03 E. Byte in binary form: %00001010 Byte in decimal form: 10 Byte in hexadecimal form: $0A F. Byte in binary form: %1011010 Byte in decimal form: 90 Byte in hexadecimal form: $5A G. Byte in binary form: %10111101 Byte in decimal form: 189 Byte in hexadecimal form: $BD H. Byte in binary form: %11111111 Byte in decimal form: 255 Byte in hexadecimal form: $FF
A: Although the answer to this question really depends on your own personal background, there are many web sources teaching you how to do this. If you have taken a formal class on computer science, I am sure it will be easier than if you had no learning whatsoever.
However, Windows contains a valuable in-built program for switching between the number systems: Calculator.
Just switch the View mode to Programmer, and you will see some panels on the top left from which you can type in a number and convert it to that of another system.
A: ROM stands for "Read Only Memory" while RAM stands for "Random Access Memory".
Data in ROM cannot be changed by playing the game. An example would be the base health of Snorlax, the items you get from the PokeMart, or the starter Pokemon you receive.
Data in RAM is what your save file contains, to put it simply. Your Pokemon, the health of your Charizard in battle, your rival's name are all stored in RAM.
Hacking involves changes to the ROM and also how data is written to the RAM.
A: Offsets refer to a specific location in memory. In colloquial terms, it is the address of the byte you are referring to.
When a GameBoy ROM or RAM file is opened up with a standard hex editor, it will contain tons of hexadecimal bytes that are arranged in order. The first box has an address of $0. The second box has an address of $01. The third box has an address of $03.
Offsets are typically written in one format that is rather straightforward, and another organized format that the GameBoy natively understands:
A. Offset in decimal form: 46679 Offset in first hexadecimal form: $B657 Offset in second hexadecimal form: 02:5776 B. Offset in decimal form: 132157 Offset in first hexadecimal form: $2043D Offset in second hexadecimal form: 08:3D44 C. Offset in decimal form: 924076 Offset in first hexadecimal form: $E19AC Offset in second hexadecimal form: 38:AC59 D. Offset in decimal form: 1420579 Offset in first hexadecimal form: $15AD23 Offset in second hexadecimal form: 56:236D
The second format will become more clear once you have a firm grasp of banks, pointers, and repointing.
Offsets are crucial in understanding basic hex editing as you will need to know where certain data is located at.
A: Banks divide up the GameBoy's ROM and RAM data into sections that are $4000 bytes long.
Bank $00: $0000-$3FFF Bank $01: $4000-$7FFF Bank $02: $8000-$BFFF Bank $03: $C000-$FFFF Bank $04: $10000-$13FFF ... Bank $2B: $AC000-$AFFFF Bank $2C: $B0000-$B3FFF Bank $2D: $B4000-$B7FFF Bank $2E: $B8000-$BBFFF Bank $2F: $BC000-$BFFFF ...
In the first bank, $0000 is included in the calculation of $4000 bytes per bank. For the same reason, the second bank starts at $4000, and so forth.
The bank's number is determined by its position relative to other banks; the first bank is assigned the hexadecimal number $00, the second assigned $01, and such. The eleventh bank, then, would be assigned $0A.
A bank's number can be easily calculated by taking the offset and dividing by $4000. The remainder is ignored in the calculation.
Certain banks are reserved for specific functions; an example of this is how the second ROM bank in the Gen. II games is primarily used to store palette data.
To see the details on different ROM and RAM banks, refer to the resource links below.
A: A pointer is a piece of data in a GameBoy ROM that tells the game to skip to a different part of the game to retrieve data. Pointers "tell" the game which offset to skip to, to do things like retrieving data or executing a code or script.
The data may be text, graphics, or a script. Pointers themselves contain an address to the data they refer to; take a look at the multitudinous pointer tutorials to understand how they work.
While it is tempting to assume that pointers point to a ROM location, they point to a RAM location in reality. This is because a part of the ROM is always copied over to a part of the RAM. The procedure is explained in detail in the appropriate resource link below.
A: Repointing is when you edit the pointers so that it points to a different location in the ROM. In essence, nothing significant can be done in ROM hacking if you do not repoint.
As repointing is a basic concept in ROM hacking, rejecting the repointing process will most likely mean you won't get to higher and more creative and technical aspect of ROM hacking.
To reiterate: repointing is necessary if you want to expand text, expand existing events or create new ones, and to write new codes. Basically, you will be able to barely hack anything without repointing.
A: The two kinds of pointers used in GameBoy games serve the same purpose and only differ in the aspect that 3-byte pointers contain an extra byte that denotes the bank location.
This means that 2-byte pointers will always point to a location inside the bank the pointer itself is in; in contrast, 3-byte pointers can point to either inside the same bank the pointer itself is in, or to an outside bank. Usually 3-byte pointers will point to locations outside its own bank because it would be pointless to have an extra byte to denote bank when pointing inside the same bank.
A: Tilesets are sets of graphical data used in the Pokemon game's maps.
One tile is a graphical unit of 8x8 pixels. Different tiles are used in a combination to create a block; one block is a collection of 4x4 tiles.
Each 2x2 tile space in a block is assigned a specific collision data, which tells the game what to do when the player enters the space. This accounts for why doors without warp data move the player back down; unless there is a warp data on top of the space containing the door graphics, the game will force the player to return to the spot he moved from.
To learn the specifics of tilesets and learn how to edit them, refer to the post below and try searching for a resource link for the appropriate generation.
A: Assembly is a term used to describe a specific type of programming language. The Pokemon games we work with, which are known as Generation I and II games or Metal and Color games, use a specific derivative of Zilog-80 Assembly, termed GameBoy Assembly.
A: The answer to this question depends much on your spectrum of abilities. Meaning: if you know GameBoy Assembly, anything can be achieved although some things may be quite difficult to implement. If you are limited to scripting, then you will be able to create relatively thorough hacks. If you limit yourself to hex editing and repointing, you will be able to create a simple hack. If you only use tools, you will be able to create a hack that nobody would want to play.
- Most if not all of these docs pertaining to Pokemon hacking are written by those who pioneered the information and released their findings for free. Some documents may contain outdated information and errors; it is not the responsibility of the authors should you mistakenly ruin your creative work.
• If you cannot find a resource about a topic, always check other sections; consider where the information would be handy.
• Not all aspects of Pokemon hacking will be covered. Make sure you haven't missed something before searching the forum and the rest of the web.
• If your browser allows, you could try using an in-built search function to look for certain keywords, such as "egg moves".
• Always check which Pokemon game the resource refers to. It may not be for the certain version you are working with.
• Giegue's Master Hacking Guide
A link to an old and incomplete as well as inaccurate hacking guide. Nevertheless it is crucial and correct concept-wise; look through it if you want to get a sense of finding things. IIMarckus has kindly provided a warning, via an edit of Mateo's post, about its inconsistencies and errors.
• Miksy91's Pointer Tutorial
A simple explanation of the pointer concept and RAM strucutre accompanied by a worked-out example.
• IIMarckus's Pointer Post
An insightful yet short post that attempts to explain how pointers work.
• Koolboyman's Pointer Tutorial
Another helpful document for understanding pointers and the bank idea associated with them.
• Sawakita's Pointer Tutorial
A detailed and thorough description of how the pointer system works.
• Miksy91's Documents and Edits Thread
A helpful thread that outlines Miksy91's personal way of keeping track of information about hacks and the changes made to the hack he is working on.
• Cartmic's Snestool ROM Patching Tutorial
An easy patching tutorial with the use of Snestool.
• Mateo's Snestool ROM Patching Tutorial
Another easy patching tutorial with the use of Snestool.
• IIMarckus's Patching Programs List
A brief list containing the links to different patching programs for different operating systems.
• Melash's Music Hacking Document
A handy doucment on the specifics of music in GSC as well as RBY. A must-read if you are planning on creating custom music; recent discussion has furthered information about music hacking.
• Koolboyman's Unused Red Song Thread
A discovery on an unused song from Pokemon Red and a little discussion about how the music data works.
• Miksy91's Bytes and Bits Thread
An attempt to explain rudimentary bytes and bits with instructions that have been recently updated.
• Bits and Bytes Document
An outside source for understanding bits, bytes, nybbles, and words. Similar documents can be easily found by searching online.
• DuoDreamer's ASM School
One of the best introductory series on learning the GameBoy's Zilog-80 Assembly programming. Includes a general background about the GameBoy system and 9 completed lessons on the basics of GameBoy programming as well as a host of other links and references.
• Red Sprite Decompression Discussion Thread
A question about Red sprite decompression leads to an explanation of Assembly registers and RAM banks.
• IIMarckus's GBC RAM Structure Post
Another short yet insightful post about how the Color GameBoy's RAM is structured.
• Pan Docs
An archive of information for everything you ever wanted to know about the GameBoy but were afraid to ask!
• GameBoy CPU Instruction Sheet
A great interactive table, much like the Tauwasser's Compendium, that details the full explanations of every opcode.
• GameBoy Opcode Summary Sheet
Very much alike to the link directly above, this sheet details opcodes albeit in a different way of organization.
• Hex Bytes to ASM OpCodes Table
A visual table that tells you the commands and their flag settings corresponding with their hex bytes.
• IGN Gudies Archives: Red and Blue Strategy Guide
A very thorough, information-packed guide containing just about everything a new player might need to know about Red and Blue. Like the Gold and Silver Strategy Guide, this page is extremely useful for the process of planning out a hack.
• IGN Guides Archives: Yellow Strategy Guide
Much like the Gold and Silver and Red and Blue strategy guides, this guide specifically for Yellow may help in a hack's planning process.
• Psypokes: Red and Blue Gameshark Codes
A useful page of commonly-needed Gameshark codes containing Pokemon, moves/attacks, and items indexes.
• Psypokes: Yellow Gameshark Codes
A similar page as the link above, but specifically for Yellow.
• Bulbapedia: Cross-Generational Evolutions List
A nice list of Pokemon that have cross-generational evolutions. Useful if you are planning on adding extra evolutions added in the second generation.
• DataCrystal: Red and Blue ROM Map
A navigable list of some known ROM locations of Red and Blue data.
• DataCrystal: Red and Blue RAM Map
A long list of some known RAM locations of Red and Blue data.
• DataCrystal: Red and Blue Table File
A table for the corresponding text bytes in the English Red and Blue ROMs.
• Japanese Table File Thread
A list of the Japanese characters as well as a download link for those of you who are interested in hacking the Japanese versions.
• Bulbapedia: Generation I Pokemon Base Stats Chart
A complete chart on the base stats of Pokemon. Includes fingerprints from Red, Blue and Yellow as well as the offsets of where the data starts.
• IIMarckus's Map Headers Document
A handy resource for how the map header works, and some helpful discussion about its structure.
• Sawakita's Starter Pokemon Editing Tutorial
A thorough explanation on editing the program behind the starter Pokemon script by both hex and assembly.
• Sawakita's Starter Pokemon Editing Q&A Thread
An explanation of some problems and issues encountered when editing the starter Pokemon script.
• Sawakita's PokeCenter and Mart Thread
An informational post about the scripts in both locations.
• Sawakita's Outside Battle Moves Thread
A resource on how outside battle moves work, as well as some comments about unused text.
• Sawakita's Scripting from Scratch Guide
A useful document on how to create a brand new script.
• Sawakita's Text-Script Structure Thread
An explanation of how text is displayed without a scripting engine.
• ghost's Palette Editing Document
A useful document if you need to edit colors in Pokemon Red and Blue, although the information may apply to Yellow as well.
• Koolboyman's Map Headers Post1
A helpful post that lists all the map header bytes in an old Yellow hack.
• Cartmic's Town Map Editing Tutorial
A simple tutorial to help you edit the town map in Red or Blue, perhaps Yellow.
• IIMarckus's Town Map Compression Program
A routine written by IIMarckus that compresses the town map data, with instructions on how to do edit.
• IIMarckus's Wild Pokemon Data Discussion Link
A discussion between IIMarckus and Harrison about the Wild Pokemon data in Red.
• IIMarckus's Changing Trainers' Special Moves Discussion Link
A discussion between IIMarckus and Harrison about changing the special moves of a trainer in RBY.
• swampert22's Adding New Pokemon Help Thread
A very good example of a help thread with a helpful download link.
• stag019's RB Sprites and Offsets Chart
Contains previews of Red and Blue's in-battle sprites as well as locations and lengths of offsets of those sprites.
• stag019's Yellow Sprites and Offsets Chart
Same as the Red sprites and offsets chart, except the information is correct for Yellow.
• stag019's Green Sprites and Offsets Chart
This is also the same, except it is for the Japanese Green version.
• IIMarckus's Red Disassembly Repository
An attempt at a complete disassembly of Pokemon Red. Check here if you are working on a Red hack.
• Ubitux's Scavenger Hunt Document
A very thorough and proper way of deducing hidden items.
• Danny E-33's Backsprite Routine Help Thread
Goes in-depth about loading backsprites and how to change the size of the backsprites.
• Danny E-33's Palette Routine Help Thread
A great example of determining how a routine works, and tweaking it for a phenomenal result.
• Danny E-33's Pokemon ID Help Thread
Here is a talk about some specifics of the Pokemon ID system in Red.
• IGN Guides Archives: Gold and Silver Strategy Guide
An extremely helpful guide that contains a huge amount of information about gameplay. Key help in planning hacks as it includes charts about everything a new player may want to know.
• Bulbapedia: New Pokedex Listing
List of GSC Pokemon in Johto order. New Pokedex refers to the one that lists Chikorita, Cyndaquil and Totodile first instead of Bulbasaur, Charmander and Squritle.
• Psypokes: Gold and Silver Gameshark Codes
A useful page of commonly-needed Gameshark codes containing Pokemon, moves/attacks, time, and items indexes.
• Psypokes: Crystal Gameshark Codes
Another page from Psypokes with relevant hex information, but for Crystal.
• hanzou's Gameshark Codes Page
A vast list of different Gameshark codes. Includes a brief basic Gameshark Q&A, a decimal-to-hexadecimal conversion chart, both alphabetically and hexadecimally ordered indexes of Pokemon, moves/attacks, items and text, as well as miscellaneous codes.
• DataCrystal: Gold ROM Map
Shows the locations of various data within the Gold ROM. This link is useful if you want to locate a certain piece of code when you cannot think of any way to locate it.
• DataCrystal: Gold RAM Map
Shows the locations of various data written to the Gold RAM. This link can be used for manipulating variables for testing purposes. You can also create your own Gameshark codes with the help of this link.
• IIMarckus's Crystal RAM Map Thread
A RAM map for Crystal, posted by IIMarckus on another forum at an older date.
• Mateo's Useful Offsets Thread
Much like the Gold ROM map, this thread contains the locations of data that one may have been looking for.
• Koolboyman's Gold RAM Map
Almost like the other Gold RAM map. If you are struggling in finding something in the other link, looking here might help.
• IIMarckus's GS RAM Map
Another RAM map findings thread by IIMarckus. Look here if you cannot find things from the other RAM maps.
• tysonrss's Resource Thread
A precursor to this thread. Note that tysonrss's resource thread focuses more on specific editing.
• Miksy91's GSC Hacking Tutorial Videos
A video series exploring basic hacking concepts, leading from evolution editing to simple scripting. It is highly recommended that you watch over these videos if you want to get a grasp of what GSC hacking is like. Recently it has been updated and redone.
• Bulbapedia: Generation II Pokemon Base Stats Chart
A complete chart on the base stats of Pokemon. Includes fingerprints from Gold, Silver and Crystal as well as the offsets of where the data starts.
• IIMarckus's Editing Level-Up Moves and Evolutions Tutorial
A straightforward document on how to edit level-up moves and evolutions, with some examples to show the structure of different Pokemon evolution types.
• Akwa's Breeding and Egg Moves Thread
A neat thread on newfound discoveries about how breeding and egg moves data works. Be sure to look if you are going to mess with the Johto daycare system.
• IIMarckus's Odd Egg Post
A small post about how the Odd Egg data in Crystal is structured.
• Koolboyman's Cry Data Editing Tutorial
A simple tutorial on creating custom cries based on normal cry data. A must-have if you want to add new or custom Pokemon. Also contains a sample cry archive.
• IIMarckus's Wild Pokemon Data Post
A concise post on how the Wild Pokemon data works in GSC.
• IIMarckus's Attack Data Document
A document containing lists of attacks, their effects, and the structure they can be edited by.
• Koolboyman's Item Editing Tutorial
An in-depth yet simple guide to editing what an item does.
• Sound Effects and Music Index
Index of the bytes of sound effects and music. Also note that IIMarckus's index is in decimal.
• EvilOttoJr's Fleeing Pokemon Discussion Thread
An insightful thread in which forum members discuss the differing flee values of different Pokemon.
• Mateo's Town Map Item Tutorial
A nice way to get an item to work as a functional Town Map, albeit with a palette error.
• IIMarckus's Map Bank and Number List
A neat list of maps with their banks and numbers.
• Miksy91's Region/Town Map Editing Tutorial
A complicated tutorial on editing the map indexes and town map order of the areas in a hack. Due to the extremely complex nature of the data, it is not 100% complete in regards to creating a flawless map.
• Miksy91's Map Connection Editing Tutorial
Another complicated tutorial on a complex topic. Like the region/town map editing tutorial, the complexity of the data here requires that you experiment with your own data to get things right.
• Mr.MeanMustard's Titlescreen Editing Tutorial
An old and limited way of titlescreen editing, clarified by Mateo.
• Mateo's Titlescreen Editing Tutorial
An updated, less limited way of titlescreen editing.
• Mateo's Tileset Header Editing Tutorial
This tutorial contains all the data you need to edit a tileset using Melash's Tileset Editor. It contains necessary information in regards to tilesets, tiles, blocks, collision data, and tile palettes.
• Mateo's Tileset Header Extension Tutorial
This tutorial lets you take advantage of the tileset extension patch created by Tauwasser.
• Mateo's Transparent Tile Tutorial
This tutorial allows you to have your player walk behind certain tiles, albeit in a limited way.
• jaydenp65's Resizing Pokemon Sprites Tutorial
An image-illuminated thread that instructs on how to resize Pokemon sprites using Hack-O-Matic; also has others' useful posts about the data of Pokemons' sprites, eliminating the need for the tool.
• stag019's Gold Sprites and Offsets Chart
A useful chart that shows previews of Gold's sprites and the location and length of these sprites.
• stag019's Silver Sprites and Offsets Chart
A chart with the same function as the one above, except it is for Silver.
• stag019's Crystal Sprites and Offsets Chart
Another chart made for Crystal.
• Tauwasser's Scripting Compendium
A massive, navigable document containing valuable information about all the scripts codes used in Gold and Silver. Also contains extra information about flags, event data structure, script/map headers, and more.
• IIMarckus's Crystal-Exclusive Scripts Thread
A saved conversation between Tauwasser and IIMarckus about some of the exclusive Crystal scripts and scripting commands.
• Mateo's Introductory Scripting Tutorial
An easy-to-digest tutorial with commentary. Note that raw scripting bytes, rather than PKSV scripting codes, are used in this tutorial.
• Cooley's Scripting Tutorial
A byte-by-byte explanation of some scripts. Contains PokeMart, Pokemon and items indexes. Note that PKSV scripting codes are not used in this tutorial.
• Miksy91's Scripting Tutorial
Also a detailed, byte-by-byte explanation of existing scripts. Note that PKSV scripting codes are used in this tutorial.
• Munchulax's Variable Sprites Thread
Tauwasser and Mateo help clarify what the scripting command 6C does.
• IIMarckus's Trainer Editing Tutorial
Explains trainer data and structure in the game.
• Miksy91's Trainer DV Discussion Thread
Some findings about editing the DV's of enemy Pokemon, and how to enable Shinyness.
• tysonrss's Trainer Scripting Tutorial
Structure and explanations of different types of trainer data.
• tysonrss's Trainer Flags List
A list of trainer flags to accompany compiled by tysonrss that accompanies the Trainer Scripting Tutorial.
• Zarator's Flag Clarification Help Thread
A nice thread to review if you are just starting, and want some confusion about flags cleared up.
• RHWiki: Overworld Sprites Image
A useful picture for choosing what sprite to use in a spriteset. Notice that the website is in German, for the German ROM.
• Miksy91's Trainer Index
A nice index of trainer bytes compiled by Miksy91.
• Koolboyman's Bit Numbers / Flags List
A list of bit numbers/flags compiled by Koolboyman.
• Elm Script, Triggers and Flags Help Thread
A discussion about editing the Elm script and triggers and flags. Useful if you want to get started but need some help.
• Mateo's AGIXP Tutorial
A thorough guide on how to extract and input graphical data.
• Mateo's GoldMap Events Tutorial
A step-by-step tutorial on how to add events via hex editing in conjunction with GoldMap's in-built event editor.
• GoldMap Facing Values Index
List of person-event facing values used in GoldMap. Not confirmed if these values are the same in other editors.
• Melash's Fixing MegaMap in Windows 7/64-Bit Guide
A way to fix MegaMap's incompatibility in Windows 7 and 64-bit machines.
• PKSV Scripting Commands to Compendium Commands List
A list of PokeScript scripting commands and their corresponding Compendium commands in Gold, as well as in Crystal.
• Kanzure's Crystal Disassembly Repository
An attempt at a full disassembly of Pokemon Crystal, similar to the Red disassembly project. Make sure to check here if you are working on a Crystal hack.
• IIMarckus's Useful ASM Routines Document
A handy document for various ASM routines used in the second generation.
• Munchulax's Border Graphics Repointing Help Thread
A question about an error in repointing border graphics leads to a full disassembly.
• Miksy91's Name Another Character Tutorial
A new approach to making use of the unused name-your-mother routine in Gold.
• IIMarckus's Shiny Pokemon Ratio Disassembly
A help thread reply that breaks down the mechanism behind detecting shiny Pokemon.
• IIMarckus's Battle Music Dissassembly
A deconstruction of how the game chooses which battle music to play during a battle.
• IIMarckus's Radio Channels Disassembly
A complete breakdown of the radio channels assembly code.
• Crystal_'s Legendary Encounter Help Thread
An attempt to change the Suicune encounters into that of Raikou and Entei.
• Koolboyman's Editing Types Tutorial
A simple and neat tutorial on editing type effectiveness in both generations. Good to use in conjunction with the Bulbapedia Base Stats link.
• Poketto's Sprites Resource Shop
One of the earliest resource shop threads in which users can request a spritework from Poketto.
• amvz80's Devamped Sprites Resource Shop
Unlike the other shops, this one is dedicated to already made sprites in a downloadable link.
• ElectrikeInc's Devamp Resource Shop
A shop dedicated to devamping later generation Pokemon into earlier generation graphics.
• PixelEye's Sprites Resource Shop
Alternatively named Berries Inc., this is another shop dedicated to custom sprites and other graphical work.
• Squall's Sprites Resource Shop
Another pixel art thread to take requests for custom sprites and other graphical work.
• Crystal_'s Tiles Resource Shop
A resource shop dedicated to tiles as opposed to sprites.
• Squall's Shi Kong Xing Shou Indoor Tileset Rip
A tileset rip of the Chinese rip of Pokemon. Graphics will have to be resized into appropriate proportions before use.