static INT32 drvZInit() { // Init the Z80 ZetInit(0); ZetOpen(0); ZetSetInHandler(batriderZIn); ZetSetOutHandler(batriderZOut); // 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); // // RAM ZetMapArea(0xC000, 0xDFFF, 0, RamZ80); // Direct Read from RAM ZetMapArea(0xC000, 0xDFFF, 1, RamZ80); // Direct Write to RAM ZetMapArea(0xC000, 0xDFFF, 2, RamZ80); // ZetClose(); nCurrentBank = 2; 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 INT32 DrvZ80Init() { // Init the Z80 ZetInit(0); ZetOpen(0); ZetSetInHandler(truxtonZ80In); ZetSetOutHandler(truxtonZ80Out); // ROM ZetMapArea (0x0000, 0x7FFF, 0, RomZ80); // Direct Read from ROM ZetMapArea (0x0000, 0x7FFF, 2, RomZ80); // Direct Fetch from ROM // RAM ZetMapArea (0x8000, 0xFFFF, 0, RamZ80); // Direct Read from RAM ZetMapArea (0x8000, 0xFFFF, 1, RamZ80); // Direct Write to RAM ZetMapArea (0x8000, 0xFFFF, 2, RamZ80); // ZetClose(); return 0; }
static int DrvInit() { Mem = (unsigned char*)malloc ( 0x4800 ); if (Mem == NULL) { return 1; } if (BurnLoadRom(Mem, 0, 1)) return 1; ZetInit(1); ZetOpen(0); ZetMapArea (0x0000, 0x3fff, 0, Mem + 0x0000); // Read ROM ZetMapArea (0x0000, 0x3fff, 2, Mem + 0x0000); // Fetch ROM ZetMapArea (0x8000, 0x87ff, 0, Mem + 0x4000); // Read RAM ZetMapArea (0x8000, 0x87ff, 1, Mem + 0x4000); // Write RAM ZetMemEnd(); ZetSetInHandler(dotrikun_in_port); ZetSetOutHandler(dotrikun_out_port); ZetClose(); DrvDoReset(); return 0; }
static INT32 DrvInit() { AllMem = NULL; MemIndex(); INT32 nLen = MemEnd - (UINT8 *)0; if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1; memset(AllMem, 0, nLen); MemIndex(); { if (BurnLoadRom(DrvZ80ROM0 + 0x000000, 0, 1)) return 1; memmove (DrvZ80ROM0 + 0x10000, DrvZ80ROM0 + 0x08000, 0x78000); if (BurnLoadRom(DrvZ80ROM1 + 0x000000, 1, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x000000, 2, 1)) return 1; memcpy (DrvSndROM + 0x000000, DrvGfxROM0 + 0x000000, 0x020000); memcpy (DrvSndROM + 0x040000, DrvGfxROM0 + 0x000000, 0x020000); memcpy (DrvSndROM + 0x080000, DrvGfxROM0 + 0x000000, 0x020000); memcpy (DrvSndROM + 0x0c0000, DrvGfxROM0 + 0x000000, 0x020000); memcpy (DrvSndROM + 0x020000, DrvGfxROM0 + 0x000000, 0x020000); memcpy (DrvSndROM + 0x060000, DrvGfxROM0 + 0x020000, 0x020000); memcpy (DrvSndROM + 0x0a0000, DrvGfxROM0 + 0x040000, 0x020000); memcpy (DrvSndROM + 0x0e0000, DrvGfxROM0 + 0x060000, 0x020000); if (BurnLoadRom(DrvGfxROM0 + 0x000000, 3, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x020000, 4, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x040000, 5, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x060000, 6, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x000000, 7, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x020000, 8, 1)) return 1; DrvGfxDecode(); } ZetInit(0); ZetOpen(0); ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM0); ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM0); ZetMapArea(0x8000, 0x87ff, 0, DrvPalRAM); // ZetMapArea(0x8000, 0x87ff, 1, DrvPalRAM); ZetMapArea(0x8000, 0x87ff, 2, DrvPalRAM); ZetMapArea(0x8800, 0x8fff, 0, DrvAttrRAM); ZetMapArea(0x8800, 0x8fff, 1, DrvAttrRAM); ZetMapArea(0x8800, 0x8fff, 2, DrvAttrRAM); ZetMapArea(0xa000, 0xbfff, 0, DrvZ80RAM0); ZetMapArea(0xa000, 0xbfff, 1, DrvZ80RAM0); ZetMapArea(0xa000, 0xbfff, 2, DrvZ80RAM0); ZetSetWriteHandler(speedspn_main_write); ZetSetOutHandler(speedspn_main_write_port); ZetSetInHandler(speedspn_main_read_port); ZetClose(); ZetInit(1); ZetOpen(1); ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM1); ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM1); ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM1); ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM1); ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM1); ZetSetWriteHandler(speedspn_sound_write); ZetSetReadHandler(speedspn_sound_read); ZetClose(); MSM6295Init(0, 1122000 / 132, 0); MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH); DrvDoReset(); GenericTilesInit(); return 0; }
static INT32 DrvInit() { INT32 nLen; Rallybik = 1; // bToaRotateScreen = true; BurnSetRefreshRate(REFRESHRATE); nBCU2ROMSize = 0x080000; nFCU2ROMSize = 0x080000; // Find out how much memory is needed AllMem = NULL; MemIndex(); nLen = MemEnd - (UINT8 *)0; if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) { return 1; } memset(AllMem, 0, nLen); MemIndex(); if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1; if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1; if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1; if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1; if (BurnLoadRom(DrvZ80ROM, 4, 1)) return 1; ToaLoadTiles(BCU2ROM, 5, nBCU2ROMSize); // ToaLoadTiles(FCU2ROM, 9, nFCU2ROMSize); if (BurnLoadRom(FCU2ROM + 0x000000, 9, 1)) return 1; if (BurnLoadRom(FCU2ROM + 0x010000, 10, 1)) return 1; if (BurnLoadRom(FCU2ROM + 0x020000, 11, 1)) return 1; if (BurnLoadRom(FCU2ROM + 0x030000, 12, 1)) return 1; DrvSpriteDecode(); { SekInit(0, 0x68000); SekOpen(0); SekMapMemory(Drv68KROM, 0x000000, 0x00FFFF, SM_ROM); SekMapMemory(Drv68KROM + 0x40000, 0x040000, 0x07FFFF, SM_ROM); SekMapMemory(Drv68KRAM, 0x080000, 0x083FFF, SM_RAM); SekMapMemory(DrvSprRAM, 0x0c0000, 0x0C0FFF, SM_RAM); SekMapMemory(DrvPalRAM, 0x144000, 0x1447FF, SM_RAM); SekMapMemory(DrvPalRAM2, 0x146000, 0x1467FF, SM_RAM); SekSetReadWordHandler(0, rallybikReadWord); SekSetReadByteHandler(0, rallybikReadByte); SekSetWriteWordHandler(0, rallybikWriteWord); SekSetWriteByteHandler(0, rallybikWriteByte); SekMapHandler(1, 0x180000, 0x180FFF, SM_RAM); SekSetReadByteHandler(1, toaplan1ReadByteZ80RAM); SekSetReadWordHandler(1, toaplan1ReadWordZ80RAM); SekSetWriteByteHandler(1, toaplan1WriteByteZ80RAM); SekSetWriteWordHandler(1, toaplan1WriteWordZ80RAM); SekClose(); ZetInit(0); ZetOpen(0); ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM); ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM); ZetMapArea(0x8000, 0xffff, 0, DrvShareRAM); ZetMapArea(0x8000, 0xffff, 1, DrvShareRAM); ZetMapArea(0x8000, 0xffff, 2, DrvShareRAM); ZetSetOutHandler(rallybik_sound_write_port); ZetSetInHandler(rallybik_sound_read_port); ZetMemEnd(); ZetClose(); } nLayer0XOffset = 0x0d + 6; nLayer1XOffset = 0x0d + 4; nLayer2XOffset = 0x0d + 2; nLayer3XOffset = 0x0d + 0; nLayer0YOffset = nLayer1YOffset = nLayer2YOffset = nLayer3YOffset = 0x111; ToaInitBCU2(); ToaOpaquePriority = 0; nToaPalLen = nColCount; ToaPalSrc = DrvPalRAM; ToaPalSrc2 = DrvPalRAM2; ToaPalInit(); BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0); BurnTimerAttachZetYM3812(28000000 / 8); bDrawScreen = true; DrvDoReset(); return 0; }
int TmntInit() { int nRet=0; int nLen=0; // Find out how much memory is needed 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 TmntZ80Rom=(unsigned char *)malloc(0x08000); if (TmntZ80Rom==NULL) return 1; memset(TmntZ80Rom,0x11,0x08000); TmntZ80Ram=(unsigned char *)malloc(0x0800); if (TmntZ80Ram==NULL) return 1; memset(TmntZ80Ram,0x00,0x0800); nRet=LoadRoms(); if (nRet!=0) return 1; // Load the roms into memory SekInit(0,0x68000); // Allocate 68000 SekOpen(0); // Map in memory: // ----------------- Cpu 1 ------------------------ SekMapMemory(Tmnt68KROM01, 0x000000,0x05FFFF, SM_ROM); // 68000 Rom SekMapMemory(TmntRam06, 0x060000,0x063FFF, SM_RAM); SekMapMemory(TmntRam08, 0x080000,0x080FFF, SM_ROM); // Write goes through handler SekMapMemory(PriRam, 0x0c0000,0x0c00FF, SM_RAM); SekMapMemory(TmntRam10, 0x100000,0x107FFF, SM_RAM); SekMapMemory(K051960Ram, 0x140400,0x1407FF, SM_RAM); SekSetReadWordHandler(0,TmntReadWord); SekSetWriteWordHandler(0,TmntWriteWord); SekSetReadByteHandler(0,TmntReadByte); SekSetWriteByteHandler(0,TmntWriteByte); // ------------------------------------------------ // SekReset(); SekClose(); // Setup the Z80 emulation ZetInit(1); ZetOpen(0); ZetMapArea(0x0000, 0x7fff, 0, TmntZ80Rom); ZetMapArea(0x0000, 0x7fff, 2, TmntZ80Rom); ZetMapArea(0x8000, 0x87FF, 0, TmntZ80Ram); ZetMapArea(0x8000, 0x87FF,1, TmntZ80Ram); ZetMapArea(0x8000, 0x87FF, 2, TmntZ80Ram); ZetMemEnd(); ZetSetInHandler(tmntZ80In); ZetSetOutHandler(tmntZ80Out); ZetSetReadHandler(tmntZ80Read); ZetSetWriteHandler(tmntZ80Write); // ZetReset(); ZetClose(); // sound stuff // ym2151 BurnYM2151Init(3579545, 50.0); BurnYM2151SetIrqHandler(&tmntYM2151IRQHandler); // BurnYM2151Reset(); UPD7759Init(UPD7759_STANDARD_CLOCK, TmntSampleROM02); bInt5=0; GenericTilesInit(); TmntPalInit(); TmntReset(); return 0; }
static int DrvInit() { AllMem = NULL; MemIndex(); int nLen = MemEnd - (unsigned char *)0; if ((AllMem = (unsigned char *)malloc(nLen)) == NULL) return 1; memset(AllMem, 0, nLen); MemIndex(); { if (BurnLoadRom(DrvM6809ROM + 0x08000, 0, 1)) return 1; memcpy (DrvM6809ROM + 0x4000, DrvM6809ROM + 0xc000, 0x4000); if (BurnLoadRom(DrvM6809ROM + 0x0c000, 1, 1)) return 1; if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x00000, 4, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x08000, 5, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00000, 6, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00100, 7, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00200, 8, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00300, 9, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00400, 10, 1)) return 1; DrvPaletteInit(); DrvGfxDecode(); } M6809Init(1); M6809Open(0); M6809MapMemory(DrvColRAM, 0x0000, 0x07ff, M6809_RAM); M6809MapMemory(DrvVidRAM, 0x0800, 0x0fff, M6809_RAM); M6809MapMemory(DrvSprRAM, 0x1000, 0x1fff, M6809_RAM); M6809MapMemory(DrvM6809ROM + 0x04000, 0x4000, 0xffff, M6809_ROM); M6809SetWriteByteHandler(scotrsht_main_write); M6809SetReadByteHandler(scotrsht_main_read); M6809Close(); ZetInit(1); ZetOpen(0); ZetMapArea(0x0000, 0x3fff, 0, DrvZ80ROM); ZetMapArea(0x0000, 0x3fff, 2, DrvZ80ROM); ZetMapArea(0x4000, 0x43ff, 0, DrvZ80RAM); ZetMapArea(0x4000, 0x43ff, 1, DrvZ80RAM); ZetMapArea(0x4000, 0x43ff, 2, DrvZ80RAM); ZetSetReadHandler(scotrsht_sound_read); ZetSetOutHandler(scotrsht_sound_out); ZetSetInHandler(scotrsht_sound_in); ZetMemEnd(); ZetClose(); BurnYM2203Init(1, 3072000, NULL, DrvSynchroniseStream, DrvGetTime, 0); BurnTimerAttachZet(3072000); DrvDoReset(); GenericTilesInit(); return 0; }
static INT32 DrvInit() { if (bBurnUseASMCPUEmulation) { bUseAsm68KCoreOldValue = bBurnUseASMCPUEmulation; bBurnUseASMCPUEmulation = false; } INT32 nLen; // bToaRotateScreen = true; BurnSetRefreshRate(REFRESHRATE); nBCU2ROMSize = 0x080000; nFCU2ROMSize = 0x080000; // Find out how much memory is needed AllMem = NULL; MemIndex(); nLen = MemEnd - (UINT8 *)0; if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) { return 1; } memset(AllMem, 0, nLen); MemIndex(); if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1; if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1; if (BurnLoadRom(DrvZ80ROM, 2, 1)) return 1; ToaLoadTiles(BCU2ROM, 5, nBCU2ROMSize); ToaLoadTiles(FCU2ROM, 9, nFCU2ROMSize); { SekInit(0, 0x68000); SekOpen(0); SekMapMemory(Drv68KROM, 0x000000, 0x03FFFF, SM_ROM); SekMapMemory(DrvPalRAM, 0x404000, 0x4047FF, SM_RAM); SekMapMemory(DrvPalRAM2, 0x406000, 0x4067FF, SM_RAM); SekMapMemory(Drv68KRAM, 0xc00000, 0xc03FFF, SM_RAM); SekSetReadWordHandler(0, demonwldReadWord); SekSetReadByteHandler(0, demonwldReadByte); SekSetWriteWordHandler(0, demonwldWriteWord); SekSetWriteByteHandler(0, demonwldWriteByte); SekMapHandler(1, 0x600000, 0x600FFF, SM_RAM); SekSetReadByteHandler(1, toaplan1ReadByteZ80RAM); SekSetReadWordHandler(1, toaplan1ReadWordZ80RAM); SekSetWriteByteHandler(1, toaplan1WriteByteZ80RAM); SekSetWriteWordHandler(1, toaplan1WriteWordZ80RAM); SekClose(); ZetInit(0); ZetOpen(0); ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM); ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM); ZetMapArea(0x8000, 0xffff, 0, DrvShareRAM); ZetMapArea(0x8000, 0xffff, 1, DrvShareRAM); ZetMapArea(0x8000, 0xffff, 2, DrvShareRAM); ZetSetOutHandler(demonwld_sound_write_port); ZetSetInHandler(demonwld_sound_read_port); ZetMemEnd(); ZetClose(); } ToaInitBCU2(); nToaPalLen = nColCount; ToaPalSrc = DrvPalRAM; ToaPalSrc2 = DrvPalRAM2; ToaPalInit(); ToaOpaquePriority = 2; BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0); BurnTimerAttachZetYM3812(28000000 / 8); BurnYM3812SetRoute(BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH); bDrawScreen = true; DrvDoReset(); return 0; }
void sms_init(void) { ZetInit(0); ZetOpen(0); /* Default: open bus */ data_bus_pullup = 0x00; data_bus_pulldown = 0x00; // bprintf(0, _T("Cart mapper: ")); /* Assign mapper */ if(cart.mapper == MAPPER_CODIES) { // bprintf(0, _T("codemasters\n")); ZetSetWriteHandler(writemem_mapper_codies); } else if (cart.mapper == MAPPER_MSX || cart.mapper == MAPPER_MSX_NEMESIS) { // bprintf(0, _T("msx\n")); ZetSetWriteHandler(writemem_mapper_msx); } else { // bprintf(0, _T("sega\n")); ZetSetWriteHandler(writemem_mapper_sega); } /* Force SMS (J) console type if FM sound enabled */ if(sms.use_fm) { sms.console = CONSOLE_SMSJ; sms.territory = TERRITORY_DOMESTIC; sms.display = DISPLAY_NTSC; } /* Initialize selected console emulation */ switch(sms.console) { case CONSOLE_SMS: ZetSetOutHandler(sms_port_w); ZetSetInHandler(sms_port_r); break; case CONSOLE_SMSJ: ZetSetOutHandler(smsj_port_w); ZetSetInHandler(smsj_port_r); break; case CONSOLE_SMS2: ZetSetOutHandler(sms_port_w); ZetSetInHandler(sms_port_r); data_bus_pullup = 0xFF; break; case CONSOLE_GG: ZetSetOutHandler(gg_port_w); ZetSetInHandler(gg_port_r); data_bus_pullup = 0xFF; break; case CONSOLE_GGMS: ZetSetOutHandler(ggms_port_w); ZetSetInHandler(ggms_port_r); data_bus_pullup = 0xFF; break; case CONSOLE_GEN: case CONSOLE_MD: ZetSetOutHandler(md_port_w); ZetSetInHandler(md_port_r); break; case CONSOLE_GENPBC: case CONSOLE_MDPBC: ZetSetOutHandler(md_port_w); ZetSetInHandler(md_port_r); data_bus_pullup = 0xFF; break; } ZetClose(); sms_reset(); }