![]() |
![]() |
![]() |
![]() |
![]() |
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 |
Fix VIF/VU emulation
Posted on 2008-04-01 00:00:00 |
After a little bit more than a week of work, I finally got the first scene of the demo to work again.
The frame rate is a bit better than the previous version, but it's nothing groundbreaking. Next step: make the second scene of the demo functional. |
Fix VIF/VU emulation
Posted on 2008-03-21 00:00:00 |
In this development, I wanna get the VIF/VU stuff back to a working state. I'm gonna use the "Slave of the VU" demo to do that since it's not doing very complicated stuff. I also want to add proper pipeline emulation for the instructions that store their result in the Q or P registers.
Currently, all I've got done is getting the old VIF module to compile again and linking the VIF stuff to the other modules that access it (DMAC, VM). I can now step through a VU microprogram once again, but I'm running into a lot of unconverted instructions. The next steps will involve creating functions that splits the microprogram into proper basic blocks for its execution because the current execution logic (the one that's used by the EE) doesn't apply to the VU execution logic. After that, I'll have to convert all the required instructions for the execution of the first microprogram in "Slave of the VU" to the new compilation system. |
Put the project back in its tracks (part 2)
Posted on 2008-03-18 00:00:00 |
I finally decided to base my idle loop skipper on the number of times a basic block is executed in a row: once a specific threshold is met for that value a V-Blank start (or end) interrupt is forced. It works well for Atelier Iris (runs at 45 fps+ on my computer), but it'll probably work less well on other games that have a more esoteric synchronization method. But since I'm not supporting a lot of games at the moment, I think I'll leave it as is for now.
Logically, the next part would be to fix the VU support, but I wanna do that on a demo first. That's what I'm gonna to work on tomorrow. There's also an annoying texture loading lag bug present when playing the game that kills all the pleasure of having high frame rates, but I'm gonna leave fixing that in another development (probably in the one after VU fixing). |
Put the project back in its tracks (part 2)
Posted on 2008-03-16 00:00:00 |
I've completed the conversion to the current recompilation system of all instructions needed for the normal "2D" (no VIF/VU) operation of the game.
I've also been checking into the idle loop skipping thing. I still don't really know how I'm gonna do that as there's many different V-syncing schemes used in the games which use different parts of the PS2 hardware:
Maybe the key lies in the detection of an "idle" state and the forcing a V-blank start interrupt when that state is detected... |
Put the project back in its tracks (part 2)
Posted on 2008-03-13 00:00:00 |
I finished the ISZ reader class. The format isn't as "open" as I thought it was... The specification doesn't mention the fact that some parts of the file are obfuscated. It took me a while to figure out how to get the right information off the obfuscated parts, but I got it to work correctly in the end.
So, all that remains is to add the class to the emulator project and allow binding the cdrom0 device with an ISZ disk image. After that, I wanna work on the idle loop skipper. |
Put the project back in its tracks (part 2)
Posted on 2008-03-11 00:00:00 |
Almost a year since the last development! What I said in that forum topic still holds... I've made some more progress since then and I'm currently working on making Atelier Iris work like it was before.
I'd also like to add an idle loop skipper and add support for the ISZ (Ultra ISO) disk image format. The MacOSX port is working well and is stable and I'm not really planning on adding stuff to it in a near future (except maybe a source disk image path selector). |
Put the project back in its tracks
Posted on 2007-04-18 00:00:00 |
Finished up a basic software renderer and now we can see some output from the demo :
That's it for this development. New development coming soon. |
Put the project back in its tracks
Posted on 2007-04-11 00:00:00 |
I've finished converting all the necessary instructions to run this demo under the 64-bits version. Now I gotta figure out what to do about the GS handler : either fix the OpenGL GS handler or work on a software GS handler.
I have no idea why the OpenGL GS handler is having trouble. It crashes as soon as a call to an OpenGL function from dynamically generated code is done... As for creating a software GS handler, it'd be interesting because we could have a "reference" renderer in which we could easily implement the features of the GS, unlike in the OpenGL GS handler where we need to use hacks for mostly everything. I think I'll work on the software GS handler right now, because I don't really need to implement much for this demo. Specifically, we just need to render what's in the frame buffer. I'll probably have this done by the next week. |
Put the project back in its tracks
Posted on 2007-04-04 00:00:00 |
Almost completed the conversion of the necessary instructions to make the demo work on the 64-bits version of the emulator. All that's left, I think, is BLEZ.
There is also some problems with the OpenGL GS handler which I'll have look into. I've created a dummy GS handler for now. Hope I can finally make the demo work by the time I post my next log entry. |
Put the project back in its tracks
Posted on 2007-03-28 00:00:00 |
This week I've completed most of the work on the base of the test engine. I shouldn't have to touch that much from now on.
Now I gotta work on making the demo run on the 64-bits version of the emulator. I've only converted "JR" to use the new code generation system, but lots more will follow. I'll also be adding test cases for newly converted instructions that I think are more sensible to bugs than others. I hope to have much of the conversion job done by the next week. |
<< Older Log Entries | Newer Log Entries >> |