diff --git a/arm9/source/common/hid.c b/arm9/source/common/hid.c index 08767cf..7319ec8 100644 --- a/arm9/source/common/hid.c +++ b/arm9/source/common/hid.c @@ -145,7 +145,7 @@ u32 InputWait(u32 timeout_sec) { do { 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; if (state != oldcart) return state ? CART_INSERT : CART_EJECT; diff --git a/arm9/source/virtual/vcart.c b/arm9/source/virtual/vcart.c index 3828f4e..65671bd 100644 --- a/arm9/source/virtual/vcart.c +++ b/arm9/source/virtual/vcart.c @@ -6,8 +6,10 @@ static CartData* cdata = NULL; static bool cart_init = false; +static bool cart_checked = false; u32 InitVCartDrive(void) { + if (!cart_checked) cart_checked = true; if (!cdata) cdata = (CartData*) malloc(sizeof(CartData)); cart_init = (cdata && (InitCardRead(cdata) == 0) && (cdata->cart_size <= FAT_LIMIT)); if (!cart_init && cdata) { @@ -73,7 +75,7 @@ u64 GetVCartDriveSize(void) { void GetVCartTypeString(char* typestr) { // 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", (cdata->cart_type & CART_CTR) ? "CTR" : (cdata->cart_type & CART_TWL) ? "TWL" :