SPEEDSYS Benchmark

Lukage
Posts: 49
Joined: Wed Aug 05, 2020 7:34 pm
Been thanked: 55 times

SPEEDSYS Benchmark

Unread post by Lukage »

Hello, just for curiosity and for its widespread use, I managed to finally ran through SPEEDSYS v4.78 on MiSTer using various speed settings. Enjoy !

MiSTer30MHz.png
MiSTer30MHz.png (9.24 KiB) Viewed 814 times

30 MHz, L2 cache ON

MiSTer56MHz.png
MiSTer56MHz.png (9.4 KiB) Viewed 814 times

56 MHz, L2 cache ON

MiSTer56MHzL2OFF.png
MiSTer56MHzL2OFF.png (6.28 KiB) Viewed 814 times

56 MHz, L2 cache OFF

MiSTer90MHz.png
MiSTer90MHz.png (9.8 KiB) Viewed 814 times

90 MHz, L2 cache ON

This was a tough one to find out why exactly this program does not run. It was in plain sight all the time, but I went through all the trouble to find out that one simple thing. To replicate running speedsys, you just need to find file sw/sysbios/rombios.c in ao486 repository, and inside that file find BIOS_COPYRIGHT_STRING:

Code: Select all

#define BIOS_COPYRIGHT_STRING "(c) 2001-2017  The Bochs Project"

Replace it with anything Speedsys understands (it needs to be null terminated string for known BIOS), for example:

Code: Select all

#define BIOS_COPYRIGHT_STRING "Award Modular BIOS v4.51G\00"

Recompile BIOS, and place your new boot0.rom on your MiSTer.

rubberduck
Posts: 7
Joined: Thu Jan 18, 2024 10:04 am
Location: Einbeck, Germany
Has thanked: 12 times
Been thanked: 3 times

Re: SPEEDSYS Benchmark

Unread post by rubberduck »

Is adding \00 to the String enough?

Lukage
Posts: 49
Joined: Wed Aug 05, 2020 7:34 pm
Been thanked: 55 times

Re: SPEEDSYS Benchmark

Unread post by Lukage »

There are several detection routines for different BIOS vendors, for example you have this hardcoded test for Award BIOS:

speedsys.png
speedsys.png (21.57 KiB) Viewed 601 times

Code: Select all

cs:0B6E                 cmp     dword ptr [si], 72617741h
cs:0B75                 jnz     short not_award
cs:0B77                 cmp     dword ptr [si+0Bh], 42207261h
cs:0B7F                 jnz     short not_award
cs:0B81                 cmp     dword ptr [si+10h], 7620534Fh
cs:0B89                 jnz     short not_award
cs:0B8B                 mov     cx, 1Ah

                         Award Modular BIOS v4.51G
Offset  0, 0x72617741 = "Awar"
Offset 11, 0x42207261 =            "ar B"
Offset 16, 0x7620534F =                 "OS v"

There are three hardcoded 32-bit values, which translated to ASCII yields parts of "Award Modular BIOS" string. This differs for different vendor BIOSes. Also, you can see this only after letting speedsys to unpack into memory, because the .exe is compressed. You cannot disassemble it as it is. So no, terminating it with null at the end will yield non-functional speedsys. It needs to be compatible with one of the detection routines.

rubberduck
Posts: 7
Joined: Thu Jan 18, 2024 10:04 am
Location: Einbeck, Germany
Has thanked: 12 times
Been thanked: 3 times

Re: SPEEDSYS Benchmark

Unread post by rubberduck »

Is it possible that you provide a binary patch to patch the default bios to a working one?

breiztiger
Top Contributor
Posts: 453
Joined: Sun May 24, 2020 7:17 pm
Has thanked: 26 times
Been thanked: 95 times

Re: SPEEDSYS Benchmark

Unread post by breiztiger »

and can't we take last rombios.c build ?

CPC-Power Staff
Post Reply