static INT32 DrvZ80Init() { ZetInit(0); ZetOpen(0); ZetSetReadHandler(battlegZ80Read); ZetSetWriteHandler(battlegZ80Write); // ROM bank 1 ZetMapArea (0x0000, 0x7FFF, 0, RomZ80 + 0x0000); // Direct Read from ROM ZetMapArea (0x0000, 0x7FFF, 2, RomZ80 + 0x0000); // Direct Fetch from ROM // ROM bank 2 ZetMapArea (0x8000, 0xBFFF, 0, RomZ80 + 0x8000); // Direct Read from ROM ZetMapArea (0x8000, 0xBFFF, 2, RomZ80 + 0x8000); // Direct Fetch from ROM // RAM ZetMapArea (0xC000, 0xDFFF, 0, RamZ80); // Direct Read from RAM ZetMapArea (0xC000, 0xDFFF, 1, RamZ80); // Direct Write to RAM ZetMapArea (0xC000, 0xDFFF, 2, RamZ80); // // Ports ZetMemCallback(0xE000, 0xE0FF, 0); // Read ZetMemCallback(0xE000, 0xE0FF, 1); // Write ZetClose(); nCurrentBank = 2; return 0; }
static INT32 DrvZ80Init() { // Init the Z80 ZetInit(0); ZetOpen(0); ZetSetReadHandler(mahoudaiZ80Read); ZetSetWriteHandler(mahoudaiZ80Write); // ROM ZetMapArea (0x0000, 0xBFFF, 0, RomZ80); // Direct Read from ROM ZetMapArea (0x0000, 0xBFFF, 2, RomZ80); // Direct Fetch from ROM // RAM ZetMapArea (0xC000, 0xDFFF, 0, RamZ80); // Direct Read from RAM ZetMapArea (0xC000, 0xDFFF, 1, RamZ80); // Direct Write to RAM ZetMapArea (0xC000, 0xDFFF, 2, RamZ80); // // Callbacks ZetMemCallback(0xE000, 0xE0FF, 0); // Read ZetMemCallback(0xE000, 0xE0FF, 1); // Write ZetMemEnd(); ZetClose(); return 0; }
INT32 QsndZInit() { if (nCpsZRomLen < 0x8000) { // Not enough Z80 Data return 1; } if (CpsZRom == NULL) { return 1; } ZetInit(0); ZetOpen(0); ZetSetReadHandler(QsndZRead); ZetSetWriteHandler(QsndZWrite); // Read and fetch first 0x8000 of Rom if (Cps1Qs) { ZetMapArea(0x0000, 0x7FFF, 0, CpsZRom - (nCpsZRomLen / 2)); ZetMapArea(0x0000, 0x7FFF, 2, CpsZRom, CpsZRom - (nCpsZRomLen / 2)); // If it tries to fetch this area } else { ZetMapArea(0x0000, 0x7FFF, 0 ,CpsZRom); ZetMapArea(0x0000, 0x7FFF, 2, CpsZRom); } // Map first Bank of Rom nQsndZBank = 0; QsndZBankMap(); ZetMapArea(0xC000, 0xCFFF, 0, CpsZRamC0); ZetMapArea(0xC000, 0xCFFF, 1, CpsZRamC0); ZetMapArea(0xC000, 0xCFFF, 2, CpsZRamC0); ZetMemCallback(0xD000, 0xEFFF, 0); ZetMemCallback(0xD000, 0xEFFF, 1); if (Cps1Qs) { ZetMapArea(0xD000, 0xEFFF, 2, CpsZRom, CpsZRom - (nCpsZRomLen / 2)); // If it tries to fetch this area } else { ZetMapArea(0xD000, 0xEFFF, 2, CpsZRom); } ZetMapArea(0xF000, 0xFFFF, 0, CpsZRamF0); ZetMapArea(0xF000, 0xFFFF, 1, CpsZRamF0); ZetMapArea(0xF000, 0xFFFF, 2, CpsZRamF0); ZetMemEnd(); ZetClose(); return 0; }
int PsndZInit() { if (nCpsZRomLen<0x8000) { return 1; // Not enough Z80 Data } if (CpsZRom==NULL) { return 1; } PsndZRam=(unsigned char *)malloc(0x800); if (PsndZRam==NULL) { return 1; } ZetInit(1); ZetSetReadHandler(PsndZRead); ZetSetWriteHandler(PsndZWrite); ZetSetInHandler(PsndZIn); ZetSetOutHandler(PsndZOut); // Read and fetch first 0x8000 of Rom ZetMapArea(0x0000,0x7fff,0,CpsZRom); ZetMapArea(0x0000,0x7fff,2,CpsZRom); // Map first Bank of Rom to 0x8000-0xc000 nPsndZBank=0; PsndZBankMap(); // Ram ZetMapArea(0xd000,0xd7ff,0,PsndZRam); ZetMapArea(0xd000,0xd7ff,1,PsndZRam); ZetMapArea(0xd000,0xd7ff,2,PsndZRam); // Sound chip interfaces ZetMemCallback(0xf000,0xffff,0); ZetMemCallback(0xf000,0xffff,1); // In case it tries to fetch other areas ZetMapArea(0xc000,0xcfff,2,CpsZRom); ZetMapArea(0xd800,0xffff,2,CpsZRom); ZetMemEnd(); ZetClose(); return 0; }
static int DrvZ80Init() { // Init the Z80 ZetInit(1); ZetSetReadHandler(shippumdZ80Read); ZetSetWriteHandler(shippumdZ80Write); // ROM ZetMapArea (0x0000, 0xFFFF, 0, RomZ80); // Direct Read from ROM ZetMapArea (0x0000, 0xFFFF, 2, RomZ80); // Direct Fetch from ROM // RAM ZetMapArea (0xC000, 0xDFFF, 0, RamZ80); // Direct Read from RAM ZetMapArea (0xC000, 0xDFFF, 1, RamZ80); // Direct Write to RAM ZetMapArea (0xC000, 0xDFFF, 2, RamZ80); // // Callbacks ZetMemCallback(0xE000, 0xE0FF, 0); // Read ZetMemCallback(0xE000, 0xE0FF, 1); // Write ZetMemEnd(); return 0; }
int SupermanInit() { int nRet= 0; int nLen = 0; //--------------Allocate Memory----------------- Mem = NULL; MemIndex(); nLen = MemEnd - (unsigned char *)0; Mem = (unsigned char *)malloc(nLen); if (Mem == NULL) return 1; memset(Mem, 0, nLen); // blank all memory MemIndex(); // Index the allocated memory //--------------- Load Roms ------------------- nRet = LoadRoms(); if (nRet != 0) return 1; // Load the roms into memory // Map in memory: // ----------------- Cpu 1 68k ------------------------ SekInit(0, 0x68000); // Allocate 1 68000 SekOpen(0); SekMapMemory(Rom , 0x000000, 0x07ffff ,SM_ROM); SekMapMemory(Superman_src_pal, 0xb00000, 0xb00fff, SM_RAM); SekMapMemory(sysbvidattr , 0xd00000, 0xd00fff, SM_RAM); SekMapMemory(sysbvidram , 0xe00000, 0xe03fff, SM_RAM); SekMapMemory(Superman_ram , 0xf00000, 0xf03fff ,SM_RAM); SekSetWriteWordHandler(0, SupermanWriteWord); SekSetReadWordHandler(0, SupermanReadWord); SekSetReadByteHandler(0, SupermanReadByte); SekSetWriteByteHandler(0, SupermanWriteByte); SekClose(); // ----------------- Cpu 2 Z80 ------------------------ ZetInit(1); ZetSetReadHandler(SupermanZ80Read); ZetSetWriteHandler(SupermanZ80Write); ZetMapArea(0x0000, 0x3fff, 0, z80_rom); ZetMapArea(0x0000, 0x3fff, 2, z80_rom); ZetMapArea(0xc000, 0xdfff, 0, z80_ram); ZetMapArea(0xc000, 0xdfff, 2, z80_ram); ZetMapArea(0xc000, 0xdfff, 1, z80_ram); ZetMemCallback(0xe000, 0xffff, 0); ZetMemCallback(0xe000, 0xffff, 1); ZetMemEnd(); ZetClose(); //------------------------------------------------- //-------- sound stuff ---------------------------- nCurrentBank = -1; int SupermanYM2610RomSize = 0x80000; BurnYM2610Init(8000000, SupermanYM2610Rom, &SupermanYM2610RomSize, SupermanYM2610Rom, &SupermanYM2610RomSize, &SupermanFMIRQHandler, SupermanSynchroniseStream, SupermanGetTime); BurnTimerAttachZet(4000000); // ------- GFX Init ------------------- taito_pal=Superman_pal; SysXInit(1); SupermanDoReset(); return 0; }
int twinhawkInit() { int nRet=0; int nLen=0; //--------------Allocate Memory----------------- Mem=NULL; MemIndex(); nLen=MemEnd-(unsigned char *)0; Mem=(unsigned char *)malloc(nLen); if (Mem==NULL) return 1; memset(Mem,0,nLen); // blank all memory MemIndex(); // Index the allocated memory //--------------- Load Roms ------------------- nRet=LoadRoms(); if (nRet!=0) return 1; // Load the roms into memory // Map in memory: // ----------------- Cpu 1 68k ------------------------ SekInit(0, 0x68000); // Allocate 1 68000 SekOpen(0); SekMapMemory( Rom ,0x000000,0x3ffff,SM_ROM); // 68000 Rom SekMapMemory(twinhawk_src_pal,0xb00000,0xb00FFF,SM_RAM); SekMapMemory(sysbvidattr,0xd00000,0xd00fff,SM_RAM); SekMapMemory(sysbvidram,0xe00000,0xe03fff,SM_RAM); SekMapMemory(twinhawk_ram,0xf00000,0xf03fff,SM_RAM); SekSetReadWordHandler(0, twinhawkReadWord); SekSetWriteWordHandler(0, twinhawkWriteWord); SekSetReadByteHandler(0, twinhawkReadByte); SekSetWriteByteHandler(0, twinhawkWriteByte); SekClose(); // ------------------------------------------------ // ----------------- Cpu 2 Z80 ------------------------ ZetInit(1); ZetOpen(0); ZetSetReadHandler(twinhawkZ80Read); ZetSetWriteHandler(twinhawkZ80Write); ZetMapArea (0x0000,0x3FFF,0,z80_rom); ZetMapArea (0x0000,0x3FFF,2,z80_rom); // ZetMapArea (0x4000,0x7FFF,0,z80_rom+0x4000); // ZetMapArea (0x4000,0x7FFF,2,z80_rom+0x4000); ZetMapArea (0xc000,0xdfff,0,z80_ram); ZetMapArea (0xc000,0xdfff,2,z80_ram); ZetMapArea (0xc000,0xdfff,1,z80_ram); ZetMemEnd(); ZetMemCallback(0xe000, 0xFFFF, 0); // Read ZetMemCallback(0xe000, 0xFFFF, 1); // Write ZetReset(); ZetClose(); //------------------------------------------------- //-------- sound stuff ---------------------------- //---------- YM2151 Setup ---------------------- BurnYM2151Init(4000000, 50.0); BurnYM2151SetIrqHandler(&twinhawkYM2151IRQHandler); nCurrentBank=-1; //-------------------------------------------------- // ------- GFX Init ------------------- taito_pal=twinhawk_pal; SysXInit(0); drvDoReset(); return 0; }
int rastanInit() { int nRet=0; int nLen=0; //--------------Allocate Memory----------------- Mem=NULL; MemIndex(); nLen=MemEnd-(unsigned char *)0; Mem=(unsigned char *)malloc(nLen); if (Mem==NULL) return 1; memset(Mem,0,nLen); // blank all memory MemIndex(); // Index the allocated memory //--------------- Load Roms ------------------- nRet=LoadRoms(); if (nRet!=0) return 1; // Load the roms into memory taito_pal=rastan_pal; init_taito_gfx(); // Map in memory: // ----------------- Cpu 1 ------------------------ SekInit(0, 0x68000); // Allocate 1 68000 SekOpen(0); SekMapMemory( Rom ,0x000000,0x05ffff,SM_ROM); // 68000 Rom SekMapMemory(rastan_ram,0x10c000,0x10ffff,SM_RAM); //0x4000 SekMapMemory(rastan_src_pal,0x200000,0x200fff,SM_RAM); SekMapMemory(rastan_ram+0x4000,0x350008,0x350010,SM_RAM); SekMapMemory(PC090OJ_spritectrl,0x380000,0x380003,SM_RAM); SekMapMemory(rastan_ram+0x4012,0x3c0000,0x3c0003,SM_WRITE); SekMapMemory(PC080SN_word_0,0xc00000,0xc0ffff,SM_RAM); SekMapMemory(PC080SN_ctrl_word_0,0xc50000,0xc50003,SM_WRITE); SekMapMemory(PC090OJ_word_0,0xd00000,0xd03fff,SM_RAM); SekSetReadWordHandler(0, rastanReadWord); SekSetWriteWordHandler(0, rastanWriteWord); SekSetReadByteHandler(0, rastanReadByte); SekSetWriteByteHandler(0, rastanWriteByte); // ------------------------------------------------ SekClose(); ZetInit(1); ZetOpen(0); ZetSetReadHandler(RastanZ80Read); ZetSetWriteHandler(RastanZ80Write); ZetMapArea (0x0000,0x3FFF,0,z80_rom); ZetMapArea (0x0000,0x3FFF,2,z80_rom); ZetMapArea (0x4000,0x7FFF,0,z80_rom+0x4000); ZetMapArea (0x4000,0x7FFF,2,z80_rom+0x4000); ZetMapArea (0x8000,0x8FFF,0,z80_ram); ZetMapArea (0x8000,0x8FFF,1,z80_ram); ZetMemEnd(); ZetMemCallback(0x9000, 0xa001, 0); // Read ZetMemCallback(0x9000, 0xa001, 1); // Write ZetReset(); ZetClose(); //------------------------------------------------- BurnYM2151Init(4000000, 50.0); BurnYM2151SetIrqHandler(&RastanYM2151IRQHandler); BurnYM2151SetPortHandler(&rastanBankSwitch); nCurrentBank=0; // bank number 0 or 1 MSM5205Init(0,8000, 60,1); drvDoReset(); return 0; }