a little bit of latest mapper changes

code/data logger now can log data access from the RAM code
the new button to save unused data to the code/data logger
This commit is contained in:
CaH4e3 2011-09-24 06:36:44 +00:00
parent bf32a2bcce
commit e9e97b774e
15 changed files with 1971 additions and 2264 deletions

View File

@ -1,93 +1,195 @@
/* FCE Ultra - NES/Famicom Emulator /* FCE Ultra - NES/Famicom Emulator
* *
* Copyright notice for this file: * Copyright notice for this file:
* Copyright (C) 2005 CaH4e3 * Copyright (C) 2005-2011 CaH4e3
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ *
* Super Game (Sugar Softec) protected mapper
#include "mapinc.h" * Pocahontas 2 (Unl) [U][!], etc.
#include "mmc3.h" * TODO: 9in1 LION KING HANGS!
*/
static uint8 cmdin;
static uint8 UNL8237_perm[8] = {0, 2, 6, 1, 7, 3, 4, 5}; #include "mapinc.h"
#include "mmc3.h"
static void UNL8237CW(uint32 A, uint8 V)
{ static uint8 cmdin;
setchr1(A,((EXPREGS[1]&4)<<6)|V);
} static uint8 regperm[8][8] =
{
static void UNL8237PW(uint32 A, uint8 V) {0, 1, 2, 3, 4, 5, 6, 7},
{ {0, 2, 6, 1, 7, 3, 4, 5},
if(EXPREGS[0]&0x80) {0, 5, 4, 1, 7, 2, 6, 3}, // unused
{ {0, 6, 3, 7, 5, 2, 4, 1},
if(EXPREGS[0]&0x20) {0, 2, 5, 3, 6, 1, 7, 4},
setprg32(0x8000,(EXPREGS[0]&0xF)>>1); {0, 1, 2, 3, 4, 5, 6, 7}, // empty
else {0, 1, 2, 3, 4, 5, 6, 7}, // empty
{ {0, 1, 2, 3, 4, 5, 6, 7}, // empty
setprg16(0x8000,(EXPREGS[0]&0x1F)); };
setprg16(0xC000,(EXPREGS[0]&0x1F));
} static uint8 adrperm[8][8] =
} {
else {0, 1, 2, 3, 4, 5, 6, 7},
setprg8(A,V&0x3F); {3, 2, 0, 4, 1, 5, 6, 7},
} {0, 1, 2, 3, 4, 5, 6, 7}, // unused
{5, 0, 1, 2, 3, 7, 6, 4},
static DECLFW(UNL8237Write) {3, 1, 0, 5, 2, 4, 6, 7},
{ {0, 1, 2, 3, 4, 5, 6, 7}, // empty
if((A&0xF000)==0xF000) {0, 1, 2, 3, 4, 5, 6, 7}, // empty
IRQCount=V; {0, 1, 2, 3, 4, 5, 6, 7}, // empty
else if((A&0xF000)==0xE000) };
X6502_IRQEnd(FCEU_IQEXT);
else switch(A&0xE001) static void UNL8237CW(uint32 A, uint8 V)
{ {
case 0x8000: setmirror(((V|(V>>7))&1)^1); break; if(EXPREGS[0]&0x40)
case 0xA000: MMC3_CMDWrite(0x8000,(V&0xC0)|(UNL8237_perm[V&7])); cmdin=1; break; setchr1(A,((EXPREGS[1]&0xc)<<6)|(V&0x7F)|((EXPREGS[1]&0x20)<<2));
case 0xC000: if(cmdin) else
{ setchr1(A,((EXPREGS[1]&0xc)<<6)|V);
MMC3_CMDWrite(0x8001,V); }
cmdin=0;
} static void UNL8237PW(uint32 A, uint8 V)
break; {
} if(EXPREGS[0]&0x40)
} {
uint8 sbank = (EXPREGS[1]&0x10);
static DECLFW(UNL8237ExWrite) if(EXPREGS[0]&0x80)
{ {
switch(A) uint8 bank = ((EXPREGS[1]&3)<<4)|(EXPREGS[0]&0x7)|(sbank>>1);
{ if(EXPREGS[0]&0x20)
case 0x5000: EXPREGS[0]=V; FixMMC3PRG(MMC3_cmd); break; setprg32(0x8000,bank>>1);
case 0x5001: EXPREGS[1]=V; FixMMC3CHR(MMC3_cmd); break; else
} {
} setprg16(0x8000,bank);
setprg16(0xC000,bank);
static void UNL8237Power(void) }
{ }
IRQa=1; else
EXPREGS[0]=EXPREGS[1]=0; setprg8(A,((EXPREGS[1]&3)<<5)|(V&0x0F)|sbank);
GenMMC3Power(); }
SetWriteHandler(0x8000,0xFFFF,UNL8237Write); else
SetWriteHandler(0x5000,0x7FFF,UNL8237ExWrite); {
} if(EXPREGS[0]&0x80)
{
void UNL8237_Init(CartInfo *info) uint8 bank = ((EXPREGS[1]&3)<<4)|(EXPREGS[0]&0xF);
{ if(EXPREGS[0]&0x20)
GenMMC3_Init(info, 256, 256, 0, 0); setprg32(0x8000,bank>>1);
cwrap=UNL8237CW; else
pwrap=UNL8237PW; {
info->Power=UNL8237Power; setprg16(0x8000,bank);
AddExState(EXPREGS, 3, 0, "EXPR"); setprg16(0xC000,bank);
AddExState(&cmdin, 1, 0, "CMDIN"); }
} }
else
setprg8(A,((EXPREGS[1]&3)<<5)|(V&0x1F));
}
}
static void UNL8237ACW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x40)
setchr1(A,((EXPREGS[1]&0xE)<<7)|(V&0x7F)|((EXPREGS[1]&0x20)<<2));
else
setchr1(A,((EXPREGS[1]&0xE)<<7)|V);
}
static void UNL8237APW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x40)
{
uint8 sbank = (EXPREGS[1]&0x10);
if(EXPREGS[0]&0x80)
{
uint8 bank = ((EXPREGS[1]&3)<<4)|((EXPREGS[1]&8)<<3)|(EXPREGS[0]&0x7)|(sbank>>1);
if(EXPREGS[0]&0x20)
setprg32(0x8000,bank>>1);
else
{
setprg16(0x8000,bank);
setprg16(0xC000,bank);
}
}
else
setprg8(A,((EXPREGS[1]&3)<<5)|((EXPREGS[1]&8)<<4)|(V&0x0F)|sbank);
}
else
{
if(EXPREGS[0]&0x80)
{
uint8 bank = ((EXPREGS[1]&3)<<4)|((EXPREGS[1]&8)<<3)|(EXPREGS[0]&0xF);
if(EXPREGS[0]&0x20)
setprg32(0x8000,bank>>1);
else
{
setprg16(0x8000,bank);
setprg16(0xC000,bank);
}
}
else
setprg8(A,((EXPREGS[1]&3)<<5)|((EXPREGS[1]&8)<<4)|(V&0x1F));
}
}
static DECLFW(UNL8237Write)
{
uint8 dat = V;
uint8 adr = adrperm[EXPREGS[2]][((A>>12)&6)|(A&1)];
uint16 addr = (adr & 1)|((adr & 6)<<12)|0x8000;
if(adr < 4)
{
if(!adr)
dat = (dat & 0xC0)|(regperm[EXPREGS[2]][dat & 7]);
MMC3_CMDWrite(addr,dat);
}
else
MMC3_IRQWrite(addr,dat);
}
static DECLFW(UNL8237ExWrite)
{
switch(A)
{
case 0x5000: EXPREGS[0]=V; FixMMC3PRG(MMC3_cmd); break;
case 0x5001: EXPREGS[1]=V; FixMMC3PRG(MMC3_cmd); FixMMC3CHR(MMC3_cmd); break;
case 0x5007: EXPREGS[2]=V; break;
}
}
static void UNL8237Power(void)
{
EXPREGS[0]=EXPREGS[2]=0;
EXPREGS[1]=3;
GenMMC3Power();
SetWriteHandler(0x8000,0xFFFF,UNL8237Write);
SetWriteHandler(0x5000,0x7FFF,UNL8237ExWrite);
}
void UNL8237_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
cwrap=UNL8237CW;
pwrap=UNL8237PW;
info->Power=UNL8237Power;
AddExState(EXPREGS, 3, 0, "EXPR");
AddExState(&cmdin, 1, 0, "CMDIN");
}
void UNL8237A_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
cwrap=UNL8237ACW;
pwrap=UNL8237APW;
info->Power=UNL8237Power;
AddExState(EXPREGS, 3, 0, "EXPR");
AddExState(&cmdin, 1, 0, "CMDIN");
}

