ref: 4a1b6ea93ac72c1abd6890f59c6b5d5c5a32f0af
dir: /snes/spc.h/
#ifndef SPC_H #define SPC_H #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdint.h> #include <stdbool.h> typedef struct Spc Spc; #include "apu.h" #include "saveload.h" struct Spc { Apu* apu; // registers uint8_t a; uint8_t x; uint8_t y; uint8_t sp; uint16_t pc; // flags bool c; bool z; bool v; bool n; bool i; bool h; bool p; bool b; // stopping bool stopped; // internal use uint8_t cyclesUsed; // indicates how many cycles an opcode used }; Spc* spc_init(Apu* apu); void spc_free(Spc* spc); void spc_reset(Spc* spc); int spc_runOpcode(Spc* spc); void spc_saveload(Spc *spc, SaveLoadFunc *func, void *ctx); #endif