diff --git a/desmume/src/Makefile.am b/desmume/src/Makefile.am index 6551db992..8e9563dff 100644 --- a/desmume/src/Makefile.am +++ b/desmume/src/Makefile.am @@ -88,7 +88,7 @@ libdesmume_a_SOURCES = \ utils/tinyxml/tinyxmlerror.cpp \ utils/tinyxml/tinyxmlparser.cpp \ addons.cpp addons.h \ - addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp addons/slot1_retail_mcrom.cpp addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp addons/slot1comp_mc.h addons/slot1comp_rom.h addons/slot1comp_rom.cpp addons/slot1comp_protocol.h addons/slot1comp_protocol.cpp \ + addons/slot2_mpcf.cpp addons/slot2_paddle.cpp addons/slot2_gbagame.cpp addons/slot2_none.cpp addons/slot2_rumblepak.cpp addons/slot2_guitarGrip.cpp addons/slot2_expMemory.cpp addons/slot2_piano.cpp addons/slot2_passme.cpp addons/slot1_none.cpp addons/slot1_r4.cpp addons/slot1_retail_nand.cpp addons/slot1_retail_auto.cpp addons/slot1_retail_mcrom.cpp addons/slot1_retail_mcrom_debug.cpp addons/slot1comp_mc.cpp addons/slot1comp_mc.h addons/slot1comp_rom.h addons/slot1comp_rom.cpp addons/slot1comp_protocol.h addons/slot1comp_protocol.cpp \ cheatSystem.cpp cheatSystem.h \ texcache.cpp texcache.h rasterize.cpp rasterize.h \ metaspu/metaspu.cpp metaspu/metaspu.h \ diff --git a/desmume/src/addons.cpp b/desmume/src/addons.cpp index 3d55b8312..53e1ccd80 100644 --- a/desmume/src/addons.cpp +++ b/desmume/src/addons.cpp @@ -34,6 +34,7 @@ extern ADDONINTERFACE addonGuitarGrip; extern ADDONINTERFACE addonExpMemory; extern ADDONINTERFACE addonPiano; extern ADDONINTERFACE addonPaddle; +extern ADDONINTERFACE addonPassME; //extern ADDONINTERFACE addonExternalMic; ADDONINTERFACE addonList[NDS_ADDON_COUNT] = { @@ -44,7 +45,8 @@ ADDONINTERFACE addonList[NDS_ADDON_COUNT] = { addonGuitarGrip, addonExpMemory, addonPiano, - addonPaddle + addonPaddle, + addonPassME }; ADDONINTERFACE addon = addonCFlash; // default cflash pak (why??) diff --git a/desmume/src/addons.h b/desmume/src/addons.h index 65e935f7f..c98c04258 100644 --- a/desmume/src/addons.h +++ b/desmume/src/addons.h @@ -64,6 +64,7 @@ enum NDS_ADDON_TYPE NDS_ADDON_PIANO, // Piano NDS_ADDON_PADDLE, //NDS_ADDON_EXTERNALMIC, + NDS_ADDON_PASSME, // PassME NDS_ADDON_COUNT // use for counter addons - MUST TO BE LAST!!! }; diff --git a/desmume/src/addons/slot2_passme.cpp b/desmume/src/addons/slot2_passme.cpp new file mode 100644 index 000000000..d642c7d3b --- /dev/null +++ b/desmume/src/addons/slot2_passme.cpp @@ -0,0 +1,71 @@ +/* + Copyright (C) 2013 DeSmuME team + + This file is part of DeSmuME + + DeSmuME is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DeSmuME is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DeSmuME; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include +#include "../addons.h" +#include "../NDSSystem.h" + +static BOOL PassME_init(void) { return (TRUE); } +static void PassME_reset(void) {} +static void PassME_close(void) {} +static void PassME_config(void) {} +static void PassME_write08(u32 procnum, u32 adr, u8 val) {} +static void PassME_write16(u32 procnum, u32 adr, u16 val) {} +static void PassME_write32(u32 procnum, u32 adr, u32 val) {} +static u8 PassME_read08(u32 procnum, u32 adr) +{ + u32 tmp_adr = (adr & 0x07FFFFFF); + if (tmp_adr < gameInfo.romsize) + return (u8)gameInfo.readROM(tmp_adr); + + return (0xFF); +} +static u16 PassME_read16(u32 procnum, u32 adr) +{ + u32 tmp_adr = (adr & 0x07FFFFFF); + if (tmp_adr < gameInfo.romsize) + return (u16)gameInfo.readROM(tmp_adr); + + return (0xFFFF); +} +static u32 PassME_read32(u32 procnum, u32 adr) +{ + u32 tmp_adr = (adr & 0x07FFFFFF); + + if (tmp_adr < gameInfo.romsize) + return gameInfo.readROM(tmp_adr); + + return (0xFFFFFFFF); +} +static void PassME_info(char *info) { strcpy(info, "PassME in GBA slot"); } + +ADDONINTERFACE addonPassME = { + "PassME", + PassME_init, + PassME_reset, + PassME_close, + PassME_config, + PassME_write08, + PassME_write16, + PassME_write32, + PassME_read08, + PassME_read16, + PassME_read32, + PassME_info}; diff --git a/desmume/src/windows/DeSmuME_2005.vcproj b/desmume/src/windows/DeSmuME_2005.vcproj index d2504e116..3e0bdaf4d 100644 --- a/desmume/src/windows/DeSmuME_2005.vcproj +++ b/desmume/src/windows/DeSmuME_2005.vcproj @@ -2155,6 +2155,10 @@ RelativePath="..\addons\slot2_paddle.cpp" > + + diff --git a/desmume/src/windows/DeSmuME_2008.vcproj b/desmume/src/windows/DeSmuME_2008.vcproj index 24d2c37d6..3c0eaa751 100644 --- a/desmume/src/windows/DeSmuME_2008.vcproj +++ b/desmume/src/windows/DeSmuME_2008.vcproj @@ -1073,6 +1073,10 @@ RelativePath="..\addons\slot2_paddle.cpp" > + + diff --git a/desmume/src/windows/DeSmuME_2010.vcxproj b/desmume/src/windows/DeSmuME_2010.vcxproj index 33cd015d5..00ab2ef58 100644 --- a/desmume/src/windows/DeSmuME_2010.vcxproj +++ b/desmume/src/windows/DeSmuME_2010.vcxproj @@ -376,6 +376,7 @@ + @@ -998,4 +999,4 @@ - + \ No newline at end of file diff --git a/desmume/src/windows/DeSmuME_2010.vcxproj.filters b/desmume/src/windows/DeSmuME_2010.vcxproj.filters index 610e6e85e..62abd74e4 100644 --- a/desmume/src/windows/DeSmuME_2010.vcxproj.filters +++ b/desmume/src/windows/DeSmuME_2010.vcxproj.filters @@ -801,6 +801,9 @@ Windows\tools + + Core\addons + @@ -1609,4 +1612,4 @@ Windows\libs - + \ No newline at end of file diff --git a/desmume/src/windows/DeSmuME_2012.vcxproj b/desmume/src/windows/DeSmuME_2012.vcxproj index 97c62d163..b5ea561bc 100644 --- a/desmume/src/windows/DeSmuME_2012.vcxproj +++ b/desmume/src/windows/DeSmuME_2012.vcxproj @@ -387,6 +387,7 @@ + @@ -1009,4 +1010,4 @@ - + \ No newline at end of file diff --git a/desmume/src/windows/DeSmuME_2012.vcxproj.filters b/desmume/src/windows/DeSmuME_2012.vcxproj.filters index 2f7abbe82..24c340987 100644 --- a/desmume/src/windows/DeSmuME_2012.vcxproj.filters +++ b/desmume/src/windows/DeSmuME_2012.vcxproj.filters @@ -793,6 +793,9 @@ Windows\tools + + Core\addons + @@ -1447,4 +1450,4 @@ Windows\libs - + \ No newline at end of file diff --git a/desmume/src/windows/gbaslot_config.cpp b/desmume/src/windows/gbaslot_config.cpp index 1ffd78a02..9af39d66f 100644 --- a/desmume/src/windows/gbaslot_config.cpp +++ b/desmume/src/windows/gbaslot_config.cpp @@ -448,7 +448,8 @@ u32 GBAslot_IDDs[NDS_ADDON_COUNT] = { IDD_GBASLOT_GUITARGRIP, IDD_GBASLOT_NONE, //expmem IDD_GBASLOT_PIANO, - IDD_GBASLOT_NONE, //padd;e + IDD_GBASLOT_NONE, //paddle + IDD_GBASLOT_NONE, //PassME }; DLGPROC GBAslot_Procs[NDS_ADDON_COUNT] = { @@ -459,7 +460,8 @@ DLGPROC GBAslot_Procs[NDS_ADDON_COUNT] = { GbaSlotGuitarGrip, GbaSlotNone, //expmem GbaSlotPiano, - GbaSlotPaddle + GbaSlotPaddle, + GbaSlotNone // PassME }; @@ -630,6 +632,8 @@ void GBAslotDialog(HWND hwnd) break; case NDS_ADDON_EXPMEMORY: break; + case NDS_ADDON_PASSME: + break; default: return; } diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index e2c104077..8043afe95 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -3209,6 +3209,8 @@ int _main() break; case NDS_ADDON_PADDLE: break; + case NDS_ADDON_PASSME: + break; default: addon_type = NDS_ADDON_NONE; break;