From 408efe6106ba3651ab9bdc6cbd936bf37273b424 Mon Sep 17 00:00:00 2001 From: doop <56421834+dooplecks@users.noreply.github.com> Date: Tue, 9 Jun 2026 15:37:16 +0000 Subject: [PATCH] Always create a save file if one doesn't exist --- src/d/d_file_select.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/d/d_file_select.cpp b/src/d/d_file_select.cpp index 7ba3fac836..7e9cc797ab 100644 --- a/src/d/d_file_select.cpp +++ b/src/d/d_file_select.cpp @@ -4321,11 +4321,29 @@ void dFile_select_c::MemCardStatCheck() { mDoMemCd_Load(); mCardCheckProc = MEMCARDCHECKPROC_LOAD_WAIT; break; +#if TARGET_PC + case 1: // no save file + static bool created = false; + if (!created) { + // create save file without prompting + setInitSaveData(); + dataSave(); + created = true; + } else { + // we created the save file but we can't see it yet + // reset card state to try loading again on next tick + g_mDoMemCd_control.mCardState = mDoMemCd_Ctrl_c::CARD_STATE_READY_e; + } + break; + case 4: // card is writing + mDoMemCd_SaveSync(); // resets card state to ready when finished + break; +#else case 1: errDispInitSet(22, 0); field_0x0280 = true; mNextCardCheckProc = MEMCARDCHECKPROC_MAKE_GAMEFILE_SEL; - break; +#endif } #else switch (status) {