Added return value to GB_run API.
This commit is contained in:
parent
bc55531204
commit
95234036bb
@ -271,15 +271,17 @@ exit:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GB_run(GB_gameboy_t *gb)
|
uint8_t GB_run(GB_gameboy_t *gb)
|
||||||
{
|
{
|
||||||
GB_debugger_run(gb);
|
GB_debugger_run(gb);
|
||||||
|
gb->cycles_since_run = 0;
|
||||||
GB_cpu_run(gb);
|
GB_cpu_run(gb);
|
||||||
if (gb->vblank_just_occured) {
|
if (gb->vblank_just_occured) {
|
||||||
GB_update_joyp(gb);
|
GB_update_joyp(gb);
|
||||||
GB_rtc_run(gb);
|
GB_rtc_run(gb);
|
||||||
GB_debugger_handle_async_commands(gb);
|
GB_debugger_handle_async_commands(gb);
|
||||||
}
|
}
|
||||||
|
return gb->cycles_since_run;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t GB_run_frame(GB_gameboy_t *gb)
|
uint64_t GB_run_frame(GB_gameboy_t *gb)
|
||||||
|
@ -483,6 +483,7 @@ struct GB_gameboy_internal_s {
|
|||||||
uint32_t ram_size; // Different between CGB and DMG
|
uint32_t ram_size; // Different between CGB and DMG
|
||||||
uint8_t boot_rom[0x900];
|
uint8_t boot_rom[0x900];
|
||||||
bool vblank_just_occured; // For slow operations involving syscalls; these should only run once per vblank
|
bool vblank_just_occured; // For slow operations involving syscalls; these should only run once per vblank
|
||||||
|
uint8_t cycles_since_run; // How many cycles have passed since the last call to GB_run()
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -506,7 +507,9 @@ bool GB_is_cgb(GB_gameboy_t *gb);
|
|||||||
void GB_free(GB_gameboy_t *gb);
|
void GB_free(GB_gameboy_t *gb);
|
||||||
void GB_reset(GB_gameboy_t *gb);
|
void GB_reset(GB_gameboy_t *gb);
|
||||||
void GB_switch_model_and_reset(GB_gameboy_t *gb, bool is_cgb);
|
void GB_switch_model_and_reset(GB_gameboy_t *gb, bool is_cgb);
|
||||||
void GB_run(GB_gameboy_t *gb);
|
|
||||||
|
/* Returns the time passed, in 4MHz ticks. */
|
||||||
|
uint8_t GB_run(GB_gameboy_t *gb);
|
||||||
/* Returns the time passed since the last frame, in nanoseconds */
|
/* Returns the time passed since the last frame, in nanoseconds */
|
||||||
uint64_t GB_run_frame(GB_gameboy_t *gb);
|
uint64_t GB_run_frame(GB_gameboy_t *gb);
|
||||||
|
|
||||||
|
@ -153,6 +153,7 @@ void GB_advance_cycles(GB_gameboy_t *gb, uint8_t cycles)
|
|||||||
gb->cycles_since_ir_change += cycles;
|
gb->cycles_since_ir_change += cycles;
|
||||||
gb->cycles_since_input_ir_change += cycles;
|
gb->cycles_since_input_ir_change += cycles;
|
||||||
gb->cycles_since_last_sync += cycles;
|
gb->cycles_since_last_sync += cycles;
|
||||||
|
gb->cycles_since_run += cycles;
|
||||||
GB_dma_run(gb);
|
GB_dma_run(gb);
|
||||||
GB_hdma_run(gb);
|
GB_hdma_run(gb);
|
||||||
GB_apu_run(gb);
|
GB_apu_run(gb);
|
||||||
|
Loading…
Reference in New Issue
Block a user