i spent hours trying to get this program to run for the bit and then gave up and just faked it with a shell script. why am i like this :)
edit: i did a bit of hacking to bypass parts of the code that weren't working in the emulator, and confirmed that the program will behave exactly like the screenshot: https://furry.engineer/@nil/113755546111532838
@jschwart@moira for sure, i only emulated it since i wanted to get this error message and don't have a sun workstation of my own, let alone a SunPCi. if i wanted to run old x86 software i'd use 86Box or DOSBox. but it would be nice for the sake of preservation, if really impractical, if someone could implement an emulator for the SunPCi.
@jschwart@moira i did some binary hacking to see how the date validation works. it's just one function, and takes a 4 byte change in sunpcbinary to replace the call with a nop. where that call is depends on what version of the software you have
@moira this is an edited screenshot since the program (SunPCi) depends on hardware that as far as i know isn't emulated yet. but from what i know, the program will refuse to run in this situation
oh my fucking god. so i was having a problem when i enabled optimizations when compiling the doom port. memcpy ended up overwriting itself. so i looked into what was happening, and apparently memcpy just kept calling itself over and over. the reason? i was compiling my own version of memcpy, because i wasn't using the standard library, but i also didn't use the "-ffreestanding" flag, so gcc assumed i *did* have the standard library. so gcc, in its infinite wisdom, saw a memcpy-like pattern in my memcpy and turned it into another call to memcpy, resulting in a stack overflow.