static INT32 DrvInit() { INT32 nLen; #ifdef DRIVER_ROTATION bToaRotateScreen = true; #endif BurnSetRefreshRate(REFRESHRATE); nBCU2ROMSize = 0x080000; nFCU2ROMSize = 0x080000; // 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); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x03FFFF, SM_ROM); // 68K ROM SekMapMemory(Ram01, 0x080000, 0x083FFF, SM_RAM); // 68K RAM SekMapMemory(RamPal, 0x144000, 0x1447FF, SM_RAM); // BCU-2 palette RAM SekMapMemory(RamPal2, 0x146000, 0x1467FF, SM_RAM); // FCU-2 palette RAM SekSetReadWordHandler(0, truxtonReadWord); SekSetReadByteHandler(0, truxtonReadByte); SekSetWriteWordHandler(0, truxtonWriteWord); SekSetWriteByteHandler(0, truxtonWriteByte); SekMapHandler(1, 0x180000, 0x180FFF, SM_RAM); // Z80 RAM SekSetReadByteHandler(1, toaplan1ReadByteZ80RAM); SekSetReadWordHandler(1, toaplan1ReadWordZ80RAM); SekSetWriteByteHandler(1, toaplan1WriteByteZ80RAM); SekSetWriteWordHandler(1, toaplan1WriteWordZ80RAM); SekClose(); } ToaInitBCU2(); DrvZ80Init(); // Initialize Z80 nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalSrc2 = RamPal2; ToaPalInit(); BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0); BurnTimerAttachZetYM3812(28000000 / 8); BurnYM3812SetRoute(BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH); bDrawScreen = true; DrvDoReset(); // Reset machine return 0; }
static int battlegInit() { int nLen; #ifdef DRIVER_ROTATION bToaRotateScreen = true; #endif nGP9001ROMSize[0] = 0x800000; // 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); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x0FFFFF, SM_ROM); // CPU 0 ROM SekMapMemory(Ram01, 0x100000, 0x10FFFF, SM_RAM); SekMapMemory(RamPal, 0x400000, 0x400FFF, SM_RAM); // Palette RAM SekMapMemory(Ram02, 0x401000, 0x4017FF, SM_RAM); // Unused SekMapMemory(ExtraTRAM, 0x500000, 0x501FFF, SM_RAM); SekMapMemory(ExtraTSelect, 0x502000, 0x502FFF, SM_RAM); // 0x502000 - Scroll; 0x502200 - RAM SekMapMemory(ExtraTScroll, 0x503000, 0x503FFF, SM_RAM); // 0x203000 - Offset; 0x503200 - RAM SekSetReadWordHandler(0, battlegReadWord); SekSetReadByteHandler(0, battlegReadByte); SekSetWriteWordHandler(0, battlegWriteWord); SekSetWriteByteHandler(0, battlegWriteByte); SekClose(); } nSpriteXOffset = 0x0024; nSpriteYOffset = 0x0001; nLayer0XOffset = -0x01D6; nLayer1XOffset = -0x01D8; nLayer2XOffset = -0x01DA; ToaInitGP9001(); nExtraTXOffset = 0x2C; ToaExtraTextInit(); DrvZ80Init(); // Initialize Z80 BurnYM2151Init(32000000 / 8, 50.0); MSM6295Init(0, 32000000 / 16 / 132, 50.0, 1); nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalInit(); bDrawScreen = true; // mar 2 1996 & apr 2 1996 ver: 0x0009AC - 0x0009B8 & 0x001F5E - 0x001F64 & 0x003A1C - 0x003A22 // feb 2 1996 ver: 0x0009AC - 0x0009B8 & 0x001F2E - 0x001F34 & 0x0039EC - 0x0039F2 nSpeedHackOffset = 0; if (strcmp(BurnDrvGetTextA(DRV_NAME), "bgaregga") == 0) { nSpeedHackOffset = 0x30; } #if defined FBA_DEBUG && defined USE_SPEEDHACKS bprintf(PRINT_IMPORTANT, _T(" * Using speed-hacks (detecting idle loops).\n")); #endif DrvDoReset(); // Reset machine return 0; }
static INT32 battlegInit() { INT32 nLen; #ifdef DRIVER_ROTATION bToaRotateScreen = true; #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 (Bgareggabla) { if (LoadRomsBla()) { return 1; } } else { if (Bgareggabl) { if (LoadRomsBl()) { return 1; } } else { if (LoadRoms()) { return 1; } } } { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x0FFFFF, MAP_ROM); // CPU 0 ROM SekMapMemory(Ram01, 0x100000, 0x10FFFF, MAP_RAM); SekMapMemory(RamPal, 0x400000, 0x400FFF, MAP_RAM); // Palette RAM SekMapMemory(Ram02, 0x401000, 0x4017FF, MAP_RAM); // Unused SekMapMemory(ExtraTRAM, 0x500000, 0x501FFF, MAP_RAM); SekMapMemory(ExtraTSelect, 0x502000, 0x502FFF, MAP_RAM); // 0x502000 - Scroll; 0x502200 - RAM SekMapMemory(ExtraTScroll, 0x503000, 0x503FFF, MAP_RAM); // 0x203000 - Offset; 0x503200 - RAM SekSetReadWordHandler(0, battlegReadWord); SekSetReadByteHandler(0, battlegReadByte); SekSetWriteWordHandler(0, battlegWriteWord); SekSetWriteByteHandler(0, battlegWriteByte); SekClose(); } nSpriteXOffset = 0x0024; nSpriteYOffset = 0x0001; nLayer0XOffset = -0x01D6; nLayer1XOffset = -0x01D8; nLayer2XOffset = -0x01DA; ToaInitGP9001(); nExtraTXOffset = 0x2C; ToaExtraTextInit(); if (Bgareggabl) nExtraTXOffset = 0; DrvZ80Init(); // Initialize Z80 BurnYM2151Init(32000000 / 8); BurnYM2151SetAllRoutes(1.00, BURN_SND_ROUTE_BOTH); MSM6295Init(0, 32000000 / 16 / 132, 1); MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH); nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalInit(); bDrawScreen = true; // mar 2 1996 & apr 2 1996 ver: 0x0009AC - 0x0009B8 & 0x001F5E - 0x001F64 & 0x003A1C - 0x003A22 // feb 2 1996 ver: 0x0009AC - 0x0009B8 & 0x001F2E - 0x001F34 & 0x0039EC - 0x0039F2 DrvDoReset(); // Reset machine return 0; }
static int DrvInit() { int nLen; Hellfire = 1; #ifdef DRIVER_ROTATION bToaRotateScreen = true; #endif BurnSetRefreshRate(REFRESHRATE); nBCU2ROMSize = 0x080000; nFCU2ROMSize = 0x080000; // 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); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x03FFFF, SM_ROM); // 68K ROM SekMapMemory(Ram01, 0x040000, 0x047FFF, SM_RAM); // 68K RAM SekMapMemory(RamPal, 0x084000, 0x0847FF, SM_RAM); // BCU-2 palette RAM SekMapMemory(RamPal2, 0x086000, 0x0867FF, SM_RAM); // FCU-2 palette RAM SekSetReadWordHandler(0, hellfireReadWord); SekSetReadByteHandler(0, hellfireReadByte); SekSetWriteWordHandler(0, hellfireWriteWord); SekSetWriteByteHandler(0, hellfireWriteByte); SekMapHandler(1, 0x0c0000, 0x0c0FFF, SM_RAM); // Z80 RAM SekSetReadByteHandler(1, toaplan1ReadByteZ80RAM); SekSetReadWordHandler(1, toaplan1ReadWordZ80RAM); SekSetWriteByteHandler(1, toaplan1WriteByteZ80RAM); SekSetWriteWordHandler(1, toaplan1WriteWordZ80RAM); SekClose(); } ToaInitBCU2(); DrvZ80Init(); // Initialize Z80 nToaPalLen = nColCount; ToaPalSrc = RamPal; ToaPalSrc2 = RamPal2; ToaPalInit(); BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream); BurnTimerAttachZet(28000000 / 8); bDrawScreen = true; DrvDoReset(); // Reset machine return 0; }