Stop rendering uninitialized memory

This commit is contained in:
Simon Gellis 2024-10-31 21:56:58 -04:00
parent f4b4aa099b
commit 486ab96ab2
3 changed files with 9 additions and 3 deletions

View File

@ -41,6 +41,10 @@ void emuReset(EmulationContext *emu) {
vbReset(emu->sim); vbReset(emu->sim);
} }
bool emuIsGameLoaded(EmulationContext *emu) {
return vbGetCartROM(emu->sim, NULL) != NULL;
}
#define MAX_STEP_CLOCKS 20000000 #define MAX_STEP_CLOCKS 20000000
void emuTick(EmulationContext *emu) { void emuTick(EmulationContext *emu) {
uint32_t clocks = MAX_STEP_CLOCKS; uint32_t clocks = MAX_STEP_CLOCKS;

View File

@ -20,6 +20,7 @@ int emuInit(EmulationContext *emu);
void emuDestroy(EmulationContext *emu); void emuDestroy(EmulationContext *emu);
void emuLoadGame(EmulationContext *emu, uint8_t *rom, uint32_t romSize); void emuLoadGame(EmulationContext *emu, uint8_t *rom, uint32_t romSize);
void emuReset(EmulationContext *emu); void emuReset(EmulationContext *emu);
bool emuIsGameLoaded(EmulationContext *emu);
void emuTick(EmulationContext *emu); void emuTick(EmulationContext *emu);
bool emuReadPixels(EmulationContext *emu, uint8_t *left, uint8_t *right); bool emuReadPixels(EmulationContext *emu, uint8_t *left, uint8_t *right);

7
ui.c
View File

@ -106,9 +106,10 @@ typedef enum status_t {
} status_t; } status_t;
int uiRun(UIContext *ui, bool running) { int uiRun(UIContext *ui, bool running) {
static uint8_t leftEye[384*224]; static uint8_t leftEye[384*224] = {0};
static uint8_t rightEye[384*224]; static uint8_t rightEye[384*224] = {0};
status_t status = running ? status_running : status_paused; status_t status = running ? status_running : status_paused;
windowUpdate(&ui->win, leftEye, rightEye);
while (1) { while (1) {
struct nk_context *ctx; struct nk_context *ctx;
@ -163,7 +164,7 @@ int uiRun(UIContext *ui, bool running) {
} }
if (nk_menu_item_label(ctx, "Reset", NK_TEXT_ALIGN_LEFT)) { if (nk_menu_item_label(ctx, "Reset", NK_TEXT_ALIGN_LEFT)) {
emuReset(&ui->emu); emuReset(&ui->emu);
status = status_running; status = emuIsGameLoaded(&ui->emu) ? status_running : status_paused;
} }
nk_menu_end(ctx); nk_menu_end(ctx);
} }