# HG changeset patch # User Mike Pavone # Date 1355979239 28800 # Node ID a6dd5b7a971be26f505bf27d5ef9e58fb71500a1 # Parent b37cb596bc2189553dc3d0e469bf9ea0ba4378e9 Add FPS counter to console output diff -r b37cb596bc21 -r a6dd5b7a971b render_sdl.c --- a/render_sdl.c Wed Dec 19 20:53:45 2012 -0800 +++ b/render_sdl.c Wed Dec 19 20:53:59 2012 -0800 @@ -162,7 +162,8 @@ #define FRAME_DELAY 16 #define MIN_DELAY 10 - +uint32_t frame_counter = 0; +uint32_t start = 0; void wait_render_frame(vdp_context * context) { SDL_Event event; @@ -184,6 +185,7 @@ } break; case SDL_QUIT: + puts(""); exit(0); } } @@ -200,6 +202,15 @@ } } render_context(context); + frame_counter++; + if ((last_frame - start) > 1000) { + if (start) { + printf("\r%f fps", ((float)frame_counter) / (((float)(last_frame-start)) / 1000.0)); + fflush(stdout); + } + start = last_frame; + frame_counter = 0; + } } diff -r b37cb596bc21 -r a6dd5b7a971b vdp.c --- a/vdp.c Wed Dec 19 20:53:45 2012 -0800 +++ b/vdp.c Wed Dec 19 20:53:59 2012 -0800 @@ -892,14 +892,21 @@ if (context->flags & FLAG_PENDING) { context->address = (context->address & 0x3FFF) | (value << 14); context->cd = (context->cd & 0x3) | ((value >> 2) & 0x3C); + if (context->cd & 0x30) { + puts("attempt to use DMA detected!"); + } + //printf("New Address: %X, New CD: %X\n", context->address, context->cd); context->flags &= ~FLAG_PENDING; } else { if ((value & 0xC000) == 0x8000) { //Register write uint8_t reg = (value >> 8) & 0x1F; if (reg < VDP_REGS) { - //printf("register %d set to %X\n", reg, value); + //printf("register %d set to %X\n", reg, value & 0xFF); context->regs[reg] = value; + /*if (reg == REG_MODE_2) { + printf("Display is now %s\n", (context->regs[REG_MODE_2] & DISPLAY_ENABLE) ? "enabled" : "disabled"); + }*/ } } else { context->flags |= FLAG_PENDING;