![]() |
![]() |
![]() |
![]() |
![]() |
What is Play! ? |
Play! is a PlayStation2 emulator for Windows, macOS, UNIX, Android, iOS & web browser platforms. For more information about this project please visit the "About" section of this site. |
Compatibility Status |
Fetching compatibility status...
|
Development Log |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-06-06 00:00:00 |
The other texture mixups are kinda minor, so I'll take note of it and come back to it later.
I started working on making the movie playback work... It seems to use MPEG tables I haven't implemented yet, so I'll have to work on adding them first. I hope to have that done by tomorrow. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-06-05 00:00:00 |
I changed the texture caching mechanism to take in consideration the TEXCLUT register in the cache "keying". This fixed most of the other problems I was having with textures having wrong colors, textures being displayed incorrectly, etc.
I also upped the texture cache capacity from 20 to 50... This made a lot of difference, and the game is fast almost everywhere now. There's still one small texture bug I'd like to try fixing, and then, I'll be able to move into making the movie playback work. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-06-04 00:00:00 |
Apparently, the nearest texture sampling mode doesn't work very well on my new video card and that's why some artifacts were visible on that last screen shot. I added an option to force the use of the linear sampling mode and the menu items look a bit better when enabled.
I also fixed some stuff with the texture coordinates clamping mode. There's still some more texture problems to fix, and I'll be working on them tomorrow. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-06-03 00:00:00 |
Implemented instructions RINIT, RGET, ADDAbc, ERCPR and ADDq in the VU core.
I don't really see any difference from what it was before implementing the instructions, but here's the result: The latest microprogram also does some pipeline abuse, so I think a bit of rethinking of how the VU micro mode emulation work is going to be in order. Not right now though, since the micro mode isn't heavily used. I think I'll concentrate on something else for now. As you can see in that screen shot, there's a lot of texture corruption going on in the game UI elements, so I'll be working on fixing that tomorrow. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-06-02 00:00:00 |
Implemented missing instructions MOVE, MR32, ERLENG and MFP. I'll try to have all remaining missing instructions implemented tomorrow. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-06-01 00:00:00 |
Added support for fog in the GS handler.
The fog might be a little bit too strong, but it's kinda hard to evaluate. It seems to work well otherwise. I implemented instruction VITOF0 in the VU coprocessor code. I didn't think about it last night, but the VU1 is also used in some other places too. It is used to render the test tubes that appear at various places and it should be used to render the "cards" when creating new items. The microcode used to render the test tubes seems to be completely different from the one used for rendering the world map, but it seem to work well without any changes to the emulation code. But there's some unimplemented instructions in there though, so I'll need to check what needs to be completed tomorrow. |
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. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-05-30 00:00:00 |
Implemented instructions CLIP and FCAND.
Unfortunately, the microprogram does some fiddling with the MAC flags and I'm not quite sure which result it wants to test. I'm guessing it wants to test the result of the OPMSUB with FD set to 0, so I put some hack in there to force a write of the MAC flag bit the microprogram needs. The garbage polygons are clipped accordingly now, but there's too many polygons that are being clipped. It's probably related to the MAC flags fiddling, but I'm not sure yet. I'll try to improve the rendering further tomorrow. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-05-29 00:00:00 |
The garbage triangles seem to be caused by some vertices that have negative components. I think the microcode should be able to clip them, but the CLIP/FCAND instructions aren't implemented yet. I've been working on CLIP and I'll try to complete it tomorrow. |
Make 'Iris no Atelier: Eternal Mana' work.
Posted on 2006-05-28 00:00:00 |
Fixed some more things in the VIF implementation.
Implemented OPMULA, OPMSUB and B in the VU core. The world map is starting to show itself! It's still screwy though, and I'll be working on making it look better tomorrow. |
<< Older Log Entries | Newer Log Entries >> |