View File

@ -1,148 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2007 CaH4e3
*
* This program 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.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
0000 - 1FFF - RAM
2000 - 23FF - PPU
2400 - 27FF - Write: "PAG" / Read: --
2800 - 2BFF - Write: "BNK" / Read: "STS"
2C00 - 2FFF - Write: "UWR" / Read: "URD"
3000 - 3FFF - Small Flash Page (â ðåãèñòðå BNK)
4000 - 7FFF - Free
8000 - FFFF - Cart/Big Flash Page (ñìîòðè ðåãèñòð PAG)
Áèòû:
Ðåãèñòð [PAG], ïî ñáðîñó äîëæåí áûòü = $00.
D3-D0 - Big Page High Address (D3,D2,D1,D0,A14,A13,A12,A11,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1,A0)
D4 - VMD áèò. Åñëè =0, òî ê PPU ïîäêëþ÷åíî âíóòðåíåå ÎÇó íà 8Êá, åñëè =1 - òî êàðòðèäæ.
D5 - STR áèò. Åñëè =0, òî âìåñòî êàðòà ïî àäðåñàì 8000-FFFF âíóòðåííÿÿ ôëýø, =1 - êàðò.
Ðåãèñòð [BNK], íå ïðåäóñòàíàâëèâàåòñÿ
D6-D0 - Small Page High Address (D6,D5,D4,D3,D2,D1,D0,A11,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1,A0)
D7 - S/W áèò. Óïðàâëÿåò USB ìîñòîì, â ýìóëå ðåàëèçîâûâàòü íå íàäî.
Ðåãèñòðû [UWR]/[URD], íå ïðåäóñòàíàâëèâàþòñÿ, â ýìóëå ðåàëèçîâûâàòü íå íàäî.
[UWR] - Ðåãèñòð çàïèñè äàííûõ â USB ìîñò.
[URD] - Ðåãèñòð ÷òåíèÿ èç USB ìîñòà.
*/
#include "mapinc.h"
#include "mmc3.h"
static uint8 reg[3];
static uint8 *CHRRAM=NULL; // there is no more extern CHRRAM in mmc3.h
// I need chrram here and local static == local
static uint32 CHRRAMSIZE;
static SFORMAT StateRegs[]=
{
{reg, 3, "REGS"},
{0}
};
static void Sync(void)
{
setprg4r(1,0x3000,reg[1]&0x7F);
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
static void MCopyFamiMMC3PW(uint32 A, uint8 V)
{
if(reg[0]&0x20)
setprg8r(0,A,V);
else
setprg32r(1,0x8000,reg[0]&0x0F);
}
static void MCopyFamiMMC3CW(uint32 A, uint8 V)
{
if(reg[0]&0x20)
setchr1r(0,A,V);
else
setchr8r(0x10,0);
}
static DECLFW(MCopyFamiMMC3WritePAG)
{
reg[0]=V;
Sync();
}
static DECLFW(MCopyFamiMMC3WriteBNK)
{
reg[1]=V;
Sync();
}
static DECLFW(MCopyFamiMMC3WriteUSB)
{
reg[2]=V;
}
static void MCopyFamiMMC3Power(void)
{
reg[0] = 0;
GenMMC3Power();
Sync();
SetReadHandler(0x3000,0x3FFF,CartBR);
SetWriteHandler(0x3000,0x3FFF,CartBW);
SetWriteHandler(0x2400,0x27FF,MCopyFamiMMC3WritePAG);
SetWriteHandler(0x2800,0x2BFF,MCopyFamiMMC3WriteBNK);
SetWriteHandler(0x2C00,0x2FFF,MCopyFamiMMC3WriteUSB);
}
static void MCopyFamiMMC3Reset(void)
{
reg[0] = 0;
MMC3RegReset();
Sync();
}
static void MCopyFamiMMC3Close(void)
{
if(CHRRAM)
FCEU_gfree(CHRRAM);
CHRRAM=NULL;
}
static void StateRestore(int version)
{
Sync();
}
void MapperCopyFamiMMC3_Init(CartInfo *info)
{
GenMMC3_Init(info, 512, 512, 0, 0);
cwrap=MCopyFamiMMC3CW;
pwrap=MCopyFamiMMC3PW;
info->Reset=MCopyFamiMMC3Reset;
info->Power=MCopyFamiMMC3Power;
info->Close=MCopyFamiMMC3Close;
GameStateRestore=StateRestore;
CHRRAMSIZE=8192;
CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSIZE);
SetupCartPRGMapping(0x10,CHRRAM,CHRRAMSIZE,1);
AddExState(CHRRAM, CHRRAMSIZE, 0, "SRAM");
AddExState(&StateRegs, ~0, 0, 0);
}

File diff suppressed because it is too large Load Diff

View File

@ -395,21 +395,19 @@ void LogCDData(){
uint16 A = 0; uint16 A = 0;
uint8 opcode[3] = {0}, memop = 0; uint8 opcode[3] = {0}, memop = 0;
j = GetPRGAddress(_PC); opcode[0] = GetMem(_PC);
switch (opsize[opcode[0]]) {
if(j != -1) { case 2:
opcode[0] = GetMem(_PC); opcode[1] = GetMem(_PC + 1);
switch (opsize[opcode[0]]) { break;
case 2: case 3:
opcode[1] = GetMem(_PC + 1); opcode[1] = GetMem(_PC + 1);
break; opcode[2] = GetMem(_PC + 2);
case 3: break;
opcode[1] = GetMem(_PC + 1); }
opcode[2] = GetMem(_PC + 2);
break;
}
for (i = 0; i < opsize[opcode[0]]; i++){ if((j = GetPRGAddress(_PC)) != -1)
for (i = 0; i < opsize[opcode[0]]; i++) {
if(cdloggerdata[j+i] & 1)continue; //this has been logged so skip if(cdloggerdata[j+i] & 1)continue; //this has been logged so skip
cdloggerdata[j+i] |= 1; cdloggerdata[j+i] |= 1;
cdloggerdata[j+i] |=((_PC+i)>>11)&0x0c; cdloggerdata[j+i] |=((_PC+i)>>11)&0x0c;
@ -418,36 +416,35 @@ void LogCDData(){
if(!(cdloggerdata[j+i] & 2))undefinedcount--; if(!(cdloggerdata[j+i] & 2))undefinedcount--;
} }
//log instruction jumped to in an indirect jump //log instruction jumped to in an indirect jump
if(opcode[0] == 0x6c) indirectnext = 1; else indirectnext = 0; if(opcode[0] == 0x6c) indirectnext = 1; else indirectnext = 0;
switch (optype[opcode[0]]) { switch (optype[opcode[0]]) {
case 0: break; case 0: break;
case 1: case 1:
A = (opcode[1]+_X) & 0xFF; A = (opcode[1]+_X) & 0xFF;
A = GetMem(A) | (GetMem(A+1)<<8); A = GetMem(A) | (GetMem(A+1)<<8);
memop = 0x20; memop = 0x20;
break; break;
case 2: A = opcode[1]; break; case 2: A = opcode[1]; break;
case 3: A = opcode[1] | opcode[2]<<8; break; case 3: A = opcode[1] | opcode[2]<<8; break;
case 4: case 4:
A = (GetMem(opcode[1]) | (GetMem(opcode[1]+1)<<8))+_Y; A = (GetMem(opcode[1]) | (GetMem(opcode[1]+1)<<8))+_Y;
memop = 0x20; memop = 0x20;
break; break;
case 5: A = opcode[1]+_X; break; case 5: A = opcode[1]+_X; break;
case 6: A = (opcode[1] | (opcode[2]<<8))+_Y; break; case 6: A = (opcode[1] | (opcode[2]<<8))+_Y; break;
case 7: A = (opcode[1] | (opcode[2]<<8))+_X; break; case 7: A = (opcode[1] | (opcode[2]<<8))+_X; break;
case 8: A = opcode[1]+_Y; break; case 8: A = opcode[1]+_Y; break;
} }
if((j = GetPRGAddress(A)) != -1) { if((j = GetPRGAddress(A)) != -1) {
if(!(cdloggerdata[j] & 2)) { if(!(cdloggerdata[j] & 2)) {
cdloggerdata[j] |= 2; cdloggerdata[j] |= 2;
cdloggerdata[j] |=(A>>11)&0x0c; cdloggerdata[j] |=(A>>11)&0x0c;
cdloggerdata[j] |= memop; cdloggerdata[j] |= memop;
datacount++; datacount++;
if(!(cdloggerdata[j] & 1))undefinedcount--; if(!(cdloggerdata[j] & 1))undefinedcount--;
}
} }
} }
} }

