GBA slot:

- add emulation PassME (required for old Homebrew libs);
This commit is contained in:
mtabachenko 2013-11-09 13:34:11 +00:00
parent b4765567ad
commit 5d671b8b92
12 changed files with 104 additions and 8 deletions

View File

@ -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 \

View File

@ -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??)

View File

@ -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!!!
};

View File

@ -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 <string.h>
#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};

View File

@ -2155,6 +2155,10 @@
RelativePath="..\addons\slot2_paddle.cpp"
>
</File>
<File
RelativePath="..\addons\slot2_passme.cpp"
>
</File>
<File
RelativePath="..\addons\slot2_piano.cpp"
>

View File

@ -1073,6 +1073,10 @@
RelativePath="..\addons\slot2_paddle.cpp"
>
</File>
<File
RelativePath="..\addons\slot2_passme.cpp"
>
</File>
<File
RelativePath="..\addons\slot2_piano.cpp"
>

View File

@ -376,6 +376,7 @@
<ClCompile Include="..\addons\slot1_retail_auto.cpp" />
<ClCompile Include="..\addons\slot1_retail_mcrom.cpp" />
<ClCompile Include="..\addons\slot1_retail_mcrom_debug.cpp" />
<ClCompile Include="..\addons\slot2_passme.cpp" />
<ClCompile Include="..\addons\slot2_piano.cpp" />
<ClCompile Include="..\addons\slot1_none.cpp" />
<ClCompile Include="..\addons\slot1_r4.cpp" />
@ -998,4 +999,4 @@
<UserProperties RESOURCE_FILE="resources.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>
</Project>

View File

@ -801,6 +801,9 @@
<ClCompile Include="fsnitroView.cpp">
<Filter>Windows\tools</Filter>
</ClCompile>
<ClCompile Include="..\addons\slot2_passme.cpp">
<Filter>Core\addons</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\addons.h">
@ -1609,4 +1612,4 @@
<Filter>Windows\libs</Filter>
</CustomBuild>
</ItemGroup>
</Project>
</Project>

View File

@ -387,6 +387,7 @@
<ClCompile Include="..\addons\slot1_retail_auto.cpp" />
<ClCompile Include="..\addons\slot1_retail_mcrom.cpp" />
<ClCompile Include="..\addons\slot1_retail_mcrom_debug.cpp" />
<ClCompile Include="..\addons\slot2_passme.cpp" />
<ClCompile Include="..\addons\slot2_piano.cpp" />
<ClCompile Include="..\addons\slot1_none.cpp" />
<ClCompile Include="..\addons\slot1_r4.cpp" />
@ -1009,4 +1010,4 @@
<UserProperties RESOURCE_FILE="resources.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>
</Project>

View File

@ -793,6 +793,9 @@
<ClCompile Include="fsnitroView.cpp">
<Filter>Windows\tools</Filter>
</ClCompile>
<ClCompile Include="..\addons\slot2_passme.cpp">
<Filter>Core\addons</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\addons.h">
@ -1447,4 +1450,4 @@
<Filter>Windows\libs</Filter>
</CustomBuild>
</ItemGroup>
</Project>
</Project>

View File

@ -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;
}

View File

@ -3209,6 +3209,8 @@ int _main()
break;
case NDS_ADDON_PADDLE:
break;
case NDS_ADDON_PASSME:
break;
default:
addon_type = NDS_ADDON_NONE;
break;