• Steam recently changed the default privacy settings for all users. This may impact tracking. Ensure your profile has the correct settings by following the guide on our forums.

Bios Update

SilverSpring

New Member
You can hex out the battery check if you want to try give that a go.

It's pretty trivial to fix, only one function to patch:

Code:
/* sub_42230D */
int getPowerStatus()
{
    SYSTEM_POWER_STATUS SystemPowerStatus;

    GetSystemPowerStatus(&SystemPowerStatus);

    if (SystemPowerStatus.ACLineStatus == 0)
    {
        return 1; /* gives error "The AC adapter and battery must be plugged in before the system BIOS can be flashed." */
    }
    else if ((SystemPowerStatus.BatteryFlag == 128) || (SystemPowerStatus.BatteryFlag == 255))
    {
        return 2; /* gives error "The AC adapter and battery must be plugged in before the system BIOS can be flashed." */
    }
    else if (SystemPowerStatus.BatteryLifePercent <= 10 || SystemPowerStatus.BatteryLifePercent == 255)
    {
        return 3; /* gives error "The battery must be charged above 10%% before the system BIOS can be flashed." */
    }
    
    return 0; /* power is good, continue flashing */
}

Documentation of the SYSTEM_POWER_STATUS struct and values: http://msdn.microsoft.com/en-us/library/aa373232%28VS.85%29.aspx

Force that function to return 0 and it'll bypass the battery check. The function is located at offset 0x2230D of the exe.

Do you want me to write a patch file for you? You then just run any generic file patcher with the patch onto the exe and then run the patched exe.

However, I won't be responsible for bricking the laptop. If the BIOS update fails there's not much hope for recovery.

EDIT:

Looking further at the app, it does include the /forceit option in it so that should bypass the battery check. However, the app also says it's only supported on Win2K and WinXP (as well as native DOS) so maybe being on Vista is the problem.

If it is a Vista problem try running it under DOS with a boot disk, turn the laptop off, put the floppy disk in and boot into the floppy. Then do

A:\1525_A17.EXE /forceit
 
Top