View File

@ -38,7 +38,7 @@ using namespace std;
void LoadCDLogFile(); void LoadCDLogFile();
void SaveCDLogFileAs(); void SaveCDLogFileAs();
void SaveCDLogFile(); void SaveCDLogFile();
void SaveStrippedRom(); void SaveStrippedRom(int invert);
extern iNES_HEADER head; //defined in ines.c extern iNES_HEADER head; //defined in ines.c
extern uint8 *trainerpoo; extern uint8 *trainerpoo;
@ -169,7 +169,10 @@ MB_OK);
SaveCDLogFile(); SaveCDLogFile();
break; break;
case BTN_CDLOGGER_SAVE_STRIPPED: case BTN_CDLOGGER_SAVE_STRIPPED:
SaveStrippedRom(); SaveStrippedRom(0);
break;
case BTN_CDLOGGER_SAVE_UNUSED:
SaveStrippedRom(1);
break; break;
} }
break; break;
@ -319,7 +322,7 @@ void UpdateCDLogger(){
return; return;
} }
void SaveStrippedRom(){ //this is based off of iNesSave() void SaveStrippedRom(int invert){ //this is based off of iNesSave()
//todo: make this support nsfs //todo: make this support nsfs
const char NESfilter[]="Stripped iNes Rom file (*.NES)\0*.nes\0All Files (*.*)\0*.*\0\0"; const char NESfilter[]="Stripped iNes Rom file (*.NES)\0*.nes\0All Files (*.*)\0*.*\0\0";
const char NSFfilter[]="Stripped NSF file (*.NSF)\0*.nsf\0All Files (*.*)\0*.*\0\0"; const char NSFfilter[]="Stripped NSF file (*.NSF)\0*.nsf\0All Files (*.*)\0*.*\0\0";
@ -376,8 +379,12 @@ void SaveStrippedRom(){ //this is based off of iNesSave()
fseek(fp,0x8,SEEK_SET); fseek(fp,0x8,SEEK_SET);
for(i = 0;i < ((NSFMaxBank+1)*4096);i++){ for(i = 0;i < ((NSFMaxBank+1)*4096);i++){
if(cdloggerdata[i] & 3)fputc(NSFDATA[i],fp); unsigned char pchar;
else fputc(0,fp); if(cdloggerdata[i] & 3)
pchar = invert?0:NSFDATA[i];
else
pchar = invert?NSFDATA[i]:0;
fputc(pchar, fp);
} }
} }
@ -395,8 +402,12 @@ void SaveStrippedRom(){ //this is based off of iNesSave()
} }
for(i = 0;i < head.ROM_size*0x4000;i++){ for(i = 0;i < head.ROM_size*0x4000;i++){
if(cdloggerdata[i] & 3)fputc(ROM[i],fp); unsigned char pchar;
else fputc(0,fp); if(cdloggerdata[i] & 3)
pchar = invert?0:ROM[i];
else
pchar = invert?ROM[i]:0;
fputc(pchar, fp);
} }
//fwrite(ROM,0x4000,head.ROM_size,fp); //fwrite(ROM,0x4000,head.ROM_size,fp);

View File

@ -1386,7 +1386,7 @@ BEGIN
DEFPUSHBUTTON "&OK",IDOK,67,52,50,14 DEFPUSHBUTTON "&OK",IDOK,67,52,50,14
END END
CDLOGGER DIALOGEX 0, 0, 322, 213 CDLOGGER DIALOGEX 0, 0, 315, 218
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Code Data Logger" CAPTION "Code Data Logger"
@ -1394,12 +1394,12 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
DEFPUSHBUTTON "Load...",BTN_CDLOGGER_LOAD,7,81,50,14 DEFPUSHBUTTON "Load...",BTN_CDLOGGER_LOAD,7,81,50,14
PUSHBUTTON "Save",BTN_CDLOGGER_SAVE,257,81,50,14 PUSHBUTTON "Save",BTN_CDLOGGER_SAVE,257,81,50,14
GROUPBOX "Code Data Log Status",-1,2,4,316,119,BS_CENTER GROUPBOX "Code Data Log Status",-1,3,4,308,131,BS_CENTER
PUSHBUTTON "Start",BTN_CDLOGGER_START_PAUSE,129,81,50,14 PUSHBUTTON "Start",BTN_CDLOGGER_START_PAUSE,129,81,50,14
GROUPBOX "Address Label Logger",65534,3,128,315,79,BS_CENTER GROUPBOX "Address Label Logger",65534,3,136,308,79,BS_CENTER
PUSHBUTTON "Load...",111,7,182,50,14,WS_DISABLED PUSHBUTTON "Load...",111,7,190,50,14,WS_DISABLED
PUSHBUTTON "Start",112,127,181,50,14,WS_DISABLED PUSHBUTTON "Start",112,127,189,50,14,WS_DISABLED
PUSHBUTTON "Save...",113,259,181,50,14,WS_DISABLED PUSHBUTTON "Save...",113,256,189,50,14,WS_DISABLED
LTEXT "4067 - 29.5%",LBL_CDLOGGER_CODECOUNT,38,31,68,11 LTEXT "4067 - 29.5%",LBL_CDLOGGER_CODECOUNT,38,31,68,11
GROUPBOX "Bytes Logged As Code",65533,29,20,84,27 GROUPBOX "Bytes Logged As Code",65533,29,20,84,27
GROUPBOX "Bytes Logged as data",65532,117,20,84,27 GROUPBOX "Bytes Logged as data",65532,117,20,84,27
@ -1409,7 +1409,8 @@ BEGIN
LTEXT "Itsa me the Code Data Logger! Press Start to play!",65530,69,56,172,12 LTEXT "Itsa me the Code Data Logger! Press Start to play!",65530,69,56,172,12
PUSHBUTTON "Reset Log",BTN_CDLOGGER_RESET,7,66,50,14 PUSHBUTTON "Reset Log",BTN_CDLOGGER_RESET,7,66,50,14
PUSHBUTTON "Save as...",BTN_CDLOGGER_SAVE_AS,257,66,50,14 PUSHBUTTON "Save as...",BTN_CDLOGGER_SAVE_AS,257,66,50,14
PUSHBUTTON "Save Stripped iNes Rom...",BTN_CDLOGGER_SAVE_STRIPPED,213,102,99,14 PUSHBUTTON "Save Stripped iNes Rom...",BTN_CDLOGGER_SAVE_STRIPPED,208,102,99,14
PUSHBUTTON "Save Unused Data...",BTN_CDLOGGER_SAVE_UNUSED,208,117,99,14
END END
PPUVIEW DIALOGEX 44, 38, 355, 246 PPUVIEW DIALOGEX 44, 38, 355, 246
@ -1817,6 +1818,10 @@ BEGIN
BOTTOMMARGIN, 318 BOTTOMMARGIN, 318
END END
"TRACER", DIALOG
BEGIN
END
"ADDBP", DIALOG "ADDBP", DIALOG
BEGIN BEGIN
RIGHTMARGIN, 185 RIGHTMARGIN, 185
@ -1882,6 +1887,7 @@ BEGIN
"CDLOGGER", DIALOG "CDLOGGER", DIALOG
BEGIN BEGIN
BOTTOMMARGIN, 213
END END
"ARCHIVECHOOSERDIALOG", DIALOG "ARCHIVECHOOSERDIALOG", DIALOG

