diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-04-05 08:58:12 +0200 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-04-05 08:58:12 +0200 |
| commit | f1bd6a7d2f4ffe3e5263e0254bcf7522ab381264 (patch) | |
| tree | e75bde292329f337d619f9a997aab9b17c37e38b /mknes.c | |
| parent | 8c82be43720d9e221a9e2541c9ff6151015838bb (diff) | |
transform to switch case for ppu_tick()
Diffstat (limited to 'mknes.c')
| -rw-r--r-- | mknes.c | 36 |
1 files changed, 21 insertions, 15 deletions
@@ -13,6 +13,9 @@ #define WINDOW_WIDTH 320 * 3 #define WINDOW_HEIGHT 240 * 3 +#define LIKELY(x) __builtin_expect(!!(x), 1) +#define UNLIKELY(x) __builtin_expect(!!(x), 0) + #ifndef restrict # if defined(__cplusplus) # define restrict __restrict @@ -113,7 +116,7 @@ int main(int argc, char **argv) { // ines2_load(&nstate, "data/nrom/Excitebike (Japan, USA).nes"); // ines2_load(&nstate, "data/nrom/Ice Climber (USA, Europe, Korea).nes"); // ines2_load(&nstate, "data/nrom/Kung Fu (Japan, USA).nes"); - ines2_load(&nstate, "data/nrom/Super Mario Bros. (World) (HVC-SM).nes"); + // ines2_load(&nstate, "data/nrom/Super Mario Bros. (World) (HVC-SM).nes"); // ines2_load(&nstate, "data/nrom/Urban Champion (World).nes"); // ines2_load(&nstate, "data/nrom/Wrecking Crew (World).nes"); // ines2_load(&nstate, "data/nrom/scanline.nes"); @@ -128,6 +131,9 @@ int main(int argc, char **argv) { // ines2_load(&nstate, "data/nrom/raster_demos/RasterTest3d.NES"); // ines2_load(&nstate, "data/nrom/raster_demos/RasterTest3e.NES"); // ines2_load(&nstate, "data/nrom/NEStress.NES"); + // ines2_load(&nstate, "data/tv.nes"); + ines2_load(&nstate, "data/Super Mario Bros. (World) (HVC-SM).zip"); + // ines2_load(&nstate, "data/Super Mario Bros. + Duck Hunt (USA).zip"); mapper_setup(&nstate); uint32_t lo = nstate.mapper.prg_read(&nstate, 0xfffc); @@ -172,7 +178,7 @@ int main(int argc, char **argv) { timer_start(timer); while(!glfwWindowShouldClose(window)) { - // timer_wait(timer); + timer_wait(timer); glfwPollEvents(); // // @@ -183,21 +189,21 @@ int main(int argc, char **argv) { nstate.ppu.frame_ready = 0; frames++; - // uint32_t * restrict dst = buffer; - // uint8_t * restrict src = nstate.ppu.pixels; - // for(uint32_t y = 0; y < 240; ++y) { - // for(uint32_t x = 0; x < 256; ++x) { - // uint8_t val = *src++; - // if(val >= 64) val = 0; - // dst[x] = nes_palette[val]; - // } - // dst += BUFFER_WIDTH; - // } - // apply_phosphor_decay(); - // render_frame(); + uint32_t * restrict dst = buffer; + uint8_t * restrict src = nstate.ppu.pixels; + for(uint32_t y = 0; y < 240; ++y) { + for(uint32_t x = 0; x < 256; ++x) { + uint8_t val = *src++; + if(val >= 64) val = 0; + dst[x] = nes_palette[val]; + } + dst += BUFFER_WIDTH; + } + apply_phosphor_decay(); + render_frame(); glfwSwapBuffers(window); } -printf("%d\n", frames); +printf("total frames: %6.6d total cycles: %ld\n", frames, nstate.cycles); glfwDestroyWindow(window); } else { fprintf(stderr, "Failed to create window\n"); |
