*\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
+ * FDS Conversion\r
+ *\r
*/\r
\r
-//ccording to nestopia, BTL_SMB2_C, otherwise known as UNL-SMB2J\r
-\r
#include "mapinc.h"\r
\r
static uint8 reg;\r
-static uint8 IRQa;\r
-static uint32 IRQCount;\r
+static uint32 IRQCount, IRQa;\r
\r
static SFORMAT StateRegs[]=\r
{\r
\r
static void Sync(void)\r
{\r
- setprg4(0x5000,16); \r
+ setprg4(0x5000,16); // Only YS-612 advdnced version\r
setprg8(0x6000,2);\r
setprg8(0x8000,1);\r
setprg8(0xa000,0);\r
\r
static DECLFW(M43Write)\r
{\r
- int transo[8]={4,3,4,4,4,7,5,6};\r
+// int transo[8]={4,3,4,4,4,7,5,6};\r
+ int transo[8]={4,3,5,3,6,3,7,3}; // According to hardware tests\r
switch(A&0xf1ff)\r
{\r
case 0x4022: reg=transo[V&7]; Sync(); break;\r
- case 0x8122: IRQa=V&1; IRQCount=0; break;\r
+ case 0x8122: // hacked version\r
+ case 0x4122: IRQa=V&1; X6502_IRQEnd(FCEU_IQEXT); IRQCount=0; break; // original version\r
}\r
}\r
\r
{\r
reg=0;\r
Sync();\r
-// SetReadHandler(0x5000,0x5fff,CartBR);\r
SetReadHandler(0x5000,0xffff,CartBR);\r
SetWriteHandler(0x4020,0xffff,M43Write);\r
}\r
{\r
}\r
\r
-static void M43IRQHook(int a)\r
+static void FP_FASTAPASS(1) M43IRQHook(int a)\r
{\r
- IRQCount+=a;\r
- if(IRQa)\r
- if(IRQCount>=4096)\r
- {\r
- IRQa=0;\r
- X6502_IRQBegin(FCEU_IQEXT);\r
- }\r
+ IRQCount+=a;\r
+ if(IRQa)\r
+ if(IRQCount>=4096)\r
+ {\r
+ IRQa=0;\r
+ X6502_IRQBegin(FCEU_IQEXT);\r
+ }\r
}\r
\r
static void StateRestore(int version)\r