Thursday, March 14, 2013

Castlevania: Curse of Darkness

This is something that I've been meaning to talk about for quite some time now, but kept forgetting to blog about it and get everyone else's viewpoint on it...

Right now, the game that's been showing the most progress on Cxbx is Castlevania: Curse of Darkness.  What does it do?  Well, for starters, it DOES go ingame, but does have two key issues with the, and they are:

- Lack of 8-bit palettized texture support
- Incomplete and buggy vertex shader conversion.

The first one has been implemented rather well in Dxbx.  I just haven't gotten around to adding it in Cxbx.  This is something that I can most definitely do, since I have a basic .tga loader which I modified to support 8-bit textures and have created a very basic mini-3rd person shooter for Xbox once, so I have a means of testing it thoroughly.  In short, I'm not too worried about this atm.

But what DOES worry me is the vertex shader problems.  Honestly, I have absolutely NO IDEA how Cxbx converts the vertex shader to a readable form, nor do I understand how the vertex or pixel shader is converted on a real Xbox.  I know it should be straight forward, but I've always had trouble grasping it.

Fixing these two things will get the game playable beyond the shadow of a doubt.  Input, background music, and everything else works fine.  Keep in mind that this game was ported from PS2 and still contains some coding architecture that is best optimized for PS2.  Replacing the VU transformation code, all of the transformations are done in the vertex shaders.  The textures are also all palettized because of the PS2's video memory limitations (only 4MB, but lots of bandwidth).

But the biggest question is, do people want this?  Honestly, that's not a very big concern for me because I care more about the emu's success and compatibility than what people want to play from an immediate perspective.

So, please let me know what you all think of this.  I'm really curious to know.



  1. If what I've seen of PC graphics programming is any indication, and even given that the Xbox is 2004-era technology, I'd imagine vertex shaders are both something complicated to properly implement/emulate - but very important. And every extra game supported and playable is another step towards getting a comprehensively compatible Xbox emulator.
    No stock in leaving it 'till later, after all! Unless vertex shaders aren't important and you somehow magically discover a way to get Jet Set Radio Future/Panzer Dragoon/other Xbox game everyone without an Xbox wants to play working that needs to be worked on right now.

  2. Hello Shadow, this is Wayo. I worked with PvL and ShadowTJ some time ago, and I remember the discussion about the shaders. I believe PvL ended up trying to emulate the pushbuffer since he was having a hard time with them...

  3. I'd say you should work on whatever is more important for the overall compatibility and on what is more feasible. If there is something you could work on that would have the effect of making more games start or run in-game, and with less effort, then that should be a priority. Worry about the details once it's the most pressing issue.

  4. I think you just have to learn a bit more ;)

    Haha, just kiddin' with you - if you need help on the 8-bit textures, just ask. If I can find the time, I'll try to help you out with those.

  5. If I could see even one Xbox game go ingame at good speeds, and look good too, I'd be happy to donate to you. You're doing great, I wish you had more help. :(

    1. We've already had more than one Xbox game go ingame at good speeds! =)

    2. Donate button? You mean, people will click that? :P

  6. blueshogun96 it will work Jet Set Radio Future or still blocked?

  7. i wish to see all the new progress in cxbx i{m getting old

  8. Looks good - so far. I'd love to play Lords of Shadow, but I can't justify paying over $300 for either platform just to play one game (I'm not interested in any other games), and there isn't a PS3 emulator available. So, having an Xbox 360 emulator seems to be the best choice. Good Luck.

  9. I think you should focus the emulation on games exclusive for the xbox.