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

Menu Madness
Posted on 2009-10-11 23:28:29
I added the missing instruction (VMINI.I) that was preventing the main menu to show up.


Screenshot #000195 Screenshot #000196


In the first screen shot, we can see the main menu. For some odd reason, the game detects an hard drive within the virtual machine, so there the option to install the game... Also, the cursor is invisible, so it's a bit hard to see which item we're selecting. I don't really know why we don't see it.

In the second screen shot, we can see what looks like the game data load menu. There's no text in the menu. I think it might be related to a weird TEX0 GS register write I'm getting. The game generates a TEX0 register value which has a PSM value of 9, which isn't valid. It's not a CPU bug because the TEX0 value is a constant in the executable. It could be because of the way I handle register writes within the REGLIST GIF command.

The Land Is Gone
Posted on 2009-10-02 19:06:06
After going through a few nightly runs of the emulator to find out which instructions were missing, I'm finally able to show you that.


Screenshot #000193 Screenshot #000194


Very buggy, that's all I have to say. But there's still some things we can see properly. One weird thing is that we don't see the terrain at all. It also crashes after rendering one frame of the scene shown in the second screen shot, so that's why I couldn't show you more than that. It's also possible to press start to skip the intro, but that also causes a crash, caused by a unhandled instruction. There's a special case with the QFSRV instruction that I don't handle properly, that I'll have to fix. And I gotta check the cause behind the divisions per zero that are occurring earlier in the execution of the program.

So, there's still plenty of work to do. Hope I can show you better screen shots next time.

Unsupported Instructions
Posted on 2009-09-29 20:54:49
I implemented some more of the unhandled instructions that the game requires. It seems to rely a lot on the EE and VU specific instructions... I'm still not done with them, but I can get some more stuff to display.


Screenshot #000191 Screenshot #000192


Right after that second credits "page", the 3D scene is supposed to appear. I really don't know if it'll work because I saw a lot of weird things going on... floating-point divisions by zero and such kind of things. Yet, those credit screens work flawlessly.

Finally Final Fantasy
Posted on 2009-09-23 19:29:32
Well, I kinda gave up on Half-Life for the moment, not knowing where to look to fix the bugs and I decided to work on another game. Final Fantasy X is the name of that game. After more than 1 month of work, I'm finally able to see a bit of graphical output...


Screenshot #000188 Screenshot #000189 Screenshot #000190


I've spent most of the time trying to fix a problem with the game's sound driver initialization. It was caused by a SIF emulation bug that was happening when 2 SIF commands were issued at the same time by the EE. The game uses the MFIFO mode of the DMAC, so I added basic support for that. I'll probably have to complete it very soon though. I also had to implement a few missing instructions in the EE core (namely PMULTH, VITOF12, PADDW).

The next scene is the intro of the game. At the moment where it should be playing, it's hitting yet another unimplemented instruction, so it can't go any further. I'm kinda scared to see what the VU program used to render that scene is going to look like...

Computation Inaccuracies
Posted on 2009-08-11 17:53:24
Well, I decided to stop digging for the texture problem and try to fix the crash that occurs when the game needs to load news parts of the map. It was caused by a small problem in the SIFCMD IOP module emulation. With that fixed, we can see a little bit more of the game.


Screenshot #000185 Screenshot #000186 Screenshot #000187


The textures are very messed up and they seem to move with the level, which might mean that it's a problem with perspective correction or something. Unfortunately, the little train in the game stops working at the position of the last screen shot. I'm guessing that there a little floating point inaccuracy bug... It's one of those problems that are quite hard to debug. I'll try to see if there's something I can do about it.

Collateral Restoration
Posted on 2009-08-08 12:45:24
I tried Atelier Iris again last night because I was curious to know if the recent changes I've made for Half-Life fixed anything. Well, it fixed the display problems that occurred when Klein transforms the items on the map.


Screenshot #000184


I'd like to try Castlevania: Curse of Darkness too, but there's still some problems with the IOP emulation that prevents me from trying it.

I didn't work a lot on the emulator this week, but next week I'd like to try to fix that annoying texture problem. If I can't fix it, I'll move on to another game.

False Hope
Posted on 2009-07-27 19:19:34
I'm still trying to fix that texture coordinates problem. I thought I had found the cause, since there was a bug in the implementation of the MR32 instruction. I fixed it, but it doesn't change anything... Well, back to investigating and debugging.

DMA happiness
Posted on 2009-07-15 19:25:08
Well, I fixed the little DMA synchronization problems I had. I thought it would automagically fix everything, but it's not the case...


Screenshot #000183 Screenshot #000182


What it fixes though, is the randomly disappearing geometry and some texture mess-ups (like fonts showing up on a wall for example). The main title is also visible now. Well, it's back to figuring out why texture coordinates are screwed up.

(Also back to Windows XP since my hard drive that had Windows 7 decided to die.)

DMA woes
Posted on 2009-07-12 19:57:47
After some more investigation, I found out what was causing the texture corruptions. It's basically a synchronization problem between the DMAC and the VIF which causes some VIF packets to be skipped. It causes problems with the texture coordinates because the MASK register of the VIF isn't set correctly, hence causing indeterminate values (read, random) being written in the VPU memory.

I've been trying to think of a solution that would fix it, but I'm not quite sure about the right way of doing this.

Today, I've also made a minor change to the website, because the dates on the log entries were not rendered correctly on Internet Explorer and Google Chrome (and maybe others).

Z Buffered Crow Bars
Posted on 2009-07-02 17:24:35
I added the z-buffering stuff in the Direct3D9 GS handler.


Screenshot #000181


Nothing really special about that, especially that I now have a new GeForce video card that supports accelerated OpenGL on Windows 7. I'll be able to look for what's causing all the problems with the textures now.

<< Older Log Entries Newer Log Entries >>