Sync d_megadrive.cpp with MESS 0.148u1 (added ability for extra drivers, restoring sks1, sks2, sks3)
This commit is contained in:
parent
a29e96885e
commit
fe6eee82b6
|
@ -463,7 +463,7 @@ void IpsApplyPatches(UINT8* base, char* rom_name);
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC (35)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC (35)
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP19IN1 (36)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP19IN1 (36)
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP15IN1 (37)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP15IN1 (37)
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_12IN1 (38)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1 (38)
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_TOPFIGHTER (39)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_TOPFIGHTER (39)
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON (40)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON (40)
|
||||||
#define HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON2 (41)
|
#define HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON2 (41)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1357,16 +1357,14 @@ static INT32 MegadriveLoadRoms(bool bLoad)
|
||||||
for (i = 0; i < RomNum; i++) {
|
for (i = 0; i < RomNum; i++) {
|
||||||
BurnDrvGetRomInfo(&ri, i);
|
BurnDrvGetRomInfo(&ri, i);
|
||||||
|
|
||||||
switch (ri.nType & 0x0f) {
|
if ((ri.nType & SEGA_MD_ROM_OFFS_000000) == SEGA_MD_ROM_OFFS_000000) Offset = 0x000000;
|
||||||
case SEGA_MD_ROM_OFFS_000000: Offset = 0x000000; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_000001) == SEGA_MD_ROM_OFFS_000001) Offset = 0x000001;
|
||||||
case SEGA_MD_ROM_OFFS_000001: Offset = 0x000001; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_020000) == SEGA_MD_ROM_OFFS_020000) Offset = 0x020000;
|
||||||
case SEGA_MD_ROM_OFFS_020000: Offset = 0x020000; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_080000) == SEGA_MD_ROM_OFFS_080000) Offset = 0x080000;
|
||||||
case SEGA_MD_ROM_OFFS_080000: Offset = 0x080000; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_100000) == SEGA_MD_ROM_OFFS_100000) Offset = 0x100000;
|
||||||
case SEGA_MD_ROM_OFFS_100000: Offset = 0x100000; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_100001) == SEGA_MD_ROM_OFFS_100001) Offset = 0x100001;
|
||||||
case SEGA_MD_ROM_OFFS_100001: Offset = 0x100001; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_200000) == SEGA_MD_ROM_OFFS_200000) Offset = 0x200000;
|
||||||
case SEGA_MD_ROM_OFFS_200000: Offset = 0x200000; break;
|
if ((ri.nType & SEGA_MD_ROM_OFFS_300000) == SEGA_MD_ROM_OFFS_300000) Offset = 0x300000;
|
||||||
case SEGA_MD_ROM_OFFS_300000: Offset = 0x300000; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (ri.nType & 0xf0) {
|
switch (ri.nType & 0xf0) {
|
||||||
case SEGA_MD_ROM_LOAD_NORMAL: {
|
case SEGA_MD_ROM_LOAD_NORMAL: {
|
||||||
|
@ -1392,6 +1390,14 @@ static INT32 MegadriveLoadRoms(bool bLoad)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((ri.nType & SEGA_MD_ROM_RELOAD_200000_200000) == SEGA_MD_ROM_RELOAD_200000_200000) {
|
||||||
|
memcpy(RomMain + 0x200000, RomMain + 0x000000, 0x200000);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ri.nType & SEGA_MD_ROM_RELOAD_100000_300000) == SEGA_MD_ROM_RELOAD_100000_300000) {
|
||||||
|
memcpy(RomMain + 0x300000, RomMain + 0x000000, 0x100000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2402,7 +2408,7 @@ static void SetupCustomCartridgeMappers()
|
||||||
SekClose();
|
SekClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((BurnDrvGetHardwareCode() & 0xff) == HARDWARE_SEGA_MEGADRIVE_PCB_12IN1) {
|
if ((BurnDrvGetHardwareCode() & 0xff) == HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1) {
|
||||||
OriginalRom = (UINT8*)BurnMalloc(RomSize);
|
OriginalRom = (UINT8*)BurnMalloc(RomSize);
|
||||||
memcpy(OriginalRom, RomMain, RomSize);
|
memcpy(OriginalRom, RomMain, RomSize);
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
#define SEGA_MD_ROM_OFFS_100001 0x06
|
#define SEGA_MD_ROM_OFFS_100001 0x06
|
||||||
#define SEGA_MD_ROM_OFFS_200000 0x07
|
#define SEGA_MD_ROM_OFFS_200000 0x07
|
||||||
#define SEGA_MD_ROM_OFFS_300000 0x08
|
#define SEGA_MD_ROM_OFFS_300000 0x08
|
||||||
|
#define SEGA_MD_ROM_RELOAD_200000_200000 0x09
|
||||||
|
#define SEGA_MD_ROM_RELOAD_100000_300000 0x0a
|
||||||
|
|
||||||
extern UINT8 MegadriveReset;
|
extern UINT8 MegadriveReset;
|
||||||
extern UINT8 bMegadriveRecalcPalette;
|
extern UINT8 bMegadriveRecalcPalette;
|
||||||
|
|
Loading…
Reference in New Issue