Introduce VIF0/VIF1 to the emulator
* Next up the BIOS starts initializing the Vector Interface (VIF), which is used to communicate with VU1 and VU0 (when it's in micro mode). It has its own register set which is easy to implement as shown and a fifo, similar to the GIF FIFO. The fifo receives 128bit qwords sequentially. Each VIF "packet", starts with a 32bit header that tells the VIF which command to execute. Some headers are standalone, meaning that another command header will follow them, while for others some 32bit data words will be sent after (for exampe STROW/STCOL). * In the future I will change this to be an actual fifo structure, because some fifos in the PS2 can be blocked, meaning that they queue up written data until the component that blocked them, lifts the block. For now though this will do. * Also allow writing to code and data memory for VU0 to reduce the logspam a little Sources: https://psi-rockin.github.io/ps2tek/#vif
Showing
- CMakeLists.txt 1 addition, 0 deletionsCMakeLists.txt
- src/common/emulator.cc 2 additions, 0 deletionssrc/common/emulator.cc
- src/common/emulator.h 22 additions, 12 deletionssrc/common/emulator.h
- src/cpu/vu/vif.cc 166 additions, 0 deletionssrc/cpu/vu/vif.cc
- src/cpu/vu/vif.h 97 additions, 0 deletionssrc/cpu/vu/vif.h
- src/cpu/vu/vu0.cc 13 additions, 1 deletionsrc/cpu/vu/vu0.cc
- src/cpu/vu/vu0.h 35 additions, 0 deletionssrc/cpu/vu/vu0.h
Loading
Please register or sign in to comment