Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- u16 keycheck(SDL_Event event);
- extern bool framebuffer[FB_WIDTH][FB_HEIGHT];
- SDL_Event event;
- bool keypressed[0x10];
- int counter = 0;
- int exec(u8 *mem) {
- bool increment = 1;
- bool disupdate = 0;
- char tempchar;
- u16 *temp = mem + PC;
- u16 addr = __builtin_bswap16(*temp);
- //printf("%4X PC = %4X\n", addr, PC);
- while (SDL_PollEvent(&event)) {
- if (event.type == SDL_QUIT) return 0;
- else if (event.type == SDL_KEYDOWN) keycheck(event);
- }
- if (addr == 0x0000) return 0;
- switch (OP) {
- //some cases here
- case 0xE:
- switch (KK) {
- case 0x9E:
- if (keypressed[V[X]]) PC += 2;
- break;
- case 0xA1:
- printf("\n");
- if (keypressed[V[X]] == false) {
- PC += 2;
- printf("skip\n");
- }
- else printf("not skip\n");
- break;
- }
- //more cases
- }
- for (int i = 0; i < 0x10; i++) keypressed[i] = false;
- if (increment) PC += 2;
- counter++;
- int zero = 0;
- if (disupdate) displayrefresh();
- return 1;
- }
- u16 keycheck(SDL_Event event) {
- printf("checking\n");
- switch (event.key.keysym.sym){
- case SDLK_x:
- keypressed[0x0] = true;
- return 0x0;
- //more cases here
- default:
- return 0x10;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement