diff --git a/zsnes/src/initc.c b/zsnes/src/initc.c index 1e2f88f5..ffbfa269 100755 --- a/zsnes/src/initc.c +++ b/zsnes/src/initc.c @@ -710,7 +710,7 @@ bool NSRTHead(unsigned char *ROM) if (!strncmp("NSRT", (char*)&NSRTHead[24],4) && NSRTHead[28] == 22) { - if (sum(NSRTHead, 32) & 0xFF != NSRTHead[30] || + if ((sum(NSRTHead, 32) & 0xFF) != NSRTHead[30] || NSRTHead[30] + NSRTHead[31] != 255 || (NSRTHead[0] & 0x0F) > 13 || ((NSRTHead[0] & 0xF0) >> 4) > 3 || @@ -726,6 +726,7 @@ bool NSRTHead(unsigned char *ROM) extern bool Sup48mbit; extern bool Sup16mbit; extern unsigned char snesmouse; +unsigned char snesinputdefault; void findZipIPS(char *); void loadROM() { @@ -837,6 +838,8 @@ void loadROM() memmove((unsigned char *)romdata, ((unsigned char *)romdata)+512, curromspace); } + snesinputdefault = snesmouse; + SplitSupport(); if (isZip) { findZipIPS(ZOpenFileName); } diff --git a/zsnes/src/vcache.asm b/zsnes/src/vcache.asm index 070c955e..e3a41e66 100644 --- a/zsnes/src/vcache.asm +++ b/zsnes/src/vcache.asm @@ -55,7 +55,7 @@ EXTSYM vcache8b,vidmemch8 EXTSYM offsetmshl,NextLineCache EXTSYM tltype2b EXTSYM tltype8b,objwlrpos - +EXTSYM snesinputdefault NEWSYM VCacheAsmStart @@ -522,7 +522,10 @@ NEWSYM cachevideo mov byte[Voice6Disable],01h mov byte[Voice7Disable],01h mov byte[scrndis],00h - mov byte[snesmouse],0 + push eax + mov al,byte[snesinputdefault] + mov byte[snesmouse],al + pop eax mov dword[Msgptr],panickeyp mov eax,[MsgCount] mov [MessageOn],eax