- Nov 14, 2021
-
-
Geo Ster authored
* Having the header files in a seperate dir is only useful when developing libraries that are meant to be used by other programs. In our case though it makes the file structure more tedious so gather everything in one place.
-
- Nov 04, 2021
-
-
Geo Ster authored
* Currently the BIOS tries to write something to scratchpad and it fails because its address is not our currently supported range. So add a new buffer for the 16KB scratchpad used by the CPU and add a function to use it if the address is in the correct range. * Also shorten some function names and change some array to C-style because we like to work with pointers and STL doesn't like that.
-
Geo Ster authored
* COP0 instructions sadly have way too many encoding to use a single template one them, so rewrite the decoder to manually extract the required bits for each instruction. This fixes a bug where the MTC0 instruction was mistaken for MFC0. * Implement more instructions so we can execute more of the BIOS. In addition fix an oopsie in the ORI instruction which fixes some bugged memory writes. As of now the BIOS tries to write address 0x70003fe0 which maps to the scratchpad memory (assuming no further logic errors are present). Need to investigate why this is and how to emulate it before continuing...
-
- Nov 03, 2021
-
-
Geo Ster authored
* The instruction decoding was based on the handy table in ps2tek [1] while the instructions themselves were written based on the document added. * The implementation makes heavy use of bitfields and unions in C++ to make accessing different bits/sections of registers easier and more intuitive. You may also notice the frequent casting (uint32_t)(int16_t) which might seem useless but is there to force the compiler to generate instructions to sign extend the offsets. [1] https://psi-rockin.github.io/ps2tek/#eeinstructiondecoding
-