int SupermanInit() { int nRet= 0; int nLen = 0; //--------------Allocate Memory----------------- Mem = NULL; MemIndex(); nLen = MemEnd - (unsigned char *)0; Mem = (unsigned char *)malloc(nLen); if (Mem == NULL) return 1; memset(Mem, 0, nLen); // blank all memory MemIndex(); // Index the allocated memory //--------------- Load Roms ------------------- nRet = LoadRoms(); if (nRet != 0) return 1; // Load the roms into memory // Map in memory: // ----------------- Cpu 1 68k ------------------------ SekInit(0, 0x68000); // Allocate 1 68000 SekOpen(0); SekMapMemory(Rom , 0x000000, 0x07ffff ,SM_ROM); SekMapMemory(Superman_src_pal, 0xb00000, 0xb00fff, SM_RAM); SekMapMemory(sysbvidattr , 0xd00000, 0xd00fff, SM_RAM); SekMapMemory(sysbvidram , 0xe00000, 0xe03fff, SM_RAM); SekMapMemory(Superman_ram , 0xf00000, 0xf03fff ,SM_RAM); SekSetWriteWordHandler(0, SupermanWriteWord); SekSetReadWordHandler(0, SupermanReadWord); SekSetReadByteHandler(0, SupermanReadByte); SekSetWriteByteHandler(0, SupermanWriteByte); SekClose(); // ----------------- Cpu 2 Z80 ------------------------ ZetInit(1); ZetSetReadHandler(SupermanZ80Read); ZetSetWriteHandler(SupermanZ80Write); ZetMapArea(0x0000, 0x3fff, 0, z80_rom); ZetMapArea(0x0000, 0x3fff, 2, z80_rom); ZetMapArea(0xc000, 0xdfff, 0, z80_ram); ZetMapArea(0xc000, 0xdfff, 2, z80_ram); ZetMapArea(0xc000, 0xdfff, 1, z80_ram); ZetMemCallback(0xe000, 0xffff, 0); ZetMemCallback(0xe000, 0xffff, 1); ZetMemEnd(); ZetClose(); //------------------------------------------------- //-------- sound stuff ---------------------------- nCurrentBank = -1; int SupermanYM2610RomSize = 0x80000; BurnYM2610Init(8000000, SupermanYM2610Rom, &SupermanYM2610RomSize, SupermanYM2610Rom, &SupermanYM2610RomSize, &SupermanFMIRQHandler, SupermanSynchroniseStream, SupermanGetTime); BurnTimerAttachZet(4000000); // ------- GFX Init ------------------- taito_pal=Superman_pal; SysXInit(1); SupermanDoReset(); return 0; }
int twinhawkInit() { int nRet=0; int nLen=0; //--------------Allocate Memory----------------- Mem=NULL; MemIndex(); nLen=MemEnd-(unsigned char *)0; Mem=(unsigned char *)malloc(nLen); if (Mem==NULL) return 1; memset(Mem,0,nLen); // blank all memory MemIndex(); // Index the allocated memory //--------------- Load Roms ------------------- nRet=LoadRoms(); if (nRet!=0) return 1; // Load the roms into memory // Map in memory: // ----------------- Cpu 1 68k ------------------------ SekInit(0, 0x68000); // Allocate 1 68000 SekOpen(0); SekMapMemory( Rom ,0x000000,0x3ffff,SM_ROM); // 68000 Rom SekMapMemory(twinhawk_src_pal,0xb00000,0xb00FFF,SM_RAM); SekMapMemory(sysbvidattr,0xd00000,0xd00fff,SM_RAM); SekMapMemory(sysbvidram,0xe00000,0xe03fff,SM_RAM); SekMapMemory(twinhawk_ram,0xf00000,0xf03fff,SM_RAM); SekSetReadWordHandler(0, twinhawkReadWord); SekSetWriteWordHandler(0, twinhawkWriteWord); SekSetReadByteHandler(0, twinhawkReadByte); SekSetWriteByteHandler(0, twinhawkWriteByte); SekClose(); // ------------------------------------------------ // ----------------- Cpu 2 Z80 ------------------------ ZetInit(1); ZetOpen(0); ZetSetReadHandler(twinhawkZ80Read); ZetSetWriteHandler(twinhawkZ80Write); ZetMapArea (0x0000,0x3FFF,0,z80_rom); ZetMapArea (0x0000,0x3FFF,2,z80_rom); // ZetMapArea (0x4000,0x7FFF,0,z80_rom+0x4000); // ZetMapArea (0x4000,0x7FFF,2,z80_rom+0x4000); ZetMapArea (0xc000,0xdfff,0,z80_ram); ZetMapArea (0xc000,0xdfff,2,z80_ram); ZetMapArea (0xc000,0xdfff,1,z80_ram); ZetMemEnd(); ZetMemCallback(0xe000, 0xFFFF, 0); // Read ZetMemCallback(0xe000, 0xFFFF, 1); // Write ZetReset(); ZetClose(); //------------------------------------------------- //-------- sound stuff ---------------------------- //---------- YM2151 Setup ---------------------- BurnYM2151Init(4000000, 50.0); BurnYM2151SetIrqHandler(&twinhawkYM2151IRQHandler); nCurrentBank=-1; //-------------------------------------------------- // ------- GFX Init ------------------- taito_pal=twinhawk_pal; SysXInit(0); drvDoReset(); return 0; }