summaryrefslogtreecommitdiff
path: root/mknes.c
diff options
context:
space:
mode:
authorPeter Fors <peter.fors@mindkiller.com>2025-04-07 19:47:27 +0200
committerPeter Fors <peter.fors@mindkiller.com>2025-04-07 19:47:27 +0200
commitd45fbf8d2e1adcb35043dfc9e06eae3ccfdf596e (patch)
treec450bc97b2b0e767150e07db745328944dcd1041 /mknes.c
parent5409798e800b6deb5d5874401a2925d1e18d8bd3 (diff)
cleanup and optimization tests, unfortunately nothing great.
Diffstat (limited to 'mknes.c')
-rw-r--r--mknes.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/mknes.c b/mknes.c
index 255b123..ea735f6 100644
--- a/mknes.c
+++ b/mknes.c
@@ -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