Skip to content
Snippets Groups Projects
  1. Nov 04, 2021
    • Geo Ster's avatar
      Implement MADD1/MTC0/JALR/SD and rewrite COP0 decoding · e2559bb5
      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...
      e2559bb5
  2. Nov 03, 2021
    • Geo Ster's avatar
      Implement first instructions mfc0/sw/bne/sll · 0e09c3a1
      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
      0e09c3a1
Loading