Page 1 of 1
SPEEDSYS Benchmark
Posted: Wed May 22, 2024 9:45 pm
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 (9.24 KiB) Viewed 2821 times
30 MHz, L2 cache ON
- MiSTer56MHz.png (9.4 KiB) Viewed 2821 times
56 MHz, L2 cache ON
- MiSTer56MHzL2OFF.png (6.28 KiB) Viewed 2821 times
56 MHz, L2 cache OFF
- MiSTer90MHz.png (9.8 KiB) Viewed 2821 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.
Re: SPEEDSYS Benchmark
Posted: Thu May 23, 2024 10:27 am
by rubberduck
Is adding \00 to the String enough?
Re: SPEEDSYS Benchmark
Posted: Thu May 23, 2024 2:27 pm
by Lukage
There are several detection routines for different BIOS vendors, for example you have this hardcoded test for Award BIOS:
- speedsys.png (21.57 KiB) Viewed 2608 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.
Re: SPEEDSYS Benchmark
Posted: Thu May 23, 2024 2:40 pm
by rubberduck
Is it possible that you provide a binary patch to patch the default bios to a working one?
Re: SPEEDSYS Benchmark
Posted: Thu May 23, 2024 2:54 pm
by breiztiger
and can't we take last rombios.c build ?