![]() |
![]() |
![]() |
![]() |
![]() |
Make "Slave of the VU" work.
Posted on 2006-02-24 00:00:00 |
Making this demo work should be a nice start towards getting a basic VU0/VU1 emulation. This demo makes use of both units by using the VU0 in coprocessor mode and the VU1 with the VIF. A screen shot of this demo running is available at this place. Symbolic information was left in the executable which should make debugging easier.
First of all, I fixed a little problem with the decoding of the fields of the BITBLTBUF GS register. Oddly, this program is using an invalid buffer address probably also thinking the field was 16-bits instead of 14-bits. So, I'm not quite sure if my fix is valid for now. The demo doesn't waste too much time and is already using some VU instructions in COP mode. The ones that I know I'm lacking right now are VOPMULA and VOPMSUB. These two instructions together are used to compute the cross product of 2 vectors. I only added them in the reflection tables for now, but I'll have them implemented tomorrow. I also added an history navigation feature in the disassembly window of the debugger that I was planning to add for quite a while now. |