BOOL ar_handle_detect_error(int err) { char text[128]; u16 press; u16 vendor_id, device_id; if (err == IAPETUS_ERR_HWNOTFOUND) sprintf(text, "HW not found."); else if(err == IAPETUS_ERR_UNSUPPORTED) sprintf(text, "HW not supported."); else sprintf(text, "Unknown error."); vdp_printf(&main_font, 8, 8, 0xF, "Error detecting cart. %s", text); ar_get_product_id(&vendor_id, &device_id); vdp_printf(&main_font, 8, 16, 0xF, "HW ID: %04X %04X", vendor_id, device_id); press=wait_for_press(-1); if (err != IAPETUS_ERR_UNSUPPORTED) return FALSE; if (press & PAD_A && press & PAD_B && press & PAD_C) { vdp_vsync(); vdp_clear_screen(&main_font); return TRUE; } return FALSE; }
int ar_init_flash_io(flash_info_struct *flash_info) { u16 vendor_id, device_id; int i; if (flash_info_list == NULL) return IAPETUS_ERR_INVALIDARG; ar_get_product_id(&vendor_id, &device_id); i = ar_get_product_index(vendor_id, device_id); // Make sure vendor id and device id are supported if (i < 0) { memset(flash_info_list, 0, sizeof(flash_info_struct)); if (vendor_id == 0xFFFF && device_id == 0xFFFF) return IAPETUS_ERR_HWNOTFOUND; else { if (vendor_id == 0x0101) flash_info->name = "Unknown AMD"; else if (vendor_id == 0x1F1F) flash_info->name = "Unknown Atmel"; else if (vendor_id == 0xBFBF) flash_info->name = "Unknown Silicon Storage Technology"; else flash_info->name = "Unknown"; return IAPETUS_ERR_UNSUPPORTED; } } else { memcpy(flash_info, flash_info_list+i, sizeof(flash_info_struct)); return IAPETUS_ERR_OK; } }