Skip to content
Snippets Groups Projects
  1. Oct 31, 2021
    • Geo Ster's avatar
      Add initial memory map · a54398cc
      Geo Ster authored
      * The ps2tek documentation states the memory map clearly [1].
      It seems to have a similar architecture with the PSX, where
      the main memory map (KUSEG0) is mirrored in multiple regions
      (KUSEG1/KUSEG2) with different access patterns for each region.
      For now we don't have to emulate all of them, just the main
      memory map.
      
      * Allocate the entire 512MB memory into an array and make a convenient
      struct to abstract memory range operations.
      
      [1] https://psi-rockin.github.io/ps2tek/#memorymap
      a54398cc
    • Geo Ster's avatar
      Add initial EE/Bus implementations · 2ad0640f
      Geo Ster authored
      * This commit adds a most basic CPU class that acts as a template
      which we will slowly build.
      
      * The architecture is pretty simple; the ComponentManager will create all
      the seperate components (EE, VP, IOP, GS etc) as unique_ptr's since
      it owns them and only it has access to them. All the other components
      must pass through the manager to read/write data to memory.
      To achieve this they are given a pointer to the ComponentManger in their constructor.
      
      * For now the CPU directly accesses the bios which shouldn't
      happen but will be fixed eventually when I implement generic
      read/writes. The goal is to start implementing the CPU as fast as
      possible in order to get to the GPU/VPU's and display something!
      2ad0640f
    • Geo Ster's avatar
      Initial commit · 9c39208d
      Geo Ster authored
      * This is the beginning of a surely arduous journey of semi-correctly emulating
      the PS2 the flagship console from Sony in 2001. The console was chosen
      for it's impressive performance at the time, relatively simple MIPS architecture
      compared to the PowerPC (Gamecube) and x86 (Xbox) competitors at the time, and because
      I own one since I wouldn't want to be caught doing piracy on an open source
      competition...
      
      The PS2 also has a myriad of resources available including comprehensive CPU documentation
      for it's MIPS ISA which will be used in the development of this emulator. Any sources that I use, will be referenced
      in the coresponding commits for the judges to look at. For development hardware documentation and info from real emulators will be used
      (I'll try to avoid using code from other projects as much as possible though).
      I've also done a PS1 emulator in the past so the minor similarities in architecture
      will help speed this process up a little.
      
      For now this is just a window with glfw and a ready opengl context.
      I hope it will be able to boot the PS2 soon enough though...
      9c39208d
Loading