![]() |
![]() |
![]() |
![]() |
![]() |
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 |
Textured Crow Bars
Posted on 2009-06-29 18:43:39 |
Today, I implemented the various alpha blending formulas needed by this game.
I disabled the one that modulates a texture's alpha channel with the frame buffer because it was screwing things up a little bit. I'm going to fix the z-buffering tomorrow and I'll be able to start looking for what's causing the problems with the texture coordinates. |
Crowbar Power - DirectX9 version
Posted on 2009-06-28 18:00:07 |
These past two weeks, I've been busy with writing a new GS handler for Direct3D9. Turns out that the video card driver that ships with Windows 7 RC1 doesn't support OpenGL hardware acceleration. I tried on my previous installation of Windows which support OpenGL acceleration and the game was looking a bit better. So, that was partly the reason why all the textures were looking horrible.
Here's what I'm getting right now: Ok, it's not much better, but at least we can see the textures on the characters. I'm aware that the textures on the wall are modulated using an alpha map and that's done with a special alpha-blending formula I've yet to support in the GS handler. |
Half Life - Crowbar Power
Posted on 2009-06-07 00:00:00 |
Some unhandled case in the UNPACK command was causing the emulation thread to be stuck in an infinite loop. I fixed that and added support for some more masking functions of UNPACK, then the graphics from the game's initial scene appeared:
Obviously, a lot of things look broken. But most of the geometry seems to be correct: the guard character seems to be rendered perfectly and the level geometry also seems to be accurate. The biggest problem is texture mapping I think. It doesn't select the right textures at all and the texture coordinates look like they could be wrong too. |
Half Life - Crowbar Power
Posted on 2009-06-05 00:00:00 |
Well, seems that the game was using a different PadMan structure to store the status of the controller. I found out how it was laid out and could make the game detect the controller properly.
We can go and start a new game, but it seems to hang with a blank screen after the menu disappears. Gotta investigate that next. |
Half Life - Crowbar Power
Posted on 2009-05-30 00:00:00 |
Found out why I was getting incomplete text in that screen:
I overlooked the use of BC0T and BC0F by the game, so the DMA transfers weren't synchronized properly. The DMA controller has a special register which can control whether you want to set or not a special COP0 register upon completion of a DMA transfer. The game was using that to wait for the end of its VIF and GIF transfers. Without the BC0T and BC0F instructions, it couldn't wait for the transfer's end and would just keep going with a new one, creating the situation where some primitives were missing. Now, that screen is kinda weird. First, it tells us that no input device is connected. Second, it asks us if we want to create the data file on the memory card. It also tells us that it's accessing the memory card in slot one. Kinda disturbing... |
Half Life - Crowbar Power
Posted on 2009-05-24 00:00:00 |
Time for some PC game port action. The game is a very straightforward port of the original game without much modifications.
Right now, I can get some stuff to display. I'm kinda stuck there right now though. In that second screen, we can't see all the text : some letters seem to be missing. To get there I had to change a few things. First, I had to fix a problem with the IOP module loader. It wasn't taking the initial GP value in consideration. Also had to implement some functions from the "cdvdman" module and fix some bugs in the SIF handling on the IOP side. Also, the first output I had on the screen was all screwed up because of the lack of proper VU instruction scheduling. So, I had to add that in the VU emulation core, and now we've got what we have above. Now, I want to figure out why I can't see all the letters of that message. I need to know what they're telling me! |
Make 'Guilty Gear XX Accent Core Plus' work.
Posted on 2009-05-24 00:00:00 |
Well, I haven't updated this much as I've been doing progress very slowly. But, as for this game, I've decided that it was good enough for the moment. It's possible to play the game without any hangs, even though the frame rate is quite low.
The hangs were caused by some SPU registers problems while the game was trying to change the music. I had to hack something to make it work. I also improved the caching mechanism of the OpenGL renderer by calculating and saving hashes of cached textures. This improves the cases where the game uses the same address for two or more different textures. I said I wanted to make the music and sound work for this, but I'm not too sure about the way of making the SPU update properly along with the rest of the stuff (GS, Input, etc.). Also, the SPU rendering is quite slow for now (as demonstrated in the PsfPlayer program), so that would need some improvement before being usable in the main emulator. Well, this concludes this development. Next one coming right away. |
Make 'Guilty Gear XX Accent Core Plus' work.
Posted on 2008-12-29 00:00:00 |
Finally found the cause of the bug that was making the characters not appear properly on the screen. It was a problem in the code generator that messed things up when dividing by a constant.
Next, I want to improve the main emulation loop. This game dumps all its stuff to render once a v-blank is generated and currently the emulator generates v-blanks as if the main CPU was running at a very low frequency, so it kinda makes things weird. After that, I'd like to see why it's that slow. The game doesn't do anything intensive, so there's no reason it should be running at that speed. |
Make 'Guilty Gear XX Accent Core Plus' work.
Posted on 2008-12-18 00:00:00 |
Been a while, but I made some more progress on that development.
I finally added the IOP core I was working on during the development of a PSF sound file player into the main project and plugged it in with the SIF stuff. Seems to fix the problem that was making the game to be stuck just before the main gameplay part. Main problem right now is that we don't see any action at all. Sprites seem to be squished in the upper left corner for some reason. Gonna investigate that next. |
Make 'Guilty Gear XX Accent Core Plus' work.
Posted on 2008-10-15 00:00:00 |
Finally got the controller driver to work properly. Dunno why there's so many differences between the version I was emulating and the version this game uses... In any case, I was able to make a quick hack that works for this game.
With a little patch used to skip movie playing, we can now go into the menus. We can pretty much do everything, except for playing the actual game because it hangs while loading the combat mode. That's what I'm busy fixing right now. Oh, and don't get fooled by the fps values, it's not the actual speed of the thing. |
<< Older Log Entries | Newer Log Entries >> |