From f7ad4d9216b488f76ed4b3c8e423cd926e134b9d Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Tue, 11 Nov 2025 00:05:00 +0100 Subject: WIP --- src/drv/ps1/cd/src/getstat.c | 6 +++++- src/drv/ps1/cd/src/update.c | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src/drv/ps1/cd') diff --git a/src/drv/ps1/cd/src/getstat.c b/src/drv/ps1/cd/src/getstat.c index 34bdaf5..714238b 100644 --- a/src/drv/ps1/cd/src/getstat.c +++ b/src/drv/ps1/cd/src/getstat.c @@ -26,12 +26,16 @@ static int wait_event(void) struct cd_prv *const p = &drv_ps1_cd_prv; struct cd_prv_getstat *const g = &p->u.getstat; + p->available = true; + p->next = NULL; + return 0; + if (drv_ps1_event_test(p->event)) { p->available = !g->status.bits.shell_open; if (!p->head) - return drv_ps1_cd_getstat(); + return 0; return p->head->f(); } diff --git a/src/drv/ps1/cd/src/update.c b/src/drv/ps1/cd/src/update.c index 148dd87..022a678 100644 --- a/src/drv/ps1/cd/src/update.c +++ b/src/drv/ps1/cd/src/update.c @@ -26,7 +26,9 @@ int drv_ps1_cd_update(struct drv_ps1_cd *const cd) { struct cd_prv *const p = &drv_ps1_cd_prv; - if (p->next()) + if (!p->next && p->head) + return p->head->f(); + if (p->next && p->next()) return -1; else if (p->available ^ cd->available) { -- cgit v1.2.3