Make "quake.elf" work.
Posted on 2005-11-01 00:00:00
Implemented instructions PSUBB, PNOR, PAND, PCPYUD and BGTZL. All the nice MMI instructions are used for string operations (strcpy, sprintf, etc.). There's still one more missing that I could see by letting the program go, but this one can wait a bit.

I also decided to use some SSE stuff to implement PSUBB because it wouldn't be really great to have the 16 x 8-bit additions done using basic x86 stuff. I tried to keep a stack based interface for recompiling this kind of instruction, as I've been doing with everything else in order to have a better abstraction of the CPU used to recompile the MIPS program. While doing this though, I've seen that my FPU abstraction wasn't really good and that maybe I'll have to redo it in a near future.

I've been trying to put some order in the emulated program by putting some names on the functions. I've also been trying to find out why no files are being open for the moment. Quake should open all "PAK*.PAK" files present in the "host:ID1" directory, but right now, it doesn't even attempt to communicate with the SIF to open those files. I think I've found the problem but I still need to track it back to its source. Anyways, more on this tomorrow.

I've also found out that there were two versions of this port of Quake available. The first I've tried and on which I'm working on doesn't support input devices (keyboard and mouse). The newest one supports them, but uses some custom made IOP modules (in addition to the USB driver blunded with the BIOS) to be able to do so. I don't know if I want to work on this part, since I didn't find a solution for loading and executing custom made IOP modules yet... Humm, more food for though...