00001 /* 00002 * Game Genie Encoder/Decoder 00003 * Copyright (C) 2004-2005 emuWorks 00004 * http://games.technoplaza.net/ 00005 * 00006 * This file is part of Game Genie Encoder/Decoder. 00007 * 00008 * Game Genie Encoder/Decoder is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation; either version 2 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * Game Genie Encoder/Decoder is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with Game Genie Encoder/Decoder; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00021 */ 00022 00023 // $Id: decoder.hh,v 1.4 2005/07/30 04:31:38 technoplaza Exp $ 00024 00025 #ifndef _DECODER_HH 00026 #define _DECODER_HH 00027 00028 namespace emuWorks { 00029 class GameGenieCode; 00030 class NESRawCode; 00031 class SNESRawCode; 00032 class GenesisRawCode; 00033 class GBGGRawCode; 00034 00035 /** 00036 * Class to decode game genie codes into raw/PAR codes. 00037 */ 00038 class Decoder { 00039 public: 00040 /** 00041 * Decodes NES game genie code into an NESRawCode. 00042 * 00043 * @param code The game genie code. 00044 * 00045 * @return The decoded NESRawCode. 00046 */ 00047 static NESRawCode decodeNES(GameGenieCode &code); 00048 00049 /** 00050 * Decodes SNES game genie code into an SNESRawCode. 00051 * 00052 * @param code The game genie code. 00053 * 00054 * @return The decoded SNESRawCode. 00055 */ 00056 static SNESRawCode decodeSNES(GameGenieCode &code); 00057 00058 /** 00059 * Decodes Genesis game genie code into a GenesisRawCode. 00060 * 00061 * @param code The game genie code. 00062 * 00063 * @return The decoded GenesisRawCode. 00064 */ 00065 static GenesisRawCode decodeGenesis(GameGenieCode &code); 00066 00067 /** 00068 * Decodes Game Boy or Game Gear game genie code into a GBGGRawCode. 00069 * 00070 * @param code The game genie code. 00071 * 00072 * @return The decoded GBGGRawCode. 00073 */ 00074 static GBGGRawCode decodeGBGG(GameGenieCode &code); 00075 private: 00076 /** 00077 * Private constructor to prevent instantiation. 00078 */ 00079 Decoder() {} 00080 }; 00081 } 00082 00083 #endif 00084