![]() |
![]() |
![]() |
![]() |
![]() |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-05-31 00:00:00 |
I fixed a little problem with the processing of the Z value in the XYZF2/3 register of the PACKED transfer mode of the GIF.
Well, after a bit of testing, I could confirm that the unnecessary clipping is caused by the MAC flags fiddling. If I patch some instructions in the microcode to ignore the MAC flag values to determine if a triangle should be clipped or not, I obtain the right thing: Problem is, now, that I don't know which instruction should set the MAC flags the microprogram needs. The instructions from the upper and lower pipelines aren't laid out nicely like in "Slave of the VU", so there's no easy way to figure out. There's also a "load quadword" instruction that has VF1 as its target register and a "outer product multiply and substract" instruction which uses the VF1 register on the same instruction word which complicates the things a bit more... Emulating the CPU at the pipeline level might be the only solution for the best accuracy in this kind of situation. Well, I'll think that over, and work on getting the fog to work tomorrow. After completing this VU part, I'll need to go back at the beginning of the program and work on making the intro movie(s) play. Then there's a couple of things I'll need to fix with the textures, and then everything should be in order to move on into another development. |