diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-11-02 13:54:50 +0100 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-11-02 13:54:50 +0100 |
| commit | 46d0f6aeb1588b85852487e581a8b4c9c2401646 (patch) | |
| tree | ca93ed439b297fe8f59841b6885ba65ded81f9a3 /mknes_sdl.c | |
| parent | fc41466fe825eae4e5c2e2f4764482c53c687679 (diff) | |
Add MMC5, not in a working state, but can start castlevania iii, this is a horrible mapper to implement.
Diffstat (limited to 'mknes_sdl.c')
| -rw-r--r-- | mknes_sdl.c | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/mknes_sdl.c b/mknes_sdl.c index bb0b5ad..98776b5 100644 --- a/mknes_sdl.c +++ b/mknes_sdl.c @@ -30,10 +30,10 @@ static FILE *state_dump_file; #define WINDOW_WIDTH (256 * 3 + 256 * 2) #define WINDOW_HEIGHT (240 * 3) -// #define PRG_ROM_SIZE (2 * 1024 * 1024) -// #define CHR_ROM_SIZE (1 * 1024 * 1024) -#define PRG_ROM_SIZE (512 * 1024) -#define CHR_ROM_SIZE (256 * 1024) +#define PRG_ROM_SIZE (2 * 1024 * 1024) +#define CHR_ROM_SIZE (1 * 1024 * 1024) +// #define PRG_ROM_SIZE (512 * 1024) +// #define CHR_ROM_SIZE (256 * 1024) #define PIXELS_SIZE (256 * 240) #define RAM_SIZE 0x1000 // 0x800 in reality, but for aligned alloc it must be the size of the alignment (4096) @@ -62,8 +62,8 @@ static void audio_callback(int16_t *data, size_t frames) { } // Embed the ROM for benchmarking to eliminate file I/O overhead // Uncomment the ROM you want to benchmark: // INCBIN_BYTES(benchmark_rom, "data/Life Force (USA).nes"); -INCBIN_BYTES(benchmark_rom, "data/0001/Metroid (U) [!].nes"); -// INCBIN_BYTES(benchmark_rom, "data/0000/Super Mario Bros. (World) (HVC-SM).nes"); +// INCBIN_BYTES(benchmark_rom, "data/0001/Metroid (U) [!].nes"); +INCBIN_BYTES(benchmark_rom, "data/0000/Super Mario Bros. (World) (HVC-SM).nes"); // INCBIN_BYTES(benchmark_rom, "data/0003/Gradius (USA).nes"); #endif @@ -88,20 +88,20 @@ static int32_t frames; // debug information #include "mknes_bench.c" #endif -static void dump_state(struct nes_state *state) { - size_t state_size = offsetof(struct nes_state, ram); +// static void dump_state(struct nes_state *state) { +// size_t state_size = offsetof(struct nes_state, ram); - if(!state_dump_file) { - state_dump_file = fopen("state_dump.bin", "wb"); - if(!state_dump_file) { - fprintf(stderr, "Failed to open state_dump.bin for writing\n"); - return; - } - } +// if(!state_dump_file) { +// state_dump_file = fopen("state_dump.bin", "wb"); +// if(!state_dump_file) { +// fprintf(stderr, "Failed to open state_dump.bin for writing\n"); +// return; +// } +// } - fwrite(state, 1, state_size, state_dump_file); - state_dump_count++; -} +// fwrite(state, 1, state_size, state_dump_file); +// state_dump_count++; +// } int main(int argc, char **argv) { setbuf(stdout, 0); @@ -166,13 +166,13 @@ int main(int argc, char **argv) { // ines2_load(nstate, "data/0003/Gradius (USA).zip"); // ines2_load(nstate, "data/0004/Mega Man 3 (USA).zip"); - ines2_load(nstate, "data/0004/Mega Man 4 (USA).zip"); + // ines2_load(nstate, "data/0004/Mega Man 4 (USA).zip"); // ines2_load(nstate, "data/0004/Mega Man 5 (USA).zip"); // ines2_load(nstate, "data/0004/Mega Man 6 (USA).zip"); // ines2_load(nstate, "data/0004/Super Mario Bros. 2 (USA).zip"); - // ines2_load(nstate, "data/0004/Castlevania III - Dracula's Curse (USA).zip"); // ACTUALLY mapper 5 - + ines2_load(nstate, "data/0005/Castlevania III - Dracula's Curse (USA).zip"); + // ines2_load(nstate, "data/0005/Metal Slader Glory (Japan).zip"); // ines2_load(nstate, "data/0007/Battletoads (USA).zip"); // ines2_load(nstate, "data/0007/Beetlejuice (USA).zip"); // ines2_load(nstate, "data/0007/Cabal (USA).zip"); @@ -307,10 +307,10 @@ int main(int argc, char **argv) { frames++; - // Dump state every frame starting from 2400 - if(frames >= 2400 && frames <= 3100) { - dump_state(nstate); - } + // // Dump state every frame starting from 2400 + // if(frames >= 2400 && frames <= 3100) { + // dump_state(nstate); + // } // Convert NES pixels to display buffer uint32_t * restrict dst = display_buffer; @@ -344,11 +344,11 @@ int main(int argc, char **argv) { } printf("total frames: %6d total cycles: %12llu\n", frames, (unsigned long long)nstate->cpu.cycles); - printf("state dumps created: %zu\n", state_dump_count); + // printf("state dumps created: %zu\n", state_dump_count); - if(state_dump_file) { - fclose(state_dump_file); - } + // if(state_dump_file) { + // fclose(state_dump_file); + // } timer_destroy(timer); for(int i = 0; i < 4; i++) { |
