/*********************************************************************/ Game Genie Decoder Program Version 3.2 by John David Ratliff jdratlif@cs.indiana.edu http://www.technoplaza.net /*********************************************************************/ 1.0 Basic Information The Game Genie Decoder Program, which we will now refer to as ggdecode is a program to convert game genie codes into CPU and ROM addresses* to use in ROM hacking and emulators. Why do we use this program, you ask? Simple. To hack ROMs and create permanent effects, or we can use the ROM address to find similar values and convert them into codes. This program does not reverse the process. It is a one-way conversion: from code to rom and/or cpu address. How does this work? I gathered the information on game genie codes from many sources: The SNES game genie code information came from the GGCCC (Game Genie Code Creators Club), at http://www.ggccc.com, from their Super Nintendo Game Genie Handbook. The NES game genie information came from the NES Game Genie Code Format DOC by Benzene of Digital Emutations. The Genesis code information came from newsgroup postings by Merlyn LeRoy on rec.games.video.misc. The Game Boy/Game Gear information came from The Genie's Bottle at http://home.earthlink.net/~zazer This program is simply a digital version of the processes contained within these documents. How do you use it? Simple. Transfer the program to your calc, either the TI-89 or TI-92+ version will work. They are completely identical. No source changes were necessary since we use dialog boxes for all our user interactions. Run the program by typing ggdecode() at the HOME screen and press ENTER. The main dialog box will show up. It has two options: a system selection menu (to choose which game genie type), and a text box for the game genie code itself. The format requirements are very lax. The codes may be in lower or upper case, or a mix. Systems which include dashes in the codes do not require the dashes, but you can add them if you wish. Both the negation operator and the minus sign are considered to be a dash. NES Game Genie codes must be 6 or 8 characters in length, and SNES and Genesis codes must be 8 characters (or 9 with the dash). Game Boy/Game Gear codes must be either 6 or 9 characters, or (7-11 if you include the dash(es)). Invalid code letters and bad lengths will be handled by the program, and you will receive an error message. Code validity checking other than these two things is not done by the program. For example, game boy game genie codes requires the 6th character to be 8 or higher. Codes that use values of less than 8 have 8 added to them. This program does not compensate for these types of variations. Just press ENTER when you have entered the code and selected the proper system. Another dialog box will appear showing the conversion to standard hex values. For NES codes, the values are the value (what to change the address's value to), the compare value (if you gave an 8 character game genie code), the cpu address (starting at 0x0000), the ROM address (for use in hacking the ROM in iNES format), and the code address (the actual converted value). The cpu address is what the emulator uses. For SNES codes, the values are the value (what to change the address's value to), the cpu address (the emulator address), the lo-rom address (the address for Lo-ROM games, i.e. games that are less than 16 megabits/2 MB), and the hi-rom address (the address for Hi-ROM games, i.e. games that are larger than 16 megabits/2 MB). The ROM header can usually tell you which kind of ROM you have (Lo-ROM or Hi-ROM). For Genesis codes, the values are the value itself (what the code will change the addresses value to), and the address of the code. I have not seen any documents pertaining to ROM hacking of Genesis ROMS, so I have no information on the ROM addresses. If you have this information, please mail me and I will include it in future versions of this program. For Game Boy/Game Gear codes, the values are the value itself (i.e. what to change the addresses value to), and the address of the code. Again, I have no information on ROM hacking for either of these systems, so I do not have any information on ROM addresses. If you have this information, please mail me and I will include it in future versions of this program. 2.0 Revision History * Version 3.2 - June 2, 2001 - Fixed problems with TI-92+ display. Now you can see everything on both calculators. You have to to recompile the source differently for both versions though. One for the TI-89 and one for the TI-92+. Read the source.txt document for details. * Version 3.1 - June 1, 2001 - Added text document on binary mathematics and number systems. - Added text document on hex editing. - Updated SNES ROM conversion method. Lo-ROM/Hi-ROM is now detected by using the cpu address. Incorrect Lo-ROM and Hi-ROM addresses are no longer displayed in addition to the correct ROM address. * Version 3.0 - May 30, 2001 - Updated the SNES conversion method to that described in the Super Nintendo Game Genie Handbook v7.00 - Added support the Sega Genesis Game Genie Codes - Split up the source code into multiple modules - Added removable system support. You can customize the source to remove any system you don't need to convert. i.e. If you only use NES conversion, you can remove the SNES and Genesis stuff to save memory. Not a big savings, but if you're tight on memory, you can trim 2-3 K from the program. - Added support for Game Boy and Game Gear codes. - Added documents on game genie conversion process so you can see how the process works by hand. * Version 2.0 - May 26, 2001 - Complete rewrite in C. - Much much much faster. There is no delay between the time you press ENTER and the time you see the result. - Added support for NES codes. - Updated the SNES conversion method to that described in the Super Nintendo Game Genie Handbook v6.61. - Added dialog boxes for user-interaction. * Version 1.1.0 - September 29, 1998 - Fixed "Domain Error" bug when the program was run from another folder. * Version 1.0.0 - September 27, 1998 - Initial Release. - Added support for SNES codes using method described in Super Nintendo Game Genie Handbook v6.0 3.0 Conversion Information Read the nes.txt, snes.txt, genesis.txt, and gbgg.txt documents for information on the conversion process including examples. The gbgg.txt is a file for the Game Boy/Game Gear. The two machines are completely identical (well, close enough). 4.0 Contact Information I can be contacted via email or through my web-based feedback form. E-Mail: jdratlif@cs.indiana.edu URL: http://www.technoplaza.net Feedback: http://www.technoplaza.net/index.cgi?p=feedback 5.0 Legal Information This program is Copyright (C) 2001 John David Ratliff. The methods used in decoding the game genie codes are copyrighted by their respective creators, the GGCCC (C) 1998 for the SNES codes, Benzene (C) 1997 for the NES codes, Merlyn LeRoy (C) 1994 for the Genesis codes, and The Genie's Bottle (C) 2000. The program is freely redistributable under the terms of the GNU General Public License. For the full terms of the GNU GPL, visit http://www.technoplaza.net/index.cgi?p=license