您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ DrvDoReset函数代码示例

51自学网 2021-06-01 20:30:21
  C++
这篇教程C++ DrvDoReset函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中DrvDoReset函数的典型用法代码示例。如果您正苦于以下问题:C++ DrvDoReset函数的具体用法?C++ DrvDoReset怎么用?C++ DrvDoReset使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了DrvDoReset函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: DrvFrame

static int DrvFrame(){	int nInterleave = 10;	int nSoundBufferPos = 0;	if (DrvReset) DrvDoReset();	DrvMakeInputs();	nCyclesTotal[0] = 28638000 / 60;	nCyclesDone[0] = 0;	for (int i = 0; i < nInterleave; i++) {		int nCurrentCPU, nNext;		nCurrentCPU = 0;		Sh2Open(0);		nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;		nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];		nCyclesDone[nCurrentCPU] += Sh2Run(nCyclesSegment);		if (i == 5) Sh2SetIRQLine(1, SH2_IRQSTATUS_AUTO);		if (i == 9) Sh2SetIRQLine(5, SH2_IRQSTATUS_AUTO);		Sh2Close();	}		if (pBurnDraw) DrvDraw();	return 0;}
开发者ID:ernestd,项目名称:fbarr,代码行数:29,


示例2: crushermInit

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;}
开发者ID:Cpasjuste,项目名称:libarcade,代码行数:60,


示例3: DrvInit

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;}
开发者ID:Cpasjuste,项目名称:libarcade,代码行数:59,


示例4: DrvInit

static int DrvInit(){	int nLen;#ifdef DRIVER_ROTATION	bToaRotateScreen = false;#endif	nGP9001ROMSize[0] = 0x800000;	// 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	// 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, 0x103FFF, SM_RAM);		SekMapMemory(RamPal,	0x400000, 0x400FFF, SM_RAM);	// Palette RAM		SekSetReadWordHandler(0, kbashReadWord);		SekSetReadByteHandler(0, kbashReadByte);		SekSetWriteWordHandler(0, kbashWriteWord);		SekSetWriteByteHandler(0, kbashWriteByte);		SekClose();	}	nSpriteYOffset = 0x0011;	nLayer0XOffset = -0x01D6;	nLayer1XOffset = -0x01D8;	nLayer2XOffset = -0x01DA;	ToaInitGP9001();	nToaPalLen = nColCount;	ToaPalSrc = RamPal;	ToaPalInit();	bDrawScreen = true;	DrvDoReset();			// Reset machine	return 0;}
开发者ID:alfredox123,项目名称:pifba,代码行数:59,


示例5: DrvInit

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;}
开发者ID:PS3emulators,项目名称:fba-next-slim,代码行数:58,


示例6: DrvInit

