Mark the cart drive as uninitialized when uninitialized

Fixes #492
This commit is contained in:
d0k3 2019-06-25 23:02:58 +02:00
parent ccb8531ce6
commit 4e61bcaa50
2 changed files with 4 additions and 2 deletions

View File

@ -145,7 +145,7 @@ u32 InputWait(u32 timeout_sec) {
do { do {
u32 newpad = HID_ReadState(); u32 newpad = HID_ReadState();
if (!newpad) { // no buttons pressed, check for I/O changes instead if (!(newpad & BUTTON_ANY)) { // no buttons pressed, check for I/O changes instead
u32 state = CART_STATE; u32 state = CART_STATE;
if (state != oldcart) if (state != oldcart)
return state ? CART_INSERT : CART_EJECT; return state ? CART_INSERT : CART_EJECT;

View File

@ -6,8 +6,10 @@
static CartData* cdata = NULL; static CartData* cdata = NULL;
static bool cart_init = false; static bool cart_init = false;
static bool cart_checked = false;
u32 InitVCartDrive(void) { u32 InitVCartDrive(void) {
if (!cart_checked) cart_checked = true;
if (!cdata) cdata = (CartData*) malloc(sizeof(CartData)); if (!cdata) cdata = (CartData*) malloc(sizeof(CartData));
cart_init = (cdata && (InitCardRead(cdata) == 0) && (cdata->cart_size <= FAT_LIMIT)); cart_init = (cdata && (InitCardRead(cdata) == 0) && (cdata->cart_size <= FAT_LIMIT));
if (!cart_init && cdata) { if (!cart_init && cdata) {
@ -73,7 +75,7 @@ u64 GetVCartDriveSize(void) {
void GetVCartTypeString(char* typestr) { void GetVCartTypeString(char* typestr) {
// typestr needs to be at least 11 + 1 chars big // typestr needs to be at least 11 + 1 chars big
if (!cart_init || !cdata) sprintf(typestr, "EMPTY"); if (!cart_init || !cdata) sprintf(typestr, cart_checked ? "EMPTY" : "INIT");
else sprintf(typestr, "%s%08lX", else sprintf(typestr, "%s%08lX",
(cdata->cart_type & CART_CTR) ? "CTR" : (cdata->cart_type & CART_CTR) ? "CTR" :
(cdata->cart_type & CART_TWL) ? "TWL" : (cdata->cart_type & CART_TWL) ? "TWL" :