bool CRegTable::TryParseGPR(wxString str, FormatSpecifier format, u32* value) { if (format == FormatSpecifier::Hex8) { unsigned long val; if (str.ToCULong(&val, 16)) { *value = static_cast<u32>(val); return true; } return false; } if (format == FormatSpecifier::Int) { long signed_val; if (str.ToCLong(&signed_val)) { *value = static_cast<u32>(signed_val); return true; } return false; } if (format == FormatSpecifier::UInt) { unsigned long val; if (str.ToCULong(&val)) { *value = static_cast<u32>(val); return true; } return false; } if (format == FormatSpecifier::Float) { double double_val; if (str.ToCDouble(&double_val)) { float float_val = static_cast<float>(double_val); std::memcpy(value, &float_val, sizeof(float)); return true; } return false; } return false; }