View File

@ -103,6 +103,7 @@
#define IDC_ROMPATCHER_PATCH_DATA 109 #define IDC_ROMPATCHER_PATCH_DATA 109
#define IDC_ADDBP_MODE_X2 109 #define IDC_ADDBP_MODE_X2 109
#define IDC_ADDBP_MODE_F 109 #define IDC_ADDBP_MODE_F 109
#define BTN_CDLOGGER_SAVE_UNUSED 109
#define IDC_CHEAT_VAL_LT_BY 110 #define IDC_CHEAT_VAL_LT_BY 110
#define MENU_SAVE_STATE 110 #define MENU_SAVE_STATE 110
#define CB_ASK_EXIT 110 #define CB_ASK_EXIT 110

View File

@ -1,252 +1,254 @@
{0x9cbadc25,5,8}, /* JustBreed */ {0x9cbadc25,5,8}, /* JustBreed */
{0x6e68e31a,16,8}, /* Dragon Ball 3*/ {0x6e68e31a,16,8}, /* Dragon Ball 3*/
{0xbfc7a2e9,16,8}, {0xbfc7a2e9,16,8},
{0x33b899c9,16,-1}, /* Dragon Ball - Dai Maou Fukkatsu (J) [!] */ {0x33b899c9,16,-1}, /* Dragon Ball - Dai Maou Fukkatsu (J) [!] */
{0x3f15d20d,153,8}, /* Famicom Jump 2 */ {0x3f15d20d,153,8}, /* Famicom Jump 2 */
// {0xb049a8c4,153,-1}, /* SD Gundam Gaiden - Knight Gundam Monogatari 2 - Hikari no Kishi (J) [!] */ // {0xb049a8c4,153,-1}, /* SD Gundam Gaiden - Knight Gundam Monogatari 2 - Hikari no Kishi (J) [!] */
// NOT 16, since uses WRAM but 8000-FFFF address range for bankswitching, // NOT 16, since uses WRAM but 8000-FFFF address range for bankswitching,
{0x983d8175,157,8}, /* Datach Battle Rush */ {0x983d8175,157,8}, /* Datach Battle Rush */
{0x894efdbc,157,8}, /* Datach Crayon Shin Chan */ {0x894efdbc,157,8}, /* Datach Crayon Shin Chan */
{0x19e81461,157,8}, /* Datach DBZ */ {0x19e81461,157,8}, /* Datach DBZ */
{0xbe06853f,157,8}, /* Datach J-League */ {0xbe06853f,157,8}, /* Datach J-League */
{0x0be0a328,157,8}, /* Datach SD Gundam Wars */ {0x0be0a328,157,8}, /* Datach SD Gundam Wars */
{0x5b457641,157,8}, /* Datach Ultraman Club */ {0x5b457641,157,8}, /* Datach Ultraman Club */
{0xf51a7f46,157,8}, /* Datach Yuu Yuu Hakusho */ {0xf51a7f46,157,8}, /* Datach Yuu Yuu Hakusho */
{0xe62e3382,71,-1}, /* Mig-29 Soviet Fighter */ {0xe62e3382,71,-1}, /* Mig-29 Soviet Fighter */
{0x21a653c7,4,-1}, /* Super Sky Kid */ {0x21a653c7,4,-1}, /* Super Sky Kid */
{0xdd4d9a62,209,-1}, /* Shin Samurai Spirits 2 */ {0xdd4d9a62,209,-1}, /* Shin Samurai Spirits 2 */
{0x063b1151,209,-1}, /* Power Rangers 4 */ {0x063b1151,209,-1}, /* Power Rangers 4 */
{0xdd8ced31,209,-1}, /* Power Rangers 3 */ {0xdd8ced31,209,-1}, /* Power Rangers 3 */
{0x0c47946d,210,1}, /* Chibi Maruko Chan */ {0x0c47946d,210,1}, /* Chibi Maruko Chan */
{0xbd523011,210,2}, /* Dream Master */ // may be wrong, but seems it solve most problems {0xbd523011,210,2}, /* Dream Master */ // may be wrong, but seems it solve most problems
{0xc247cc80,210,1}, /* Family Circuit '91 */ {0xc247cc80,210,1}, /* Family Circuit '91 */
{0x6ec51de5,210,1}, /* Famista '92 */ {0x6ec51de5,210,1}, /* Famista '92 */
{0xadffd64f,210,1}, /* Famista '93 */ {0xadffd64f,210,1}, /* Famista '93 */
{0x429103c9,210,1}, /* Famista '94 */ {0x429103c9,210,1}, /* Famista '94 */
{0x81b7f1a8,210,1}, /* Heisei Tensai Bakabon */ {0x81b7f1a8,210,1}, /* Heisei Tensai Bakabon */
{0x2447e03b,210,1}, /* Top Striker */ {0x2447e03b,210,1}, /* Top Striker */
{0x1dc0f740,210,1}, /* Wagyan Land 2 */ {0x1dc0f740,210,1}, /* Wagyan Land 2 */
{0xd323b806,210,1}, /* Wagyan Land 3 */ {0xd323b806,210,1}, /* Wagyan Land 3 */
{0x07eb2c12,208,-1}, /* Street Fighter IV */ {0x07eb2c12,208,-1}, /* Street Fighter IV */
{0x96ce586e,189,8}, /* Street Fighter 2 YOKO */ {0x96ce586e,189,8}, /* Street Fighter 2 YOKO */
{0x7678f1d5,207,8}, /* Fudou Myouou Den */ {0x7678f1d5,207,8}, /* Fudou Myouou Den */
{0x276237b3,206,0}, /* Karnov */ {0x276237b3,206,0}, /* Karnov */
{0x4e1c1e3c,206,0}, /* Karnov */ {0x4e1c1e3c,206,0}, /* Karnov */
/* Some entries to sort out the minor 33/48 mess. */ /* Some entries to sort out the minor 33/48 mess. */
{0xaebd6549,48,8}, /* Bakushou!! Jinsei Gekijou 3 */ {0xaebd6549,48,8}, /* Bakushou!! Jinsei Gekijou 3 */
{0x6cdc0cd9,48,8}, /* Bubble Bobble 2 */ {0x6cdc0cd9,48,8}, /* Bubble Bobble 2 */
//{0x10e24006,48,8}, /* Flintstones 2 - bad dump? */ //{0x10e24006,48,8}, /* Flintstones 2 - bad dump? */
{0x40c0ad47,48,8}, /* Flintstones 2 */ {0x40c0ad47,48,8}, /* Flintstones 2 */
{0xa7b0536c,48,8}, /* Don Doko Don 2 */ {0xa7b0536c,48,8}, /* Don Doko Don 2 */
{0x99c395f9,48,8}, /* Captain Saver */ {0x99c395f9,48,8}, /* Captain Saver */
{0x1500e835,48,8}, /* Jetsons (J) */ {0x1500e835,48,8}, /* Jetsons (J) */
{0x637134e8,193,1}, /* Fighting Hero */ {0x637134e8,193,1}, /* Fighting Hero */
{0xcbf4366f,118,8}, /* Alien Syndrome (U.S. unlicensed) */ {0xcbf4366f,118,8}, /* Alien Syndrome (U.S. unlicensed) */
{0xb19a55dd,64,8}, /* Road Runner */ {0xb19a55dd,64,8}, /* Road Runner */
//{0x3eafd012,116,-1}, /* AV Girl Fighting */ //{0x3eafd012,116,-1}, /* AV Girl Fighting */
{0x1d0f4d6b,2,1}, /* Black Bass thinging */ {0x1d0f4d6b,2,1}, /* Black Bass thinging */
{0xf92be3ec,64,-1}, /* Rolling Thunder */ {0xf92be3ec,64,-1}, /* Rolling Thunder */
{0x345ee51a,245,-1}, /* DQ4c */ {0x345ee51a,245,-1}, /* DQ4c */
{0xf518dd58,7,8}, /* Captain Skyhawk */ {0xf518dd58,7,8}, /* Captain Skyhawk */
{0x7ccb12a3,43,-1}, /* SMB2j */ {0x7ccb12a3,43,-1}, /* SMB2j */
{0x6f12afc5,235,-1}, /* Golden Game 150-in-1 */ {0x6f12afc5,235,-1}, /* Golden Game 150-in-1 */
{0xccc03440,156,-1}, {0xccc03440,156,-1},
{0xc9ee15a7,3,-1}, /* 3 is probably best. 41 WILL NOT WORK. */ {0xc9ee15a7,3,-1}, /* 3 is probably best. 41 WILL NOT WORK. */
{0x3e1271d5,79,1}, /* Tiles of Fate */ {0x3e1271d5,79,1}, /* Tiles of Fate */
{0x8eab381c,113,1}, /* Death Bots */ {0x8eab381c,113,1}, /* Death Bots */
{0xd4a76b07,79,0}, /* F-15 City Wars*/ {0xd4a76b07,79,0}, /* F-15 City Wars*/
{0xa4fbb438,79,0}, {0xa4fbb438,79,0},
{0x1eb4a920,79,1}, /* Double Strike */ {0x1eb4a920,79,1}, /* Double Strike */
{0x345d3a1a,11,1}, /* Castle of Deceit */ {0x345d3a1a,11,1}, /* Castle of Deceit */
{0x62ef6c79,232,8}, /* Quattro Sports -Aladdin */ {0x62ef6c79,232,8}, /* Quattro Sports -Aladdin */
{0x5caa3e61,144,1}, /* Death Race */ {0x5caa3e61,144,1}, /* Death Race */
{0xd2699893,88,0}, /* Dragon Spirit */ {0xd2699893,88,0}, /* Dragon Spirit */
{0x2f27cdef,155,8}, /* Tatakae!! Rahmen Man */ {0x2f27cdef,155,8}, /* Tatakae!! Rahmen Man */
{0xcfd4a281,155,8}, /* Money Game. Yay for money! */ {0xcfd4a281,155,8}, /* Money Game. Yay for money! */
{0xd1691028,154,8}, /* Devil Man */ {0xd1691028,154,8}, /* Devil Man */
{0xc68363f6,180,0}, /* Crazy Climber */ {0xc68363f6,180,0}, /* Crazy Climber */
{0xbe939fce,9,1}, /* Punchout*/ {0xbe939fce,9,1}, /* Punchout*/
{0x5e66eaea,13,1}, /* Videomation */ {0x5e66eaea,13,1}, /* Videomation */
{0xaf5d7aa2,-1,0}, /* Clu Clu Land */ {0xaf5d7aa2,-1,0}, /* Clu Clu Land */
{0xc2730c30,34,0}, /* Deadly Towers */ {0xc2730c30,34,0}, /* Deadly Towers */
{0x932ff06e,34,1}, /* Classic Concentration */ {0x932ff06e,34,1}, /* Classic Concentration */
{0x4c7c1af3,34,1}, /* Caesar's Palace */ {0x4c7c1af3,34,1}, /* Caesar's Palace */
{0x15141401,4,8}, /* Asmik Kun Land */ {0x15141401,4,8}, /* Asmik Kun Land */
{0x59280bec,4,8}, /* Jackie Chan */ {0x59280bec,4,8}, /* Jackie Chan */
{0x4cccd878,4,8}, /* Cat Ninden Teyandee */ {0x4cccd878,4,8}, /* Cat Ninden Teyandee */
{0x9eefb4b4,4,8}, /* Pachi Slot Adventure 2 */ {0x9eefb4b4,4,8}, /* Pachi Slot Adventure 2 */
{0x5337f73c,4,8}, /* Niji no Silk Road */ {0x5337f73c,4,8}, /* Niji no Silk Road */
{0x7474ac92,4,8}, /* Kabuki: Quantum Fighter */ {0x7474ac92,4,8}, /* Kabuki: Quantum Fighter */
{0xbb7c5f7a,89,8}, /* Mito Koumon or something similar */ {0xbb7c5f7a,89,8}, /* Mito Koumon or something similar */
/* Probably a Namco MMC3-workalike */ /* Probably a Namco MMC3-workalike */
//{0xa5e6baf9,4,1|4}, /* Dragon Slayer 4 */ //{0xa5e6baf9,4,1|4}, /* Dragon Slayer 4 */
//{0xe40b4973,4,1|4}, /* Metro Cross */ //{0xe40b4973,4,1|4}, /* Metro Cross */
//{0xd97c31b0,4,1|4}, /* Rasaaru Ishii no Childs Quest */ //{0xd97c31b0,4,1|4}, /* Rasaaru Ishii no Childs Quest */
{0x84382231,9,0}, /* Punch Out (J) */ {0x84382231,9,0}, /* Punch Out (J) */
{0xe28f2596,0,1}, /* Pac Land (J) */ {0xe28f2596,0,1}, /* Pac Land (J) */
{0xfcdaca80,0,0}, /* Elevator Action */ {0xfcdaca80,0,0}, /* Elevator Action */
{0xe492d45a,0,0}, /* Zippy Race */ {0xe492d45a,0,0}, /* Zippy Race */
{0x32fa246f,0,0}, /* Tag Team Pro Wrestling */ {0x32fa246f,0,0}, /* Tag Team Pro Wrestling */
{0xc05a365b,0,0}, /* Exed Exes (J) */ {0xc05a365b,0,0}, /* Exed Exes (J) */
{0xb3c30bea,0,0}, /* Xevious (J) */ {0xb3c30bea,0,0}, /* Xevious (J) */
{0x804f898a,2,1}, /* Dragon Unit */ {0x804f898a,2,1}, /* Dragon Unit */
{0xe1b260da,2,1}, /* Argos no Senshi */ {0xe1b260da,2,1}, /* Argos no Senshi */
{0x6d65cac6,2,0}, /* Terra Cresta */ {0x6d65cac6,2,0}, /* Terra Cresta */
{0x9ea1dc76,2,0}, /* Rainbow Islands */ {0x9ea1dc76,2,0}, /* Rainbow Islands */
{0x28c11d24,2,1}, /* Sukeban Deka */ {0x28c11d24,2,1}, /* Sukeban Deka */
{0x02863604,2,1}, /* Sukeban Deka */ {0x02863604,2,1}, /* Sukeban Deka */
{0x2bb6a0f8,2,1}, /* Sherlock Holmes */ {0x2bb6a0f8,2,1}, /* Sherlock Holmes */
{0x55773880,2,1}, /* Gilligan's Island */ {0x55773880,2,1}, /* Gilligan's Island */
{0x419461d0,2,1}, /* Super Cars */ {0x419461d0,2,1}, /* Super Cars */
{0x6e0eb43e,2,1}, /* Puss n Boots */ {0x6e0eb43e,2,1}, /* Puss n Boots */
{0x266ce198,2,1}, /* City Adventure Touch */ {0x266ce198,2,1}, /* City Adventure Touch */
//{0x48349b0b,1,8}, /* Dragon Quest 2 */ //{0x48349b0b,1,8}, /* Dragon Quest 2 */
{0xd09b74dc,1,8}, /* Great Tank (J) */ {0xd09b74dc,1,8}, /* Great Tank (J) */
{0xe8baa782,1,8}, /* Gun Hed (J) */ {0xe8baa782,1,8}, /* Gun Hed (J) */
{0x970bd9c2,1,8}, /* Hanjuku Hero */ {0x970bd9c2,1,8}, /* Hanjuku Hero */
{0xcd7a2fd7,1,8}, /* Hanjuku Hero */ {0xcd7a2fd7,1,8}, /* Hanjuku Hero */
{0x63469396,1,8}, /* Hokuto no Ken 4 */ {0x63469396,1,8}, /* Hokuto no Ken 4 */
{0x291bcd7d,1,8}, /* Pachio Kun 2 */ {0x291bcd7d,1,8}, /* Pachio Kun 2 */
{0xf74dfc91,1,-1}, /* Win, Lose, or Draw */ {0xf74dfc91,1,-1}, /* Win, Lose, or Draw */
{0x3f56a392,1,8}, /* Captain Ed (J) */ {0x3f56a392,1,8}, /* Captain Ed (J) */
{0x078ced30,1,8}, /* Choujin - Ultra Baseball */ {0x078ced30,1,8}, /* Choujin - Ultra Baseball */
{0x391aa1b8,1,8}, /* Bloody Warriors (J) */ {0x391aa1b8,1,8}, /* Bloody Warriors (J) */
{0x61a852ea,1,8}, /* Battle Stadium - Senbatsu Pro Yakyuu */ {0x61a852ea,1,8}, /* Battle Stadium - Senbatsu Pro Yakyuu */
{0xfe364be5,1,8}, /* Deep Dungeon 4 */ {0xfe364be5,1,8}, /* Deep Dungeon 4 */
{0xd8ee7669,1,8}, /* Adventures of Rad Gravity */ {0xd8ee7669,1,8}, /* Adventures of Rad Gravity */
{0xa5e8d2cd,1,8}, /* Breakthru */ {0xa5e8d2cd,1,8}, /* Breakthru */
{0xf6fa4453,1,8}, /* Bigfoot */ {0xf6fa4453,1,8}, /* Bigfoot */
{0x37ba3261,1,8}, /* Back to the Future 2 and 3 */ {0x37ba3261,1,8}, /* Back to the Future 2 and 3 */
{0x934db14a,1,-1}, /* All-Pro Basketball */ {0x934db14a,1,-1}, /* All-Pro Basketball */
{0xe94d5181,1,8}, /* Mirai Senshi - Lios */ {0xe94d5181,1,8}, /* Mirai Senshi - Lios */
{0x7156cb4d,1,8}, /* Muppet Adventure Carnival thingy */ {0x7156cb4d,1,8}, /* Muppet Adventure Carnival thingy */
{0x5b6ca654,1,8}, /* Barbie rev X*/ {0x5b6ca654,1,8}, /* Barbie rev X*/
{0x57c12280,1,8}, /* Demon Sword */ {0x57c12280,1,8}, /* Demon Sword */
{0x70f67ab7,1,8}, /* Musashi no Bouken */ {0x70f67ab7,1,8}, /* Musashi no Bouken */
{0xa9a4ea4c,1,8}, /* Satomi Hakkenden */ {0xa9a4ea4c,1,8}, /* Satomi Hakkenden */
{0xcc3544b0,1,8}, /* Triathron */ {0xcc3544b0,1,8}, /* Triathron */
{0x1d41cc8c,3,1}, /* Gyruss */ {0x1d41cc8c,3,1}, /* Gyruss */
{0xd8eff0df,3,1}, /* Gradius (J) */ {0xd8eff0df,3,1}, /* Gradius (J) */
{0xdbf90772,3,0}, /* Alpha Mission */ {0xdbf90772,3,0}, /* Alpha Mission */
{0xd858033d,3,0}, /* Armored Scrum Object */ {0xd858033d,3,0}, /* Armored Scrum Object */
{0xcf322bb3,3,1}, /* John Elway's Quarterback */ {0xcf322bb3,3,1}, /* John Elway's Quarterback */
{0x9bde3267,3,1}, /* Adventures of Dino Riki */ {0x9bde3267,3,1}, /* Adventures of Dino Riki */
{0x02cc3973,3,1}, /* Ninja Kid */ {0x02cc3973,3,1}, /* Ninja Kid */
{0xb5d28ea2,3,1}, /* Mystery Quest - mapper 3?*/ {0xb5d28ea2,3,1}, /* Mystery Quest - mapper 3?*/
{0xbc065fc3,3,1}, /* Pipe Dream */ {0xbc065fc3,3,1}, /* Pipe Dream */
{0x5b837e8d,1,8}, /* Alien Syndrome */ {0x5b837e8d,1,8}, /* Alien Syndrome */
{0x283ad224,32,8}, /* Ai Sensei no Oshiete */ {0x283ad224,32,8}, /* Ai Sensei no Oshiete */
{0x5555fca3,32,8}, /* "" "" */ {0x5555fca3,32,8}, /* "" "" */
{0x243a8735,32,0x10|4}, /* Major League */ {0x243a8735,32,0x10|4}, /* Major League */
{0x6bc65d7e,140,1}, /* Youkai Club*/ {0x6bc65d7e,140,1}, /* Youkai Club*/
{0xc2df0a00,140,1}, /* Bio Senshi Dan(hacked) */ {0xc2df0a00,140,1}, /* Bio Senshi Dan(hacked) */
{0xbde3ae9b,66,1}, /* Doraemon */ {0xbde3ae9b,66,1}, /* Doraemon */
{0xd26efd78,66,1}, /* SMB Duck Hunt */ {0xd26efd78,66,1}, /* SMB Duck Hunt */
{0x811f06d9,66,1}, /* Dragon Power */ {0x811f06d9,66,1}, /* Dragon Power */
{0x3293afea,140,1}, /* Mississippi Satsujin Jiken */ {0x3293afea,140,1}, /* Mississippi Satsujin Jiken */
{0xe46b1c5d,140,1}, /* Mississippi Satsujin Jiken */ {0xe46b1c5d,140,1}, /* Mississippi Satsujin Jiken */
{0xe84274c5,66,1}, /* "" "" */ {0xe84274c5,66,1}, /* "" "" */
{0x9552e8df,66,1}, /* Dragon Ball */ {0x9552e8df,66,1}, /* Dragon Ball */
{0xba51ac6f,78,2}, {0xba51ac6f,78,2},
{0x3d1c3137,78,8}, /* Uchuusen - Cosmo Carrier */ {0x3d1c3137,78,8}, /* Uchuusen - Cosmo Carrier */
{0xbda8f8e4,152,8}, /* Gegege no Kitarou 2 */ {0xbda8f8e4,152,8}, /* Gegege no Kitarou 2 */
{0x026c5fca,152,8}, /* Saint Seiya Ougon Densetsu */ {0x026c5fca,152,8}, /* Saint Seiya Ougon Densetsu */
{0x0f141525,152,8}, /* Arkanoid 2 (Japanese) */ {0x0f141525,152,8}, /* Arkanoid 2 (Japanese) */
{0xb1a94b82,152,8}, /* Pocket Zaurus */ {0xb1a94b82,152,8}, /* Pocket Zaurus */
{0xbba58be5,70,-1}, /* Family Trainer - Manhattan Police */ {0xbba58be5,70,-1}, /* Family Trainer - Manhattan Police */
{0x370ceb65,70,-1}, /* Family Trainer - Meiro Dai Sakusen */ {0x370ceb65,70,-1}, /* Family Trainer - Meiro Dai Sakusen */
{0xdd8ed0f7,70,1}, /* Kamen Rider Club */ {0xdd8ed0f7,70,1}, /* Kamen Rider Club */
{0x90c773c1,118,-1}, /* Goal! 2 */ {0x90c773c1,118,-1}, /* Goal! 2 */
{0xb9b4d9e0,118,-1}, /* NES Play Action Football */ {0xb9b4d9e0,118,-1}, /* NES Play Action Football */
{0x78b657ac,118,-1}, /* Armadillo */ {0x78b657ac,118,-1}, /* Armadillo */
{0x37b62d04,118,-1}, /* Ys 3 */ {0x37b62d04,118,-1}, /* Ys 3 */
{0x07d92c31,118,-1}, /* RPG Jinsei Game */ {0x07d92c31,118,-1}, /* RPG Jinsei Game */
{0x2705eaeb,234,-1}, /* Maxi 15 */ {0x2705eaeb,234,-1}, /* Maxi 15 */
{0x404b2e8b,4,2}, /* Rad Racer 2 */ {0x404b2e8b,4,2}, /* Rad Racer 2 */
{0xa912b064,51|0x800,8}, /* 11-in-1 Ball Games(has CHR ROM when it shouldn't) */ {0xa912b064,51|0x800,8}, /* 11-in-1 Ball Games(has CHR ROM when it shouldn't) */
{0xc5e5c5b2,115,-1}, /* Bao Qing Tian (As).nes */ {0xc5e5c5b2,115,-1}, /* Bao Qing Tian (As).nes */
{0xcfb224e6,-1,1}, /* Dragon Ninja (J) [p1][!].nes */ {0xcfb224e6,-1,1}, /* Dragon Ninja (J) [p1][!].nes */
{0xf46ef39a,37,-1}, /* Super Mario Bros. + Tetris + Nintendo World Cup (E) [!] */ {0xf46ef39a,37,-1}, /* Super Mario Bros. + Tetris + Nintendo World Cup (E) [!] */
{0x0f05ff0a,181,-1}, /* Seicross (redump) */ {0x0f05ff0a,181,-1}, /* Seicross (redump) */
{0x054bd3e9,74,-1}, /* Di 4 Ci - Ji Qi Ren Dai Zhan (As) */ {0x054bd3e9,74,-1}, /* Di 4 Ci - Ji Qi Ren Dai Zhan (As) */
{0x496ac8f7,74,-1}, /* Ji Jia Zhan Shi (As) */ {0x496ac8f7,74,-1}, /* Ji Jia Zhan Shi (As) */
{0xae854cef,74,-1}, /* Jia A Fung Yun (Chinese) */ {0xae854cef,74,-1}, /* Jia A Fung Yun (Chinese) */
{0x2cc381f6,191,-1}, /* Sugoro Quest - Dice no Senshitachi (As) */ {0x2cc381f6,191,-1}, /* Sugoro Quest - Dice no Senshitachi (As) */
{0x555a555e,191,-1}, {0x555a555e,191,-1},
{0x98c1cd4b,192,-1},/* Ying Lie Qun Xia Zhuan (Chinese) */ {0x98c1cd4b,192,-1},/* Ying Lie Qun Xia Zhuan (Chinese) */
{0x442f1a29,192,-1},/* Young chivalry */ {0x442f1a29,192,-1},/* Young chivalry */
{0xa9115bc1,192,-1}, {0xa9115bc1,192,-1},
{0x4c7bbb0e,192,-1}, {0x4c7bbb0e,192,-1},
{0xa145fae6,192,-1}, {0xa145fae6,192,-1},
{0xa925226c,194,-1},/* Dai-2-Ji - Super Robot Taisen (As) */ {0xa925226c,194,-1},/* Dai-2-Ji - Super Robot Taisen (As) */
{0xd5224fde,195,-1},/* Crystalis (c) */ {0xd5224fde,195,-1},/* Crystalis (c) */
{0x1bc0be6c,195,-1},/* Captain Tsubasa Vol 2 - Super Striker (C) */ {0x1bc0be6c,195,-1},/* Captain Tsubasa Vol 2 - Super Striker (C) */
{0x33c5df92,195,-1}, {0x33c5df92,195,-1},
{0xb616885c,195,0}, /* CHaos WOrld (Ch)*/ {0xb616885c,195,0}, /* CHaos WOrld (Ch)*/
{0x7f3dbf1b,195,0}, {0x7f3dbf1b,195,0},
{0xdd431ba7,198,-1},/* Tenchi wo kurau 2 (c) */ {0xdd431ba7,198,-1},/* Tenchi wo kurau 2 (c) */
{0x28192599,198,-1}, {0x28192599,198,-1},
{0x700705f4,198,-1}, {0x700705f4,198,-1},
{0x9a2cf02c,198,-1}, {0x9a2cf02c,198,-1},
{0xd8b401a7,198,-1}, {0xd8b401a7,198,-1},
{0x19b9e732,198,-1}, {0x19b9e732,198,-1},
{0xd871d3e6,199,-1},/* Dragon Ball Z 2 - Gekishin Freeza! (C) */ {0xd871d3e6,199,-1},/* Dragon Ball Z 2 - Gekishin Freeza! (C) */
{0xed481b7c,199,-1},/* Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C) */ {0xed481b7c,199,-1},/* Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C) */
{0x44c20420,199,-1},/* San Guo Zhi 2 (C) */ {0x44c20420,199,-1},/* San Guo Zhi 2 (C) */
{0xa1dc16c0,116,-1}, {0xa1dc16c0,116,-1},
{0xcc868d4e,149,-1}, /* 16 Mahjong [p1][!] */ {0xcc868d4e,149,-1}, /* 16 Mahjong [p1][!] */
{0x48239b42,146,-1}, /* Mahjong Companion (Sachen) [!] */ {0x48239b42,146,-1}, /* Mahjong Companion (Sachen) [!] */
{0xb6a727fa,146,-1}, /* Papillion (As) [!] */ {0xb6a727fa,146,-1}, /* Papillion (As) [!] */
{0xa62b79e1,146,-1}, /* Side Winder (HES) [!] */ {0xa62b79e1,146,-1}, /* Side Winder (HES) [!] */
{0x73fb55ac,150,-1}, /* 2-in-1 Cosmo Cop + Cyber Monster (Sachen) [!] */ {0x73fb55ac,150,-1}, /* 2-in-1 Cosmo Cop + Cyber Monster (Sachen) [!] */
{0xddcbda16,150,-1}, /* 2-in-1 Tough Cop + Super Tough Cop (Sachen) [!] */ {0xddcbda16,150,-1}, /* 2-in-1 Tough Cop + Super Tough Cop (Sachen) [!] */
{0x47918d84,150,-1}, /* auto-upturn */ {0x47918d84,150,-1}, /* auto-upturn */
{0x29582ca1,150,-1}, {0x29582ca1,150,-1},
{0x40dbf7a2,150,-1}, {0x40dbf7a2,150,-1},
{0x5aefbc94,133,-1}, /* Jovial Race (Sachen) [a1][!] */ {0x5aefbc94,133,-1}, /* Jovial Race (Sachen) [a1][!] */
{0x58152b42,160,1}, /* Pipe 5 (Sachen) */ {0x58152b42,160,1}, /* Pipe 5 (Sachen) */
{0x22d6d5bd,4,1}, {0x22d6d5bd,4,1},
{0x6a03d3f3,114,-1}, {0x6a03d3f3,114,-1},
{0x0d98db53,114,-1}, /* Pocahontas */
{0x02c41438,176,-1}, /* Xing He Zhan Shi (C) */ {0x4e7729ff,114,-1}, /* Super Donkey Kong */
{0x0da5e32e,101,-1}, /* new Uruusey Yatsura */ {0x02c41438,176,-1}, /* Xing He Zhan Shi (C) */
{0x4f2f1846,-1,1}, /* Famista '89 - Kaimaku Han!! (J) */
{0x6c71feae,45,-1}, /* Kunio 8-in-1 */ {0x0da5e32e,101,-1}, /* new Uruusey Yatsura */
// {0xbdbe3c96,238,-1}, /* Contra Fighter iNES version */ {0x4f2f1846,-1,1}, /* Famista '89 - Kaimaku Han!! (J) */
{0x6c71feae,45,-1}, /* Kunio 8-in-1 */
{0,-1,-1} // {0xbdbe3c96,238,-1}, /* Contra Fighter iNES version */
{0,-1,-1}

