![]() |
![]() |
![]() |
![]() |
![]() |
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 |
Prepare the v0.20 Release
Posted on 2006-04-07 00:00:00 |
Added software support for the PSM8 texture format to the OpenGL renderer.
Started working on the renderer settings dialog that will display the status of availability of OpenGL extensions that are used by the renderer and that will eventually allow the user to change some flags. I need to add one simple flag to control the way lines are rendered (either using GL_LINES or with GL_QUADS) and this dialog should be complete. |
Prepare the v0.20 Release
Posted on 2006-04-05 00:00:00 |
Added support for RGBA5551 textures in the OpenGL GS handler when it wasn't supported by an extension. I'll do the same tomorrow for the 8-bits /w CLUT ones. |
Prepare the v0.20 Release
Posted on 2006-04-04 00:00:00 |
Changed BNE, BEQ and DADDU to use 64-bits primitives instead of 32-bits ones.
Made the emulator auto-start the virtual machine upon loading an executable. Made the emulator report the failure of state saving and loading if it was occuring. |
Prepare the v0.20 Release
Posted on 2006-04-03 00:00:00 |
Rewrote SLTU using the new code generator.
I've decided to make use of more 64-bits instructions primitives instead of trying to simulate the 64-bits operations using 32-bits primitives. This will make some instructions way simplier and reduce the probability of bugs. It will also give an advantage to 64-bits processors that have real 64-bits instructions, if I decide to port the emulator to a 64-bits platform someday. Finalized the virtual file system configuration dialog. I'm going to keep optimizing some more instructions and fix some more bugs tomorrow. |
Prepare the v0.20 Release
Posted on 2006-03-31 00:00:00 |
Made the starting viewport size of the emulator 512x384 instead of 320x240.
Finished and tested the rewriting of the VUI128 module. There shouldn't be anything more to add in there now. Removed the crappy custom RLE compression used for the saved states and added the use of gzip compression using the zlib library. The saved states files are now much more smaller (but still bigger than 1MB in much cases) and the saving and loading operations are faster. Optimized the instruction prologue sequence a bit more. Before closing the optimization case, I want to modify some more instructions. I'm going to work on the SLT instruction family next and look for more pathetic cases. |
Prepare the v0.20 Release
Posted on 2006-03-29 00:00:00 |
Almost completed the rest of the cleaning job. All that is missing are some pseudo-instructions on the SSE target and adding the XOR pseudo-instruction. I'll be working on these tomorrow. |
Prepare the v0.20 Release
Posted on 2006-03-28 00:00:00 |
Cleaned about half of the VUI128 code generator module. I'm going to complete the second half tomorrow. |
Prepare the v0.20 Release
Posted on 2006-03-27 00:00:00 |
Moved all the code generator classes in the CodeGen namespace and removed all dependencies of the CCacheBlock class to these classes.
Fixed a bug with VUI code generation for MMX targets. Fixed a small bug that was caused by not setting the MIPS CPU context to zero upon reset. Changed the way the general purpose registers are stored : Instead of having 4 different arrays of 32 * 32-bits integers, where each array represents one section of a register, GPRs are stored using 32 * 128-bits integers. This will allow us to improve the VUI (Vector Unit Integer) code generator by using movq and movdqa directly instead of having to push all the register sections on the stack before loading it in a (X)MM register. Converted DADDU to use the new code generator. Tomorrow, I'll work on cleaning up the VUI code generator. |
Prepare the v0.20 Release
Posted on 2006-03-25 00:00:00 |
I've started working on the new code generator, and rewriting some instructions to use it. I've also optimized some of the epilogue code too.
I also made the tick function unnecessary to call in release builds by moving the vblank control stuff into the main loop. These changes made Ys go from 6~7 FPS to 9~10 FPS. Converting all the instructions to use the new code generator could take a while though. I'll try to have the most commonly used instructions implemented for this development and I'll get rid of the old code gradually. |
Prepare the v0.20 Release
Posted on 2006-03-24 00:00:00 |
I've been reading quite a bit about the code generation topic over the past days and decided to scrap my previous idea and go with another one which should do the trick. My idea is to keep track of the virtual stack and generate code based off the information present on this stack. I'll start playing with it tomorrow.
I've optimized the emitted code for the prologue and epilogue of an instruction and removed 5 instructions. There's a visible speed increase, but nothing really significant (maybe an half of a frame). |
<< Older Log Entries | Newer Log Entries >> |