static INT32 crushermInit() { INT32 nLen; BurnSetRefreshRate(CAVE_REFRESHRATE); // 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 (crushermLoadRoms()) { return 1; } EEPROMInit(&eeprom_interface_93C46_8bit); { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x07FFFF, MAP_ROM); // CPU 0 ROM SekMapMemory(CaveTileRAM[0], 0x100000, 0x107FFF, MAP_RAM); SekMapMemory(CaveSpriteRAM, 0x180000, 0x187FFF, MAP_RAM); SekMapMemory(CavePalSrc, 0x200000, 0x207FFF, MAP_RAM); SekMapMemory(Ram01, 0x340000, 0x34FFFF, MAP_RAM); SekSetReadWordHandler(0, korokoroReadWord); SekSetReadByteHandler(0, korokoroReadByte); SekSetWriteWordHandler(0, korokoroWriteWord); SekSetWriteByteHandler(0, korokoroWriteByte); SekClose(); } nCaveRowModeOffset = 1; CavePalInit(0x8000); CaveTileInit(); CaveSpriteInit(1, 0x400000); CaveTileInitLayer(0, 0x200000, 4, 0x4400); YMZ280BInit(16934400, &TriggerSoundIRQ, 0x200000); YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_1, 1.00, BURN_SND_ROUTE_LEFT); YMZ280BSetRoute(BURN_SND_YMZ280B_YMZ280B_ROUTE_2, 1.00, BURN_SND_ROUTE_RIGHT); bDrawScreen = true; DrvDoReset(); // Reset machine return 0; }
static int DrvInit() { int nLen; BurnSetRefreshRate(CAVE_REFRESHRATE); // Find out how much memory is needed Mem = NULL; MemIndex(); nLen = MemEnd - (unsigned char *)0; if ((Mem = (unsigned char *)BurnMalloc(nLen)) == NULL) { return 1; } memset(Mem, 0, nLen); // blank all memory MemIndex(); // Index the allocated memory EEPROMInit(&eeprom_interface_93C46_8bit); // Load the roms into memory if (LoadRoms()) { return 1; } { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x07FFFF, SM_ROM); // CPU 0 ROM SekMapMemory(CaveTileRAM[0], 0x100000, 0x107FFF, SM_RAM); SekMapMemory(CaveSpriteRAM, 0x180000, 0x187FFF, SM_RAM); SekMapMemory(CavePalSrc, 0x200000, 0x207FFF, SM_RAM); SekMapMemory(Ram01, 0x300000, 0x30FFFF, SM_RAM); SekSetReadWordHandler(0, korokoroReadWord); SekSetReadByteHandler(0, korokoroReadByte); SekSetWriteWordHandler(0, korokoroWriteWord); SekSetWriteByteHandler(0, korokoroWriteByte); SekClose(); } nCaveRowModeOffset = 1; CavePalInit(0x8000); CaveTileInit(); CaveSpriteInit(1, 0x300000); CaveTileInitLayer(0, 0x200000, 4, 0x4400); YMZ280BInit(16934400, &TriggerSoundIRQ, 3); bDrawScreen = true; DrvDoReset(); // Reset machine return 0; }
static int DrvInit() { int nLen; BurnSetRefreshRate(CAVE_REFRESHRATE); // 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 EEPROMInit(1024, 16); // EEPROM has 1024 bits, uses 16-bit words // Load the roms into memory if (LoadRoms()) { return 1; } { SekInit(0, 0x68000); // Allocate 68000 SekOpen(0); // Map 68000 memory: SekMapMemory(Rom01, 0x000000, 0x07FFFF, SM_ROM); // CPU 0 ROM SekMapMemory(Ram01, 0x100000, 0x10FFFF, SM_RAM); SekMapMemory(CaveTileRAM[1], 0x200000, 0x207FFF, SM_RAM); SekMapMemory(CaveTileRAM[0], 0x300000, 0x307FFF, SM_RAM); SekMapMemory(CaveTileRAM[2] + 0x4000, 0x400000, 0x403FFF, SM_RAM); SekMapMemory(CaveTileRAM[2] + 0x4000, 0x404000, 0x407FFF, SM_RAM); SekMapMemory(CaveSpriteRAM, 0x500000, 0x50FFFF, SM_RAM); SekMapMemory(CavePalSrc, 0xA08000, 0xA08FFF, SM_RAM); // Palette RAM SekSetReadWordHandler(0, donpachiReadWord); SekSetReadByteHandler(0, donpachiReadByte); SekSetWriteWordHandler(0, donpachiWriteWord); SekSetWriteByteHandler(0, donpachiWriteByte); SekClose(); } CavePalInit(); CaveTileInit(); CaveSpriteInit(0, 0x0800000); CaveTileInitLayer(0, 0x200000, 8, 0x4000); CaveTileInitLayer(1, 0x200000, 8, 0x4000); CaveTileInitLayer(2, 0x080000, 8, 0x4000); MSM6295Init(0, 8000, 50.0, 0); MSM6295Init(1, 16000, 50.0, 0); MSM6295SampleData[0][0] = MSM6295ROM + 0x100000; MSM6295SampleInfo[0][0] = MSM6295ROM + 0x100000 + 0x0000; MSM6295SampleData[0][1] = MSM6295ROM + 0x100000; MSM6295SampleInfo[0][1] = MSM6295ROM + 0x100000 + 0x0100; MSM6295SampleData[0][2] = MSM6295ROM + 0x100000; MSM6295SampleInfo[0][2] = MSM6295ROM + 0x100000 + 0x0200; MSM6295SampleData[0][3] = MSM6295ROM + 0x100000; MSM6295SampleInfo[0][3] = MSM6295ROM + 0x100000 + 0x0300; 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; }