static int DrvInit(){	int nLen;//	bToaRotateScreen = true;	BurnSetRefreshRate(REFRESHRATE);	nBCU2ROMSize = 0x080000;	nFCU2ROMSize = 0x080000;	// Find out how much memory is needed	AllMem = NULL;	MemIndex();	nLen = MemEnd - (unsigned char *)0;	if ((AllMem = (unsigned char *)malloc(nLen)) == NULL) {		return 1;	}	memset(AllMem, 0, nLen);	MemIndex();	if (BurnLoadRom(Drv68KROM + 0x000001, 0, 2)) return 1;	if (BurnLoadRom(Drv68KROM + 0x000000, 1, 2)) return 1;	if (BurnLoadRom(Drv68KROM + 0x040001, 2, 2)) return 1;	if (BurnLoadRom(Drv68KROM + 0x040000, 3, 2)) return 1;	ToaLoadTiles(BCU2ROM, 4, nBCU2ROMSize);	ToaLoadTiles(FCU2ROM, 8, nFCU2ROMSize);	{		SekInit(0, 0x68000);		SekOpen(0);		SekMapMemory(Drv68KROM,			0x000000, 0x07FFFF, SM_ROM);		SekMapMemory(Drv68KRAM,			0x0c0000, 0x0c3FFF, SM_RAM);		SekMapMemory(DrvPalRAM,			0x104000, 0x1047FF, SM_RAM);		SekMapMemory(DrvPalRAM2,		0x106000, 0x1067FF, SM_RAM);		SekSetReadWordHandler(0, 		samesameReadWord);		SekSetReadByteHandler(0, 		samesameReadByte);		SekSetWriteWordHandler(0, 		samesameWriteWord);		SekSetWriteByteHandler(0, 		samesameWriteByte);		SekClose();	}	ToaInitBCU2();	nToaPalLen = nColCount;	ToaPalSrc = DrvPalRAM;	ToaPalSrc2 = DrvPalRAM2;	ToaPalInit();//	BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0);	bDrawScreen = true;	DrvDoReset();	return 0;}
开发者ID:ernestd,项目名称:fbarr,代码行数:57,


示例7: DrvInit

static INT32 DrvInit(){	INT32 nLen;//	bToaRotateScreen = true;	BurnSetRefreshRate(REFRESHRATE);	nBCU2ROMSize = 0x080000;	nFCU2ROMSize = 0x100000;	// Find out how much memory is needed	AllMem = NULL;	MemIndex();	nLen = MemEnd - (UINT8 *)0;	if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) {		return 1;	}	memset(AllMem, 0, nLen);	MemIndex();	ToaLoadCode(Drv68KROM, 0, 2);	ToaLoadTiles(BCU2ROM, 2, nBCU2ROMSize);	ToaLoadGP9001Tiles(FCU2ROM, 6, 3, nFCU2ROMSize);	{		SekInit(0, 0x68000);		SekOpen(0);		SekMapMemory(Drv68KROM,		0x000000, 0x03FFFF, SM_ROM);		SekMapMemory(DrvPalRAM,		0x404000, 0x4047FF, SM_RAM);		SekMapMemory(DrvPalRAM2,	0x406000, 0x4067FF, SM_RAM);		SekMapMemory(Drv68KRAM,		0x480000, 0x487FFF, SM_RAM);		SekSetReadWordHandler(0, 	vimanaReadWord);		SekSetReadByteHandler(0, 	vimanaReadByte);		SekSetWriteWordHandler(0, 	vimanaWriteWord);		SekSetWriteByteHandler(0, 	vimanaWriteByte);		SekClose();	}	ToaInitBCU2();	nToaPalLen = nColCount;	ToaPalSrc = DrvPalRAM;	ToaPalSrc2 = DrvPalRAM2;	ToaPalInit();//	BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0);	bDrawScreen = true;	DrvDoReset();	return 0;}
开发者ID:aquasnake,项目名称:fba-sdl,代码行数:53,


示例8: DrvFrame

static int DrvFrame(){	if (DrvReset) DrvDoReset();		if (bRecalcPalette) {		for (int i=0;i<(0x1000/2); i++)			RamCurPal[i] = CalcCol( RamPal[i] );		bRecalcPalette = 0;		}		DrvInput[0] = 0x00;													// Joy1	DrvInput[1] = 0x00;													// Joy2	DrvInput[2] = 0x00;													// Buttons	for (int i = 0; i < 8; i++) {		DrvInput[0] |= (DrvJoy1[i] & 1) << i;		DrvInput[1] |= (DrvJoy2[i] & 1) << i;		DrvInput[2] |= (DrvButton[i] & 1) << i;	}		SekNewFrame();	SekOpen(0);#if 0		int nCyclesDone = 0;	int nCyclesNext = 0;	for(int i=0; i<10; i++) {		nCyclesNext += (16000000 / 60 / 10);		nCyclesDone += SekRun( nCyclesNext - nCyclesDone );	}#else	SekRun(16000000 / 60);	#endif		SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);		SekClose();		if (pBurnDraw) DrvDraw();		if (pBurnSoundOut) {		memset(pBurnSoundOut, 0, nBurnSoundLen * 4);		MSM6295Render(0, pBurnSoundOut, nBurnSoundLen);		MSM6295Render(1, pBurnSoundOut, nBurnSoundLen);	}	return 0;}
开发者ID:iq132,项目名称:FB-Alpha,代码行数:49,


示例9: s1945iiInit

static int s1945iiInit(){	int nRet;		Mem = NULL;	MemIndex();	int nLen = MemEnd - (unsigned char *)0;	if ((Mem = (unsigned char *)malloc(nLen)) == NULL) return 1;	memset(Mem, 0, nLen);										// blank all memory	MemIndex();			nRet = BurnLoadRom(RomSH2 + 0x000000, 0, 2); if (nRet != 0) return 1;	nRet = BurnLoadRom(RomSH2 + 0x000001, 1, 2); if (nRet != 0) return 1;	be_to_le( RomSH2, 0x100000 );#if 0FILE * f = fopen("d.bin", "wb+");	fwrite(RomSH2, 1, 0x100000, f);fclose(f);#endif		{		Sh2Init(1);	    Sh2Open(0);		// Map 68000 memory:		Sh2MapMemory(RomSH2,		0x00000000, 0x000fffff, SM_ROM);		Sh2MapMemory(RamSpr,		0x03000000, 0x0300ffff, SM_RAM);		Sh2MapMemory((unsigned char *) RamPal,											0x03040000, 0x03044fff, SM_RAM);		Sh2MapMemory(RamVReg,		0x03050000, 0x0305ffff, SM_WRITE);		Sh2MapMemory(RamSH2,		0x06000000, 0x060fffff, SM_RAM);			Sh2SetReadByteHandler (0, ps3v1ReadByte);		Sh2SetReadWordHandler (0, ps3v1ReadWord);		Sh2SetReadLongHandler (0, ps3v1ReadLong);		Sh2SetWriteByteHandler(0, ps3v1WriteByte);		Sh2SetWriteWordHandler(0, ps3v1WriteWord);		Sh2SetWriteLongHandler(0, ps3v1WriteLong);	}	DrvDoReset();		return 0;}
开发者ID:SiN13,项目名称:pifba,代码行数:49,


示例10: DrvFrame

static int DrvFrame(){	if (DrvReset) {		DrvDoReset();	}	ZetOpen(0);	ZetRun(4000000 / 60);	ZetRaiseIrq(0);	ZetClose();	if (pBurnDraw) {		DrvDraw();	}	return 0;}
开发者ID:mrcaytao000,项目名称:FBA4PSP,代码行数:17,


示例11: DrvFrame

static INT32 DrvFrame(){	if (DrvReset) {		DrvDoReset();	}	{		memset (DrvInputs, 0xff, 2 * sizeof(INT16));		for (INT32 i = 0; i < 16; i++) {			DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;			DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;		}	}	INT32 nInterleave = 256;	INT32 nCyclesTotal[1] = { 12000000 / 60 };	INT32 nCyclesDone[1] = { 0 };	SekOpen(0);	for (INT32 i = 0; i < nInterleave; i++)	{		nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);		if (control_data & 0x800) {			if (i == 0) SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);			if (i == 240) SekSetIRQLine(3, CPU_IRQSTATUS_AUTO);		}	}	if (pBurnSoundOut) {		YMZ280BRender(pBurnSoundOut, nBurnSoundLen);	}	SekClose();	if (pBurnDraw) {		DrvDraw();	}	return 0;}
开发者ID:Cpasjuste,项目名称:libarcade,代码行数:43,


示例12: DrvFrame

static INT32 DrvFrame(){	if (DrvReset) {		DrvDoReset();	}	{		memset (DrvInputs, 0xff, 3);		for (INT32 i = 0; i < 8; i++) {			DrvInputs[0] ^= DrvJoy1[i] << i;			DrvInputs[1] ^= DrvJoy2[i] << i;			DrvInputs[2] ^= DrvJoy3[i] << i;		}	}	INT32 nInterleave = 10;	INT32 nCyclesTotal[2] = { 6000000 / 60, 6000000 / 60 };	INT32 nCyclesDone[2] = { 0, 0 };	for (INT32 i = 0; i < nInterleave; i++) {		INT32 nSegment;		ZetOpen(0);		nSegment = nCyclesTotal[0] / nInterleave;		nCyclesDone[0] += ZetRun(nSegment);		if (i == (nInterleave - 1)) ZetSetIRQLine(0, CPU_IRQSTATUS_AUTO);		ZetClose();		ZetOpen(1);		nCyclesDone[1] += ZetRun(nSegment);		ZetClose();	}	if (pBurnSoundOut) {		MSM6295Render(0,pBurnSoundOut, nBurnSoundLen);	}	if (pBurnDraw) {		DrvDraw();	}	return 0;}
开发者ID:Cpasjuste,项目名称:libarcade,代码行数:43,


示例13: DrvInit

static int DrvInit(){	Mem = (unsigned char*)malloc ( 0x4800 );	if (Mem == NULL) {		return 1;	}	if (BurnLoadRom(Mem, 0, 1)) return 1;	ZetInit(1);	ZetOpen(0);	ZetMapArea (0x0000, 0x3fff, 0, Mem + 0x0000); // Read ROM	ZetMapArea (0x0000, 0x3fff, 2, Mem + 0x0000); // Fetch ROM	ZetMapArea (0x8000, 0x87ff, 0, Mem + 0x4000); // Read RAM	ZetMapArea (0x8000, 0x87ff, 1, Mem + 0x4000); // Write RAM	ZetMemEnd();	ZetSetInHandler(dotrikun_in_port);	ZetSetOutHandler(dotrikun_out_port);	ZetClose();	DrvDoReset();	return 0;}
开发者ID:mrcaytao000,项目名称:FBA4PSP,代码行数:23,


示例14: s1945iiFrame

static int s1945iiFrame(){	if (DrvReset)														// Reset machine		DrvDoReset();			if (bRecalcPalette) {		// for(int i=0;i<0x4000;i++) CalcCol(i);		bRecalcPalette = 0;	}		Sh2Run(28636350 / 60);//	Sh2SetIRQLine(4, SH2_IRQSTATUS_AUTO);	//	Sh2SetIRQLine(12, SH2_IRQSTATUS_AUTO);		//	bprintf(0, _T("PC: %08x/n"), Sh2GetPC(0));		//Sh2Run(1000);		if (pBurnDraw) DrvDraw();	return 0;}
开发者ID:SiN13,项目名称:pifba,代码行数:24,


示例15: DrvFrame

static int DrvFrame(){	int nInterleave = 4;	if (DrvReset) {														// Reset machine		DrvDoReset();	}	// Compile digital inputs	DrvInput[0] = 0x00;													// Buttons	DrvInput[1] = 0x00;													// Player 1	DrvInput[2] = 0x00;													// Player 2	for (int i = 0; i < 8; i++) {		DrvInput[0] |= (DrvJoy1[i] & 1) << i;		DrvInput[1] |= (DrvJoy2[i] & 1) << i;		DrvInput[2] |= (DrvButton[i] & 1) << i;	}	ToaClearOpposites(&DrvInput[0]);	ToaClearOpposites(&DrvInput[1]);	SekNewFrame();	nCyclesTotal[0] = (int)((long long)16000000 * nBurnCPUSpeedAdjust / (0x0100 * 60));	nCyclesDone[0] = 0;	SekSetCyclesScanline(nCyclesTotal[0] / 262);	nToaCyclesDisplayStart = nCyclesTotal[0] - ((nCyclesTotal[0] * (TOA_VBLANK_LINES + 240)) / 262);	nToaCyclesVBlankStart = nCyclesTotal[0] - ((nCyclesTotal[0] * TOA_VBLANK_LINES) / 262);	bVBlank = false;	SekOpen(0);	for (int i = 0; i < nInterleave; i++) {    	int nCurrentCPU;		int nNext;		// Run 68000		nCurrentCPU = 0;		nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;		// Trigger VBlank interrupt		if (!bVBlank && nNext > nToaCyclesVBlankStart) {			if (nCyclesDone[nCurrentCPU] < nToaCyclesVBlankStart) {				nCyclesSegment = nToaCyclesVBlankStart - nCyclesDone[nCurrentCPU];				nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);			}			bVBlank = true;			ToaBufferGP9001Sprites();			// Trigger VBlank interrupt			SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);		}		nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];		if (bVBlank || (!CheckSleep(nCurrentCPU))) {					// See if this CPU is busywaiting			nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);		} else {			nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);		}	}	SekClose();	if (pBurnDraw) {		DrvDraw();												// Draw screen if needed	}	return 0;}
开发者ID:alfredox123,项目名称:pifba,代码行数:73,


示例16: DrvInit

static INT32 DrvInit(){	AllMem = NULL;	MemIndex();	INT32 nLen = MemEnd - (UINT8 *)0;	if ((AllMem = (UINT8 *)BurnMalloc(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(0);	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);	ZetClose();	ZetInit(1);	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);	ZetClose();	MSM6295Init(0, 1122000 / 132, 0);	MSM6295SetRoute(0, 1.00, BURN_SND_ROUTE_BOTH);	DrvDoReset();	GenericTilesInit();	return 0;}
开发者ID:Cpasjuste,项目名称:libarcade,代码行数:74,


示例17: DrvFrame

static INT32 DrvFrame(){	INT32 nInterleave = 4;	if (DrvReset) {														// Reset machine		DrvDoReset();	}	// Compile digital inputs	DrvInput[0] = 0x00;													// Buttons	DrvInput[1] = 0x00;													// Player 1	DrvInput[4] = 0x00;													// Player 2	for (INT32 i = 0; i < 8; i++) {		DrvInput[0] |= (DrvJoy1[i] & 1) << i;		DrvInput[1] |= (DrvJoy2[i] & 1) << i;		DrvInput[4] |= (DrvButton[i] & 1) << i;	}	ToaClearOpposites(&DrvInput[0]);	ToaClearOpposites(&DrvInput[1]);	SekNewFrame();	ZetNewFrame();		SekOpen(0);	ZetOpen(0);	SekIdle(nCyclesDone[0]);	ZetIdle(nCyclesDone[1]);	nCyclesTotal[0] = (INT32)((INT64)10000000 * nBurnCPUSpeedAdjust / (0x0100 * REFRESHRATE));	nCyclesTotal[1] = INT32(28000000.0 / 8 / REFRESHRATE);	SekSetCyclesScanline(nCyclesTotal[0] / 262);	nToaCyclesDisplayStart = nCyclesTotal[0] - ((nCyclesTotal[0] * (TOA_VBLANK_LINES + 240)) / 262);	nToaCyclesVBlankStart = nCyclesTotal[0] - ((nCyclesTotal[0] * TOA_VBLANK_LINES) / 262);	bVBlank = false;	for (INT32 i = 0; i < nInterleave; i++) {		INT32 nNext;		// Run 68000		nNext = (i + 1) * nCyclesTotal[0] / nInterleave;		// Trigger VBlank interrupt		if (nNext > nToaCyclesVBlankStart) {			if (SekTotalCycles() < nToaCyclesVBlankStart) {				nCyclesSegment = nToaCyclesVBlankStart - SekTotalCycles();				SekRun(nCyclesSegment);			}			if (pBurnDraw) {				DrvDraw();												// Draw screen if needed			}			ToaBufferFCU2Sprites();			bVBlank = true;			if (bEnableInterrupts) {				SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);			}		}		nCyclesSegment = nNext - SekTotalCycles();		if (bVBlank || (!CheckSleep(0))) {								// See if this CPU is busywaiting			SekRun(nCyclesSegment);		} else {			SekIdle(nCyclesSegment);		}				BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave));	}	nToa1Cycles68KSync = SekTotalCycles();	BurnTimerEndFrameYM3812(nCyclesTotal[1]);	if (pBurnSoundOut) BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);	nCyclesDone[0] = SekTotalCycles() - nCyclesTotal[0];	nCyclesDone[1] = ZetTotalCycles() - nCyclesTotal[1];//	bprintf(PRINT_NORMAL, _T("    %i/n"), nCyclesDone[0]);	ZetClose();	SekClose();//	ToaBufferFCU2Sprites();	return 0;}
开发者ID:CaptainCPS,项目名称:FBAlphaRL,代码行数:89,


示例18: DrvInit

static INT32 DrvInit(){	INT32 nLen;#ifdef DRIVER_ROTATION	bToaRotateScreen = true;#endif	BurnSetRefreshRate(REFRESHRATE);	nBCU2ROMSize = 0x080000;	nFCU2ROMSize = 0x080000;	// 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 (LoadRoms()) {		return 1;	}	{		SekInit(0, 0x68000);										// Allocate 68000	    SekOpen(0);		// Map 68000 memory:		SekMapMemory(Rom01,			0x000000, 0x03FFFF, SM_ROM);	// 68K ROM		SekMapMemory(Ram01,			0x080000, 0x083FFF, SM_RAM);	// 68K RAM		SekMapMemory(RamPal,		0x144000, 0x1447FF, SM_RAM);	// BCU-2 palette RAM		SekMapMemory(RamPal2,		0x146000, 0x1467FF, SM_RAM);	// FCU-2 palette RAM		SekSetReadWordHandler(0, truxtonReadWord);		SekSetReadByteHandler(0, truxtonReadByte);		SekSetWriteWordHandler(0, truxtonWriteWord);		SekSetWriteByteHandler(0, truxtonWriteByte);		SekMapHandler(1,			0x180000, 0x180FFF, SM_RAM);	// Z80 RAM		SekSetReadByteHandler(1, toaplan1ReadByteZ80RAM);		SekSetReadWordHandler(1, toaplan1ReadWordZ80RAM);		SekSetWriteByteHandler(1, toaplan1WriteByteZ80RAM);		SekSetWriteWordHandler(1, toaplan1WriteWordZ80RAM);		SekClose();	}		ToaInitBCU2();		DrvZ80Init();													// Initialize Z80	nToaPalLen = nColCount;	ToaPalSrc = RamPal;	ToaPalSrc2 = RamPal2;	ToaPalInit();	BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0);	BurnTimerAttachZetYM3812(28000000 / 8);	BurnYM3812SetRoute(BURN_SND_YM3812_ROUTE, 1.00, BURN_SND_ROUTE_BOTH);	bDrawScreen = true;	DrvDoReset();												// Reset machine	return 0;}
开发者ID:CaptainCPS,项目名称:FBAlphaRL,代码行数:71,


示例19: DrvFrame

static INT32 DrvFrame(){	INT32 nInterleave = 4;	if (DrvReset) {		DrvDoReset();	}	memset (DrvInputs, 0, 3);	for (INT32 i = 0; i < 8; i++) {		DrvInputs[0] |= (DrvJoy1[i] & 1) << i;		DrvInputs[1] |= (DrvJoy2[i] & 1) << i;		DrvInputs[2] |= (DrvJoy3[i] & 1) << i;	}	ToaClearOpposites(&DrvInputs[0]);	ToaClearOpposites(&DrvInputs[1]);	SekNewFrame();	ZetNewFrame();		SekOpen(0);	ZetOpen(0);	SekIdle(nCyclesDone[0]);	ZetIdle(nCyclesDone[1]);	nCyclesTotal[0] = (INT32)((INT64)10000000 * nBurnCPUSpeedAdjust / (0x0100 * REFRESHRATE));	nCyclesTotal[1] = INT32(28000000.0 / 8 / REFRESHRATE);	SekSetCyclesScanline(nCyclesTotal[0] / 262);	nToaCyclesDisplayStart = nCyclesTotal[0] - ((nCyclesTotal[0] * (TOA_VBLANK_LINES + 240)) / 262);	nToaCyclesVBlankStart = nCyclesTotal[0] - ((nCyclesTotal[0] * TOA_VBLANK_LINES) / 262);	bVBlank = false;	for (INT32 i = 0; i < nInterleave; i++) {		INT32 nNext;		// Run 68000		nNext = (i + 1) * nCyclesTotal[0] / nInterleave;		// Trigger VBlank interrupt		if (nNext > nToaCyclesVBlankStart) {			if (SekTotalCycles() < nToaCyclesVBlankStart) {				nCyclesSegment = nToaCyclesVBlankStart - SekTotalCycles();				SekRun(nCyclesSegment);			}			if (pBurnDraw) {				DrvDraw();			}			memcpy (DrvSprBuf, DrvSprRAM, 0x1000);			bVBlank = true;			if (bEnableInterrupts) {				SekSetIRQLine(4, SEK_IRQSTATUS_AUTO);			}		}		nCyclesSegment = nNext - SekTotalCycles();		if (bVBlank || (!CheckSleep(0))) {			SekRun(nCyclesSegment);		} else {			SekIdle(nCyclesSegment);		}				BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave));	}	nToa1Cycles68KSync = SekTotalCycles();	BurnTimerEndFrameYM3812(nCyclesTotal[1]);	if (pBurnSoundOut) BurnYM3812Update(pBurnSoundOut, nBurnSoundLen);	nCyclesDone[0] = SekTotalCycles() - nCyclesTotal[0];	SekClose();	ZetClose();	return 0;}
开发者ID:aquasnake,项目名称:fba-sdl,代码行数:81,


示例20: DrvInit

static INT32 DrvInit(){	INT32 nLen;	Rallybik = 1;//	bToaRotateScreen = true;	BurnSetRefreshRate(REFRESHRATE);	nBCU2ROMSize = 0x080000;	nFCU2ROMSize = 0x080000;	// Find out how much memory is needed	AllMem = NULL;	MemIndex();	nLen = MemEnd - (UINT8 *)0;	if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) {		return 1;	}	memset(AllMem, 0, nLen);	MemIndex();	if (BurnLoadRom(Drv68KROM + 0x000001,  0, 2)) return 1;	if (BurnLoadRom(Drv68KROM + 0x000000,  1, 2)) return 1;	if (BurnLoadRom(Drv68KROM + 0x040001,  2, 2)) return 1;	if (BurnLoadRom(Drv68KROM + 0x040000,  3, 2)) return 1;	if (BurnLoadRom(DrvZ80ROM,             4, 1)) return 1;	ToaLoadTiles(BCU2ROM, 5, nBCU2ROMSize);//	ToaLoadTiles(FCU2ROM, 9, nFCU2ROMSize);	if (BurnLoadRom(FCU2ROM + 0x000000,    9, 1)) return 1;	if (BurnLoadRom(FCU2ROM + 0x010000,   10, 1)) return 1;	if (BurnLoadRom(FCU2ROM + 0x020000,   11, 1)) return 1;	if (BurnLoadRom(FCU2ROM + 0x030000,   12, 1)) return 1;	DrvSpriteDecode();	{		SekInit(0, 0x68000);		SekOpen(0);		SekMapMemory(Drv68KROM,			0x000000, 0x00FFFF, SM_ROM);		SekMapMemory(Drv68KROM + 0x40000,	0x040000, 0x07FFFF, SM_ROM);		SekMapMemory(Drv68KRAM,			0x080000, 0x083FFF, SM_RAM);		SekMapMemory(DrvSprRAM,			0x0c0000, 0x0C0FFF, SM_RAM);		SekMapMemory(DrvPalRAM,			0x144000, 0x1447FF, SM_RAM);		SekMapMemory(DrvPalRAM2,		0x146000, 0x1467FF, SM_RAM);		SekSetReadWordHandler(0, 		rallybikReadWord);		SekSetReadByteHandler(0, 		rallybikReadByte);		SekSetWriteWordHandler(0, 		rallybikWriteWord);		SekSetWriteByteHandler(0, 		rallybikWriteByte);		SekMapHandler(1,			0x180000, 0x180FFF, SM_RAM);		SekSetReadByteHandler(1, 		toaplan1ReadByteZ80RAM);		SekSetReadWordHandler(1, 		toaplan1ReadWordZ80RAM);		SekSetWriteByteHandler(1, 		toaplan1WriteByteZ80RAM);		SekSetWriteWordHandler(1, 		toaplan1WriteWordZ80RAM);		SekClose();		ZetInit(0);		ZetOpen(0);		ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);		ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);		ZetMapArea(0x8000, 0xffff, 0, DrvShareRAM);		ZetMapArea(0x8000, 0xffff, 1, DrvShareRAM);		ZetMapArea(0x8000, 0xffff, 2, DrvShareRAM);		ZetSetOutHandler(rallybik_sound_write_port);		ZetSetInHandler(rallybik_sound_read_port);		ZetMemEnd();		ZetClose();	}	nLayer0XOffset = 0x0d + 6;	nLayer1XOffset = 0x0d + 4;	nLayer2XOffset = 0x0d + 2;	nLayer3XOffset = 0x0d + 0;	nLayer0YOffset = nLayer1YOffset = nLayer2YOffset = nLayer3YOffset  = 0x111;	ToaInitBCU2();	ToaOpaquePriority = 0;	nToaPalLen = nColCount;	ToaPalSrc = DrvPalRAM;	ToaPalSrc2 = DrvPalRAM2;	ToaPalInit();	BurnYM3812Init(28000000 / 8, &toaplan1FMIRQHandler, &toaplan1SynchroniseStream, 0);	BurnTimerAttachZetYM3812(28000000 / 8);	bDrawScreen = true;	DrvDoReset();	return 0;}
开发者ID:aquasnake,项目名称:fba-sdl,代码行数:98,


示例21: DrvFrame

static int DrvFrame(){	if (DrvReset) {		DrvDoReset();	}	ZetNewFrame();	{		memset (DrvInputs, 0xff, 3);		for (int i = 0; i < 8; i++) {			DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;			DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;			DrvInputs[2] ^= (DrvJoy3[i] & 1) << i;		}		// Clear opposites		if ((DrvInputs[1] & 0x03) == 0) DrvInputs[1] |= 0x03;		if ((DrvInputs[1] & 0x0c) == 0) DrvInputs[1] |= 0x0c;		if ((DrvInputs[2] & 0x03) == 0) DrvInputs[1] |= 0x03;		if ((DrvInputs[2] & 0x0c) == 0) DrvInputs[1] |= 0x0c;	}	int nInterleave = 100;	int nSoundBufferPos = 0;	int nCyclesTotal[2] =  { 3072000 / 60, 3072000 / 60 };	M6809Open(0);	ZetOpen(0);	for (int i = 0; i < nInterleave; i++) {				M6809Run(nCyclesTotal[0] / nInterleave);		BurnTimerUpdate(i * (nCyclesTotal[1] / nInterleave));		if (pBurnSoundOut) {			int nSegmentLength = nBurnSoundLen - nSoundBufferPos;			short* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);			BurnYM2203Update(pSoundBuf, nSegmentLength);			nSoundBufferPos += nSegmentLength;		}	}	BurnTimerEndFrame(nCyclesTotal[1]);	if (*irq_enable) M6809SetIRQ(0, M6809_IRQSTATUS_AUTO);	if (pBurnSoundOut) {		int nSegmentLength = nBurnSoundLen - nSoundBufferPos;		short* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);		if (nSegmentLength) {			BurnYM2203Update(pSoundBuf, nSegmentLength);		}	}	ZetClose();	M6809Close();		if (pBurnDraw) {		DrvDraw();	}	return 0;}
开发者ID:PS3emulators,项目名称:fba-next-slim,代码行数:65,


示例22: DrvInit

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;}
开发者ID:PS3emulators,项目名称:fba-next-slim,代码行数:63,


示例23: DrvInit

static int DrvInit(){	int nRet;		Mem = NULL;	MemIndex();	int nLen = MemEnd - (unsigned char *)0;	if ((Mem = (unsigned char *)malloc(nLen)) == NULL) return 1;	memset(Mem, 0, nLen);										// blank all memory	MemIndex();			nRet = BurnLoadRom(Rom68K + 0x000000, 0, 2); if (nRet != 0) return 1;	nRet = BurnLoadRom(Rom68K + 0x000001, 1, 2); if (nRet != 0) return 1;		BurnLoadRom(RomSpr + 0, 2, 2);	BurnLoadRom(RomSpr + 1, 3, 2);		// decode sprites 	unsigned char * tmp = RomSpr;	for (int i=0; i<(0x400000/4); i++) {		unsigned char c = tmp[2];		tmp[2] = tmp[1];		tmp[1] = c;		tmp += 4;	}		BurnLoadRom(RomBg, 4, 1);		BurnLoadRom(MSM6295ROM + 0x00000, 5, 1);	BurnLoadRom(MSM6295ROM + 0x80000, 6, 1);		{		SekInit(0, 0x68000);										// Allocate 68000	    SekOpen(0);		// Map 68000 memory:		SekMapMemory(Rom68K,		0x000000, 0x0FFFFF, SM_ROM);	// CPU 0 ROM		SekMapMemory(Ram68K,		0x100000, 0x10FFFF, SM_RAM);	// CPU 0 RAM		SekMapMemory((unsigned char *)RamPal,									0x200000, 0x200FFF, SM_ROM);	// palette		SekMapMemory((unsigned char *)RamSpr0,									0x240000, 0x240FFF, SM_RAM);	// sprites 0		SekMapMemory((unsigned char *)RamSpr1,									0x280000, 0x280FFF, SM_RAM);	// sprites 1		SekMapMemory((unsigned char *)RamBg,									0x2C0000, 0x2C0FFF, SM_RAM);	// back ground		SekMapMemory(Ram68K+0x10000,0x8C0000, 0x8CFFFF, SM_RAM);	// not used?				SekMapHandler(1,			0x200000, 0x200FFF, SM_WRITE);				SekSetReadWordHandler(0, k1945iiiReadWord);//		SekSetReadByteHandler(0, k1945iiiReadByte);		SekSetWriteWordHandler(0, k1945iiiWriteWord);		SekSetWriteByteHandler(0, k1945iiiWriteByte);		//		SekSetWriteByteHandler(1, k1945iiiWriteBytePalette);		SekSetWriteWordHandler(1, k1945iiiWriteWordPalette);		SekClose();	}		MSM6295Init(0, 7500, 80, 1);	MSM6295Init(1, 7500, 80, 1);		DrvDoReset();	return 0;}
开发者ID:iq132,项目名称:FB-Alpha,代码行数:67,


示例24: DrvInit

static INT32 DrvInit(){	INT32 nLen;#ifdef DRIVER_ROTATION	bToaRotateScreen = false;#endif	nGP9001ROMSize[0] = 0x800000;	// 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 (LoadRoms()) {		return 1;	}	{		SekInit(0, 0x68000);										// Allocate 68000	    SekOpen(0);		// Map 68000 memory:		SekMapMemory(Rom01,		0x000000, 0x03FFFF, SM_ROM);	// CPU 0 ROM		SekMapMemory(Ram01,		0x080000, 0x082FFF, SM_RAM);		SekMapMemory(RamPal,	0x0c0000, 0x0c0FFF, SM_RAM);	// Palette RAM		SekSetReadWordHandler(0, tekipakiReadWord);		SekSetReadByteHandler(0, tekipakiReadByte);		SekSetWriteWordHandler(0, tekipakiWriteWord);		SekSetWriteByteHandler(0, tekipakiWriteByte);		SekClose();	}	nSpriteYOffset = 0x0011;	nLayer0XOffset = -0x01D6;	nLayer1XOffset = -0x01D8;	nLayer2XOffset = -0x01DA;	ToaInitGP9001();	nToaPalLen = nColCount;	ToaPalSrc = RamPal;	ToaPalInit();		BurnSampleInit(0);	BurnSampleSetAllRoutesAllSamples(1.00, BURN_SND_ROUTE_BOTH);	bDrawScreen = true;	DrvDoReset();			// Reset machine	return 0;}
开发者ID:CatalystG,项目名称:fba-libretro,代码行数:62,


示例25: DrvFrame

static INT32 DrvFrame(){	INT32 nInterleave = 10;	if (DrvReset) {														// Reset machine		DrvDoReset();	}	// Compile digital inputs	DrvInput[0] = 0x00;													// Buttons	DrvInput[1] = 0x00;													// Player 1	DrvInput[2] = 0x00;													// Player 2	for (INT32 i = 0; i < 8; i++) {		DrvInput[0] |= (DrvJoy1[i] & 1) << i;		DrvInput[1] |= (DrvJoy2[i] & 1) << i;		DrvInput[2] |= (DrvButton[i] & 1) << i;	}	ToaClearOpposites(&DrvInput[0]);	ToaClearOpposites(&DrvInput[1]);	SekNewFrame();	VezNewFrame();	INT32 nSoundBufferPos = 0;	nCyclesTotal[0] = (INT32)((INT64)16000000 * nBurnCPUSpeedAdjust / (0x0100 * 60));	nCyclesTotal[1] = (INT32)((INT64)8000000 * nBurnCPUSpeedAdjust / (0x0100 * 60));	nCyclesDone[0] = 0;	nCyclesDone[1] = 0;	SekOpen(0);		SekSetCyclesScanline(nCyclesTotal[0] / 262);	nToaCyclesDisplayStart = nCyclesTotal[0] - ((nCyclesTotal[0] * (TOA_VBLANK_LINES + 240)) / 262);	nToaCyclesVBlankStart = nCyclesTotal[0] - ((nCyclesTotal[0] * TOA_VBLANK_LINES) / 262);	bVBlank = false;	VezOpen(0);	for (INT32 i = 0; i < nInterleave; i++) {    	INT32 nCurrentCPU;		INT32 nNext;		// Run 68000		nCurrentCPU = 0;		nNext = (i + 1) * nCyclesTotal[nCurrentCPU] / nInterleave;		// Trigger VBlank interrupt		if (!bVBlank && nNext > nToaCyclesVBlankStart) {			if (nCyclesDone[nCurrentCPU] < nToaCyclesVBlankStart) {				nCyclesSegment = nToaCyclesVBlankStart - nCyclesDone[nCurrentCPU];				nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);			}			bVBlank = true;			ToaBufferGP9001Sprites();			// Trigger VBlank interrupt			SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);		}		nCyclesSegment = nNext - nCyclesDone[nCurrentCPU];		if (bVBlank || (!CheckSleep(nCurrentCPU))) {					// See if this CPU is busywaiting			nCyclesDone[nCurrentCPU] += SekRun(nCyclesSegment);		} else {			nCyclesDone[nCurrentCPU] += SekIdle(nCyclesSegment);		}		nCyclesDone[1] += VezRun(nCyclesTotal[1] / nInterleave);				if (pBurnSoundOut) {			INT32 nSegmentLength = nBurnSoundLen / nInterleave;			INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);			BurnYM2151Render(pSoundBuf, nSegmentLength);			MSM6295Render(0, pSoundBuf, nSegmentLength);			nSoundBufferPos += nSegmentLength;		}	}	if (pBurnSoundOut) {		INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;		if (nSegmentLength) {			INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);			BurnYM2151Render(pSoundBuf, nSegmentLength);			MSM6295Render(0, pSoundBuf, nSegmentLength);		}	}	VezClose();	SekClose();	if (pBurnDraw) {		DrvDraw();												// Draw screen if needed	}	return 0;}
开发者ID:meesokim,项目名称:fba,代码行数:98,


示例26: DrvInit

static INT32 DrvInit(){	INT32 nLen;#ifdef DRIVER_ROTATION	bToaRotateScreen = false;#endif	nGP9001ROMSize[0] = 0x800000;	// 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 (LoadRoms()) {		return 1;	}	{		SekInit(0, 0x68000);									// Allocate 68000		SekOpen(0);		SekMapMemory(Rom01,		0x000000, 0x07FFFF, MAP_ROM);	// CPU 0 ROM		SekMapMemory(Ram01,		0x100000, 0x103FFF, MAP_RAM);		SekMapMemory(RamPal,		0x400000, 0x400FFF, MAP_RAM);	// Palette RAM		SekSetReadWordHandler(0, kbashReadWord);		SekSetReadByteHandler(0, kbashReadByte);		SekSetWriteWordHandler(0, kbashWriteWord);		SekSetWriteByteHandler(0, kbashWriteByte);		SekClose();		VezInit(0, V25_TYPE, 16000000 /*before divider*/);		VezOpen(0);		VezMapArea(0x00000, 0x007ff, 0, ShareRAM);		VezMapArea(0x00000, 0x007ff, 1, ShareRAM);		VezMapArea(0x00000, 0x007ff, 2, ShareRAM);		for (INT32 i = 0x80000; i < 0x100000; i += 0x8000) {			VezMapArea(i, i + 0x7fff, 0, Rom02);			VezMapArea(i, i + 0x7fff, 1, Rom02);			VezMapArea(i, i + 0x7fff, 2, Rom02);		}		VezSetReadHandler(kbash_v25_read);		VezSetWriteHandler(kbash_v25_write);		VezSetReadPort(kbash_v25_read_port);		VezSetDecode(nitro_decryption_table);		VezClose();	}	BurnYM2151Init(3375000);	BurnYM2151SetAllRoutes(0.50, BURN_SND_ROUTE_BOTH);	MSM6295Init(0, 1000000 / 132, 1);	MSM6295SetRoute(0, 0.50, BURN_SND_ROUTE_BOTH);	nSpriteYOffset = 0x0011;	nLayer0XOffset = -0x01D6;	nLayer1XOffset = -0x01D8;	nLayer2XOffset = -0x01DA;	ToaInitGP9001();	nToaPalLen = nColCount;	ToaPalSrc = RamPal;	ToaPalInit();	bDrawScreen = true;	DrvDoReset();			// Reset machine	return 0;}
开发者ID:meesokim,项目名称:fba,代码行数:76,


示例27: DrvInit

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;}
开发者ID:meesokim,项目名称:fba,代码行数:71,



注:本文中的DrvDoReset函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ DtFatal函数代码示例
C++ Drop_Item函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。