merge mapper code from FCEUX
[fceu.git] / boards / novel.c
index fe3a37c..1918abf 100644 (file)
@@ -1,7 +1,7 @@
 /* FCE Ultra - NES/Famicom Emulator
  *
  * Copyright notice for this file:
- *  Copyright (C) 2002 Ben Parnell
+ *  Copyright (C) 2002 Xodnizel
  *
  * 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
  *
  * 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
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include "mapinc.h"
 
+static uint8 latch;
+
 static void DoNovel(void)
 {
- setprg32(0x8000,GameMemBlock[0]&3);
- setchr8(GameMemBlock[0]&7);
- X6502_Rebase();
+  setprg32(0x8000,latch&3);
+  setchr8(latch&7);
 }
 
 static DECLFW(NovelWrite)
 {
GameMemBlock[0]=A&0xFF;
- DoNovel();
 latch=A&0xFF;
 DoNovel();
 }
 
 static void NovelReset(void)
 {
   SetWriteHandler(0x8000,0xFFFF,NovelWrite);
-  SetReadHandler(0x8000,0xFFFF,CartBR);
+  SetReadHandler(0x8000,0xFFFF,CartBR);  
   setprg32(0x8000,0);
   setchr8(0);
 }
 
 static void NovelRestore(int version)
 {
- DoNovel();
 DoNovel();
 }
 
-void Novel_Init(void)
+void Novel_Init(CartInfo *info)
 {
-  AddExState(&GameMemBlock[0], 1, 0,"L1");
-  BoardPower=NovelReset;
+  AddExState(&latch, 1, 0,"L1");
+  info->Power=NovelReset;
   GameStateRestore=NovelRestore;
 }