static INT32 DrvInit() { INT32 nLen; #ifdef DRIVER_ROTATION bToaRotateScreen = false; #endif nGP9001ROMSize[0] = 0x800000; // Find out how much memory is needed Mem = NULL; MemIndex(); nLen = MemEnd - (UINT8 *)0; if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) { return 1; } memset(Mem, 0, nLen); // blank all memory MemIndex(); // Index the allocated memory // Load the roms into memory if (LoadRoms()) { return 1; } { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM SekMapMemory(Ram01, 0x100000, 0x103FFF, MAP_RAM); SekMapMemory(RamPal, 0x400000, 0x400FFF, MAP_RAM); // Palette RAM SekSetReadWordHandler(0, kbashReadWord); SekSetReadByteHandler(0, kbashReadByte); SekSetWriteWordHandler(0, kbashWriteWord); SekSetWriteByteHandler(0, kbashWriteByte); SekClose(); VezInit(0, V25_TYPE, 16000000 /*before divider*/); VezOpen(0); VezMapArea(0x00000, 0x007ff, 0, ShareRAM); VezMapArea(0x00000, 0x007ff, 1, ShareRAM); VezMapArea(0x00000, 0x007ff, 2, ShareRAM); for (INT32 i = 0x80000; i < 0x100000; i += 0x8000) { VezMapArea(i, i + 0x7fff, 0, Rom02); VezMapArea(i, i + 0x7fff, 1, Rom02); VezMapArea(i, i + 0x7fff, 2, Rom02); } VezSetReadHandler(kbash_v25_read); VezSetWriteHandler(kbash_v25_write); VezSetReadPort(kbash_v25_read_port); VezSetDecode(nitro_decryption_table); VezClose(); } BurnYM2151Init(3375000); BurnYM2151SetAllRoutes(0.50, BURN_SND_ROUTE_BOTH); MSM6295Init(0, 1000000 / 132, 1); MSM6295SetRoute(0, 0.50, BURN_SND_ROUTE_BOTH); nSpriteYOffset = 0x0011; nLayer0XOffset = -0x01D6; nLayer1XOffset = -0x01D8; nLayer2XOffset = -0x01DA; ToaInitGP9001(); nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalInit(); bDrawScreen = true; DrvDoReset(); // Reset machine return 0; }
static int DrvInit() { int nLen; #ifdef DRIVER_ROTATION bToaRotateScreen = true; #endif nGP9001ROMSize[0] = 0x200000; nGP9001ROMSize[1] = 0x400000; // Find out how much memory is needed Mem = NULL; MemIndex(); nLen = MemEnd - (unsigned char *)0; if ((Mem = (unsigned char *)malloc(nLen)) == NULL) { return 1; } memset(Mem, 0, nLen); // blank all memory MemIndex(); // Index the allocated memory // Load the roms into memory if (LoadRoms()) { return 1; } { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); SekMapMemory(Rom01, 0x000000, 0x07FFFF, SM_ROM); // CPU 0 ROM SekMapMemory(Ram01, 0x100000, 0x103FFF, SM_RAM); SekMapMemory(RamPal, 0x400000, 0x400FFF, SM_RAM); // Palette RAM SekSetReadWordHandler(0, dogyuunReadWord); SekSetReadByteHandler(0, dogyuunReadByte); SekSetWriteWordHandler(0, dogyuunWriteWord); SekSetWriteByteHandler(0, dogyuunWriteByte); SekClose(); VezInit(0, V25_TYPE, 12500000 /*before divider*/); VezOpen(0); for (int i = 0x80000; i < 0x100000; i += 0x8000) { VezMapArea(i, i + 0x7fff, 0, ShareRAM); VezMapArea(i, i + 0x7fff, 1, ShareRAM); VezMapArea(i, i + 0x7fff, 2, ShareRAM); } VezSetReadHandler(dogyuun_v25_read); VezSetWriteHandler(dogyuun_v25_write); VezSetReadPort(dogyuun_v25_read_port); VezSetDecode(nitro_decryption_table); VezClose(); } BurnYM2151Init(3375000, 50.0); MSM6295Init(0, 1041667 / 132, 50.0, 1); nSpriteXOffset = 0x0024; nSpriteYOffset = 0x0001; nLayer0XOffset = -0x01D6; nLayer1XOffset = -0x01D8; nLayer2XOffset = -0x01DA; ToaInitGP9001(2); nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalInit(); bDrawScreen = true; DrvDoReset(); // Reset machine return 0; }
static int dynablstInit() { int nRet; Mem = NULL; MemIndex(); int nLen = MemEnd - (unsigned char *)0; if ((Mem = (unsigned char *)malloc(nLen)) == NULL) return 1; memset(Mem, 0, nLen); // blank all memory MemIndex(); nRet = BurnLoadRom(RomV30 + 0x000001, 0, 2); if (nRet != 0) return 1; nRet = BurnLoadRom(RomV30 + 0x000000, 1, 2); if (nRet != 0) return 1; memcpy (RomV30+ 0xffff0, RomV30+ 0x3fff0, 0x10 ); /* start vector */ irem_cpu_decrypt(0,bomberman_decryption_table,RomV30,DecrRomV30,0x7ffff ); nRet = BurnLoadRom(RomZ80 + 0x000000, 3, 1); if (nRet != 0) return 1; unsigned char *sprTmp = (unsigned char *) malloc (0x100000); if ( sprTmp == 0 ) { return 1; } for (int i = 0; i < 4; i++) { nRet = BurnLoadRom(sprTmp + (0x40000*i), 3+i, 1); if (nRet != 0) { return 1; } } GfxDecode(0x2000, 4, 16, 16, SpritePlaneOffsets, SpriteXOffsets, SpriteYOffsets, 0x100, sprTmp, RomSpr); GfxDecode(0x8000, 4, 8, 8, TilePlaneOffsets, TileXOffsets, TileYOffsets, 0x40, sprTmp, RomTile); free(sprTmp); { unsigned int cpu_types[] = { 8 }; VezInit(1, &cpu_types[0]); VezOpen(0); VezMapArea(0x00000, 0x7ffff, 0, RomV30 + 0x00000); // CPU 0 ROM VezMapArea(0x00000, 0x7ffff, 2, DecrRomV30,RomV30 + 0x00000 ); VezMapArea(0xa0000, 0xa3fff, 0, RamV30); VezMapArea(0xa0000, 0xa3fff, 1, RamV30); VezMapArea(0xd0000, 0xdffff, 0, RamVideo); //?? VezMapArea(0xd0000, 0xdffff, 1, RamVideo); VezMapArea(0xe0000, 0xe03ff, 0, RamPal); // palette VezMapArea(0xe0000, 0xe03ff, 1, RamPal); // VezMapArea(0xffff0, 0xfffff, 0, RomV30 + 0x3fff0); // start vector VezSetReadHandler(m90ReadByte); VezSetWriteHandler(m90WriteByte); VezSetReadPort(m90ReadPort); VezSetWritePort(m90WritePort); VezClose(); } DrvDoReset(); return 0; }
static int DrvInit() { int nLen; #ifdef DRIVER_ROTATION bToaRotateScreen = true; #endif nGP9001ROMSize[0] = 0x400000; nGP9001ROMSize[1] = 0x200000; // Find out how much memory is needed Mem = NULL; MemIndex(); nLen = MemEnd - (unsigned char *)0; if ((Mem = (unsigned char *)malloc(nLen)) == NULL) { return 1; } memset(Mem, 0, nLen); // blank all memory MemIndex(); // Index the allocated memory // Load the roms into memory if (LoadRoms()) { return 1; } { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); SekMapMemory(Rom01, 0x000000, 0x07FFFF, SM_ROM); // CPU 0 ROM SekMapMemory(Ram01, 0x100000, 0x10FFFF, SM_RAM); SekMapMemory(RamPal, 0x400000, 0x400FFF, SM_RAM); // Palette RAM SekSetReadWordHandler(0, batsugunReadWord); SekSetReadByteHandler(0, batsugunReadByte); SekSetWriteWordHandler(0, batsugunWriteWord); SekSetWriteByteHandler(0, batsugunWriteByte); SekClose(); VezInit(0, V25_TYPE, 16000000 /*before divider*/); VezOpen(0); for (int i = 0x80000; i < 0x100000; i += 0x8000) { VezMapArea(i, i + 0x7fff, 0, ShareRAM); VezMapArea(i, i + 0x7fff, 1, ShareRAM); VezMapArea(i, i + 0x7fff, 2, ShareRAM); } VezSetReadHandler(batsugun_v25_read); VezSetWriteHandler(batsugun_v25_write); VezSetReadPort(batsugun_v25_read_port); VezClose(); } BurnYM2151Init(3375000, 50.0); MSM6295Init(0, 4000000 / 132, 50.0, 1); nSpriteYOffset = 0x0001; nLayer0XOffset = -0x01D6; nLayer1XOffset = -0x01D8; nLayer2XOffset = -0x01DA; ToaInitGP9001(3); nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalInit(); bDrawScreen = true; #if defined FBA_DEBUG && defined USE_SPEEDHACKS bprintf(PRINT_IMPORTANT, _T(" * Using speed-hacks (detecting idle loops).\n")); #endif DrvDoReset(); // Reset machine return 0; }