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() { BurnSetRefreshRate(60.00); AllMem = NULL; MemIndex(); INT32 nLen = MemEnd - (UINT8 *)0; if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1; memset(AllMem, 0, nLen); MemIndex(); { if (BurnLoadRom(DrvZ80ROM + 0x00000, 0, 1)) return 1; if (BurnLoadRom(DrvZ80ROM + 0x10000, 1, 1)) return 1; if (BurnLoadRom(t5182ROM + 0x00000, 2, 1)) return 1; if (BurnLoadRom(t5182ROM + 0x08000, 3, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x00000, 4, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x02000, 5, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x10000, 6, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x30000, 8, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x20000, 9, 1)) return 1; if (BurnLoadRom(DrvGfxROM2 + 0x00000, 10, 1)) return 1; if (BurnLoadRom(DrvGfxROM2 + 0x10000, 11, 1)) return 1; if (BurnLoadRom(DrvGfxROM2 + 0x20000, 12, 1)) return 1; if (BurnLoadRom(DrvGfxROM2 + 0x30000, 13, 1)) return 1; if (BurnLoadRom(DrvGfxROM3 + 0x00000, 14, 1)) return 1; if (BurnLoadRom(DrvGfxROM3 + 0x08000, 15, 1)) return 1; if (BurnLoadRom(DrvGfxROM4 + 0x00000, 16, 1)) return 1; if (BurnLoadRom(DrvGfxROM4 + 0x04000, 17, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00000, 18, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00100, 19, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00200, 20, 1)) return 1; if (BurnLoadRom(DrvColPROM + 0x00300, 21, 1)) return 1; decrypt_prg(); decrypt_gfx(); decrypt_snd(); DrvGfxDecode(); DrvPaletteInit(); } ZetInit(0); ZetOpen(0); ZetMapMemory(DrvZ80ROM, 0x0000, 0x7fff, MAP_ROM); ZetMapMemory(DrvZ80ROMDec, 0x0000, 0x7fff, MAP_FETCHOP); ZetMapMemory(DrvPalRAM, 0xd000, 0xd3ff, MAP_ROM); ZetMapMemory(DrvScrollRAM, 0xd400, 0xd4ff, MAP_RAM); ZetMapMemory(DrvVidRAM, 0xd800, 0xdfff, MAP_RAM); ZetMapMemory(DrvZ80RAM, 0xe000, 0xefff, MAP_RAM); ZetMapMemory(DrvSprRAM, 0xf000, 0xffff, MAP_RAM); ZetSetWriteHandler(darkmist_main_write); ZetSetReadHandler(darkmist_main_read); ZetClose(); t5182Init(1, 14318180/4); GenericTilesInit(); DrvDoReset(); 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(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(2); 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); ZetMemEnd(); 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); ZetMemEnd(); ZetClose(); MSM6295Init(0, 1122000 / 132, 100.0, 0); DrvDoReset(); GenericTilesInit(); return 0; }
static int DrvInit(int (*LoadCallback)(), int type, int gfx_max, int gfx_min) { AllMem = NULL; MemIndex(gfx_max - gfx_min); int nLen = MemEnd - (unsigned char *)0; if ((AllMem = (unsigned char *)malloc(nLen)) == NULL) return 1; memset(AllMem, 0, nLen); MemIndex(gfx_max - gfx_min); { if (LoadCallback) { if (LoadCallback()) return 1; } BurnSwap32(DrvSh2ROM, 0x100000); BurnSwapEndian(0x200000); DrvGfxDecode(gfx_max - gfx_min); graphics_min_max[0] = gfx_min; graphics_min_max[1] = gfx_max; } if (type == 0) { Sh2Init(1); Sh2Open(0); Sh2MapMemory(DrvSh2ROM, 0x00000000, 0x000fffff, SM_ROM); Sh2MapMemory(DrvSh2ROM + 0x100000, 0x02000000, 0x020fffff, SM_ROM); Sh2MapMemory(DrvSprRAM, 0x03000000, 0x0300ffff, SM_RAM); Sh2MapMemory(DrvPalRAM, 0x03040000, 0x0304ffff, SM_RAM); Sh2MapMemory(DrvZoomRAM, 0x03050000, 0x0305ffff, SM_ROM); Sh2MapMemory(DrvSh2RAM, 0x06000000, 0x060fffff, SM_RAM); Sh2SetReadByteHandler (0, ps3v1_read_byte); Sh2SetWriteByteHandler(0, ps3v1_write_byte); Sh2SetWriteWordHandler(0, ps3v1_write_word); Sh2SetWriteLongHandler(0, psx_write_long); } else { Sh2Init(1); Sh2Open(0); Sh2MapMemory(DrvSh2ROM, 0x00000000, 0x000fffff, SM_ROM); Sh2MapMemory(DrvSprRAM, 0x04000000, 0x0400ffff, SM_RAM); Sh2MapMemory(DrvPalRAM, 0x04040000, 0x0404ffff, SM_RAM); Sh2MapMemory(DrvZoomRAM, 0x04050000, 0x0405ffff, SM_ROM); Sh2MapMemory(DrvSh2ROM + 0x100000, 0x05000000, 0x0507ffff, SM_ROM); Sh2MapMemory(DrvSh2RAM, 0x06000000, 0x060fffff, SM_RAM); Sh2SetReadByteHandler (0, ps5_read_byte); Sh2SetWriteByteHandler(0, ps5_write_byte); Sh2SetWriteWordHandler(0, ps5_write_word); Sh2SetWriteLongHandler(0, psx_write_long); } Sh2MapHandler(1, 0x06000000 | speedhack_address, 0x0600ffff | speedhack_address, SM_ROM); Sh2SetReadByteHandler (1, hack_read_byte); Sh2SetReadWordHandler (1, hack_read_word); Sh2SetReadLongHandler (1, hack_read_long); BurnYMF278BInit(0, DrvSndROM, &DrvIRQCallback, DrvSynchroniseStream); BurnTimerAttachSh2(28636350); EEPROMInit(&eeprom_interface_93C56); PsikyoshVideoInit(gfx_max, gfx_min); DrvDoReset(); return 0; }