![]() |
![]() |
![]() |
![]() |
![]() |
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 |
Releases and Website Updates
Posted on 2010-07-31 17:46:55 |
Even though I'm not posting here actively these days, I'm still working behind the scenes. First of all, I've released the emulator in its current state, because I'd like to integrate my new just-in-time compilation engine I've been preparing over the past year. I know it's probably going to break lots of stuff, so, I wanted to keep an image of the state of the emulator before the big changes I'm going to make. It's available in the revamped downloads page. I haven't tested it much, but it should be able to run Final Fantasy X with the same problems you've seen in the screen shots of my previous posts.
I've also released PsfPlayer. It's a PSF music format player I've been working on for almost 2 years now. It was mostly a test bed for my IOP emulation stuff, but it has evolved to a point where it can play most PSF/PSF2 songs available out there without major problems (there's still some obvious problems though). It's also available on the downloads page. I'll probably be posting more info about PsfPlayer sometime this week. The organization of the website changed a little bit. I've removed the 'News' section because I thought it was a bit useless in the presence of the current 'Dev Log' format. I've changed the downloads section to add a section for PsfPlayer and a section for the SVN repositories. The links were also updated, because some of them were broken... Stay tuned for more info. |
I can read!
Posted on 2010-01-13 19:26:03 |
After researching a bit more, I found that the fonts were not drawn correctly because of CLUT problems. The CLUT buffer wasn't updated every time the TEX0 or TEX2 register was accessed and it was causing some inconsistencies.
The next thing I'm going to do is to fix "Castlevania: Curse of Darkness", because it's still broken. Then I'm going to fix the VU flags problems I have in both Castlevania and Final Fantasy X. I'm also working on a better IPU emulation, one that will be error resilient. For that purpose, I've been working on a PS2 video player: The decoding part seems to be robust for now since it's able to play almost anything I'm giving it. I don't know if I'm going to make this a full fledged application because that would be a lot of work. I only bothered displaying the I-pictures. I also mucked around with the sound decoding part, but it's only dumping the PCM samples to the disk at the moment... So it's far from being complete. |
Almost playable
Posted on 2009-12-15 21:51:47 |
So, I fixed the memory card support for the game so I could load some saved games. That worked without much trouble. Next, I had to implement some instructions that weren't supported by the emulator. I needed to implement a few instructions to be able to see the field, a few more for the particle engine (I think) and finally some more for the battle mode.
As you can see, it's still very ugly, but I can move around everywhere without crashing. I'm going to check why the fonts are acting weird next. After, I'll try to see if I can fix the bugs that cause some of the uglyness by analyzing the simple monster arena scene. |
Incompleteness
Posted on 2009-11-27 18:24:06 |
I found out yesterday that I wasn't sending all the data the DIRECT VIF command was sending to the GIF. Final Fantasy X sends many small packets at the same time through a single DIRECT command and my implementation of DIRECT was just sending the first packet to the GIF.
With that bug fixed, the scenes appear to be more "complete". There's still a lot of problems with the VU, so most of the 3D scenes look weird. It doesn't crash anymore when playing the intro and we can see the whole thing. But it does crash when we start a new game, after the intro has finished playing. That's probably due to a another missing instruction that is encountered while trying to play a different scene. The fonts also don't show up properly. Can't say why for the moment. I'd also like to load one of my saved games to show you some game play, if that's possible. |
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.
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.
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.
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...
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.
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.
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. |
<< Older Log Entries | Newer Log Entries >> |