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 INT32 DrvInit() { GenericTilesInit(); AllMem = NULL; MemIndex(); INT32 nLen = MemEnd - (UINT8 *)0; if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1; memset(AllMem, 0, nLen); MemIndex(); { if (BurnLoadRom(Drv68KROM + 0x000000, 0, 1)) return 1; if (BurnLoadRom(Drv68KROM + 0x080000, 1, 1)) return 1; if (BurnLoadRom(DrvGfxROM + 0x000000, 2, 2)) return 1; if (BurnLoadRom(DrvGfxROM + 0x000001, 3, 2)) return 1; if (BurnLoadRom(DrvGfxROM + 0x100000, 4, 2)) return 1; if (BurnLoadRom(DrvGfxROM + 0x100001, 5, 2)) return 1; if (BurnLoadRom(YMZ280BROM + 0x000000, 6, 1)) return 1; if (BurnLoadRom(YMZ280BROM + 0x080000, 7, 1)) return 1; if (BurnLoadRom(YMZ280BROM + 0x100000, 8, 1)) return 1; if (BurnLoadRom(YMZ280BROM + 0x180000, 9, 1)) return 1; DrvGfxDecode(); } SekInit(0, 0x68000); SekOpen(0); SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, MAP_ROM); SekMapMemory(Drv68KRAM, 0x400000, 0x407fff, MAP_RAM); SekMapMemory(DrvPalRAM, 0xb00000, 0xb03fff, MAP_RAM); SekMapMemory(DrvPalRAM, 0xb04000, 0xb047ff, MAP_ROM); SekSetWriteWordHandler(0, bishi_write_word); SekSetWriteByteHandler(0, bishi_write_byte); SekSetReadWordHandler(0, bishi_read_word); SekSetReadByteHandler(0, bishi_read_byte); SekClose(); K055555Init(); K054338Init(); K056832Init(DrvGfxROM, DrvGfxROMExp, 0x200000, bishi_tile_callback); K056832SetGlobalOffsets(29, 16); K056832SetLayerOffsets(0, -2, 0); K056832SetLayerOffsets(1, 2, 0); K056832SetLayerOffsets(2, 4, 0); K056832SetLayerOffsets(3, 6, 0); K056832SetLayerAssociation(0); YMZ280BInit(16934400, bishi_sound_irq); 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); DrvDoReset(); 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; }