View File

@ -580,7 +580,7 @@ static BMAPPINGLocal bmap[] = {
{"", 178, Mapper178_Init}, {"", 178, Mapper178_Init},
{"", 180, Mapper180_Init}, {"", 180, Mapper180_Init},
{"", 181, Mapper181_Init}, {"", 181, Mapper181_Init},
{"", 182, Mapper182_Init}, // {"", 182, Mapper182_Init}, // identical to 114
{"", 183, Mapper183_Init}, {"", 183, Mapper183_Init},
{"", 184, Mapper184_Init}, {"", 184, Mapper184_Init},
{"", 185, Mapper185_Init}, {"", 185, Mapper185_Init},
@ -603,9 +603,9 @@ static BMAPPINGLocal bmap[] = {
{"", 209, Mapper209_Init}, {"", 209, Mapper209_Init},
{"", 210, Mapper210_Init}, {"", 210, Mapper210_Init},
{"", 211, Mapper211_Init}, {"", 211, Mapper211_Init},
{"", 215, Mapper215_Init}, {"", 215, UNL8237_Init},
{"", 216, Mapper216_Init}, {"", 216, Mapper216_Init},
{"", 217, Mapper217_Init}, // {"", 217, Mapper217_Init},
{"UNLA9746", 219, UNLA9746_Init}, {"UNLA9746", 219, UNLA9746_Init},
{"OneBus", 220, UNLOneBus_Init}, {"OneBus", 220, UNLOneBus_Init},

View File

@ -418,7 +418,7 @@ void Mapper177_Init(CartInfo *);
void Mapper178_Init(CartInfo *); void Mapper178_Init(CartInfo *);
void Mapper180_Init(CartInfo *); void Mapper180_Init(CartInfo *);
void Mapper181_Init(CartInfo *); void Mapper181_Init(CartInfo *);
void Mapper182_Init(CartInfo *); //void Mapper182_Init(CartInfo *);
void Mapper183_Init(CartInfo *); void Mapper183_Init(CartInfo *);
void Mapper184_Init(CartInfo *); void Mapper184_Init(CartInfo *);
void Mapper185_Init(CartInfo *); void Mapper185_Init(CartInfo *);
@ -440,9 +440,9 @@ void Mapper208_Init(CartInfo *);
void Mapper209_Init(CartInfo *); void Mapper209_Init(CartInfo *);
void Mapper210_Init(CartInfo *); void Mapper210_Init(CartInfo *);
void Mapper211_Init(CartInfo *); void Mapper211_Init(CartInfo *);
void Mapper215_Init(CartInfo *); //void Mapper215_Init(CartInfo *);
void Mapper216_Init(CartInfo *); void Mapper216_Init(CartInfo *);
void Mapper217_Init(CartInfo *); //void Mapper217_Init(CartInfo *);
void Mapper220_Init(CartInfo *); void Mapper220_Init(CartInfo *);
void Mapper222_Init(CartInfo *); void Mapper222_Init(CartInfo *);
void Mapper226_Init(CartInfo *); void Mapper226_Init(CartInfo *);

View File

@ -392,12 +392,12 @@ static BMAPPING bmap[] = {
{ "SMB2J", UNLSMB2J_Init, 0}, { "SMB2J", UNLSMB2J_Init, 0},
{ "AX5705", UNLAX5705_Init, 0}, { "AX5705", UNLAX5705_Init, 0},
{ "CC-21", UNLCC21_Init,0}, { "CC-21", UNLCC21_Init,0},
{ "H2288", UNLH2288_Init,0}, { "H2288", UNLH2288_Init,0},
{ "KOF97", UNLKOF97_Init,0}, { "KOF97", UNLKOF97_Init,0},
{ "SL1632", UNLSL1632_Init,0}, { "SL1632", UNLSL1632_Init,0},
{ "SHERO", UNLSHeroes_Init,0}, { "SHERO", UNLSHeroes_Init,0},
{ "8237", UNL8237_Init,0}, { "8237", UNL8237_Init,0},
{ "8237A", UNL8237A_Init,0},
{ "8157", UNL8157_Init,0}, { "8157", UNL8157_Init,0},
{ "T-262", BMCT262_Init,0}, { "T-262", BMCT262_Init,0},
{ "FK23C", BMCFK23C_Init,0}, { "FK23C", BMCFK23C_Init,0},

View File

@ -108,6 +108,7 @@ void UNLA9746_Init(CartInfo *info);
void UNLSHeroes_Init(CartInfo *info); void UNLSHeroes_Init(CartInfo *info);
void UNLH2288_Init(CartInfo *info); void UNLH2288_Init(CartInfo *info);
void UNL8237_Init(CartInfo *info); void UNL8237_Init(CartInfo *info);
void UNL8237A_Init(CartInfo *info);
void UNL8157_Init(CartInfo *info); void UNL8157_Init(CartInfo *info);
void UNL22211_Init(CartInfo *info); void UNL22211_Init(CartInfo *info);
void UNLTF1201_Init(CartInfo *info); void UNLTF1201_Init(CartInfo *info);

View File

@ -479,7 +479,7 @@ extern int test; test++;
} }
//will probably cause a major speed decrease on low-end systems //will probably cause a major speed decrease on low-end systems
DEBUG( DebugCycle() ); DEBUG( DebugCycle() );
_PI=_P; _PI=_P;
b1=RdMem(_PC); b1=RdMem(_PC);

View File

@ -274,7 +274,6 @@
<ClCompile Include="..\src\boards\bmc70in1.cpp" /> <ClCompile Include="..\src\boards\bmc70in1.cpp" />
<ClCompile Include="..\src\boards\bonza.cpp" /> <ClCompile Include="..\src\boards\bonza.cpp" />
<ClCompile Include="..\src\boards\bs-5.cpp" /> <ClCompile Include="..\src\boards\bs-5.cpp" />
<ClCompile Include="..\src\boards\copyfami_mmc3.cpp" />
<ClCompile Include="..\src\boards\datalatch.cpp" /> <ClCompile Include="..\src\boards\datalatch.cpp" />
<ClCompile Include="..\src\boards\deirom.cpp" /> <ClCompile Include="..\src\boards\deirom.cpp" />
<ClCompile Include="..\src\boards\dream.cpp" /> <ClCompile Include="..\src\boards\dream.cpp" />

View File

@ -193,9 +193,6 @@
<ClCompile Include="..\src\boards\bs-5.cpp"> <ClCompile Include="..\src\boards\bs-5.cpp">
<Filter>boards</Filter> <Filter>boards</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\boards\copyfami_mmc3.cpp">
<Filter>boards</Filter>
</ClCompile>
<ClCompile Include="..\src\boards\datalatch.cpp"> <ClCompile Include="..\src\boards\datalatch.cpp">
<Filter>boards</Filter> <Filter>boards</Filter>
</ClCompile> </ClCompile>