Ejemplo n.º 1
0
int main( int argc, char* argv[] )
{
	int memfd = open("/dev/mem", O_RDWR);
	if(memfd < 0) return 0;

	volatile unsigned int *myBuf = (volatile unsigned int *)mmap((void *)0, 65536, PROT_READ | PROT_WRITE, MAP_SHARED, memfd, 0x03000000);
	volatile unsigned int *myBuf2 = (volatile unsigned int *)mmap((void *)0, 65536, PROT_READ | PROT_WRITE, MAP_SHARED, memfd, 0x02000000);
	volatile unsigned int *secbuf = (unsigned int *)malloc(204800);

	mmuhack();

	memset ((void *)myBuf, 0x55, 65536);
	memset ((void *)myBuf2, 0x55, 65536);
	memset ((void *)secbuf, 0x55, 65536);

	printf("mmaped 0x03000000 buffer @ VA: %08X\n\n", myBuf);
	benchmark ((void*)myBuf);
	printf("\nmmaped 0x02000000 buffer @ VA: %08X\n\n", myBuf2);
	benchmark ((void*)myBuf2);
	printf("\nmalloc'd buffer @ VA: %08X\n\n", secbuf);
	benchmark ((void*)secbuf);

	printf ("\nClosing files...\n");
	free((void *)secbuf);
	close (memfd);
	printf ("Exiting...\n");

	return 0;
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
	g_argv = argv;

	emu_ReadConfig(0, 0);
	gp2x_init();
	if (currentConfig.EmuOpt&0x10) {
		int ret = mmuhack();
		printf("squidge hack code finished and returned %i\n", ret); fflush(stdout);
		mmuhack_status = ret;
	}
	cpuctrl_init();
	// Reset940(1);
	// Pause940(1);
	if (currentConfig.EmuOpt&0x100) {
		printf("setting RAM timings.. "); fflush(stdout);
		// craigix: --trc 6 --tras 4 --twr 1 --tmrd 1 --trfc 1 --trp 2 --trcd 2
		set_RAM_Timings(6, 4, 1, 1, 1, 2, 2);
		printf("done.\n"); fflush(stdout);
	}
	emu_Init();
	menu_init();

	engineState = PGS_Menu;

	if (argc > 1)
		parse_cmd_line(argc, argv);

	for (;;)
	{
		switch (engineState)
		{
			case PGS_Menu:
				menu_loop();
				break;

			case PGS_ReloadRom:
				if (emu_ReloadRom())
					engineState = PGS_Running;
				else {
					printf("PGS_ReloadRom == 0\n");
					engineState = PGS_Menu;
				}
				break;

			case PGS_RestartRun:
				engineState = PGS_Running;

			case PGS_Running:
				emu_Loop();
				break;

			case PGS_Quit:
				goto endloop;

			default:
				printf("engine got into unknown state (%i), exitting\n", engineState);
				goto endloop;
		}
	}

	endloop:

	emu_Deinit();
	cpuctrl_deinit();
	gp2x_deinit();
	if(mmuhack_status)
		mmuunhack();

	return 0;
}