gb6/cli/emulator.c

42 lines
798 B
C
Raw Normal View History

2019-04-16 06:25:00 +00:00
#include <stdio.h>
#include "dmg.h"
#include "cpu.h"
#include "rom.h"
2019-10-22 06:30:19 +00:00
#include "lcd.h"
2019-04-16 06:25:00 +00:00
2020-12-08 01:28:08 +00:00
int main(int argc, char *argv[])
2019-04-16 06:25:00 +00:00
{
struct cpu cpu;
struct rom rom;
struct dmg dmg;
2019-10-22 06:30:19 +00:00
struct lcd lcd;
int executed;
2019-04-16 06:25:00 +00:00
if (argc < 2) {
printf("no rom specified\n");
return 1;
}
if (!rom_load(&rom, argv[1])) {
printf("error loading rom\n");
return 1;
}
// this might be too much abstraction but it'll let me
// test the cpu, rom, and dmg independently and use the cpu
// for other non-GB stuff
2019-10-22 06:30:19 +00:00
dmg_new(&dmg, &cpu, &rom, &lcd);
2019-04-16 06:25:00 +00:00
cpu_bind_mem_model(&cpu, &dmg, dmg_read, dmg_write);
cpu.pc = 0;
2019-04-16 06:25:00 +00:00
2022-06-21 00:09:29 +00:00
for (executed = 0; executed < 100000; executed++) {
dmg_step(&dmg);
2019-04-16 06:25:00 +00:00
}
rom_free(&rom);
return 0;
}