X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=boards%2Fsupervision.c;h=953c068813585ce60457dafcd87ae8683739f0af;hp=cb2890fda08d11e9974b3bfadcdbc375687380b0;hb=d97315ac0bca825d2d50a44453bc5652946e2c67;hpb=890e37ba2b8ea1c7593dc05926d7431e3bd00bfb diff --git a/boards/supervision.c b/boards/supervision.c index cb2890f..953c068 100644 --- a/boards/supervision.c +++ b/boards/supervision.c @@ -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 @@ -20,35 +20,33 @@ #include "mapinc.h" -#define CHRRAM (GameMemBlock+16) +static uint8 cmd0, cmd1; static void DoSuper(void) { - setprg8r((GameMemBlock[0]&0xC)>>2,0x6000,((GameMemBlock[0]&0x3)<<4)|0xF); - if(GameMemBlock[0]&0x10) + setprg8r((cmd0&0xC)>>2,0x6000,((cmd0&0x3)<<4)|0xF); + if(cmd0&0x10) { - setprg16r((GameMemBlock[0]&0xC)>>2,0x8000,((GameMemBlock[0]&0x3)<<3)|(GameMemBlock[1]&7)); - setprg16r((GameMemBlock[0]&0xC)>>2,0xc000,((GameMemBlock[0]&0x3)<<3)|7); + setprg16r((cmd0&0xC)>>2,0x8000,((cmd0&0x3)<<3)|(cmd1&7)); + setprg16r((cmd0&0xC)>>2,0xc000,((cmd0&0x3)<<3)|7); } else setprg32r(4,0x8000,0); - - setmirror(((GameMemBlock[0]&0x20)>>5)^1); - X6502_Rebase(); + setmirror(((cmd0&0x20)>>5)^1); } static DECLFW(SuperWrite) { - if(!(GameMemBlock[0]&0x10)) + if(!(cmd0&0x10)) { - GameMemBlock[0]=V; + cmd0=V; DoSuper(); } } static DECLFW(SuperHi) { - GameMemBlock[1]=V; + cmd1=V; DoSuper(); } @@ -56,10 +54,10 @@ static void SuperReset(void) { SetWriteHandler(0x6000,0x7FFF,SuperWrite); SetWriteHandler(0x8000,0xFFFF,SuperHi); - SetReadHandler(0x6000,0xFFFF,CartBR); - GameMemBlock[0]=GameMemBlock[1]=0; + SetReadHandler(0x6000,0xFFFF,CartBR); + cmd0=cmd1=0; setprg32r(4,0x8000,0); - setvram8(CHRRAM); + setchr8(0); } static void SuperRestore(int version) @@ -67,11 +65,10 @@ static void SuperRestore(int version) DoSuper(); } -void Supervision16_Init(void) +void Supervision16_Init(CartInfo *info) { - AddExState(&GameMemBlock[0], 1, 0,"L1"); - AddExState(&GameMemBlock[1], 1, 0,"L2"); - AddExState(CHRRAM, 8192, 0, "CHRR"); - BoardPower=SuperReset; + AddExState(&cmd0, 1, 0,"L1"); + AddExState(&cmd1, 1, 0,"L2"); + info->Power=SuperReset; GameStateRestore=SuperRestore; }