Properly Added GS Vsync IRQs
Added some VU/VIF memory reads
Added UNPACK functionality according to PS2 Auto Tests
Tidied up a bunch of VU operations and added a CLIP flag pipeline to FMACs
Fixed link addresses on VU branch in branch delay slot
Fixed a chain mode bug in SPR
Altered DMA's so the TADR properly follows MADR in CNT mode, also prepared for DMA Stall addresses on Dest Chain mode
Corrected SIF0 DMA register usage
Added run cycles to VIF for future situations where the CPU may have stalled
Adjusted VIF loop so we don't need double versions of VU waiting and VIF Stalls
* use ldexp in LOD calculation
precalculate interpolations in render_sprite
* add precision to render_sprite, loop unswitching
* loop unswitching for render_triangle
fix precision on render_sprite
reduce math needed on LOD calculation
* use ints instead of uints, use 16 extra bits of precision instead of 8
* fix Q
Added basic handling of VPU_STAT
Change COP2 to use normal pipelining instead of just flushing
Added VIF UNPACK MODE support
Tweaked VU Execution so it cannot start one while one is already running
Added updating of VU Status register
Added FSAND, MULAq VU OPs
Properly clamped VU results
Added VU stalling for Q based commands and WAITQ gets priority over upper instruction
Fixed bug in LQD VU OP
This allows us to get rid of the previous hack for Atelier Iris, which is somewhat good as this one is generic.
Why have this hack? FMVs are only a secondary consideration compared to getting the rest of the emulator functional. Once the core emulation is good, we can work on perfecting movie playback.
Added PATH3 masking status from VIF
Added PSMCT16S to BITBLTBUF transfers
Added RSQRT and MSUBA to FPU
Added DMA 8/16/32bit reads of VIF0 control
Added VCALLMS/R, BC2, VADDA, VLQI, VLDQ, VSUBA to COP2
Added MSCALF to VIF
Added FMEQ, ITOF15, SUBA to the VUs
Added Branch in Branch Delay Slot handling
Fixed VU0 running
Added remaining VIF Unpacks
Added 16bit writes for some DMA channels
Added small speed up for EE wait loops (up to 40% speed up during loading)
Added VIF Stalling
Added a few VU commands to micro mode
Added some reg lookups for new VIF regs
Added detection for Branch/Jump in Branch/Jump delay slot
Fixed lock up condition in GIF PATH handling