void init_dec0_aud(int romNumPrg, int romNumSamples) { Ram = (unsigned char*) malloc(0x0600); Rom = (unsigned char*) malloc(0x8000); memset(Ram,0x00, sizeof(Ram)); MSM6295ROM = (unsigned char*) malloc(0x10000); BurnLoadRom(Rom, romNumPrg,1 ); BurnLoadRom(MSM6295ROM,romNumSamples,1); m6502Init(1); m6502Open(0); m6502MapMemory(Ram, 0x0000, 0x05ff, M6502_RAM); // Ram m6502MapMemory(Rom, 0x8000, 0xffff, M6502_ROM); // Rom m6502SetReadHandler(dec0_aud_read_byte); m6502SetWriteHandler(dec0_aud_write_byte); m6502Close(); BurnYM3812Init(3000000, &dec0YMxxxxIrqHandler, &dec0SynchroniseStream, 1); BurnYM2203Init(1, 1500000, &dec0YMxxxxIrqHandler, dec0SynchroniseStream, DrvGetTime, 0); // Setup the OKIM6295 emulation MSM6295Init(0, 1023924/132, 30.0, 1); BurnTimerAttachSek(10000000); }
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; }