diff options
Diffstat (limited to 'mknes.c')
| -rw-r--r-- | mknes.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -75,7 +75,7 @@ static GLFWwindow *window; #define DEBUG_PRINT printf #include "timer.c" -#include "audio.c" +// #include "audio.c" #include "opengl_loader.c" #include "opengl.c" @@ -117,7 +117,7 @@ static struct nes_state *allocate_nes_state(void) { memset(m, 0, total_size); size_t offset = 0; - state->prg_rom = m + offset; offset += PRG_ROM_SIZE; + state->prg_rom = m + offset; offset += PRG_ROM_SIZE; // DO NOT MOVE THIS, as this is the pointer we free later. state->chr_rom = m + offset; offset += CHR_ROM_SIZE; state->pixels = m + offset; offset += PIXELS_SIZE; state->ram = m + offset; offset += RAM_SIZE; @@ -127,6 +127,10 @@ static struct nes_state *allocate_nes_state(void) { return state; } +static void free_nes_state(struct nes_state *s) { + free(s->prg_rom); + free(s); +} int main(int argc, char **argv) { #ifdef _WIN32 @@ -135,7 +139,6 @@ int main(int argc, char **argv) { state.toggle_crt_emulation = 1; struct nes_state *nstate = allocate_nes_state(); - // ppu_generate_full_timeline(); setbuf(stdout, 0); init_opcode_lut(); @@ -274,7 +277,7 @@ printf("total frames: %6.6d total cycles: %ld\n", frames, nstate->cycles); fprintf(stderr, "Failed to initialize GLFW\n"); } timer_destroy(timer); - + free_nes_state(nstate); #ifdef _WIN32 timeEndPeriod(1); #endif |
