*\r
* You should have received a copy of the GNU General Public License\r
* along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+ *\r
+ * VRC-2/VRC-4 Konami\r
+ * VRC-4 Pirate\r
*/\r
\r
#include "mapinc.h"\r
\r
static SFORMAT StateRegs[]=\r
{\r
- {prgreg, 2, "PRGREGS"},\r
- {chrreg, 8, "CHRREGS"},\r
- {®cmd, 1, "REGCMD"},\r
- {&irqcmd, 1, "IRQCMD"},\r
+ {prgreg, 2, "PREG"},\r
+ {chrreg, 8, "CREG"},\r
+ {®cmd, 1, "CMDR"},\r
+ {&irqcmd, 1, "CMDI"},\r
{&mirr, 1, "MIRR"},\r
{&big_bank, 1, "BIGB"},\r
- {&IRQCount, 2, "IRCN"},\r
+ {&IRQCount, 2, "IRQC"},\r
{&IRQLatch, 1, "IRQL"},\r
{&IRQa, 1, "IRQA"},\r
{0}\r
if(UNIFchrrama)\r
big_bank=(V&8)<<2; // my personally many-in-one feature ;) just for support pirate cart 2-in-1\r
else\r
- { \r
+ {\r
uint16 i=((A>>1)&1)|((A-0xB000)>>11);\r
chrreg[i]&=(0xF0)>>((A&1)<<2);\r
chrreg[i]|=(V&0xF)<<((A&1)<<2);\r
else\r
switch(A&0xF003)\r
{\r
- case 0x8000: \r
- case 0x8001: \r
- case 0x8002: \r
- case 0x8003: if(is23) \r
- prgreg[0]=V&0x1F; \r
- Sync(); \r
+ case 0x8000:\r
+ case 0x8001:\r
+ case 0x8002:\r
+ case 0x8003: if(is23)\r
+ prgreg[0]=V&0x1F;\r
+ Sync();\r
break;\r
- case 0xA000: \r
- case 0xA001: \r
- case 0xA002: \r
- case 0xA003: if(is23) \r
- prgreg[1]=V&0x1F; \r
+ case 0xA000:\r
+ case 0xA001:\r
+ case 0xA002:\r
+ case 0xA003: if(is23)\r
+ prgreg[1]=V&0x1F;\r
else\r
{\r
prgreg[0]=(V<<1)&0x1F;\r
break;\r
case 0x9000:\r
case 0x9001: if(V!=0xFF) mirr=V; Sync(); break;\r
- case 0x9002: \r
+ case 0x9002:\r
case 0x9003: regcmd=V; Sync(); break;\r
case 0xF000: X6502_IRQEnd(FCEU_IQEXT); IRQLatch&=0xF0; IRQLatch|=V&0xF; break;\r
case 0xF001: X6502_IRQEnd(FCEU_IQEXT); IRQLatch&=0x0F; IRQLatch|=V<<4; break;\r
\r
static void M23Power(void)\r
{\r
- big_bank=0x20; \r
+ big_bank=0x20;\r
Sync();\r
setprg8r(0x10,0x6000,0); // another many-in-one code, WRAM actually contain only WaiWaiWorld game\r
SetReadHandler(0x6000,0x7FFF,CartBR);\r
SetWriteHandler(0x8000,0xFFFF,M23Write);\r
}\r
\r
-static void M23Reset(void)\r
-{\r
-}\r
-\r
-void M23IRQHook(int a)\r
+void FP_FASTAPASS(1) M23IRQHook(int a)\r
{\r
#define LCYCS 341\r
if(IRQa)\r
{\r
acount-=LCYCS;\r
IRQCount++;\r
- if(IRQCount&0x100) \r
+ if(IRQCount&0x100)\r
{\r
X6502_IRQBegin(FCEU_IQEXT);\r
IRQCount=IRQLatch;\r