<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3053562213260104646</id><updated>2012-01-14T16:48:09.249-08:00</updated><category term='Dead to Rights'/><category term='Unreal'/><category term='source'/><category term='Xbox1'/><category term='emulation'/><category term='Panzer'/><category term='Cxbx'/><category term='Direct3D'/><category term='emulator'/><category term='Robotech Battlecry'/><category term='Petit Copter'/><category term='blueshogun'/><category term='Chihiro'/><category term='Xbox'/><category term='DOA3'/><category term='Unreal Championship'/><category term='Halo1'/><category term='Halo'/><category term='OpenGL'/><category term='Unreal Tournament'/><title type='text'>Blueshogun's Cxbx Dev Blog</title><subtitle type='html'>My blog dedicated to Cxbx, the Xbox Emulator.  DO NOT ask me for ISOs, ROMs or Beta Builds.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3614754578733370040</id><published>2011-11-02T16:09:00.000-07:00</published><updated>2011-11-02T23:07:40.375-07:00</updated><title type='text'>Xbox Dashboard (3944)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-xwN_EPpLY2I/TrHY5vnG2wI/AAAAAAAAAPQ/dhMSXqoCDMw/s1600/dashboard_3944_1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://4.bp.blogspot.com/-xwN_EPpLY2I/TrHY5vnG2wI/AAAAAAAAAPQ/dhMSXqoCDMw/s320/dashboard_3944_1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5670551892380801794" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-d3rxs-Wm5Ac/TrHY41UQ3yI/AAAAAAAAAPE/cJDbd00bQb4/s1600/dashboard_3944_2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://3.bp.blogspot.com/-d3rxs-Wm5Ac/TrHY41UQ3yI/AAAAAAAAAPE/cJDbd00bQb4/s320/dashboard_3944_2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5670551876732509986" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-WjnwcUi8Qrg/TrHY39ZBxJI/AAAAAAAAAO4/u15lLofMr9Y/s1600/dashboard_3944_3.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://4.bp.blogspot.com/-WjnwcUi8Qrg/TrHY39ZBxJI/AAAAAAAAAO4/u15lLofMr9Y/s320/dashboard_3944_3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5670551861720106130" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-GELeCx2Kobs/TrHY3SQrRNI/AAAAAAAAAOs/-IRIMmgrqBM/s1600/dashboard_3944_4.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://4.bp.blogspot.com/-GELeCx2Kobs/TrHY3SQrRNI/AAAAAAAAAOs/-IRIMmgrqBM/s320/dashboard_3944_4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5670551850142352594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I haven't done any serious work on Cxbx since June this year due to the fact that not only am I spending more time working on my own emulator but working towards getting a long term job (I've been getting quite a few good job prospects), but last night I wanted to play around with the source a bit.  And what do you know?  Something good came of it after all.  I managed to get the Xbox Dashboard (the one built with XDK 3944) to launch, so don't go dumping your own dashboard and send me crazy questions/complaints pertaining to their dashboard not emulating.  Only the very first retail Xbox Dashboard works so far, NOT any latter ones yet.  I have a copy of the 4920 dashboard, but I have to find it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most of the menus can be accessed without problems, but you may get some bogus results sometimes.  The time/date is automatically set to the time your computer is running.  The memory section doesn't work yet because I can't get the dashboard to accept the fact that I'm not emulating any memory cards!  It's probably because there's more to emulating XMountMURootA() then I thought; I just redirected it to XMountMU to get it over with.  Oh, and checking the system details will cause a crash.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quite frankly, I've been working at this for quite a while in the past, but like I always say, I tend to make the best progress after leaving it for a while, then coming back and getting something working!  It wasn't exactly "hard" (for the most part), just a matter of hacking my way around certain things.  I ended up adding quite a few new features to some existing implementations such as the "Y:" drive (which I just redirected to the current directory) and some other things I can't really remember.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Why emulate the dashboard?" Because I felt like it, for starters.  Second, I like the challenge, which may lead to fixing bigger bugs.  You know what I mean, right?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you look through the source code (at what I changed) you'll notice that HalReturnToFirmware doesn't return when the error code is 4 (the one that makes your Xbox show the multi-language screen saying your Xbox needs servicing).  That's just a silly hack to get passed the "Challenge Response Protocall" code since Cxbx doesn't properly emulate the kernel functionality to do it (i.e. XcSHAInit/Update/Final).  For a more detailed understanding if you don't know what that is, read this thread: &lt;a href="http://www.xboxhacker.net/index.php?topic=455.70;wap2"&gt;http://www.xboxhacker.net/index.php?topic=455.70;wap2&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don't have much else to say except I did comment out the Gamma Ramp code to prevent problems with certain games in fullscreen mode (Unreal Championship, Azurik: Rize of Perathia, and Robotech: Battlecry in particular).  If you need that functionality, just delete the comments in front of the PC equivelant in EmuD3D8.cpp.  Okay?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT: The Youtube video for those who want to see it in action: &lt;a href="http://www.youtube.com/watch?v=cIeMbH6ug-c"&gt;http://www.youtube.com/watch?v=cIeMbH6ug-c&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3614754578733370040?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3614754578733370040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/11/xbox-dashboard-3944.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3614754578733370040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3614754578733370040'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/11/xbox-dashboard-3944.html' title='Xbox Dashboard (3944)'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-xwN_EPpLY2I/TrHY5vnG2wI/AAAAAAAAAPQ/dhMSXqoCDMw/s72-c/dashboard_3944_1.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2640295807835959634</id><published>2011-05-14T18:16:00.001-07:00</published><updated>2011-05-14T19:11:16.472-07:00</updated><title type='text'>Still here.</title><content type='html'>Okay, there's been alot of talk/rumors going on here.  I'm really getting sick and tired of hearing all of this crap, so it's time I set the record straight.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For starters, people are saying (more like assuming) that I've discontinued working on Cxbx JUST because I left forums.ngemu.com.  This is NOT true.  I am STILL actively working on Cxbx from time to time, and that hasn't changed.  Lately, I haven't had too much to report though (sorry about that, I'll post that when I'm ready), but I want you all to think about this.  Did I actually say that I left the emulation scene?  Did I say I was done with Cxbx?  No, I didn't.  So why are you making these bulls@#% assumptions???  Gah, it makes me kinda mad knowing all of this has been going on!  I've said this so many times before, and I'll say it one more time.  It's not over until I say it is!!!!  Got it?  Good.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Second, some of you already know about this, others don't so I'll go ahead and say this now.  I haven't said much about this before, and I have almost lost some good friends on the net because of it (thank God I didn't), but, I've been working on a new Xbox emulator (and yes, it does work to a certain extent).  It's an LLE Xbox emulator because now that PCs are capable of handling it, there's no real need to use HLE.  Now, it's in the alpha stages and it doesn't do much atm (meaning it won't play your favourite games or any games right now), so don't start requesting games and compatibility features like ISO support right off the bat.  I won't get too detailed on it here.  I have a seperate blog for it and I'll post progress there.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Furthermore, until I'm ready to do otherwise, when I make releases, I'll be making "source-only" releases.  Meaning that if you can't compile the source code yourself, then you're out of luck.  The reason for this is because the last thing I want are n00bs banging down my door asking "when will game X work" and that "ur emu sux ass" and all of that BS.  If there's one thing I noticed, it's that there's a direct correlation with the "warez monkeys/freeloaders" and the inability to understand or appreciate source code, so that will eliminate alot of my headaches there.  Not trying to sound better than anyone else, but I get enough complaints with Cxbx as it is... really.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the blog link: &lt;a href="http://xenoborg-emu.blogspot.com/"&gt;http://xenoborg-emu.blogspot.com/&lt;/a&gt;.  Follow it!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Third, I do want to mention some things I've done with Cxbx.  I haven't gotten any new games playable lately, but I did get some progress done on a couple and learn a few new tricks.  I finally got Metal Slug 3 to do something, but everything is highly distorted, so I can't tell exactly what it does atm.  All I know is that it's at the menus and the sound does appear to work (but heavily distorted).  I also finally managed to make a bit of progress on Panzer Dragoon 1 the other day.  Surprisingly, after fixing the Panzer Dragoon ORTA demo and getting it ingame (still not playable), it started doing something.  All it does is play the intro video, but very slowly.  Unfortunately, you can't see it because Cxbx still isn't properly equipped to deal with render targets and stuff.  After that, it crashes.  I can't remember the details right off the bat, so I'll make another blog post about it later.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Okay, it's dinner time.  So I'm going downstairs to see what's for dinner.  I hope this clears up all the misconceptions.  Sorry for getting mad, It's just frustrating to see people making assumptions about my status on the scene without asking me first!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2640295807835959634?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2640295807835959634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/05/still-here.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2640295807835959634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2640295807835959634'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/05/still-here.html' title='Still here.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5598520341825685460</id><published>2011-04-17T20:09:00.000-07:00</published><updated>2011-05-16T22:39:49.715-07:00</updated><title type='text'>Think I Found the JSRF Problem and Other Random Cxbx stuff.</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-WB4EBHoqESI/Tau09uLQ5sI/AAAAAAAAANg/kmGrEePKk8U/s1600/Amped_1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://4.bp.blogspot.com/-WB4EBHoqESI/Tau09uLQ5sI/AAAAAAAAANg/kmGrEePKk8U/s320/Amped_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5596765934398269122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Meh, it's been a while since I've updated this blog.  Lately, I've been working IRL (which is great) and haven't done a whole lot on Cxbx (needed a break anyway), but I do have a few things I want to say though.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, I'd like to thank Evan "spidertrax" for sending me the copy of Amped in exchange for the game's sound track.  This game has been a major help in finding problems within Cxbx.  While the lack of XG signatures were obviously lacking, I was quite sure that it had to be the source of numerous problems.  I managed to get a dirty disc error out of it, but that was about it so far. (Screen above, obviously).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's start from the beginning.  When I got the copy of Amped, I noticed that there was something strange going on in EmuIDirect3DResource8_Register.  Cxbx's implementation interprets it as a vertex buffer, but wasn't the case.  So, I loaded up the .xbe file in IDA and applied the necessary .sig files to see if there was anything not being intercepted.  Turns out it was XGSetTextureHeader.  Never noticed that function before then, but I honestly don't see what makes it useful to begin with.  What the function does is fill in the variables within the structure (D3DTexture is not a real COM interface) and return a pointer that is ready to be passed into D3DResource::Register.  Sounds easy to implement right?  Yeah, but so far, I can't get it to work for some reason.  More on that later.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My initial thought after finding it was "I bet this is the culprit causing the trouble with other games like Crazy Taxi III!"  So, I pulled up Crazy Taxi III.  Did I find it there?  I sure did!  So after that, improving XG emulation has been a higher priority.  What was my next instinct?  Test JSRF, of course.  Was it there?  IIRC, yup, it was.  Is that what was causing the problem?  Not sure, but there were other XG functions being used in it, so I'm sure it's one of 'em.  With JSRF, the particular one that caught my interest was XGCompressRect.  Never noticed that one either, but if it's like XGSwizzleRect internally, then it needs to be emulated.  If I can ever get a working implementation of that function and all of the XGSet[x]Header function(s), then maybe it will finally work.  Honestly, JSRF has been kicking my ass for a long time, I'm running out of patience with it.  If it doesn't put out after THIS, I'm going to say "f@#% it" for a while and try again later.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5598520341825685460?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5598520341825685460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/04/think-i-found-jsrf-problem-and-other.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5598520341825685460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5598520341825685460'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/04/think-i-found-jsrf-problem-and-other.html' title='Think I Found the JSRF Problem and Other Random Cxbx stuff.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-WB4EBHoqESI/Tau09uLQ5sI/AAAAAAAAANg/kmGrEePKk8U/s72-c/Amped_1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6525011236515325696</id><published>2011-02-28T13:25:00.000-08:00</published><updated>2011-02-28T14:26:20.501-08:00</updated><title type='text'>Random Update</title><content type='html'>How it's going everyone?  Good, good.  I haven't gotten to work much on Cxbx for the past few weeks, but I do want to give at least a partial update of what I'm doing for it now.  I haven't made any breakthoughs, but hopefully what I'm working on will lead up to one eventually.&lt;br /&gt;&lt;br /&gt;To start off, I finally found out what's going on with Quantum Redshift, although I still can't find a solution to the problems.  The biggest problem is with the controller input.  Turns out that it calls XInputOpen and no other Input APIs are called after that!  That's strange.  It probably has to do with the initialization of gamepads and memcards within XInputOpen.  I'll have to hack away at that later.  Second, I added support for more descriptive error messages via dxerr8 library so when Direct3D resource creation APIs fail, I know exactly what the error was.  Turns out that texture that keeps failing to create is returning E_OUTOFMEMORY, which means Direct3D couldn't allocate enough memory to create it.  Keep in mind that this doesn't necessarily mean that I'm out of video memory.  According to GPU-Z, I'm not using much for this game.  Looking at the task manager, I'm not using more than 64mb or Ram either.  So I don't know what the heck the problem is *shrug*  Any ideas??&lt;br /&gt;&lt;br /&gt;Oh, about Gauntlet.  I've gotten a few questions about it.  Honestly, I never got the chance to get that game yet, so I haven't gotten it playable yet.  Which leads me to another issue: 8-bit palletized textures!  This issue is far to big to overlook.  Now that I have my debug Xbox out of public storage, I can actually write some code to load an 8-bit paletteized texture on the Xbox, and verify that it works on the PC.  So what I'll probably do is write a .PCX file loader supporting 8-bit textures and go from there.  How does that sound?  To be honest, the lack of 8-bit palettized texture support does cause quite a few games to have issues.  One of those games is Alter Echo (which is a prime target game for me).  Other games like Fusion Frenzy, Tetris Worlds, Smashing Drive and Soul Calibur II use it too.&lt;br /&gt;&lt;br /&gt;The other day, I was trying to pull Azurik apart to see what's causing all the problems.  I didn't find much yet, but I did get something good to come out of working on it that day.  First off, I added a fix that will enable you to sync your games to 30fps.  Games like Azurik and Halo will require this to play normally since they run way too fast at 60+ fps.  I did a sync to vertical blank twice every frame, and it works great.  Since my laptop only supports refresh rates at 60Hz, it probably won't sync to 30fps for higher refresh rates in windowed mode.  Have you ever tried to view a game in wireframe mode only to see nothing but missing textures?  I added a fix that will allow you to see the game in wireframe mode no matter how the game is rendered.  This was essential to finding out what was going on with Azurik (should have taken a screen shot to show the funky results).  Oh, I also added code to show the current primitive count in the title bar, that's something I should have done before!  So far, Azurik renders 88,000 primitives within the training room (one single isolated small room) alone!  For an Xbox game, that's alot. &lt;br /&gt;&lt;br /&gt;"That's cool in all, but did you find out what the problem is?"  Not yet, but given the fact that the game uses some unconventional methods for vertex shader creation, that might play a big part in it.  For starters, Azurik starts by creating some really wierd vertex shaders that equate nothing but the version number (vs.1.0) after the conversion.  I had to create a dirty hack to get around that to avoid crashing.  It's been a while since I've checked, but it looks like the vertex shader doesn't even match up to the vertex declaration to begin with!  Second, it uses D3DDevice::LoadVertexShaderProgram (or one of it's relatives) which is an API that none of us ever implemented yet.  Sounds like an easy fix, but it really isn't.  Should look into it because vertices might be transformed within a shader for all we know.  I'll make another post about the specifics relating to Azurik's vertex shader madness later.&lt;br /&gt;&lt;br /&gt;One more thing.  I'm still trying to find out what the heck is going on with JSRF and what's causing it to crash without any indication to the problem.  Not even the stack trace helps :/&lt;br /&gt;&lt;br /&gt;This is what I'm going to do.  This game uses XDK 4134, one XDK we don't have (making matters worse) and I ended up redirecting DSOUND for 4134 -&gt; 4627 since it appeared to work and most of it was similar or the same.  There might be a chance that there was a missed DirectSound call, so I'm going to remove that hack and start manually working on a new .inl file for DSOUND.1.0.4134.  That way, if the issue is DSound related, I can hopefully fix it easier.  It could be something else, but I've already worked my butt off to write/find specific signatures for this XDK.  Lastly, I'll do one more check for false positives.  That's caused problems in games before, so it's a possibility.  Let's just hope the game doesn't uses RTPatches!  Then you'd need a GeForce 3 or a GeForce 4 to play it. &gt;.&lt;&lt;br /&gt;&lt;br /&gt;Other than that, I haven't done much as of late.  Still have to continue my job hunts and that crap.  See ya!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6525011236515325696?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6525011236515325696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/02/random-update.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6525011236515325696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6525011236515325696'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/02/random-update.html' title='Random Update'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-7848910862197718881</id><published>2011-01-29T17:27:00.000-08:00</published><updated>2011-01-29T17:45:38.050-08:00</updated><title type='text'>More on Quantum Redshift</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUS-49_PCYI/AAAAAAAAANQ/XgC8JcDm97c/s1600/QuantumRedshift_4.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUS-49_PCYI/AAAAAAAAANQ/XgC8JcDm97c/s320/QuantumRedshift_4.jpg" alt="" id="BLOGGER_PHOTO_ID_5567784925258516866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TUS-4qjHqGI/AAAAAAAAANI/_zVUpIQVDfc/s1600/QuantumRedshift_3.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TUS-4qjHqGI/AAAAAAAAANI/_zVUpIQVDfc/s320/QuantumRedshift_3.jpg" alt="" id="BLOGGER_PHOTO_ID_5567784920040319074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/TUS-4eOOJEI/AAAAAAAAANA/ikpGtA44Ce8/s1600/QuantumRedshift_2.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/TUS-4eOOJEI/AAAAAAAAANA/ikpGtA44Ce8/s320/QuantumRedshift_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5567784916731438146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Okay, just wanted to make a quick update on Quantum Redshift (XDK 4721).  I'm going to update the status of this game to ingame with an asterisk or two for the due to the fact that it does show ingame gfx even though you can't interact with it.  It's still really buggy and I don't know what's causing those hideous bugs.  There's no push buffer usage, and the primitives are rendered via D3DPT_TRIANGLESTRIP.  Maybe I should check the FVF for unsupported flags.&lt;br /&gt;&lt;br /&gt;The primary issue is the fact that this texture keeps failing to create/resigter!  It's always the same 512x512xDXT1 texture (8 mip levels).  I don't think my VRam gets full, but I don't seem to have any problems creating a texture with the same specs outside of Cxbx.  Strange.... o_O  Meh, this project needs OpenGL so badly, and the Direct3D8 support for modern card drivers aren't too great either.  I did get a dirty disc error once, but that was before these errors started poping up.  Since the game is loaded in a seperate thread in the background while you are being given a tour of the map, it will keep going forever since the texture failed to create.  I wish the stupid thing would work.  Those texture specs are no big deal and take up minimal VRam.&lt;br /&gt;&lt;br /&gt;"Don't just complain about no OpenGL support, get it working!"  Hey, I'm working on it!  Xbox Direct3D is rather complex and it will take some time to get it working right, you hear?  Speaking of that, I think I finally found a permanent solution to our PixelShader problems.  Instead of converting pixel shaders to low level assembly (i.e. GL_ARB_fragment_program), we can use Cg and choose what ever fragment shader profile we want, or let Cg choose for us.  This way, we won't have to worry about any shaders being too long to convert properly.  It will raise the system requirements a bit, but it's a small price to pay for accuracy!  I plan to do the same for vertex shaders too.  Fortunately for us, _SF_ released his pixel shader conversion code years ago and gave coders permission to use it (as long as we give him credit of course).  Ahh, just can't wait to kick Direct3D8 to the curb!&lt;br /&gt;&lt;br /&gt;Just got these details a little while ago.  Hopefully I can find out what is causing controller input not to work for some games.  It's preventing me from making further progress. :(&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-7848910862197718881?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/7848910862197718881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/01/more-on-quantum-redshift.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/7848910862197718881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/7848910862197718881'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/01/more-on-quantum-redshift.html' title='More on Quantum Redshift'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JCm3YFlrKgE/TUS-49_PCYI/AAAAAAAAANQ/XgC8JcDm97c/s72-c/QuantumRedshift_4.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6191464923946027800</id><published>2011-01-29T14:31:00.001-08:00</published><updated>2011-01-29T15:04:24.691-08:00</updated><title type='text'>Whacked! is playable and more</title><content type='html'>I hope that this update is proof that I &lt;span style="font-weight: bold;"&gt;DO&lt;/span&gt; listen to user's requests!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSWUmV0RkI/AAAAAAAAAM4/CjC5dn02roo/s1600/Whacked_7.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSWUmV0RkI/AAAAAAAAAM4/CjC5dn02roo/s320/Whacked_7.jpg" alt="" id="BLOGGER_PHOTO_ID_5567740319970379330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TUSWUarQTsI/AAAAAAAAAMw/FoQ1tz1J5bQ/s1600/Whacked_9.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TUSWUarQTsI/AAAAAAAAAMw/FoQ1tz1J5bQ/s320/Whacked_9.jpg" alt="" id="BLOGGER_PHOTO_ID_5567740316839071426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSVvkFEvUI/AAAAAAAAAMo/DRSlxhRdvlY/s1600/Whacked_11.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSVvkFEvUI/AAAAAAAAAMo/DRSlxhRdvlY/s320/Whacked_11.jpg" alt="" id="BLOGGER_PHOTO_ID_5567739683708124482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/TUSVvfRP5WI/AAAAAAAAAMg/MWNNqy7hu2A/s1600/Whacked_13.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/TUSVvfRP5WI/AAAAAAAAAMg/MWNNqy7hu2A/s320/Whacked_13.jpg" alt="" id="BLOGGER_PHOTO_ID_5567739682417010018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSVvZAxWbI/AAAAAAAAAMY/ybIB3okwSqI/s1600/wsb.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSVvZAxWbI/AAAAAAAAAMY/ybIB3okwSqI/s320/wsb.png" alt="" id="BLOGGER_PHOTO_ID_5567739680737286578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSVvBnm96I/AAAAAAAAAMQ/kWMVJShKpgw/s1600/QuantumRedshift_1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSVvBnm96I/AAAAAAAAAMQ/kWMVJShKpgw/s320/QuantumRedshift_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5567739674457733026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/TUSVu58Z1yI/AAAAAAAAAMI/jAW8j35518M/s1600/SplinterCell_Demo1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/TUSVu58Z1yI/AAAAAAAAAMI/jAW8j35518M/s320/SplinterCell_Demo1.jpg" alt="" id="BLOGGER_PHOTO_ID_5567739672397469474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's kick off the new year with some cool updates, shall we?  Got lots to share, but so little time to share it all xD&lt;br /&gt;&lt;br /&gt;As you can see, the game known as Whacked! (XDK 4831) appears to be playable for the most part, but I do have some good news and some bad news about it, and hopefully the bad news won't apply to you.  But first, let me do a quick rant.  Whacked is my 3rd favourite Xbox game of all time, and it makes me feel great knowing that it's now playable on Cxbx and cheers to the guy that requested it too.  It only took me one night to get it working, fortunately.  This is how I got it working.&lt;br /&gt;&lt;br /&gt;When I first tried to emulate Whacked, I was ready to pull my hair out!  Cxbx did not initially support XDK 4831, and it's been on my todo list for a long time.  Knowing that 4928 is treated as XDK 4627, I figured that it would work if I did the same for XDK 4831.  Did it work initially?  Nope.  That was the most annoying part.  Eventually, I found out that it was missing a call to XapiApplyKernelPatches, which was thought to have originated in XDK 4928.  So I added that, and that XDK started working normally.  Did Whacked work after that?  Nope.  I was still getting crashes for some strange reason.  I couldn't figure it out to save my life at the time, then when I found it, I felt like a n00b!  Read on.&lt;br /&gt;&lt;br /&gt;A few days ago, I bought some used Xbox games from the GoodWill store for $5 USD each.  One of them was the Exhibition demo disc.  I know they are only demos, but I got it anyway because it said it had content for DOA3 (which was released prior to Xbox Live's launch, giving it potential value knowing that Xbox Live for Xbox1 is dead).  Now, I took it back to my place and did a dump of that disc and just for the heck of it, I tried the Whacked demo.  It crashed for the same reason.  So I pulled it up in IDA, and it turns out it was just a missing call to D3D::PixelJar::Lock3DSurface.  Easy fix, but it's a mystery why that was never added.  When I found out that was the thing stopping it from going ingame, I damn near slapped myself because I was stumped on this for a very long time.  Did Whacked become playable after that?  Still no -_-.  Took me a few hours to track the next problem, but I got it though.  Turns out that it was just a missing call to XMediaObjectCreateEx.  I wrote enough code to make the function fail, but the game still worked after that.  That's what fixed the game, and now other games that use it should have less problems, because honestly, I've been dodging this API for a while.&lt;br /&gt;&lt;br /&gt;"Okay, it works!  Now that's the good/bad news?"  Okay, sorry.  Had to get that off my chest :)&lt;br /&gt;&lt;br /&gt;While the game does appear to be playable, I do want to address a few things.&lt;br /&gt;&lt;br /&gt;Good:&lt;br /&gt;- Runs at stable frame rates with debug logging disabled.&lt;br /&gt;- Uses time based movement and every map appears to work so far.&lt;br /&gt;&lt;br /&gt;Bad:&lt;br /&gt;- I think I'm having driver issues with my PC and this game.  It likes to crash sometimes when creating a 128x256x16 texture.  Might not effect everyone.&lt;br /&gt;- Missing textures and post processing effects.&lt;br /&gt;- No sound (the audio is hilarious).&lt;br /&gt;- Only works in debug mode so far.  Playing in retail mode crashes.&lt;br /&gt;&lt;br /&gt;The point is it works, and when I get the opportunity to update the SVN, you can try it for yourself and see what happens.&lt;br /&gt;&lt;br /&gt;Next on our list is Quantum Redshift (XDK 4721).  This is another game that a user requested (which was also on my todo list).  I can't get passed the menus because the controller won't respond.  This is the same problem with Metal Arms.  This game makes use of blending effects that are only available on PC via OpenGL.  Last time I checked, Direct3D is not capable of using constant colours for blending.  Sucks, but I'm working on the OpenGL layer still, and it will be supported once it's finished.  This is another one of my favourite games.  It's a totally awesome futuristic racing game with an excellent soundtrack.  Highly recommended by blueshogun!  In the future, I'll look into the issues with this game.&lt;br /&gt;&lt;br /&gt;Next is World Series Baseball.  This image was submitted by Bill_gates (no, not the Microsoft founder), and since I don't have this game, I can't go any further on it yet.  Why the strange interlace-like look?  I dunno, looks like a problem with his ATI card drivers :/&lt;br /&gt;&lt;br /&gt;Lastly is Splinter Cell the demo version.  I also have the full version, but it doesn't play the intro video in Cxbx.  I haven't found out why, but I'll look into it later.  That game is a headache to deal with.  At least the demo shows that there is hope somewhere along the line for it though.&lt;br /&gt;&lt;br /&gt;So there you have it, some cool new updates and proof that I do consider user requests.  Don't make this your green light to make ridiculous requests like crazy, but requests are fine.  Just don't expect it to happen right away. &lt;br /&gt;&lt;br /&gt;Stick around,&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6191464923946027800?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6191464923946027800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/01/whacked-is-playable-and-more.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6191464923946027800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6191464923946027800'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2011/01/whacked-is-playable-and-more.html' title='Whacked! is playable and more'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JCm3YFlrKgE/TUSWUmV0RkI/AAAAAAAAAM4/CjC5dn02roo/s72-c/Whacked_7.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2197935721641298308</id><published>2010-12-21T18:40:00.000-08:00</published><updated>2010-12-21T18:50:56.279-08:00</updated><title type='text'>More on Innocent Tears &amp; [Native] XInput support.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TRFlaRZjlNI/AAAAAAAAAL8/8WmFj7KVsRE/s1600/InnocentTears_1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TRFlaRZjlNI/AAAAAAAAAL8/8WmFj7KVsRE/s320/InnocentTears_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5553331317546128594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Okay, I made a quick examination of the game's contents to see how tough it will be to get this game working.  So far, I hate to say it, but it's going to be rather tedious :(  This game contains multiple .xbe files besides the default.xbe itself that are loaded at different times while the game is running.  One for intros, gameplay, movie play back, etc.  It can be done, but it's going to be really annoying!  Fortunately, I learned how to handle this situation with Unreal Championship.  We'll have to launch the specified .xbe file each time in order to progress through the game.  Cxbx saves the launch data as CxbxLaunchData.bin and loads it when necessary so the game can function properly.  Then there are some new DirectSound APIs I have to add (one looks really daunting) and maybe we'll get somewhere.  Either way, the compat list is now 40!  Thanks to everyone who helped make Cxbx what it is today, including the fans and other enthusiasts that refused to let it die!&lt;br /&gt;&lt;br /&gt;"Wait, you added XInput support?"  Yup, XInput for the 360 controller is supported now, but for some reason, it works on some games, but doesn't work on others :(  I don't know why this is, but I'll continue to look into it.  Using DirectInput for the 360 controller isn't really desirable since we miss out on rumble and the d-pad, so I added it.  Btw, is this desirable for you guys?  If so, then as a result, Cxbx won't support Win2k anymore because XInput only works on XP and later.  Just so you know.&lt;br /&gt;&lt;br /&gt;Just thought I'd throw this quick update out there for you (while I actually have the chance).&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2197935721641298308?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2197935721641298308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/12/more-on-innocent-tears-native-xinput.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2197935721641298308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2197935721641298308'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/12/more-on-innocent-tears-native-xinput.html' title='More on Innocent Tears &amp; [Native] XInput support.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/TRFlaRZjlNI/AAAAAAAAAL8/8WmFj7KVsRE/s72-c/InnocentTears_1.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5636689246085251143</id><published>2010-12-21T13:14:00.000-08:00</published><updated>2010-12-21T15:02:12.542-08:00</updated><title type='text'>Random update(s) &amp; OpenGL project updates.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/TREZabbJF5I/AAAAAAAAAL0/aRapnNCVTWY/s1600/itear.JPG"&gt; &lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/TREZabbJF5I/AAAAAAAAAL0/aRapnNCVTWY/s320/itear.JPG" alt="" id="BLOGGER_PHOTO_ID_5553247757353424786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yup, that's right.  I'm still kicking!  And now that I have a spare moment, I thought I'd share some good news with you all.  Nothing spectacular, but hopefully this might interest someone out there :)&lt;br /&gt;&lt;br /&gt;As you can see here, the game known as Innocent Tears is showing stuff.  This screenshot was not taken by me, btw.  It was taken by Bill_gates (no, not THE bill gates, the one on ngemu!) and I don't have this game for myself (yet) but since it uses XDK 4627, I think getting it working passed this screen won't be too hard.&lt;br /&gt;&lt;br /&gt;The next thing I wanted to mention was that I finally figured out what was causing Azurik to hang in XP.  Turns out it was an Xbox exclusive flag being set that matched a PC flag.  The flags MEM_NOZERO (Xbox) and MEM_ROTATE (PC) have the exact same values and causes failures when used with MEM_COMMIT.  So all I had to do was omit that flag, and bam, it works again.  Why this flag combination works on Vista and later is beyond me, but meh, I'm glad I solved the problem on XP.  Azurik still looks rather horriffic going ingame (I've never seen such major distortions in any game to date), and Cxbx generates some funky pushbuffer results for it.  No clue how I'm going to emulate this game properly :(&lt;br /&gt;&lt;br /&gt;One more thing, I started writing my Xbox Direct3D -&gt; OpenGL 1.5 driver last week in my spare time.  So far, it works okay, but it still has a long way to go until it is ready to handle Cxbx.  It wasn't really hard or anything, just having to fix annoying bugs to get it to work and trying to support the large array of features and formats is going to take time.  It's not intended to replace the actual Direct3D .dlls, but it's (right now) a customized .dll that I aptly named d3d8_xbox.dll that is called instead of d3d8.dll, but you still have to link it with the project.  Right now, I'm just testing it against DXSDK examples to make sure it works okay.  Here's what I did so far:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;D3DDevice creation and OpenGL initialization for windowed and fullscreen modes.  Also uses glew to initialize the required extensions, saving me precious time and headache.&lt;/li&gt;&lt;li&gt;Primitive rendering via D3DDevice::DrawVertices[UP] and D3DDevice::Begin/End.  Right now, it uses immediate mode because my vertex array code kept crashing, but for now, getting it to work is the primary concern.  Any calls to D3DDevice::DrawPrimitive[UP] are redirected to the above by default.  Indexed geometry is not yet supported.  Also, every primitive type is supported, so no more primitive patching for non standard primitive types like D3DPT_LINELOOP, D3DPT_QUADLIST and D3DPT_QUADSTRIP!  This should run much faster in Robotech: Battlecry and Panzer since they rely on Quad rendering heavily.  Also, I'm going to stick with immediate mode for D3DDevice::Begin/End since that's basically what it is, and speed isn't critical for these related APIs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Very basic push buffer emulation via D3DDevice::BeginPush/EndPush.  Once again, I'm using immediate mode for it.  Works like a charm.&lt;/li&gt;&lt;li&gt;World, View and Projection matrices/transformations.  I found another D3D -&gt; OpenGL wrapper out there and got the idea for how to do it from that project (dxwgl, IIRC).  Before then, I couldn't figure out how to do it.  The solution was simple once I understood how it worked.&lt;/li&gt;&lt;li&gt;Lighting.  It works, but only when I don't set the light position :/  I wonder why that is...  Btw, is there an OpenGL equivelant to the "Range" field in D3DLIGHT?&lt;/li&gt;&lt;li&gt;Textures and surfaces work, but I only wrote support for D3DFMT_X8R8G8B8 and D3DFMT_A8R8G8B8 so far.  Textures use the standard 2D texture, but surfaces use texture rectangles since they are more efficient for such an operation.  Special care has to be taken into consideration when dealing with surfaces to make sure they behave properly when rendering normal 3D geometry with certain render states.  For instance, I have to disable almost every render/texture state prior to rendering it, but it pays off with speed.  My surface code is about 4x faster than Direct3D itself, even when using immediate mode!&lt;/li&gt;&lt;li&gt;Various render states.  I haven't finished adding all the renderstates, but many of the renderstates not supported by standard Direct3D have been implemented, so we no longer have to worry about those!&lt;/li&gt;&lt;/ul&gt;There are many more features to go, but give me a month, and hopefully it should be working at a satisfactory level.  The big thing that troubles me is converting the vertex/pixel shaders to OpenGL vertex/fragment programs.  I can use NVparse and do this easily, but then we'll be limited to NVIDIA cards and ATI users will be left out, or is there an equivelant library for ATI users?  If not, I'll try to use the ARB versions for both.  Okay?  If it works, then we can kiss many of our compatibility problems goodbye!&lt;br /&gt;&lt;br /&gt;So, there you have it.  This is everything I've been up to so far.  I'm still having it rough IRL (well, not too bad since I have stable housing now) but at least I have a bit more free time atm (but I can't spend it all on Cxbx unfortunately).  Isn't open source a great way to go?&lt;br /&gt;&lt;br /&gt;Shogun.&lt;br /&gt;&lt;br /&gt;EDIT: I found this today: http://realmforge.tigris.org/source/browse/realmforge/trunk/src/Axiom/RenderSystems/OpenGL/ATI/PixelShader.cs?revision=5&amp;amp;view=markup&lt;br /&gt;&lt;br /&gt;It's in C#, but maybe a bit of hope for the ATI users for a working vs/ps1.1 -&gt; ATI vertex/fragment program conversion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5636689246085251143?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5636689246085251143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/12/random-updates.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5636689246085251143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5636689246085251143'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/12/random-updates.html' title='Random update(s) &amp; OpenGL project updates.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JCm3YFlrKgE/TREZabbJF5I/AAAAAAAAAL0/aRapnNCVTWY/s72-c/itear.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3882071430836552117</id><published>2010-11-09T15:45:00.001-08:00</published><updated>2010-11-09T16:01:24.657-08:00</updated><title type='text'>Metal Arms and more!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndagP6N3I/AAAAAAAAALc/Si7wUJsHKKM/s1600/MetalArms_1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 264px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndagP6N3I/AAAAAAAAALc/Si7wUJsHKKM/s320/MetalArms_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5537700664231737202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/TNndacnq6dI/AAAAAAAAALU/DYNpPXS3E-s/s1600/MetalArms_5.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/TNndacnq6dI/AAAAAAAAALU/DYNpPXS3E-s/s320/MetalArms_5.jpg" alt="" id="BLOGGER_PHOTO_ID_5537700663257655762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndaGTMM5I/AAAAAAAAALM/l4glDk6-C7Q/s1600/MetalArms_6.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndaGTMM5I/AAAAAAAAALM/l4glDk6-C7Q/s320/MetalArms_6.jpg" alt="" id="BLOGGER_PHOTO_ID_5537700657266176914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndZ3bBhxI/AAAAAAAAALE/PH-zPyw37AQ/s1600/MetalArms_7.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndZ3bBhxI/AAAAAAAAALE/PH-zPyw37AQ/s320/MetalArms_7.jpg" alt="" id="BLOGGER_PHOTO_ID_5537700653272499986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNndmWJ4i5I/AAAAAAAAALs/MqfbYaCpvLA/s1600/TetrisWorldsLive_1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNndmWJ4i5I/AAAAAAAAALs/MqfbYaCpvLA/s320/TetrisWorldsLive_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5537700867680537490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNndbMcFGSI/AAAAAAAAALk/DYKADgB0O8A/s1600/XII_1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNndbMcFGSI/AAAAAAAAALk/DYKADgB0O8A/s320/XII_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5537700676093942050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, I realize I've been leaving you all in the dark for a while, and I'm sorry about that.  But please understand that I absolutely MUST take occasional breaks from Cxbx and the emulation scene.  Not only do I have a life outside of Cxbx (which you all can understand, I hope), but I can't overload myself or else I can't make good progress!  I usually do better when I take a break for a month or two after exhaustion, then come back full force.  The above screens are proof of this.  Let's get on with the updates (I only have 7 minutes).&lt;br /&gt;&lt;br /&gt;Lately, I've been putting some time and effort into emulating games with XDKs 5233-5558.  Since I have the XDKs necesarry and games that I've been neglecting, I thought I'd take the time out to see what I could get working.&lt;br /&gt;&lt;br /&gt;Metal Arms (First 4 screens, XDK 5558): This game is friggin awesome!  I've been working with this game since yesterday, and it's already looking good.  The intro videos play fine, but are a bit stuttery (as usual) and it reaches the menu screen just fine (but lacks textures, etc).  "So, can you play it?"  TBH, I don't know.  The controller doesn't respond at all, so I can't find out if it goes in game or not.  Keep in mind, that only the buggy screen represents in game gfx, not the others (they are all bink videos).  If anyone has this game, please try it next time I get the SVN updated.&lt;br /&gt;&lt;br /&gt;The other two screens are Tetris Worlds Live and XIII.  Sorry, I have to cut this short, I only have a few seconds.  I'll complete this update later.  Stupid library...&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3882071430836552117?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3882071430836552117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/11/metal-arms-and-more.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3882071430836552117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3882071430836552117'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/11/metal-arms-and-more.html' title='Metal Arms and more!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/TNndagP6N3I/AAAAAAAAALc/Si7wUJsHKKM/s72-c/MetalArms_1.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3415444063060779822</id><published>2010-11-04T15:23:00.000-07:00</published><updated>2010-11-04T15:46:12.752-07:00</updated><title type='text'>Gauntlet: Dark Legacy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNMzBfktdWI/AAAAAAAAAK8/K8VvOeLf1CQ/s1600/2qdor5z.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNMzBfktdWI/AAAAAAAAAK8/K8VvOeLf1CQ/s320/2qdor5z.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5535824467716830562" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/TNMzBfktdWI/AAAAAAAAAK8/K8VvOeLf1CQ/s1600/2qdor5z.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/TNMzBNxwZ0I/AAAAAAAAAK0/JI9y6kEe1TY/s1600/2n0stok.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/TNMzBNxwZ0I/AAAAAAAAAK0/JI9y6kEe1TY/s320/2n0stok.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5535824462939711298" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/TNMzBNxwZ0I/AAAAAAAAAK0/JI9y6kEe1TY/s1600/2n0stok.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNMzAYfafVI/AAAAAAAAAKs/e2lz6rYYlB8/s1600/2w5m1as.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNMzAYfafVI/AAAAAAAAAKs/e2lz6rYYlB8/s320/2w5m1as.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5535824448635698514" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TNMzAYfafVI/AAAAAAAAAKs/e2lz6rYYlB8/s1600/2w5m1as.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/TNMzAPZdnUI/AAAAAAAAAKk/LrI5DbjxVac/s1600/9qfgur.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/TNMzAPZdnUI/AAAAAAAAAKk/LrI5DbjxVac/s320/9qfgur.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5535824446194818370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yeah!  That's what I'm talking about, an RPG on Cxbx!  But hey, any progress is good progress.  Credit goes to LoveMhz for discovering this.  I have to get a copy of Gauntlet sometime.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Where have you been all this time?"  Relax guys, some emu authors disappear for years without saying anything, just be happy I only disappear for months at a time :)  But seriously, I'm in a lot of mess right now, and it's going to take a while to get it all sorted out.  Housing, jobs, credit, the stuff you hate dealing with.  Yeah, it sucks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enough of that, I'm tired of whining!  As you can see, Gauntlet: Dark Legacy (XDK 4242) is starting to work to a certain extent.  So far, it only goes to the menus (keep in mind that I only have these screens to go by for now).  When I get the game, I'll see what else needs to be fixed to get it working in general.  I'm hoping that it's just a few missing APIs preventing it from working, and if that's all, it just might work no problem.  So far, games that use XDK 4242 have been surprisingly easy to deal with (so far, I've only seen 3 games uses this XDK, including Smashing Drive and Slam Tennis) since it's basically the same as 4361.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"What's with all the texture bugs?"  Good question... until I actually get the game, I can't really answer that.  My guess is that the textures are being registered in the wrong formats (luminance, maybe?) or maybe it's a driver issue.  Who knows.  So when I get it, I'll see what I can do.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, my internet time has been reduced to little or none on a given day.  I miss having control in life!  Meh, could be worse...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3415444063060779822?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3415444063060779822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/11/gauntlet-dark-legacy.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3415444063060779822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3415444063060779822'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/11/gauntlet-dark-legacy.html' title='Gauntlet: Dark Legacy'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/TNMzBfktdWI/AAAAAAAAAK8/K8VvOeLf1CQ/s72-c/2qdor5z.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2806019350578202747</id><published>2010-09-26T19:34:00.000-07:00</published><updated>2010-09-26T19:57:22.190-07:00</updated><title type='text'>Pixel Shader 1.3 support.</title><content type='html'>This is something I've been meaning to write for a long time, but never got around to it.  The lay off is hitting me rather hard and I no longer have the net at my house.  This is bad, but not enough to stop me completely.&lt;br /&gt;&lt;br /&gt;So, what about pixel shader support?  Well, Cxbx has gone too long without it for starters.  Second, i didn't write it.  This the work of kingofc!  "What?  Kingofc is back?".  I wish... but defiance managed to get ahold of him and passed on his work to us.  I thought it would never happen, but it did!&lt;br /&gt;&lt;br /&gt;"So, how does it work?  Can I play game X now?".  No.  It just another improvement gfx wise.  It's not perfect and causes more crashes on certain instances.  Since I'm runnin XP, the exception handler doesn't always report crashes properly (just exits).  So until I can install Win7 on this laptop (painfully hard!) that won't work properly.&lt;br /&gt;&lt;br /&gt;Since I'm on my iPhone, I don't have much time to post, but I want to leave you with one more thing.  It turns out that Cxbx does run better on Vista than on XP.  I haven't had the liberty of trying Win7 because i can't get the stupid thing to install (stupid ACPI bios thing).  Example: Azurik absolutely refuses tonrun on XP and so far only works on Vista.  I hate Vista.&lt;br /&gt;&lt;br /&gt;So here's a small update for you.  Hoping to have more soon.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2806019350578202747?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2806019350578202747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/09/pixel-shader-13-support.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2806019350578202747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2806019350578202747'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/09/pixel-shader-13-support.html' title='Pixel Shader 1.3 support.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8896319391901292583</id><published>2010-07-17T18:27:00.001-07:00</published><updated>2010-07-18T00:35:10.604-07:00</updated><title type='text'>Random update(s)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TEJYtjWClKI/AAAAAAAAAKU/9U_yvhXyZvk/s1600/Namco_Museum_1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/TEJYtjWClKI/AAAAAAAAAKU/9U_yvhXyZvk/s320/Namco_Museum_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5495052034950468770" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/TEJYtjWClKI/AAAAAAAAAKU/9U_yvhXyZvk/s1600/Namco_Museum_1.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/TEJYtCvuwEI/AAAAAAAAAKM/UysJah8eS2I/s1600/BloodWake_1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/TEJYtCvuwEI/AAAAAAAAAKM/UysJah8eS2I/s320/BloodWake_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5495052026199851074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Well, I'd feel really bad if I didn't update this blog with something! =)  So I thought I'd at least do a few quick things for Cxbx.  Since it's on my resume, keeping it updated would help.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Even though the above screens aren't all to impressive, those two games have been driving me crazy as of late and getting it to do something is better than what it was doing before.  Which leads me to another thing I wanted to bring up.  Patrickvl and defiance have been talking about fixing how we emulate Critical Sections in Cxbx.  So far, it appears to be a rather big problem for this emulator.  Patrickvl did manage to fix a few things with Enter/LeaveCriticalSection() (hence the reason Dxbx does a better job of emulating Rayman Arena right now) and if I can get in touch with him and discuss how he fixed it, then we will see a lot more games working on Cxbx.  Since I'm a noob to how critical sections work (I've never used that feature before), I'll have to further educate myself on the subject just in case I have to figure this out on my own.  After taking a look myself, the big thing is that it just appears that the main problem is that the structures differ from the Xbox to the PC version.  This is bad, but either way, it should be emulated correctly.  For now, I guess I could just keep track of each critical section created (just like how Cxbx keeps track of every IDirectSoundBuffer* pointer created) and just save the valid params for each critical section.  If this works, then it should solve problems with various games such as Blood Wake, Rayman Arena, Taz: Wanted and Zapper and possibly more.  I'm assuming this will work, until I try it tonight, we'll see.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As of late, I've noticed that we've had some rather "problematic" kernel functions preventing numerous games from working correctly.  One of the most notorious of those functions is NtQueryFileAttributes.  Instead of dealing with that pain-in-the-ass-to-emulate function, instead I created a signature and emulated it on a higher level using the native GetFileAttributesA() function.  I did this when working games such as Dues Ex and Hunter the Reckoning and it worked like a charm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Why haven't you updated the SVN yet if you've done all this and more?"  Good question.  That's because I have a bit of bad news.  First of all, I was tracking down some bad DirectSound signatures for XDK 3911 when working on Blood Wake.  I commented those out and was planning on fixing them later (not really a problem to fix actually), but upon doing that, I broke Halo.  I assume most of you don't care about that, but it does get worse.  My latest build broke Turok!  Why?  I don't know yet.  All I know is that there's NULL surface causing the crash.  I can add sanity checks to get around that, but not sure if it's a major problem.  My debugging skills really suck, and so far I've been relying on other team members to help me debug stuff.  That needs to change, and fast!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One more thing, I know that you guys want to play games like Conker, Midtown Madness 3, Unreal Championship II, and other games using the D3D8LTCG library.  Well, I have some more bad news for you.  When I was working on adding further support for this library, I did get some of the XDK samples built under the LTCG release to work, however, the code inside these functions are dynamic, NOT static like with normal D3D8 library builds.  What does this mean?  It means that even though one signature might work for one app/game, it's not guaranteed to work for the next as the code and signature would change per game.  Furthermore, there is no standard way to dissassemble the library in IDA or use our automated tools to locate the functions.  So with that being said, Cxbx CANNOT emulate these games using the method it uses now.  The only way to do so is to actually create an HLE datasheet that manually specifies the location of each function similar to how Xeon works.  This is really a lot of work to do since most games require many functions to be HLEd and finding them all manually can take months (unless we had a dedicated team to search them out).  Now I see what Nisse was talking about =/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, that's all I wanted to share tonight.  In the mean time, I can still add a few updates here and there.  Just know that I'm not completely off of this project for any reason! =)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8896319391901292583?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8896319391901292583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/07/random-updates.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8896319391901292583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8896319391901292583'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/07/random-updates.html' title='Random update(s)'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JCm3YFlrKgE/TEJYtjWClKI/AAAAAAAAAKU/9U_yvhXyZvk/s72-c/Namco_Museum_1.jpg' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-4998968969271665682</id><published>2010-07-09T10:30:00.000-07:00</published><updated>2010-07-09T10:41:43.453-07:00</updated><title type='text'>Laid off</title><content type='html'>Yup, that's right.  As of today, I am officially laid off.  Of course, the bad news is self explanatory, but just so you all know, what little time I was allocating for Cxbx is now gone again!  Damn you economy!  Oh well, I'm too old to throw a tantrum over it and quite frankly, not only am I used to this, but I saw it coming anyway.  Now it's time to go back to my old job... and that is looking for one (which I sincerely f@#%ing hate with a passion because it's painfully hard).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Is Cxbx dead, then?"  No!  And STOP f@#%ing asking me that!!!!  If I've said it once, I've said it a million times... it's NOT over until I say it is!  *sigh*, sorry, I just get tired of n00bs asking this everytime I go for at least 1 month without updating Cxbx.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But while I'm at it, I want to ask you all a favour.  Please tell me what games are giving you the following error "EmuD3DDeferredRender/TextureState was not found!", okay?  I can pop in here and there and see if I can fix games that give us this error (as long as the game doesn't use the D3D8LTCG library (check your Xbe dump); I'm &lt;b&gt;not&lt;/b&gt; interested in those games atm).  That being said, you now officially have a reason to bug me :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, that's all for now.  In the future, I'll see what else I can do from time to time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-4998968969271665682?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/4998968969271665682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/07/laid-off.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4998968969271665682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4998968969271665682'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/07/laid-off.html' title='Laid off'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5953147231985138563</id><published>2010-06-21T13:55:00.000-07:00</published><updated>2010-06-21T14:30:23.912-07:00</updated><title type='text'>Cxbx svn r163</title><content type='html'>Yup, just in case you haven't seen it already, it's there!  I just wanted to make a breif update about yet another breif update I made to the SVN.  Many of you noticed that Panzer stopped working with r162.  Well, I fixed that last week and now you can all fool around with Panzer again if you feel like it.&lt;br /&gt;&lt;br /&gt;"Speaking of Panzer, how's that going?"  Better than before actually.  There's another contributor who managed to fix some issues with it a while ago.  So far, there's still more to fix, but it's leading up to some very interesting bug fixes.  With the right hack, speed will be closer to that of playable, and when we fix the problem with EmuIDirect3DDevice8_SetRenderTarget, it should work properly.  The problem is that Cxbx likes to resize textures and render targets to it's liking and if the sizes are not compatible with the screen resolution, SetRenderTarget fails.  Sounds easy to fix, but we'll look into it.  If it works, then no more fullscreen quad overlapping the 3D scene because everything will be rendered on top of that!  If _SF_ (Xeon) can do this, so can we!&lt;br /&gt;&lt;br /&gt;Just thought I'd do a quick update.  I'm still rather busy and trying to move into a new place closer to my job.  Once that happens, I'll have more time for Cxbx.  Until then....&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5953147231985138563?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5953147231985138563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/06/cxbx-svn-r163.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5953147231985138563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5953147231985138563'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/06/cxbx-svn-r163.html' title='Cxbx svn r163'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5105258782777002246</id><published>2010-05-13T21:04:00.000-07:00</published><updated>2010-05-13T21:22:41.432-07:00</updated><title type='text'>Going to be busy for a while.</title><content type='html'>Okay, before I start getting numerous messages about my inactivity, I'll spare you the suspense of wondering what's going on.  First of all, I finally have a new job.  Blueshogun now works at Microsoft (the enemy, lol).  After all this time applying, I finally got it.  It's a rather rewarding career (although the project management isn't 100% stable) and I really take pride in what I am doing here.  So in short, I won't really have time for Cxbx for quite a while.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"What are you going to be doing at Microsoft?"  Quite frankly, that is classified information, so I can't spread that information around, plus I don't want everyone nagging me with silly requests anyway.  Yes, it's Xbox 360 related, but that's more than enough information given there.  If you're aware of what's going on in the Xbox 360's new line up of new features, chances are you know what I'm doing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"So, how come you won't have time for Cxbx?  Is Microsoft working you overtime?"  No, that's not it.  My biggest issue is my commute.  Since I'm really far away from Microsoft's location and I don't own a vehicle, I have to use public transportation.  After traveling over 40 miles and transferring from 3 buses a day for both ways, my daily commute to and from work is 3 hours!  So working 8 hours a day, plus 6 hours of commuting time, that's 14 hours a day I'm out of the house!  I work only on weekdays, but I need to dedicate those available weekends to take care of important business IRL.  "Why don't you move closer to your job?"  That's the plan, but I have to find an affordable and suitable place to move into first.  The Seattle area in general is not a cheap place to live, and when you think you find a good deal on apartments, you have to really look into it because sometimes it will come back and bite you in the @$$.  Having said that, even more of my time is spent looking for a new place to live.  Trust me, I didn't choose to live where I am now, and I don't plan on making the same mistake twice.  Catch my drift?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So yeah, that's what's going on right now.  I have lots of work ahead of me and I don't know when I'll be readily available to work on Cxbx again.  Right now, I have to worry about my financial future and get that straight before I can worry about things like this right now.  Hopefully, you understand.  Thanks for supporting me all these years!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5105258782777002246?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5105258782777002246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/05/going-to-be-busy-for-while.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5105258782777002246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5105258782777002246'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/05/going-to-be-busy-for-while.html' title='Going to be busy for a while.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5075535574246466904</id><published>2010-05-03T11:13:00.000-07:00</published><updated>2010-05-03T13:29:41.825-07:00</updated><title type='text'>The race for 64-bit support is on!</title><content type='html'>Over in the NGemu forums (&lt;a href="http://forums.ngemu.com/cxbx-official-discussion/134748-cxbx-64bits.html"&gt;here&lt;/a&gt;) we have a new dev named tabai working on 64-bit support!  So far, it's looking pretty good, but clearly, there is one bug to be fixed.  Since I never did understand how FS and LDT worked on Cxbx, I'm sure that I could learn a thing or two from his work.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I attempted to fix the 64-bit issue myself, but I never could figure it out.  The work that is being done is originally based off of the original fix from Robert Yates.  I won't say too much about him as I'd prefer to keep his career details and contact information confidential, but tabai has been continuing to add on to his work so that both Debug and Release builds are supported.  I don't have a 64-bit machine available to test this on (my 64-bit OS desktop is still in Indiana unfortunately) so I'll just have to take his word for it.  He has posted his changes in EmuFS.cpp/h and I do plan to add that to my SVN once everything is sorted out.  Hopefully we can have this fix working for both 32-bit and 64-bit OSes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just keeping everyone up-to-date on what's going on with this issue as more and more users are complaining about it :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5075535574246466904?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5075535574246466904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/05/race-for-64-bit-support-is-on.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5075535574246466904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5075535574246466904'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/05/race-for-64-bit-support-is-on.html' title='The race for 64-bit support is on!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2145839573348603017</id><published>2010-04-25T15:27:00.000-07:00</published><updated>2010-04-25T21:53:20.809-07:00</updated><title type='text'>Kabuki Warriors</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S9UZUDDDjUI/AAAAAAAAAKE/MLCCGdDVkto/s1600/Kabuki_5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 261px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S9UZUDDDjUI/AAAAAAAAAKE/MLCCGdDVkto/s320/Kabuki_5.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464301555090165058" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S9UZUDDDjUI/AAAAAAAAAKE/MLCCGdDVkto/s1600/Kabuki_5.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S9UZT65JWnI/AAAAAAAAAJ8/ApDB-rbG07k/s1600/Kabuki_6.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S9UZT65JWnI/AAAAAAAAAJ8/ApDB-rbG07k/s320/Kabuki_6.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464301552901118578" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S9UZT65JWnI/AAAAAAAAAJ8/ApDB-rbG07k/s1600/Kabuki_6.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S9UZTsE6DhI/AAAAAAAAAJ0/-j3XjdTXYZc/s1600/Kabuki_7.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S9UZTsE6DhI/AAAAAAAAAJ0/-j3XjdTXYZc/s320/Kabuki_7.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464301548923915794" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S9UZTsE6DhI/AAAAAAAAAJ0/-j3XjdTXYZc/s1600/Kabuki_7.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S9UZSycXowI/AAAAAAAAAJs/MyM6nyODJOM/s1600/Kabuki_8.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S9UZSycXowI/AAAAAAAAAJs/MyM6nyODJOM/s320/Kabuki_8.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5464301533453067010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Okay, before I go any further, I'd like to apologize to everyone who feels that I have been unnecessarily angry as of late.  I've just been under a lot of stress lately IRL and it's been driving me crazy!  Getting a job in the US these days is really hard (be it IT or even McDonalds), especially when you're still in the entry level stages.  I've been without a full time job since September of last year and getting a job at this point (anything) is very important.  So if I offended anyone, I'm sorry :(&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see, the game Kabuki Warriors (XDK 3911) is reaching menus so far(ingame is not confirmed yet, and I'll explain that shortly).  I had a very positive feeling that this game would have some level of compatibility with Cxbx for some reason (lately, my emulation instincts have proven quite accurate).  It looks like all my work on XDK 3911 is paying off, big time!  Still have lots of work to do on this particular XDK by fixing the ordering of Deferred Render/Texture States, but that will be an easy fix once I get around to it.  TBH, so far, I didn't add anything in particular to get this game showing stuff.  All the stuff I added for Azurik and Halo must have been enough to get it this far.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"So, what's the problem?"  Truth is, I don't really know what's causing problems.  Upon trying to go ingame, conflicts with my display adapter on a driver level occur.  I'm assuming that a certain Direct3D function is causing this.  What sucks is that DirectX 8.1 is greatly depreciated and it's not easy to debug.  I'm convinced that if we were using at least Direct3D9 or OpenGL, this would not really be an issue.  The best thing I can think of is to find out if any functions are returning a specific error code (D3DERR_DRIVERINTERNALERROR).  It would be nice if I had my other machines to test this on, but sadly my laptop is the only available computer capable of running Cxbx in this household.  However, I do hear some background music and voices upon trying to get ingame.  Right now, I can't actively work on finding this problem, and tomorrow I have another interview.  Hopefully I get this job because it will really help me and my sister through these tough times (and maybe a lucky/unsuspecting British lady; and no, she's not my girlfriend ^^).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Okay Shogun.  What's the deal with emulating all these crappy games??  I want to play DOA3, JSRF, Ninja Gaiden and Otogi!"  Okay, calm down!  Don't you think I work on those games too?  Let's look at it this way.  It's rather common to have an easier time emulating a crappy game then a top notch game.  Not saying Turok, Futurama, Smashing Drive and Robotech: Battlecry are bad games (well, some of you might not like them), it all depends on how the game was programmed.  Crappier games tend to use more generic and uniform coding methods than the more popular ones.  Not saying the programmers of these games didn't do a good job of programming these games though, but sometimes programmers will try to take shortcuts by using code already contained in the XDK samples.  Emulating XDK samples with Cxbx has been the most effective method of improving it, so a game like Petit Copter (which is almost totally based off of the TechCertDemo in the XDK) will naturally be easier to emulate.  That's just the way it is.  But look on the bright side, getting crappy games like Kabuki Warriors working will increase your chances of playing a better game such as DOA3 (which is still bugging the hell out of me with it's multi-threading issues).  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Side note: I own this game, but never actually got around to playing it for myself.  I heard that this game got some really bad reviews and some claimed it to be one of the worst Xbox games out there, but I won't make that kind of judgement until I play it.  I won't discourage anyone for trying this game themselves, but get a load of this quote below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 19px; font-family:sans-serif;font-size:13px;"&gt;&lt;i&gt;"I literally won a match just bashing the controller against my ass. I wish I was joking, but the score is seriously Kabuki Warriors zero, my ass one."&lt;/i&gt; - Andy McNamara (Game Informer)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 19px; font-family:sans-serif;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;I'd really like to say more, but I need to get ready for tomorrow.  So thanks for checking out my blog and wishing me well on this project.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Shogun.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2145839573348603017?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2145839573348603017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/kabuki-warriors.html#comment-form' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2145839573348603017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2145839573348603017'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/kabuki-warriors.html' title='Kabuki Warriors'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/S9UZUDDDjUI/AAAAAAAAAKE/MLCCGdDVkto/s72-c/Kabuki_5.jpg' height='72' width='72'/><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3756240381373167676</id><published>2010-04-18T11:28:00.000-07:00</published><updated>2010-04-18T11:45:58.679-07:00</updated><title type='text'>Cxbx compat list is over 30 now!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8tRKFjT-JI/AAAAAAAAAJk/jNni0ZsJ1qo/s1600/cxbx_r160_release_burnout.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8tRKFjT-JI/AAAAAAAAAJk/jNni0ZsJ1qo/s320/cxbx_r160_release_burnout.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5461548206847686802" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.4shared.com/video/gQMmObuw/cxbx_r160_release_blade_2.html"&gt;Blade II video&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.4shared.com/video/gQMmObuw/cxbx_r160_release_blade_2.html"&gt;&lt;/a&gt;Wow, the progress just keeps on coming!  If you look at the compatibility list, you'll see that the games list is now over 30!  That's been my target for quite some time now.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks to some "unofficial" beta testing done by BlackDaemon, two more games are proven to show some stuff.  None of which are playable or in-game, but since I never had a chance to try these for myself, now I know that there's a chance for fixing these games for the future.  I do have Blade II (XDK 4627) but I don't have Burnout (XDK 4361).  Since I have those XDKs, fixing the two doesn't sound hard initially, but like I always say... No guarantees!  Don't have much to say right now (busy), just keeping you all updated :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3756240381373167676?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3756240381373167676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/cxbx-compat-list-is-over-30-now.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3756240381373167676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3756240381373167676'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/cxbx-compat-list-is-over-30-now.html' title='Cxbx compat list is over 30 now!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JCm3YFlrKgE/S8tRKFjT-JI/AAAAAAAAAJk/jNni0ZsJ1qo/s72-c/cxbx_r160_release_burnout.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6057752124657323242</id><published>2010-04-16T20:45:00.000-07:00</published><updated>2010-04-16T20:51:48.245-07:00</updated><title type='text'>SVN Revision 159</title><content type='html'>Yup, it's here.  The SVN is finally updated.  Thanks to cmccmc for teaching me how to use TSVN [properly], I can now just right click the folder and update any files necessary.  All is new, and sorry it took so long.  It was a pain in the butt trying to find out myself.  I guess my IQ is getting lower...  *sigh* I have myself to blame, but oh well.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yes, it plays Robotech: Battlecry and should play everything else on the list.  Please note that some games are NOT guaranteed to work for everyone (this is especially true for Panzer if you're brave enough to try it).  If you want, feel free to post your concerns here or on the forums. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now that I know how to use TSVN better, I'll keep it updated more often.  Promise.  Happy?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6057752124657323242?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6057752124657323242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/svn-revision-159.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6057752124657323242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6057752124657323242'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/svn-revision-159.html' title='SVN Revision 159'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5078109815662710278</id><published>2010-04-12T13:14:00.000-07:00</published><updated>2010-04-12T14:47:00.973-07:00</updated><title type='text'>Robotech: Battlecry is playable!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8OT89ccqBI/AAAAAAAAAJc/DzQFhpXMUNQ/s1600/RB1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8OT89ccqBI/AAAAAAAAAJc/DzQFhpXMUNQ/s320/RB1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5459369848798488594" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8OT89ccqBI/AAAAAAAAAJc/DzQFhpXMUNQ/s1600/RB1.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8OT8c_zrfI/AAAAAAAAAJU/zc-O4jp0BQY/s1600/RB2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8OT8c_zrfI/AAAAAAAAAJU/zc-O4jp0BQY/s320/RB2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5459369840088428018" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8OT8c_zrfI/AAAAAAAAAJU/zc-O4jp0BQY/s1600/RB2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8OT74UG18I/AAAAAAAAAJM/a_2o-m2UamA/s1600/RB3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8OT74UG18I/AAAAAAAAAJM/a_2o-m2UamA/s320/RB3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5459369830241458114" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8OT74UG18I/AAAAAAAAAJM/a_2o-m2UamA/s1600/RB3.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8OT7r901oI/AAAAAAAAAJE/YTn4tYOUsoM/s1600/RB4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8OT7r901oI/AAAAAAAAAJE/YTn4tYOUsoM/s320/RB4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5459369826926777986" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8OT7r901oI/AAAAAAAAAJE/YTn4tYOUsoM/s1600/RB4.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8OT7J8xLxI/AAAAAAAAAI8/C90nC9byNho/s1600/RB6.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8OT7J8xLxI/AAAAAAAAAI8/C90nC9byNho/s320/RB6.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5459369817795538706" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8OT7J8xLxI/AAAAAAAAAI8/C90nC9byNho/s1600/RB6.jpg"&gt;&lt;/a&gt;&lt;br /&gt;Wow, I've been making quite a bit of progress over the past few days lately!  Interesting how all this fell into place over the weekend.  Taking a break from Cxbx can do wonders.  When I do come back from taking a break, I usually make new discoveries and fix lots of bugs.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As the title says, Robotech: Battlecry (XDK 4721) is now considered playable (but with an asterisk).  "What's the asterisk for?"  Last night, me and Defiance have been putting our heads together fixing some bugs in Cxbx.  We did manage to fix quite a few things (mainly PushBuffer related stuff which fixed a few bugs in Panzer as well and got proper bilinear filtering in XDK 3911).  The biggest thing was changing how Cxbx reacted to a certain scenario.  It doesn't look like a proper fix, but it worked.  At first, it was only working for Defiance for some reason.  Initially, I assumed it was another problem relating to Vista and XP again (where XP is more tolerant of the situation).  I just fixed that a few minutes ago, and now it appears to be completely playable.  Be advized, it does have bugs.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The biggest issue is that the skydome doesn't render, so when looking to the sky, it starts trailing.  This only happens when you start playing though.  During a cutscene or when the game is paused, it works fine.  Why that is, I really don't know.  Also, I myself am having some speed issues with my laptop.  I'm running an HP dv2700 (not HP's greatest model, many were faulty and had a recall).  It's a nice laptop and does pretty well, but for some reason, it likes to slow down randomly for about 30 seconds, then go normal speed again.  On average, I get 20 fps ingame and generally runs smoothly.  Since quad rendering and EmuIDirect3DDevice8_DrawIndexedVertices aren't very fast atm, you can expect this game to have a few speed issues.  Other than that, the game is playable.  I played a few levels myself and haven't had any major issues or crashes at all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, that's my update for today.  Stay tuned for more updates as they surface.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5078109815662710278?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5078109815662710278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/robotech-battlecry-is-playable.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5078109815662710278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5078109815662710278'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/robotech-battlecry-is-playable.html' title='Robotech: Battlecry is playable!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JCm3YFlrKgE/S8OT89ccqBI/AAAAAAAAAJc/DzQFhpXMUNQ/s72-c/RB1.jpg' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-4252885517933589491</id><published>2010-04-10T23:40:00.001-07:00</published><updated>2010-04-11T02:04:37.631-07:00</updated><title type='text'>Azurik: Rize of Perathia In-game!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8FvFXgXdoI/AAAAAAAAAIU/tIIKJXC_3Xk/s1600/Azurik2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8FvFXgXdoI/AAAAAAAAAIU/tIIKJXC_3Xk/s320/Azurik2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458766361349551746" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8FvFXgXdoI/AAAAAAAAAIU/tIIKJXC_3Xk/s1600/Azurik2.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8FvE3LIanI/AAAAAAAAAIM/pXrB2BHPqIQ/s1600/Azurik3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8FvE3LIanI/AAAAAAAAAIM/pXrB2BHPqIQ/s320/Azurik3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458766352670550642" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8FvE3LIanI/AAAAAAAAAIM/pXrB2BHPqIQ/s1600/Azurik3.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8FvEkvfPgI/AAAAAAAAAIE/kHGERiNxDVk/s1600/Azurik4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8FvEkvfPgI/AAAAAAAAAIE/kHGERiNxDVk/s320/Azurik4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458766347722767874" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8FvEkvfPgI/AAAAAAAAAIE/kHGERiNxDVk/s1600/Azurik4.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8FvEVo31yI/AAAAAAAAAH8/4KG4xrVzBCk/s1600/Azurik5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8FvEVo31yI/AAAAAAAAAH8/4KG4xrVzBCk/s320/Azurik5.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458766343668487970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8GDd6mlg5I/AAAAAAAAAI0/TSEk8l4ofkU/s1600/Azurik6.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8GDd6mlg5I/AAAAAAAAAI0/TSEk8l4ofkU/s320/Azurik6.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458788773320295314" style="cursor: pointer; width: 320px; height: 262px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8GDd6mlg5I/AAAAAAAAAI0/TSEk8l4ofkU/s1600/Azurik6.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8GDdYsyuhI/AAAAAAAAAIs/kX4tiLRTUxc/s1600/Azurik8.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8GDdYsyuhI/AAAAAAAAAIs/kX4tiLRTUxc/s320/Azurik8.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458788764219521554" style="cursor: pointer; width: 320px; height: 262px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S8GDdYsyuhI/AAAAAAAAAIs/kX4tiLRTUxc/s1600/Azurik8.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8GDdDroXWI/AAAAAAAAAIk/pyuniZ2kjHk/s1600/Azurik9.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8GDdDroXWI/AAAAAAAAAIk/pyuniZ2kjHk/s320/Azurik9.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458788758577503586" style="cursor: pointer; width: 320px; height: 262px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I never thought I'd say this, but Cxbx is finally going in-game with my favourite Xbox game, Azurik: Rize of Perathia!  There are numerous reasons why I doubted this would happen, but read on to find out.  These screens shows the result of going in-game.  Looks pretty bad, but it's major progress considering that this game uses XDK 3911.  There's lots of technical things to discuss about this update and it's going to take a while to explain it all; so grab a snack if you're going to read this update.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just so you all know, I've been working on Cxbx for YEARS trying to get this game to do something.  Why this game of all others?  Well, not only is it my favourite Xbox game, but there are alot of unique features in this game that I would like to see emulated, and hopefully pave the way for more games to become playable.  You may be thinking that since the graphics didn't look as good as Halo's or even Panzer's, that this game would be easier to emulate.  No, that's definitely not true for this game.  Let's look at it this way.  Have you ever tried to play this on Xbox360 using it's backwards compatibility emulator?  Didn't work, did it?  The Microsoft devs never could get this game working to save their lives!  Yup, that's right.  An amateur programmer like me out performed the entire Microsoft Xbox 360 team!  That means, if they can't do it, then there's really something about this game that makes it worth emulating.  Not just to walk around and boast, but to benefit Cxbx as a whole.  We still have a long way to go emulating this game, but Cxbx is making progress on games that Microsoft couldn't emulate... and they have the official hardware documentation!  Why is that?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Overall, I had to add quite a bit of stuff to get this working as far as it does.  Thank God for Caustik's [indirect] input, or else I'd never have gotten this far!  When I first fired up Cxbx and tried to run this game, got a crash, as usual.  Since I didn't have that XDK back then, I tried doing some dirty hacks instead of solving the problem.  Yeah, I was rather lazy back then!  Needless to say, that didn't work.  The biggest thing that bothered me was the vertex shaders.  The vertex shader declaration was large, but the vertex shader would always be empty!  The only thing we had to go by was the "vs.1.1" header of the vertex shader, so I had to check for this scenario each time a vertex shader was being parsed.  Since Azurik uses non-routine shader usage methods, we're going to have to use the vertex declaration to create a fixed pipeline shader.  Yeah, that sounds very contradictory, but this is how you create vertex shaders without the use of any assembly shader code (which Cxbx still uses).  The idea didn't occur to me until a few minutes ago, lol.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're going to try this for yourself, then I highly renaming or recommend putting and extra char somewhere in the name of the movies folder.  Cxbx will play Azurik's movies (not perfectly), but for me, the videos will randomly cause Cxbx to freeze.  If you do rename the folder, then upon loading Azurik, you will be automatically taken to the menu screen where you are asked to create a new game.  Then, you know what to do :)  "Why do the videos cause problems with Azurik?"  TBH, I don't know.  I tried using Vertek's idea of using the progressive flag in IDirect3DDevice8_GetDisplayFieldStatus, but that will cause Azurik to do nothing but show a black screen.  IMO, I think it's related to threading issues.  Cxbx has been having alot of problems dealing with threads lately (especially Halo and Panzer) so I think this is one of those instances.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Okay, that's interesting... but why are the graphics so distorted?"  That's a good question.  Before I get to that, let me tell you something interesting about this game.  Azurik's polygon counts can reach over 300,000 primitives per frame.  Trust me, for an Xbox1 game, that is alot (yes, more than Halo).  And yet, it still maintains a steady frame rate of 30 fps.  Using your standard Draw[Indexed]Primitive/Vertices[UP] API calls weren't going to get you 30 fps rendering this many polygons, trust me on this.  Instead, Adrenium (the company that made Azurik) decided to use PushBuffers instead.  The PushBuffer (exposed by the IDirect3DPushBuffer8 interface exclusive to Xbox) was designed to take full advantage of the Xbox GPU (NV2A) hardware.  All NV1x GPUs and later support PushBuffers internally (can't say for the Gxx series because I haven't looked into it yet) and the IDirect3DPushBuffer8 can be used to directly program the GPU.  Cxbx does emulate PushBuffers (which requires a bit of low level emulation), but so far only Turok seems to have correct PushBuffer emulation (most of the time).  Games such as Panzer also use it.  I don't know what's required to fix the PushBuffer emulation for this game, but quite frankly, I've never actually used a PushBuffer myself, so now would be a good time to learn!  When I get time, I'll write some code examples using PushBuffers and test them against my debug Xbox and Cxbx to make sure I get it right.  It's going to be tough fixing the Gfx for this game, but someone's gotta do it!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aside from that, there's another really annoying thing about this game... the pixel shaders!  Okay, why would any professional programmer create a new pixel shader and release it each frame?  What sense does that make?  From what I was taught, that's bad programming practice!  Maybe Adrenium had a good reason for it, but I sure can't think of any.  I ended up disabling the code I used to dump the pixel shader definition each time a new pixel shader is created because I'd end up with 8,000 text files containing the same pixel shader in less than a minute!  Cxbx already defaults to the basic passthrough shader anyway since pixel shaders aren't yet supported.  Not that it's a major problem, but it's annoying!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I think that it's safe to say that Azurik has undoubtedly the worst bugs I've ever seen in Cxbx; absolutely horrendus.  In fact, it's worst than every partially/fully game functional with Cxbx combined, and the speed issues are much worse than Panzers (and Panzer is S-L-O-W).  This game is definitely going to keep me busy for a while.  It's bad enough that the problems Cxbx has with XDK 3911 are hard enough to fix and I knew that emulating this was going to be painfully hard, but wow, I never dreamed things would get this tough!  Oh well, time to stop complaining.  Things can't always be easy, can they?  Beating the game was hard enough, now let's try fixing it.  Wish me well everyone!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-4252885517933589491?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/4252885517933589491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/azurik-rize-of-perathia-in-game.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4252885517933589491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4252885517933589491'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/azurik-rize-of-perathia-in-game.html' title='Azurik: Rize of Perathia In-game!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/S8FvFXgXdoI/AAAAAAAAAIU/tIIKJXC_3Xk/s72-c/Azurik2.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8940897191711827868</id><published>2010-04-10T12:44:00.000-07:00</published><updated>2010-04-10T14:29:17.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Halo'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><category scheme='http://www.blogger.com/atom/ns#' term='Halo1'/><title type='text'>Random update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXbalmrRI/AAAAAAAAAH0/OxteAUGSePs/s1600/default+2010-04-09+15-37-44-36.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXbalmrRI/AAAAAAAAAH0/OxteAUGSePs/s320/default+2010-04-09+15-37-44-36.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458599614366526738" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXbalmrRI/AAAAAAAAAH0/OxteAUGSePs/s1600/default+2010-04-09+15-37-44-36.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8DXbFv1IhI/AAAAAAAAAHs/7oWh6Pw10ow/s1600/default+2010-04-10+11-35-39-75.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8DXbFv1IhI/AAAAAAAAAHs/7oWh6Pw10ow/s320/default+2010-04-10+11-35-39-75.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458599608772272658" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S8DXbFv1IhI/AAAAAAAAAHs/7oWh6Pw10ow/s1600/default+2010-04-10+11-35-39-75.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXay0k1wI/AAAAAAAAAHk/UqWWqGHRtas/s1600/Halo_1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXay0k1wI/AAAAAAAAAHk/UqWWqGHRtas/s320/Halo_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458599603691902722" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXay0k1wI/AAAAAAAAAHk/UqWWqGHRtas/s1600/Halo_1.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8DXamlcDnI/AAAAAAAAAHc/zjLCKfo1Ad8/s1600/Halo-crash.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/S8DXamlcDnI/AAAAAAAAAHc/zjLCKfo1Ad8/s320/Halo-crash.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458599600407187058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yup, that's right.  I feel like working on Halo right now.  Don't like it?  Then GTFO!  lol, just joking.  But on a serious note, I'm sure I'm going to get multiple "wtf"s for multiple reasons.  I'll answer your wtf's later.  Just trying to piece together an update since I haven't been doing it very often!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's been a while since I've done any major updates to Cxbx (and I still haven't), but today I wanted to take some time off more serious things and work with Cxbx for a while.  Right now, I'm mainly dealing with issues related to games using XDK 3911 (Azurik and Halo in particular) because this XDK internally operates very differently then all other XDKs released after it.  Remember playing Halo on Xeon?  Ever noticed how bilinear filtering was never present, alpha blending in the wrong places and the walls weren't visible?  That's because the Deferred Render/Texture States are in a completely different order than the other XDKs!  I found this out when I first tested the code examples for 3911 and noticed that certain render/texture states wouldn't work, and that the wrong ones were being set.  I fixed most of this in Cxbx already, and if Xeon was open source, I could fix it there too.  Why didn't _SF_ figure this out?  Because he never had XDK 3911 to begin with.  He was using XDK 4627 to find similarities, and did a good job of it.  Still, anyone could have missed this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Hold on a sec, why does Halo look orange?"  Good question.  I don't know.  Besides, I thought Halo's old orange UI looked cooler than the blue one (E3 2000, anyone?).  Well, don't be surprised.  With every new release of Halo (or new major build), there's always something with Halo that causes the menus to look more and more distorted.  At one point, you could actually make sense of what was going on.  Now you can't, really.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Why are you working on Halo anyway?  There's already a PC port, why not play that instead?"  Okay, this gets really old after a few years.  First of all, Cxbx is not intended to replace an Xbox or be a substitute for any PC version of any game available.  I don't work on Cxbx so all the warez monkeys can play their favourite pirated games either.  My motives for working on Cxbx is to further advance the current state of Xbox emulation as a whole and learn a trick or two about how Xbox works and about Direct3D in general.  So please, don't tell me what I can and can't emulate.  Yeah, it nice to be able to play your favourite games on an emulator when you can't use your console, but remember this... each time another game becomes playable, it increases your chances of being able to play your favourite game in the next release!  Besides, I like the idea of playing Halo's Co-op campaign on my laptop with a friend.  Isn't that something to look forward to?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"What about the ring?  Does that actually render?"  Actually, it does.    You'll have to put Cxbx in wireframe mode to see it though.  I think it's covered up by stuff again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Defiance and I have been putting our heads together a bit today.  Not sure if he'll have time to work on Cxbx for a while, but he's still around.  For any of you who actually got Cxbx to successfully get Halo into the menus and tried to start a new game, you might have been greeted with a nasty grey/white screen that sits there forever.  Well, I actually got passed that today.  From the looks of things, it appears that it might have actually been going towards the ingame status.  Too bad I had gotten a fatal error message ruining the whole thing!  My debugging information was off, so maybe I can fix it.  The biggest problem with Halo is that there are tons of bugs related to this game.  Might be Vista related, but it's too early to tell.  So getting to that point is all a matter of chance.  Sometimes a crash happens, sometimes not.  Totally unpredictable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There, an update.  I never thought I'd make so many users sad by taking some time off :)  Maybe I should just take time off every other week instead so no one starts complaining :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8940897191711827868?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8940897191711827868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/random-update.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8940897191711827868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8940897191711827868'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/random-update.html' title='Random update'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JCm3YFlrKgE/S8DXbalmrRI/AAAAAAAAAH0/OxteAUGSePs/s72-c/default+2010-04-09+15-37-44-36.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8408905529437623384</id><published>2010-04-08T14:50:00.000-07:00</published><updated>2010-04-08T15:38:07.148-07:00</updated><title type='text'>Robotech: Battlecry video</title><content type='html'>&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bsCWpU6szCo&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/bsCWpU6szCo&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Yup, I finally got around to making a video of Cxbx running Robotech: Battlecry.  Like I said before, Fraps refuses to record it properly, so I had to use CamStudio.  I might eventually use another tool, but for now, it works fine.  Oh and sound wise, you aren't missing anything.&lt;br /&gt;&lt;br /&gt;"So, care to explain what's going on with the graphics?"  Hold on, I'm getting to that!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Textures:  The issue with the textures I'm assuming is the same as what previously happened with Panzer.  Probably a swizzling issue.  More than likely, there's a certain swizzled texture format that isn't being unswizzled properly.  I never had to deal with texture swizzling issues before.  Caustik usually does that.  What I need to do is create test scenarios for each and every texture format Xbox supports to be sure that we get it right.  Speaking of textures, remind me to implement cube textures for MetalArms, okay?&lt;/li&gt;&lt;li&gt;3D enviromnemts: If you look at the 3D environments, you'll notice how the polygons are poorly shaded.  Why exactly this is, I don't know.  There are two possible explanations.  The first one comes from the fact that this game uses quad lists via index primitives to render gfx (D3DPT_QUADLIST).  "What's so hard about that?"  For starters, quads are not a native feature of standard Direct3D (Xbox Direct3D does, because it's designed to take advantage of the NV2x GPU, which is more OpenGL compatible).  So in that case, we need to create triangles from quad vertex data.  It's harder than it sounds.  The other reason may be shader related, but that I can't confirm.  Cxbx's vertex shader parsing is not perfected.&lt;/li&gt;&lt;li&gt;Frame rates: This game will likely take more processing power to run than most other games atm.  Martin_sw said that DrawIndexedVertices[UP] needs further optimization.  Probably does (and that would explain part of Panzer's speed problem).  My guess that the extra work to deal with the quad format polygons makes it worse.  So that one mech on the menu reduces my frame rates to 49 on average, and in game gfx are generally 30 fps.  When the OpenGL port is done, it should be faster (I hope).&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So yeah, that's basically all I have to say.  Still busy battling for a spot on Microsoft's payroll, but if anything pulls through, I might have less time to dedicate to Cxbx, but rest assured, it's not dead until I say it is, got it?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8408905529437623384?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8408905529437623384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/robotech-battlecry-video.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8408905529437623384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8408905529437623384'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/robotech-battlecry-video.html' title='Robotech: Battlecry video'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2441142890783932793</id><published>2010-04-02T21:52:00.000-07:00</published><updated>2010-04-02T21:55:48.865-07:00</updated><title type='text'>Unreal Championship video</title><content type='html'>&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6eleLi2_X0Y&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6eleLi2_X0Y&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Just posting another video I made...&lt;br /&gt;&lt;br /&gt;I haven't been able to do it with fraps, so I used CamStudio. Sorry for the lack of sound, but I feel I should post something so that you all know that Cxbx isn't dead.  So this is Unreal in action.  If you want to know more about Unreal Championship's status, read my previous posts regarding this game for Cxbx.&lt;br /&gt;&lt;br /&gt;For those of you that want to see a Robotech: Battlecry video, you'll have to wait until sometime next week as I won't be able to do it.  My dump of this game is on my other USB HDD and I don't think I'll have the time to dig it up this weekend.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2441142890783932793?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2441142890783932793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/unreal-championship-video.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2441142890783932793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2441142890783932793'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/04/unreal-championship-video.html' title='Unreal Championship video'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6229152115115984216</id><published>2010-03-30T19:42:00.000-07:00</published><updated>2010-03-30T19:48:44.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Panzer'/><category scheme='http://www.blogger.com/atom/ns#' term='blueshogun'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>New Panzer video</title><content type='html'>&lt;object width="400" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/IuXLMdkZjeI&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/IuXLMdkZjeI&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I forgot to put this on youtube but, but oh well.  What's so great about it?  This video actually shows solid 3D ingame gfx of Panzer.  The fullscreen quad still covers up the 3D scene from time to time, but at least you can see what's going on for a while.  What's the difference between this build and other build featured in the old video?  This video was taken in Release mode [from visual studio] rather than Debug.  It turns out that Release builds are more stable and less buggy when running Panzer Dragoon ORTA and Robotech: Battlecry.  Both games had similar problems.  Speed is still an issue, and me and Defiance have tracked it down to the PushBuffer emulation (IDirect3DPushBuffer8, Xbox only).  The problem is that it uses a combination of Indexed Geometry and Quad Lists (D3DPT_QUADLIST, Xbox only) and that appears not to have been perfected in push buffers.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Robotech: Battlecry, however, did not use push buffers but did use the same types of primitives using indexed geometry.  Defiance fixed that (for the most part).  Okay, getting slightly off-topic, but the two games are related though.  I'll try to make a video of that soon.  Fraps can't record it properly, so I'm using another tool to do so.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So while it's not really news, it's a slight improvement that I want you all to be aware of.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6229152115115984216?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6229152115115984216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/03/new-panzer-video.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6229152115115984216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6229152115115984216'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/03/new-panzer-video.html' title='New Panzer video'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6398097047116012990</id><published>2010-03-24T10:31:00.000-07:00</published><updated>2010-03-26T20:16:32.385-07:00</updated><title type='text'>Excuses, excuses.</title><content type='html'>&lt;div&gt;First of all, I'd like to say sorry since it's been so long since my last update.  You're all probably wondering what's going on.  I'll get to that right now so no one is left in the dark.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Q: Where have you been all this time?&lt;/div&gt;A: As it has already been stated, I'm really busy IRL and there's lots of work to be done.  I'm doing okay, but I've been better.  If all goes well, I'll be getting a new job soon (an IT job, finally).  How it's going to effect my work on Cxbx is unknown; either way, I want to let you know that whatever happens, it's not over until I say it is, got it?  It's only been 2 months so far.  Cxbx and other emulators have gone much longer without updates before, remember that.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Q: Where's our release?&lt;/div&gt;&lt;div&gt;A: Good question.  I emailed my release to Caustik before hoping that he'd release it on the homepage, but he's already busy enough as it is going through some rough transitions.  "Why not release it here?"  That's not my call.  I'm just "The co-author", remember?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Q: Is there anyone else still working on Cxbx while you're away?&lt;/div&gt;&lt;div&gt;A: Yes, a fairly new programmer, Verteks is working on Cxbx's D3D8LTCG support for XDK 5849.  It's preliminary, and will take a long time to complete, but it's worth waiting for once it finally works.  It's tougher to create signatures for this library as it is not directly compatible with IDA, so it will take some time to get things working with it.  "What about defiance?"  Lately, he's been busy too.  I don't know what his details are, but he's made some good progress fixing bugs and advancing towards Direct3D9 support.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Q: What about the OpenGL port?&lt;/div&gt;&lt;div&gt;A: That's only partially implemented right now.  When it's done, you'll know!  Just be prepared with a card with decent OpenGL drivers as it might be using OpenGL 2.x instead of 1.5 as originally planned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Q: When are you going to update the SVN?&lt;/div&gt;&lt;div&gt;A: Good question.  The reason I haven't yet is because I really hate having to delete the entire SVN and then re-upload it and missing out on the changes for everyone to see.  It takes longer and is much more work.  TSVN solves this problem, but I need to take some time to figure out how to syncronize my dev folder with TSVN so I can update the SVN each and every time I make an update automatically.  If anyone knows how to do this, let me know.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Q: What about x86-64 support?&lt;/div&gt;&lt;div&gt;A: I don't remember if I answered that before or not on my blog.  The status of this remains the same.  Unfortunately, it still doesn't work.  Afaik, it can be done, but quite frankly you're asking the wrong person for this type of update.  Since I didn't write the LDT code for this emulator, it's the hardest part for me to understand.  A Sony employee claimed to get it working and even left us with his source code to do it.  I added it, but didn't get it working due to the fact that I didn't know how it was implemented.  Caustik says he can do a workaround eventually, but in that case we might be waiting a while longer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So there you have it.  I'd like to work on Cxbx right now, but I still have lots to prepare for in terms of pursuing a new job, place to stay, and hopefully a vehicle (and more that I'll share with you all at a later time).  Until then, stay tuned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6398097047116012990?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6398097047116012990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/03/excuses-excuses.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6398097047116012990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6398097047116012990'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/03/excuses-excuses.html' title='Excuses, excuses.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5478423610048228955</id><published>2010-02-05T17:15:00.000-08:00</published><updated>2010-02-05T17:54:38.759-08:00</updated><title type='text'>More progress on Robotech: Battlecry.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S2zEYARsQJI/AAAAAAAAAGw/f4jKuZvp5S8/s1600-h/RobotechBattlecry_3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S2zEYARsQJI/AAAAAAAAAGw/f4jKuZvp5S8/s320/RobotechBattlecry_3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5434934766999453842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S2zEX1u6HsI/AAAAAAAAAGo/KwhSeHlZ0WU/s1600-h/RobotechBattlecry_2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S2zEX1u6HsI/AAAAAAAAAGo/KwhSeHlZ0WU/s320/RobotechBattlecry_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5434934764169207490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/S2zEXjWXtqI/AAAAAAAAAGg/aM7cqh33W-E/s1600-h/RobotechBattlecry_4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/S2zEXjWXtqI/AAAAAAAAAGg/aM7cqh33W-E/s320/RobotechBattlecry_4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5434934759234451106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S2zEXSxiRgI/AAAAAAAAAGY/4yF-P4QKqA4/s1600-h/RobotechBattlecry_5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S2zEXSxiRgI/AAAAAAAAAGY/4yF-P4QKqA4/s320/RobotechBattlecry_5.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5434934754784986626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to defiance for finding the bug causing the problems with Robotech: Battlecry's 3D geometry, we now have some much better screenshots of the game!  So now it looks alot better.  My initial idea for fixing this was totally off!  It's a good thing defiance fixed it before I did!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"So, is this game playable now?"  Unfortunately, no.  There's still more bugs to sort out here, and when it's fixed, I'll let you all know.  Other than that, there appears to be issues with texture swizzling.  No big deal for now.  So I just wanted to let you all know how well Cxbx is doing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Nice progress, but enough stalling!  When are you going to release it?"  It's up to sir Caustik to release it on the website.  I sent him my releases earlier this week and hopefully you'll see them on the homepage this weekend.  So check the homepage and this blog periodically.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5478423610048228955?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5478423610048228955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/02/more-progress-on-robotech-battlecry.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5478423610048228955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5478423610048228955'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/02/more-progress-on-robotech-battlecry.html' title='More progress on Robotech: Battlecry.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/S2zEYARsQJI/AAAAAAAAAGw/f4jKuZvp5S8/s72-c/RobotechBattlecry_3.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8521324655240140481</id><published>2010-02-05T16:12:00.000-08:00</published><updated>2010-02-05T16:27:32.936-08:00</updated><title type='text'>No more Xbox Live for Xbox1 games (sad)</title><content type='html'>&lt;a href="http://www.qj.net/qjnet/xbox-360/microsoft-pulling-the-plug-on-original-xbox-games-on-live.html"&gt;http://www.qj.net/qjnet/xbox-360/microsoft-pulling-the-plug-on-original-xbox-games-on-live.html&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;According to the source below, Microsoft has chosen to discontinue Xbox live support for Xbox1 games.  This is a sad day for those of us who like to play Xbox1 games on live (or download content for it).  While I do agree that Microsoft should look forward to the future and focus on the present, I don't think that it would hurt Microsoft to maintain a separate server for Xbox1 games.  Microsoft probably has a good reason for this, but I doubt that it's really good enough.  So in the meantime, when I get a chance, I'm going to try and save my downloaded content on my PC using my Debug Xbox if possible.  I don't want to lose my Unreal Championship content or the patches I downloaded (because it improves the game's frame rates and gameplay experience).  If you can, I'd encourage you to do the same.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"So, what does this have to do with Cxbx?"  Not much, but it means that I guess we can forget ever seeing the day that Cxbx will ever access it.  This is one reason why I've been working on Unreal Championship so much; to see if we could one day connect to Xbox live.  If Xbox live dies, we could probably create some sort of way of faking it for Cxbx and a real Xbox using our own server(s).  Not sure how much work that would require, but we'll see once we get an Xbox Live compatible game playable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I love Xbox1, but I hate Xbox 360.  It can never replace my favourite console (of this century).... RIP Xbox Live...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(November 2002 - April 2010)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8521324655240140481?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8521324655240140481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/02/no-more-xbox-live-for-xbox1-games-sad.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8521324655240140481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8521324655240140481'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/02/no-more-xbox-live-for-xbox1-games-sad.html' title='No more Xbox Live for Xbox1 games (sad)'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5998464644500187690</id><published>2010-01-30T15:07:00.000-08:00</published><updated>2010-01-30T15:34:34.721-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Petit Copter'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>More on Petit Copter (Ingame)</title><content type='html'>Okay, last night I was curious as to why Petit Copter kept crashing the way it does.  I initially thought it was DirectSound related, but it turns out that it was really a problem with our implementation of EmuIDirect3DDevice8_SetRenderTarget.  The fix was so easy, I wanted to slap myself!  After that it went ingame.&lt;br /&gt;&lt;br /&gt;After going ingame, it turns out that the game is more complex than I thought in some ways.  It turns out that the game does actually use vertex shaders!  Although that's not really a problem as Petit Copter's vertex shaders were really simple to convert.  When I first got Petit Copter ingame, I noticed that the only thing I could see was the helicopter's rotor.  This was because Cxbx compensates for the Xbox's ability to use negative numbers to identify vertex shader constants (c-96 to c96), so Cxbx adds 96 to the vertex shader constant ID of each shader instruction to fix that.  This caused bugs in games using XDK 4361 and earlier (so far) and caused 3D not to render.  So what I did was add 96 in EmuIDirect3DDevice8_SetVertexShaderConstant and everything that used vertex shaders in XDK 3911 - 4361 worked fine.  It's a dirty hack and I'm not sure if it's a good idea to leave it there, but oh well, time will tell.&lt;br /&gt;&lt;br /&gt;"So, how well does it run in game?"  Well, everything is smooth ingame.  No framerate issues as the graphics are really simple.  "If everything is smooth, why can't it be considered playable yet?"  Good question.  There's another bug somewhere, and I can't figure out what it is.  So far, it's exclusive to this game.  There's a stack corruption problem in this game (might be the generated exe or CxbxKrnl.dll causing it) and it's really hard to track!  If I can fix that, then the game will be considered playable.  The bug is completely random.  Sometimes you'll get a crash immediately, other times it won't show up for about 30 seconds if you're lucky.  So if you want, watch the youtube video (link below).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=jHXC1FB0gvk"&gt;Cxbx WIP: Petit Copter [Part 2] (Ingame)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope you enjoy it.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5998464644500187690?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5998464644500187690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/more-on-petit-copter-ingame.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5998464644500187690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5998464644500187690'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/more-on-petit-copter-ingame.html' title='More on Petit Copter (Ingame)'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5669226478679714080</id><published>2010-01-24T16:19:00.000-08:00</published><updated>2010-01-24T18:30:50.686-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='DOA3'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>XDK 3911: Random stuff...</title><content type='html'>Me and our newest programmer (Defiance) have been investigating problems with games and other apps using XDK 3911.  It looks like the problems we face with games using this XDK are much bigger than we originally thought.  Below is a list of problems I've been able to dig up and  how I have addressed or how I plan to address them.&lt;br /&gt;&lt;br /&gt;1. The biggest thing so far is the lack of accurate deferred render state emulation.  Ever had that EmuD3DDeferredRenderState not found error?  Yeah, it has to do with that (sort of).  Now that I have 3911 XDK samples to test with, troubleshooting issues with this particular XDK will be much easier.  I was testing the basic tutorial examples as they are easy to debug with Cxbx, and noticed that the texture in the Texture tutorial was black!  I had assumed that there was a problem with texture loading (there is, but not with this sample), but it turns out that the deferred render states were not being set properly.  The example explicitly disables lighting (Direct3D enables it by default), but it wasn't doing it.  I disabled lighting manually and it worked.  For XDK 3911, instead of directly changing the deferred render states table directly, it calls a function to handle it (D3DDevice_SetRenderState_Deferred), and this function only exists in XDK 3911 and earlier so far.  Because of this, Cxbx gets the location of D3D__RenderState (EmuD3DDeferredRenderState) then reads and updates deferred render states until the next draw call.  To find it, what Cxbx does is calculate the location of the deferred render state pointer by locating IDirect3DDevice8_SetRenderState_CullMode and then calculating the offset from that function to the list of deferred render states.  It appears to work fine for every XDK we support so far except 3911.  Since I don't yet understand how Cxbx calculates the offsets, I'll have to use a more hacky method of correctly emulating the deferred render states.  This means HLEing IDirect3DDevice8_SetRenderState_Deferred itself.  Even though that the render states are supposed to be deferred, I'll set them on the fly and write code to defer them later.  It's possible I might have to do the same for the deferred texture states as well (I hope not), but this will diagnose MANY problems you are having with any games released around November 2001 (yes, that means DOA3 and Oddworld).  When the deferred render state location code is correct, I'll remove this function as emulating it will no longer be necessary.&lt;br /&gt;&lt;br /&gt;2. There is yet another problem plaguing 3911 games.  There appears to be a problem related to loading textures with a specific D3DX texture loading function.  This is stopping many 3911 games from working (Star Wars: Obi-Wan, Fusion Frenzy, and many more).  I haven't had a chance to debug this extensively, but the problem is known and will be addressed hopefully soon.&lt;br /&gt;&lt;br /&gt;3. As much as I hate to say this, there's a chance you might be experiencing more "X-Ref only" errors with 3911 titles.  Why?  Because for DSound, I've added a new X-Ref that will help me quickly identify and fix missing DSound APIs, DirectSoundEnterCriticalSection.  AFAIK, this is called in every Xbox DirectSound API.  There are some missing DirectSound functions that can be executed by Cxbx and not crash leading to further problems.  So when a DirectSound function call is missed, I can easily find out what it is thanks to the breakpoint that I placed before the message is displayed.  Yes it will get annoying as heck, but it's for your benefit!&lt;br /&gt;&lt;br /&gt;4. One more thing, I finally got around to adding the XGRAPHC library support for 3911.  I'm surprised no one did it before o_O.  I added every XG  function that Cxbx emulates (except for one), so that will fix alot of problems right there.&lt;br /&gt;&lt;br /&gt;I wanted to say more, but I can't remember what else I was going to say, lol.  So I just wanted to let you all know what I've been up to lately.  So stick around, and see what I have in store for you all.... hahahahahahahaha!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5669226478679714080?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5669226478679714080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/xdk-3911-random-stuff.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5669226478679714080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5669226478679714080'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/xdk-3911-random-stuff.html' title='XDK 3911: Random stuff...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-661512151942946994</id><published>2010-01-22T08:51:00.000-08:00</published><updated>2010-01-22T09:00:09.569-08:00</updated><title type='text'>Alter Echo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S1nX3Jj7dlI/AAAAAAAAAFw/ZeOlna67AWc/s1600-h/AlterEcho.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S1nX3Jj7dlI/AAAAAAAAAFw/ZeOlna67AWc/s320/AlterEcho.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5429608168231237202" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S1nX3Jj7dlI/AAAAAAAAAFw/ZeOlna67AWc/s1600-h/AlterEcho.jpg"&gt;&lt;/a&gt;&lt;br /&gt;I forgot to post about this (as it happened 2 weeks ago).  I'm a bit sleepy so I'll make it quick.  I got the game Alter Echo (XDK 5233) to show some stuff.  I don't know what's going on (I'm assuming it's a problem with palletized or swizzled texture formats).  I'm assuming what happens is it shows a loading or some other intro screen and then shows a dirty disc error as it shows more gibberish after this and halts.  I'll have to find out what it's doing later on.  There's a chance that the hex values of a certain D3DFORMAT definition might have changed and Cxbx is trying to use the wrong texture format.  Never did get around to fixing that.  I'd like to say more, but I'm too busy and tired.  Cheers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-661512151942946994?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/661512151942946994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/alter-echo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/661512151942946994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/661512151942946994'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/alter-echo.html' title='Alter Echo'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/S1nX3Jj7dlI/AAAAAAAAAFw/ZeOlna67AWc/s72-c/AlterEcho.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2248374601013403058</id><published>2010-01-16T13:22:00.001-08:00</published><updated>2010-01-16T14:52:43.439-08:00</updated><title type='text'>General Heed was right, OpenAL "IS" a good idea.</title><content type='html'>It's been a while, but I was working on Cxbx today adding some stuff for XDK 3911 so hopefully I can get you all to stop begging me for DOA3 (me and our newest dev, defiance, are trying to fix the problem with it).  In the mean time, I was adding the necessary things to get Halo to work properly.  I noticed that there was no implementation of IDirectSoundStream::SetPitch.  Assuming that changing the pitch of a DirectSound buffer would be standard in DirectSound, but I was wrong!  It's not part of the DirectSound API at all o_O!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After taking a quick look around the net and remembering what General Heed said, it looks like there is some functionality that would be quite useful in OpenAL.  I also found out that it supports DSP effects too, but appears to be specific to certain Creative Sound Blaster cards (which I do not have).  So later on, I'll be looking into OpenAL as an alternative to DirectSound (unless XAudio proves to be a better choice, but I doubt it now).  So thanks for the suggestion General Heed.  Listening to the people is a good idea!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2248374601013403058?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2248374601013403058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/general-heed-was-right-openal-is-good.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2248374601013403058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2248374601013403058'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/general-heed-was-right-openal-is-good.html' title='General Heed was right, OpenAL &quot;IS&quot; a good idea.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-638325517190760024</id><published>2010-01-06T15:17:00.000-08:00</published><updated>2010-01-06T15:36:44.576-08:00</updated><title type='text'>Need to slow down a bit.</title><content type='html'>First I want to say thanks for everyone encouraging me to make Cxbx greater and greater every day!  For the past 4 days, I've been working on Cxbx non stop because sometimes I get a bit too excited and over do it.  What I plan to do is not stop working on Cxbx, but slow it down a bit to a steady pace; such as dedicating a few hours a day for Cxbx while getting my other priorities done.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Either way, I do have a few things I want to share with you all.  A combination of things I haven't told you all yet to things I plan on doing in the future.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;We do have another person working diligently on Cxbx in his spare time.  Even though he's just getting started, he's learning rather quickly and slowly but surely beginning to make progress.  As details surface, I'll share them with you.&lt;/li&gt;&lt;li&gt;I'm adding another game to the list, Alter Echo (XDK 5233).  I can't really tell what it's trying to do (8-bit textures are not fully supported yet).  It's only classified as Intros at this point, but it's still progress.&lt;/li&gt;&lt;li&gt;Patrick got me a copy of the Flair SDK.  This will greatly speed up Cxbx progress very much!&lt;/li&gt;&lt;li&gt;I finally figured out why Panzer and Robotech: Battlecry keep giving us crazy 3D graphics.  The problem is that these games are using quads to render 3D geometry.  I can understand why Panzer does this since it was once a Sega Saturn game (which used 3D quads for rendering) so that would make things easier for the developers to use the Xbox's ability to render 3D quads.  While standard PC Direct3D does not support this, OpenGL does [natively].  Another reason why I'm porting to OpenGL.&lt;/li&gt;&lt;li&gt;Speaking of OpenGL, I'm going to start the port really soon.  The next release will likely not use OpenGL, but after the next release, releases should be much more frequent.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So for now, I'm going to take a small break.  Rest assured, I do have more plans!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-638325517190760024?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/638325517190760024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/need-to-slow-down-bit.html#comment-form' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/638325517190760024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/638325517190760024'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/need-to-slow-down-bit.html' title='Need to slow down a bit.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2531560876536200213</id><published>2010-01-04T12:33:00.000-08:00</published><updated>2010-01-04T13:07:36.352-08:00</updated><title type='text'>Ever had problems with Cxbx's video playback?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXjmKcJSI/AAAAAAAAAFo/MFAJnyVMHjU/s1600-h/BloodRayne1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXjmKcJSI/AAAAAAAAAFo/MFAJnyVMHjU/s320/BloodRayne1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422993170358871330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXjKoi3QI/AAAAAAAAAFg/Dy_VmZQdrHs/s1600-h/UnrealChampionship.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXjKoi3QI/AAAAAAAAAFg/Dy_VmZQdrHs/s320/UnrealChampionship.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422993162968947970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXiiD0rbI/AAAAAAAAAFY/CkqHrbbrDco/s1600-h/DeadToRights_4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXiiD0rbI/AAAAAAAAAFY/CkqHrbbrDco/s320/DeadToRights_4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422993152077508018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S0JXiMmNNQI/AAAAAAAAAFQ/J-bKL2GuR9w/s1600-h/RayManArena_1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S0JXiMmNNQI/AAAAAAAAAFQ/J-bKL2GuR9w/s320/RayManArena_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422993146316141826" /&gt;&lt;/a&gt;&lt;br /&gt;Okay, this is for everyone who has had problems viewing videos with Cxbx lately.  I don't know how many of you are having problems with Cxbx's video playback lately, but I know I have... for a long time!  Ever since I updated my video card drivers for my laptop (I have an NVIDIA GeForce 8400 GS Mobile 128MB) back in August, I noticed that Cxbx's video playback was broken.  Even though my GPU supports DirectDraw's hardware accelerated overlay surfaces (or at least it claims to), it still never worked anymore!  This was driving me crazy because it meant less screenshots to show you guys (it's great to have proof).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"So, what did you do to fix it?" Well, I made quite a few changes to get this working again (and a few extra changes to get it working right without problems for some games).  The first thing I did was force Cxbx to update the overlay surface in software using a YUV -&gt; RGB conversion (which Cxbx already did support).  After initializing DirectDraw, Cxbx will check for hardware YUV overlay support.  If it is detected, it will use the hardware mode automatically.  If not, then it does the conversion in software and writes the pixels to the backbuffer.  To disable it, I just commented out this in EmuD3D8.cpp: g_bSupportsYUY2 = true;  While the hardware accelerated method was a good idea, it did have a few drawbacks which are just now beginning to surface.  To further illustrate, I'll show the pros and cons of each:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. &lt;b&gt;Hardware YUV&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good:&lt;/div&gt;&lt;div&gt;- Fast&lt;/div&gt;&lt;div&gt;- Automatically updates itself (no need to call D3DDevice::Present)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bad:&lt;/div&gt;&lt;div&gt;- Usually too fast!  Can cause "robotic" audio&lt;/div&gt;&lt;div&gt;- Can cause crashes (Unreal Championship)&lt;/div&gt;&lt;div&gt;- Can't take screenshots easily&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. &lt;b&gt;Software YUV&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good:&lt;/div&gt;&lt;div&gt;- More accurate speed wise (at least for me)&lt;/div&gt;&lt;div&gt;- Can take screenshots with print screen button&lt;/div&gt;&lt;div&gt;- More compatible&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bad:&lt;/div&gt;&lt;div&gt;- Can be too slow depending on your hardware&lt;/div&gt;&lt;div&gt;- Does not update automatically (requires hack, but easily fixed)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A good idea would be to give the user the option to use hardware or software YUV overlay updates for maximum compatibility to the user's liking.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More on the "hacks" used to get this working properly.  This was really easy to do.  One thing I noticed was that when trying to play videos with Dead to Rights and PacMan Worlds 2 was that before playing the video, all the parameters would be NULL.  So if there's no surface passed in for the first parameter, don't update the overlay or else you'll crash and burn.  The second thing is that I noticed that when I disabled the hardware overlay flag, some videos would play and others still wouldn't show up.  That's because the Xbox expects each frame to show up without the need to call D3DDevice::Present.  So for every time that the overlay surface is updated and Present or Swap is not called, call Present after the overlay update.  And as you can see above, the results were great!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One more benefit is that since the fact that most videos play at about 30 FPS, they will generally play at that frame rate, resulting in better sounding audio (still a bit choppy sometimes, but less robotic).  So there you have it.  I'll see to it that there's an option to use hardware and software overlays at your discretion so you won't go through the same problems I did.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2531560876536200213?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2531560876536200213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/ever-had-problems-with-cxbxs-video.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2531560876536200213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2531560876536200213'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/ever-had-problems-with-cxbxs-video.html' title='Ever had problems with Cxbx&apos;s video playback?'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/S0JXjmKcJSI/AAAAAAAAAFo/MFAJnyVMHjU/s72-c/BloodRayne1.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3714214741118494047</id><published>2010-01-03T19:32:00.001-08:00</published><updated>2010-01-03T19:52:12.853-08:00</updated><title type='text'>PacMan Worlds 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0Fhjzj06TI/AAAAAAAAAFA/ADvOg5MU5Do/s1600-h/PMW2_1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0Fhjzj06TI/AAAAAAAAAFA/ADvOg5MU5Do/s320/PMW2_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422722694094580018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/S0Fhjk5EkKI/AAAAAAAAAE4/2rMgsDbjgBI/s1600-h/PMW2_2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/S0Fhjk5EkKI/AAAAAAAAAE4/2rMgsDbjgBI/s320/PMW2_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422722690157154466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0Fhi77EkOI/AAAAAAAAAEo/x-zZdW9F9jw/s1600-h/PMW2_4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0Fhi77EkOI/AAAAAAAAAEo/x-zZdW9F9jw/s320/PMW2_4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422722679159689442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0FiCsqVJQI/AAAAAAAAAFI/zc6icu9OLfk/s1600-h/PMW2_5.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_JCm3YFlrKgE/S0FiCsqVJQI/AAAAAAAAAFI/zc6icu9OLfk/s320/PMW2_5.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422723224818754818" style="cursor: pointer; width: 320px; height: 261px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The funny thing about this is that someone on ngemu was recently asking me why this game didn't work (about 2 or 3 days ago).  Little did I know, the progress with Dead to Rights got this game to show the intro videos.  Actually, I made this progress yesterday, but never got around to posting it until now (tbh, I couldn't, but that's for a totally different blog update).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More about PacMan.  Since it was by Namco, it uses the Namco engine just like Dead to Rights (it even uses the same XDK, 4432).  This also means it shares the same bugs.  I haven't been able to track down what's really going on here, so any more immediate progress on these games isn't guaranteed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Why is there a white line in front of each screen?"  That's because there's a full screen quad covering it up.  It's supposed to be rendered behind the overlay, but there's a bug in Cxbx causing it to be displayed over the scene.  This is also a problem in Panzer and Dead to Rights.  I don't really have too much else to say, but I'll see what else I can pull up now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3714214741118494047?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3714214741118494047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/pacman-worlds-2.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3714214741118494047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3714214741118494047'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/pacman-worlds-2.html' title='PacMan Worlds 2'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/S0Fhjzj06TI/AAAAAAAAAFA/ADvOg5MU5Do/s72-c/PMW2_1.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-1641010298228587479</id><published>2010-01-02T11:47:00.000-08:00</published><updated>2010-01-02T15:52:38.092-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Dead to Rights'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>Dead to Rights</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/Sz_P22VmfYI/AAAAAAAAAEY/1TcnDL0VJ-A/s1600-h/DeadToRights.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/Sz_P22VmfYI/AAAAAAAAAEY/1TcnDL0VJ-A/s320/DeadToRights.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422281017583369602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/Sz_P2ru-7NI/AAAAAAAAAEQ/F1FtxpWDdz0/s1600-h/DeadToRights_2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/Sz_P2ru-7NI/AAAAAAAAAEQ/F1FtxpWDdz0/s320/DeadToRights_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422281014737038546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/Sz_P2gwcLcI/AAAAAAAAAEI/d00bcnVmtpo/s1600-h/DeadToRights_3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/Sz_P2gwcLcI/AAAAAAAAAEI/d00bcnVmtpo/s320/DeadToRights_3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5422281011790360002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I know it's late, but Happy new year!  Anyway, I'll cut straight to the chase today and I'm going to make this quick.  I got the game Dead to Rights to go in-game today (with an asterisk), but chances are you probably won't be playing it by the next release.  Why not?  The bug fix for this game (which technically isn't a fix) will break every other game.  In order to get in-game, I had to disable calls to IDirect3DDevice8_DrawIndexedPrimitive.  There's yet another undiscovered bug inside of EmuIDirect3DDevice8_DrawIndexedVertices.  So far, I don't know what it is or how to fix it yet.  Once again, a fullscreen quad is overlapping the 3D scene just like in Panzer Dragoon Orta.  I also had to disable overlay updates to prevent crashing like in Unreal Championship (that's one reason why you see a white screen in the background).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This game may not be as visually impressive as many others, but this game uses alot of functionality that Cxbx did not originally support so even though it only took me less than 2 days to get this far, the difficulty of emulating this game is still not to be underestimated!  Even though I'm not yet successful in getting this game playble yet, it was a good experience for me and showed a few areas where Cxbx was lacking.  See?  Emulating an Xbox game with a PC port CAN be beneficial!  Until next time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-1641010298228587479?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/1641010298228587479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/dead-to-rights.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/1641010298228587479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/1641010298228587479'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2010/01/dead-to-rights.html' title='Dead to Rights'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/Sz_P22VmfYI/AAAAAAAAAEY/1TcnDL0VJ-A/s72-c/DeadToRights.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-7963931026474787757</id><published>2009-12-31T21:33:00.000-08:00</published><updated>2009-12-31T23:06:38.910-08:00</updated><title type='text'>Pixel Shader support (more like re-inventing the wheel)...</title><content type='html'>Today, I sat back and thought to myself, "Hmmm, maybe I should start fixing some internal issues with Cxbx rather than updating the HLE database for a while."  I thought back to myself how no matter how hard I tried, I never could get that stupid BumpEarth demo in the XDK to work right!  The base texture always rendered fine, but the bump map and the environment map never did work.  I decided to investigate.  Initially, I assumed that it was a missing/wrong deferred texture state.  After browsing the source code for a while, I realized all that stuff was fine.  I even compared the code to the PC version.  I noticed that the Xbox version of BumpEarth used a pixel shader, but the PC version didn't.  Since I never really bothered with Xbox's pixel shader stuff (or even checked Cxbx's) I didn't initially assume that was a problem.  I thought that this would be a good opportunity to check out how Xbox's pixel shaders worked.  Turns out that Xbox pixel shaders are converted to a structure.  Sounds weird to me, but I'm sure Microsoft had a good reason.  After finding out that this was so, I checked Cxbx's implementation of IDirect3DDevice8_CreatePixelShader.  Turns out that there was no [dynamic] pixel shader support at all!  Whoever wrote it just used a fall back pixel shader and that was the end of it.  That's better than nothing, but it's time change that (because if I don't do it, it might not get done)!  Kingofc did it before, but we have no idea where he's been off to...&lt;br /&gt;&lt;br /&gt;"Oh, I'm sure it can't be that bad... can it?"  Well, so far, the Xbox's documentation on how it's pixel shaders work are a bit vague.  The XDK also supports "Hard Coded" pixel shaders via the D3DPIXELSHADERDEF structure.  Here's the definition of it (the X_ prefix was added for Cxbx to prevent collisions):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;typedef struct _X_D3DPIXELSHADERDEF&lt;br /&gt;{&lt;br /&gt;DWORD    PSAlphaInputs[8];          // Alpha inputs for each stage&lt;br /&gt;DWORD    PSFinalCombinerInputsABCD; // Final combiner inputs&lt;br /&gt;DWORD    PSFinalCombinerInputsEFG;  // Final combiner inputs (continued)&lt;br /&gt;DWORD    PSConstant0[8];            // C0 for each stage&lt;br /&gt;DWORD    PSConstant1[8];            // C1 for each stage&lt;br /&gt;DWORD    PSAlphaOutputs[8];         // Alpha output for each stage&lt;br /&gt;DWORD    PSRGBInputs[8];            // RGB inputs for each stage&lt;br /&gt;DWORD    PSCompareMode;             // Compare modes for clipplane texture mode&lt;br /&gt;DWORD    PSFinalCombinerConstant0;  // C0 in final combiner&lt;br /&gt;DWORD    PSFinalCombinerConstant1;  // C1 in final combiner&lt;br /&gt;DWORD    PSRGBOutputs[8];           // Stage 0 RGB outputs&lt;br /&gt;DWORD    PSCombinerCount;           // Active combiner count (Stages 0-7)&lt;br /&gt;DWORD    PSTextureModes;            // Texture addressing modes&lt;br /&gt;DWORD    PSDotMapping;              // Input mapping for dot product modes&lt;br /&gt;DWORD    PSInputTexture;            // Texture source for some texture modes&lt;br /&gt;DWORD    PSC0Mapping;               // Mapping of c0 regs to D3D constants&lt;br /&gt;DWORD    PSC1Mapping;               // Mapping of c1 regs to D3D constants&lt;br /&gt;DWORD    PSFinalCombinerConstants;  // Final combiner constant mapping&lt;br /&gt;}X_D3DPIXELSHADERDEF;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At first glance, the use of each field looks a bit obvious, but transforming this into a pixel shader isn't a trivial task (at least not for me).  So far, it's just now starting to make sense (I had to look in the header file instead of the XDK docs).  In the end, all pixel shaders on Xbox take the form of the structure you see above.&lt;br /&gt;&lt;br /&gt;For those who have been following Xbox emulation history as long as I have, you might recall the day that _SF_ (author of Xeon) released the source code to his Xbox -&gt; PC Direct3D pixel shader conversion code in an effort to prove that his emulator was not fake.  I took a look to see how _SF_ did it in Xeon.  Turns out that instead of using assembly, he used HLSL instead.  It was a brilliant idea, but it's not going to work for Cxbx since it still uses DirectX 8.1 (another reason why I really want to start using OpenGL soon).  Assembly shaders will still be possible, but just a bit more tedious.&lt;br /&gt;&lt;br /&gt;What have I done so far?  I've already written some prelimary code for pixel shader generation.  For now, the best thing to do is to test it against pixel shaders written by myself and XDK demos to ensure accuracy.  So far, I've written 3 pixel shader examples.  Nothing fancy.  I've also written some code to output the contents of the structure.  They vary from shader to shader.  Here's the results.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;shader 1:&lt;br /&gt;xps.1.0  // Xbox PixelShader&lt;br /&gt;&lt;br /&gt;mov r0, v0 // Move the diffuse vertex colour to the&lt;br /&gt;       // output colour register (r0).&lt;br /&gt;output:&lt;br /&gt;PSAphaInputs[8]    = 0xD4301010 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSFinalCombinerInputsABCD = 0x00000000&lt;br /&gt;PSFinalCombinerInputsEFG  = 0x00000000&lt;br /&gt;PSConstant0[8]    = 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSConstant1[8]    = 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSAlphaOutputs[8]   = 0x000000C0 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSRGBInputs[8]    = 0xC4200000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSCompareMode    = 0x00000000&lt;br /&gt;PSFinalCombinerConstant0  = 0x00000000&lt;br /&gt;PSFinalCombinerConstant1  = 0x00000000&lt;br /&gt;PSRGBOutputs[8]    = 0x000000C0 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSCombinerCount    = 0x00011101&lt;br /&gt;PSTextureModes    = 0x00000000&lt;br /&gt;PSDotMapping     = 0x00000000&lt;br /&gt;PSInputTexture    = 0x00000000&lt;br /&gt;PSC0Mapping     = 0xFFFFFFFF&lt;br /&gt;PSC1Mapping     = 0xFFFFFFFF&lt;br /&gt;PSFinalCombinerConstants  = 0x000001FF&lt;br /&gt;&lt;br /&gt;shader 2:&lt;br /&gt;xps.1.0  // Xbox PixelShader&lt;br /&gt;&lt;br /&gt;tex t0  // Declare texture register t0 (Texture Stage 0)&lt;br /&gt;mul r0, v0, t0 // Multiply v0 and t0 the output register (r0)&lt;br /&gt;&lt;br /&gt;output:&lt;br /&gt;PSAphaInputs[8]    = 0xD4D81010 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSFinalCombinerInputsABCD = 0x00000000&lt;br /&gt;PSFinalCombinerInputsEFG  = 0x00000000&lt;br /&gt;PSConstant0[8]    = 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSConstant1[8]    = 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSAlphaOutputs[8]   = 0x000000C0 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSRGBInputs[8]    = 0xC4C80000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSCompareMode    = 0x00000000&lt;br /&gt;PSFinalCombinerConstant0  = 0x00000000&lt;br /&gt;PSFinalCombinerConstant1  = 0x00000000&lt;br /&gt;PSRGBOutputs[8]    = 0x000000C0 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSCombinerCount    = 0x00011101&lt;br /&gt;PSTextureModes    = 0x00000001&lt;br /&gt;PSDotMapping     = 0x00000000&lt;br /&gt;PSInputTexture    = 0x00000000&lt;br /&gt;PSC0Mapping     = 0xFFFFFFFF&lt;br /&gt;PSC1Mapping     = 0xFFFFFFFF&lt;br /&gt;PSFinalCombinerConstants  = 0x000001FF&lt;br /&gt;&lt;br /&gt;shader 3:&lt;br /&gt;xps.1.0  // Xbox PixelShader&lt;br /&gt;&lt;br /&gt;tex t0  // Declare texture register t0 (Texture Stage 0)&lt;br /&gt;tex t1  // Declare texture register t0 (Texture Stage 1)&lt;br /&gt;mov r1, t1 // Move texture register t1 into output register r1&lt;br /&gt;lrp r0, v0, t0, r1 // Lerp between t0 and r1 by proportion&lt;br /&gt;               // specified in v0&lt;br /&gt;output:&lt;br /&gt;PSAphaInputs[8]    = 0xD9301010 0x14D8DD34 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSFinalCombinerInputsABCD = 0x00000000&lt;br /&gt;PSFinalCombinerInputsEFG  = 0x00000000&lt;br /&gt;PSConstant0[8]    = 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSConstant1[8]    = 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSAlphaOutputs[8]   = 0x000000D0 0x00000C00 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSRGBInputs[8]    = 0xC9200000 0x04C8CD24 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSCompareMode    = 0x00000000&lt;br /&gt;PSFinalCombinerConstant0  = 0x00000000&lt;br /&gt;PSFinalCombinerConstant1  = 0x00000000&lt;br /&gt;PSRGBOutputs[8]    = 0x000000D0 0x00000C00 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000&lt;br /&gt;PSCombinerCount    = 0x00011102&lt;br /&gt;PSTextureModes    = 0x00000021&lt;br /&gt;PSDotMapping     = 0x00000000&lt;br /&gt;PSInputTexture    = 0x00000000&lt;br /&gt;PSC0Mapping     = 0xFFFFFFFF&lt;br /&gt;PSC1Mapping     = 0xFFFFFFFF&lt;br /&gt;PSFinalCombinerConstants  = 0x000001FF&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So obviously enough, the contents of the structure will vary on the contents of your shader.  Quite frankly, it reminds me of .fx files.  They are very convienent to use, but once again, not available in D3D8.&lt;br /&gt;&lt;br /&gt;Now that I think about it, there is one more option for this... Cg!  IMO Cg is awesome shader language (I don't understand why so many hate it) and it supports Direct3D 8.1 too!  It's not very different from HLSL either.  Although it should work fine on ATI cards, it will make Cxbx much more NVIDIA oriented than it already is.&lt;br /&gt;&lt;br /&gt;So, that's what I've been working on lately.  I really hope that I can get this pixel shader stuff working sometime.  Turok is looking a bit "lifeless" without it's lighting shaders emulated properly.  Lack of pixel shaders also limit Cxbx's bumpmapping support too.  I'll be sure to keep you all posted on what's going on with this latest endeavour.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT: Sorry, blogger is not very code friendly.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-7963931026474787757?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/7963931026474787757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/pixel-shader-support-more-like-re.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/7963931026474787757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/7963931026474787757'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/pixel-shader-support-more-like-re.html' title='Pixel Shader support (more like re-inventing the wheel)...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8446741564469738566</id><published>2009-12-28T15:33:00.000-08:00</published><updated>2009-12-28T16:17:44.423-08:00</updated><title type='text'>I'm back, but I need a favour (for those who can contribute).</title><content type='html'>Yup, I'm back to work on Cxbx these days.  I'm still rather busy, but I can still make updates from time to time.  Since the internet is down at my place, I might not be able to update this blog as much as I want to (I'm at the library).  Rest assured, I still have lots of things planned.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The day after Christmas I started working on Cxbx again for a bit.  Nothing major, but I did get a few noises out of Azurik's Xbox Demo xbe.  It's probably not working due to lack of launch parameters (which means Azurik needs to attempt to execute it first).  What's the status of this game?  It's still not doing anything yet (one of my old betas got it in the Nothing status).  So far, Azurik appears to be the &lt;u&gt;&lt;b&gt;H-A-R-D-E-S-T&lt;/b&gt;&lt;/u&gt; Xbox game to emulate, and if it ever works, I'll die a happy emu author.  What it did do is further remind me how lacking XDK 3911 support is.  Signatures for XDK 3911 have been rarely added from anyone lately.  I've managed to add a few, but the changes from 3911 to the closest XDK I have (4361) are just to great.  IMO, XDK 3911 wasn't very organized when it released it, but eventually got a better flow of organized code structure.  Adding DirectSound stuff for this XDK has always been a pain to do by hand (especially if you don't have that XDK).  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So anyway, I have a few favours I want to ask you all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Does anyone have XDK 3911?  It was abundant at one point, but now it's impossible to find.  Even the lib files will do okay.  I never could get it back then because I didn't have access to broadband (56k only).  If you ever want to have hopes of playing DOA3, please ask/look around :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Can anyone generate FLIRT signatures for IDA?  I had a copy of the FLIRT SDK, but I don't know what happened to it.  This will make working on Cxbx much easier so I can identify missing functions right away.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I really hate to ask favours of people, but at these times, I really need them!  Thanks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8446741564469738566?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8446741564469738566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/im-back-but-i-need-favour-for-those-who.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8446741564469738566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8446741564469738566'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/im-back-but-i-need-favour-for-those-who.html' title='I&apos;m back, but I need a favour (for those who can contribute).'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-87861272466863283</id><published>2009-12-08T18:30:00.000-08:00</published><updated>2009-12-08T19:20:12.426-08:00</updated><title type='text'>Good news and bad news...</title><content type='html'>Yes, it's that time again.  The dreaded "good news and bad news" post... here's what's going on:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bad: After starting my new job (judging by the hours I'll be working on a frequent basis), I won't have any time to work on Cxbx probably except on Sundays (and maybe not even then) until after Christmas time.  So just because you won't see as many frequent updates this month doesn't mean I've stopped working on Cxbx.  If I stop, I'll tell you first.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good: Thanks to an anonymous source, I've got some new XDKs!  5659 and 5788 to be exact.  I haven't found many that uses either one, but they'll come in handy later, I'm sure.  Also, I'm sure I'll be able to talk Caustik in making a release before Christmas too.  You've all been waiting 5 years for a new release, and it's about that time.  Just remember, it will be a *BETA*, meaning it's probably going to have random bugs in it.  Also, not every game on the compat list is guaranteed to work for everyone due to region differences, okay?  For instance, one version of DOAV might give you the dirty disc error, and another version will not so now you know.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, it's about time for me to go back to work.  *Sigh*, I just got off of work!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-87861272466863283?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/87861272466863283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/good-news-and-bad-news.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/87861272466863283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/87861272466863283'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/good-news-and-bad-news.html' title='Good news and bad news...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3183937154407745295</id><published>2009-12-04T11:42:00.000-08:00</published><updated>2009-12-05T12:18:53.182-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal Tournament'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal Championship'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>More on Unreal Championship</title><content type='html'>If you've read my last update on Unreal Championship, you'll have a good understanding by now what the situation is.  If not, you might want to read that first :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, now what's going on?  So far, this is the most interesting situation I've come across when working on this emulator.  The solution to it might be even more interesting (or annoying).  I'm not really sure which would be the best way to go from here, but I do have two ideas for this scenario (to handle the problem with the xbe trying to re-launch itself).  When XLaunchNewImage is called (and when the .xbe being called is itself) and the LaunchData parameter is saved, we can either:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Trigger some sort of "restart" process inside the CxbxKrnl so everything except the necessary things are in the initial state at which the game was started.  Then jump right back to the game's main entry point and continue as normal.  Optionally "Persist" the display until D3DDevice::Present is called.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Save the contents of pLaunchData to a file in the same directory of the game (it's size will always be 3KB). Then load the file and restore certain states the next time Cxbx is running the same game.  This will require you to restart Cxbx each time you want to go in-game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Remember, I said I'm looking for the "best" way to handle this, not the most "ideal".  I know everyone would rather have me do number 1, but so far I've only had time to try number 2.  This is what happened...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SxmYRPecbnI/AAAAAAAAAEA/RYBKbyadZ_s/s320/unreal_championship_9.jpg" style="cursor:pointer; cursor:hand;width: 320px; height: 262px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5411523849241783922" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rats!  To a certain extent, #2 does work, but it does have one small problem. The controller needs to be re-initialized so that the game will recognize that it's still there. This will require a bit of hacking.  So far, it appears that everything else worked fine.  All the files required to load the map, etc. were loaded without problems.  But so far, it looks like #1 is harder to implement and #2 requires more extensive hacking.  Maybe a simple jump could fix everything (for #1)!  Since I'll be busy tonight and all day tomorrow, there's no telling when I can actually try it.  Hopefully Caustik can jump back in sometime and give a few suggestions, but unfortunately, it appears that I'm the only one on the Cxbx team that has this game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd really like to get more in-depth on this, but atm I have much work to do IRL so just stay tuned and I'll see what I can do.  There's a lot that can be done with this game (once it works), but you'll just have to see if/when that happens :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shogun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3183937154407745295?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3183937154407745295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/more-on-unreal-championship.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3183937154407745295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3183937154407745295'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/more-on-unreal-championship.html' title='More on Unreal Championship'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/SxmYRPecbnI/AAAAAAAAAEA/RYBKbyadZ_s/s72-c/unreal_championship_9.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6382271829333940864</id><published>2009-12-03T11:35:00.000-08:00</published><updated>2009-12-03T13:25:01.702-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal Tournament'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal Championship'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Unreal'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>Unreal Championship progress...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/SxgXLz3IBzI/AAAAAAAAAD4/cm-D-y6skGs/s1600-h/unreal_championship_3.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/SxgXLz3IBzI/AAAAAAAAAD4/cm-D-y6skGs/s320/unreal_championship_3.jpg" alt="" id="BLOGGER_PHOTO_ID_5411100443953071922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/SxgXDMGrKBI/AAAAAAAAADw/1xjn1dgYjUg/s1600-h/unreal_championship_4.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/SxgXDMGrKBI/AAAAAAAAADw/1xjn1dgYjUg/s320/unreal_championship_4.jpg" alt="" id="BLOGGER_PHOTO_ID_5411100295841916946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/SxgXCxGVSuI/AAAAAAAAADo/tP2FckzN0wM/s1600-h/unreal_championship_5.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/SxgXCxGVSuI/AAAAAAAAADo/tP2FckzN0wM/s320/unreal_championship_5.jpg" alt="" id="BLOGGER_PHOTO_ID_5411100288592726754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/SxgXCYLBIyI/AAAAAAAAADg/1HC_dXNi6J0/s1600-h/unreal_championship_6.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/SxgXCYLBIyI/AAAAAAAAADg/1HC_dXNi6J0/s320/unreal_championship_6.jpg" alt="" id="BLOGGER_PHOTO_ID_5411100281901490978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/SxgXCJ2k5PI/AAAAAAAAADY/fuudfnEA7jw/s1600-h/unreal_championship_7.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/SxgXCJ2k5PI/AAAAAAAAADY/fuudfnEA7jw/s320/unreal_championship_7.jpg" alt="" id="BLOGGER_PHOTO_ID_5411100278057657586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/SxgXBx8WV5I/AAAAAAAAADQ/rJXCu7S2e04/s1600-h/unreal_championship_8.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SxgXBx8WV5I/AAAAAAAAADQ/rJXCu7S2e04/s320/unreal_championship_8.jpg" alt="" id="BLOGGER_PHOTO_ID_5411100271639418770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yeah, it's been a while since I've worked extensively on this game, but yesterday I had lots of time on my hands so I went at it.  Before I go any further, I'd like to thank Chrono Archangel find a certain XNet function (XNetGetEthernetLinkStatus).  Without his l337 google skills, I might not be posting this right now!&lt;br /&gt;&lt;br /&gt;Unreal Championship goes comfortably to the menus (and is more interactive) with little or no problems.  So far this is only for the NTSC version.  It required a small handful of hacks, but so far it looking good.  Since the game uses time based updates, you don't have to worry about it going to fast when VSync isn't enabled :)  I also learned a few new tricks when emulating this game!  Even though UT2003 for PC is practically the identical in many ways, IMO this game is too different so I say it's safe to consider this game an Xbox exclusive (that's one reason why I own both).&lt;br /&gt;&lt;br /&gt;If you look at the screens, you'll notice that it looks as if termites have been eating some of the textures.  "What is it?"  Not 100% sure, but my guess is either it's another swizzling issue, or it's a palettised 8-bit texture and the conversion from D3DFMT_P8 -&gt; D3DFMT_A8R8G8B8 isn't perfected yet.    One thing I noticed was that so far, XACT wasn't really used much after loading one wave bank (which was surprising), so I might not have to implement the whole XACT API after all (which would be a major sigh of relief).&lt;br /&gt;&lt;br /&gt;Now for the list of hacks needed.  The first one I should have mentioned before.  Sorry to those who tried running this game on my branch before with no success.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;At one point, I was trying to add a missing DirectSound API and I couldn't generate a digital signature for it.  So what I did was I made a copy of my xbe and filled that function call with NOPs using a hex editor.&lt;/li&gt;&lt;li&gt;Disabled overlay updates so that the second video can play.  The first video works without the hack, but when the second one plays without the hack, it will cause a crash inside of the DirectDraw DLL.  I couldn't think of a better solution at the time so I did this.&lt;/li&gt;&lt;li&gt;For some reason, Unreal likes to lock it's textures at each level until it fails.  So I had to tell EmuIDirect3DTexture8_LockRect to fail when the texture level is higher than 5.&lt;/li&gt;&lt;li&gt;This last hack probably won't work for everyone, but I added a hack in EmuIDirect3DDevice8_SetIndicies to stop it from crashing because the IndexBuffer pointer appears to be bogus.  If you get a CreateIndexBuffer failed error when trying to go passed the first menu screen, try it again.&lt;/li&gt;&lt;/ol&gt;These were some dirty and totally ugly hacks used (and I had a feeling that this was going to happen anyway).  Oh well, as long as it works, right?&lt;br /&gt;&lt;br /&gt;"So, what's stopping it from getting us in game?"  Okay, here's where it get's complicated.  It's bad enough that Unreal Championship uses features that are rarely used in Xbox games (or should I say features that we're not used to emulating for Cxbx?) which makes things a bit more complicated, but it's biggest feature is getting to us.  Unreal Championship was the first console game in history that supported [executable] patches for the game.  This means that in order to run that patch, it has to execute a new .xbe file.  Cxbx is currently not capable of doing that.  But what if it's not there?  What it appears to be doing is loading the default.xbe over again if it isn't.  It may have been designed like this as a cheap way of clearing most data from memory.  So, that's the problem... but what about a solution?  Here's an idea.  I added the function XLaunchNewImage today to see what it was trying to do.  Just as I stated above, it's just re-executing itself.  Wouldn't that just start everything over?  No, not really.  Fortunately, the XDKs documentation on XLaunchNewImage is quite adequate, well written and very informative.  Since an Xbox .xbe's entry point (void __cdecl main()) does not take any parameters (i.e. no command line), they have to be set using XLaunchNewImage.  The function XGetLaunchInfo is used to retrieve the the data set by XLaunchNewImage.  Since Unreal appears to be going back to the entry point after attempting to reload default.xbe, there's a chance that we can fool it by saving the params from the last call from XLaunchNewImage so that they can be retrieved by XGetLaunchInfo.  This might work, and it might not.  It's worth a try, and so far, I don't see any other options as of now.  I'll give it a try, but just know this.  I can't guarantee that I can get this one in-game.  I can only guarantee my best efforts!&lt;br /&gt;&lt;br /&gt;One more thing, I'm looking for anything on the .xbx file format.  What is an .xbx file?  It's a customized texture format for the Xbox.  Since Unreal Championship calls XGWriteSurfaceOrTextureToXPR to create it's icons, it would be ideal to be able to create this functionality just in case the icon is actually used.  So if you can find any tools, have any source code that deals with this file format, let me know!&lt;br /&gt;&lt;br /&gt;Before I conclude this update, I just want to thank all the Cxbx supporters and fans that have been keeping up with us for all this time.  Chrono Archangel, Mr. Fabulous, saintseiya, nokiaman, and more, I really appreciate you all!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6382271829333940864?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6382271829333940864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/unreal-championship-progress.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6382271829333940864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6382271829333940864'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/12/unreal-championship-progress.html' title='Unreal Championship progress...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JCm3YFlrKgE/SxgXLz3IBzI/AAAAAAAAAD4/cm-D-y6skGs/s72-c/unreal_championship_3.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3137656001242079580</id><published>2009-11-29T12:19:00.001-08:00</published><updated>2009-11-29T12:58:28.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><category scheme='http://www.blogger.com/atom/ns#' term='Chihiro'/><title type='text'>Martin_sw continues his work for Chihiro support.</title><content type='html'>It's been a while since I've talked to Martin_sw, but today we were having a conversation and so far, it looks like he hasn't given up.  Here's what he had to say:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"ok, seems sega just highjacked it for chihiro then so far i have added these to cxbx:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsScFirmwareDownload@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsScFirmwareUpload@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsScSendRs323c@12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsScReceiveRs323c@12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsScSendMidi@12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsScReceiveMidi@12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsEEPROM_Read@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsEEPROM_Write@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsBACKUP_Read@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsBACKUP_Write@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsNodeReceivePacket@12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsNodeSendPacket@12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsFirmwareUpload@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsFirmwareDownload@16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JvsRTC_Read@16&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;This is interesting because even though it's obvious that Chihiro would have customized functions, but it's amazing how fast Martin discovered these.  It looks like we might be seeing Chihiro sooner than we thought!&lt;br /&gt;&lt;br /&gt;Another thing, remember that game I was going to surprise you all with?  You all guessed right, it was JSRF.  I hate to say it, but it might not be playable before Christmas at this rate (darn)!  I ran into some extremely annoying problem and I have no idea how to fix it (for both PAL and NTSC versions).  *Sigh*, oh well, I'm sure I'll figure something out, but as long as you know I'm working on it so you don't have to beg me for JSRF support anymore.  Either way, I can still make up for this with something else in the meantime *muwahahahahahaha!*&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3137656001242079580?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3137656001242079580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/martinsw-continues-his-work-for-chihiro.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3137656001242079580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3137656001242079580'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/martinsw-continues-his-work-for-chihiro.html' title='Martin_sw continues his work for Chihiro support.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-4779599219097156707</id><published>2009-11-24T14:28:00.000-08:00</published><updated>2009-11-24T14:51:28.468-08:00</updated><title type='text'>The lastest on Shogun's branch (11/24/09).</title><content type='html'>Well, Thanksgiving is right around the corner!  Hmm, I wonder what's for dinner? lol.  Anyway, what's this update about?  Good question.  As of yesterday, I've been hauling alot of code around (mostly digital signatures from the D3D8 and XAPILIB libraries).  I noticed that XDK 4134 is really lacking in digital signatures.  There were some good games using that XDK, so I decided to do some work on it (which also leads up to some new stuff for other XDKs).  The first thing I did was tell Cxbx to treat whatever library I was testing as a different version:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;if(BuildVersion == 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    BuildVersion = 3925;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So after I checked my 4134 games against each XDK from 3911 to 4627, I've managed to come up with almost 100 signatures (and there's lots more to add for DSOUND).  Here's a list taken from my changelog:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;- Added the following function(s)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlCreateHeap (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlAllocateHeap  (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlFreeHeap (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlReAllocateHeap (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlSizeHeap (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XapiBootDash (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XRegisterThreadNotifyRoutine (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XGetDeviceChanges (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XID_fCloseDevice (XREF) (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XInputClose (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XInputGetCapabilities (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    SetThreadPriorityBoost (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    GetThreadPriority (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XGetDevices (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    QueryPerformanceCounter (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    QueryPerformanceFrequency (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XInputPoll (4134 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XGetSectionHandleA (4134 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XLoadSectionByHandle (4134 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XFreeSectionByHandle (4134 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlDestroyHeap (4134 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    D3DDevice_CreatePixelShader (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DSurface8_LockRect (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Lock2DSurface (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    D3DDevice_SetGammaRamp (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3D8_CheckDeviceFormat (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3D8_GetAdapterModeCount (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3D8_EnumAdapterModes (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_LoadVertexShader (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SelectVertexShader (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_CopyRects (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_CreateImageSurface (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetVertexShaderConstant (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetPixelShader (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetTextureState_BumpEnv (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetIndices (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetTexture (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_VertexBlend (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_TextureFactor (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_EdgeAntiAlias (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_Simple (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_ZEnable (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_StencilEnable (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_GetTransform (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetStreamSource (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetVertexShader (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_DrawVertices (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_DrawVerticesUP (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_DrawIndexedVertices (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetLight (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetMaterial (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_LightEnable (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DVertexBuffer8_Lock (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    Get2DSurfaceDesc (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DSurface8_GetDesc (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_StencilFail (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_NormalizeNormals (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_Reset (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3D8_KickOffAndWaitForIdle (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetTextureState_TwoSidedLighting (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_BackFillMode (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetTextureState_ColorKeyColor (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_FrontFace (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_LogicOp (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_StencilFail (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_OcclusionCullEnable (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_StencilCullEnable (4134 - 4361)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;- Move the following functions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XInputPoll (4928 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XGetSectionHandleA (4627 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XLoadSectionByHandle (4627 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    XFreeSectionByHandle (4627 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    RtlDestroyHeap (4627 -&gt; 4134)    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_Reset (4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3D8_KickOffAndWaitForIdle (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetTextureState_TwoSidedLighting (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_BackFillMode (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetTextureState_ColorKeyColor (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_FrontFace (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_LogicOp (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_StencilFail (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_OcclusionCullEnable (4432 -&gt; 4134)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_SetRenderState_StencilCullEnable (4432 -&gt; 4134)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's quite a bit of stuff missed.  TBH, I'm not done yet.  I've also been able to find out why 4034, 4039 and 4134 are getting false positives.  Whoever started trying to add 4034 and 4134 support just threw in a bunch of signatures from D3D8 3925 must have been looking for similarities in that XDK.  Good idea when you don't have a certain XDK, but it's not 100% safe to do (or leave in unattended).  There may be more, but I do need to check for some more doubles when I get a chance.&lt;br /&gt;&lt;br /&gt;"Hold on a sec, there's got to be a reason why you're doing all this!  What is it?"  Well, that's going to be a surprise for now.  TBH, I really don't want to spoil it but I if you have an Xbox game that was released in February 2002, I'm sure you have a good idea what it is.  I want to see it work just as bad as you do, so you all can stop complaining about it! :)  I get requests for this game all the time, so I just want to keep you guys "smiling" a "bit" (another hint)!&lt;br /&gt;&lt;br /&gt;Oh yeah, don't worry, I've got a nice Christmas present up my sleeve for you all!  Stay tuned.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-4779599219097156707?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/4779599219097156707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/lastest-on-shoguns-branch-112409.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4779599219097156707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4779599219097156707'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/lastest-on-shoguns-branch-112409.html' title='The lastest on Shogun&apos;s branch (11/24/09).'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8192510361591542541</id><published>2009-11-22T19:47:00.000-08:00</published><updated>2009-11-23T02:07:57.910-08:00</updated><title type='text'>Latest Progress: Petit Copter (and continuing Kingofc's work).</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGhYp6pHI/AAAAAAAAADI/GmsWEKzgu0g/s1600/PetitCopter_4.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGhYp6pHI/AAAAAAAAADI/GmsWEKzgu0g/s320/PetitCopter_4.jpg" alt="" id="BLOGGER_PHOTO_ID_5407141473235412082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/SwoGhOUxkfI/AAAAAAAAADA/kg2xQfbSoIs/s1600/PetitCopter_3.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/SwoGhOUxkfI/AAAAAAAAADA/kg2xQfbSoIs/s320/PetitCopter_3.jpg" alt="" id="BLOGGER_PHOTO_ID_5407141470462382578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGgzNc0sI/AAAAAAAAAC4/A3-ZJP9BnHc/s1600/PetitCopter_2.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGgzNc0sI/AAAAAAAAAC4/A3-ZJP9BnHc/s320/PetitCopter_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5407141463183905474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGgg61PzI/AAAAAAAAACw/Dbku-n8--bw/s1600/PetitCopter_1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 263px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGgg61PzI/AAAAAAAAACw/Dbku-n8--bw/s320/PetitCopter_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5407141458273976114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So far, my theory was right!  The game known as Petit Copter (XDK 4361) so far seems to be pretty easy to emulate.  It's already showing 3D graphics (not in-game yet) and runs at reasonable speeds.  Nothing too complex so far, there's just one annoying thing I'm having a bit of trouble fixing, but I'll get it eventually.&lt;br /&gt;&lt;br /&gt;Hey, want to know what makes it even easier to work on??  The code was almost completely based off of the Technical Certification Game in the XDK!  Almost everything is the same.  So that means fixing the TechCertGame will make this game playable!  While I respect the work of any game developer/programmer, this game was very cheap, lol.  The only thing that's stopping me right now is the dreaded IDirectSoundStream_FlushEx function.  It's a bit tricky, and also different from the XDK specifications when viewing the disassembled version in IDA.  So far, this function appears to be stopping the TechCertGame from working.  So far, I'll assume it's the same with Petit Copter.  Either way, if Kingofc could get this TechCertGame working, so can I!  It would be nice if he was still around as have learned a great deal from him and would love to continue to do so.  &lt;a href="http://www.caustik.com/kingofc/"&gt;This&lt;/a&gt; was his old dev page (ahh, the good old days of Cxbx)!&lt;br /&gt;&lt;br /&gt;So stay tuned.  It shouldn't be too much work getting this game playable.  TBH, I thought Smashing Drive was super easy to work with.  So far, this one is easier than that, and it only took less than a day's worth of work to get this far!  Boy, that was easy...&lt;br /&gt;&lt;br /&gt;Btw, check out the youtube video &lt;a href="http://www.youtube.com/watch?v=ACzHfhimQoU"&gt;Here&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Shogun&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8192510361591542541?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8192510361591542541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/latest-progress-petit-copter-and.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8192510361591542541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8192510361591542541'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/latest-progress-petit-copter-and.html' title='Latest Progress: Petit Copter (and continuing Kingofc&apos;s work).'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/SwoGhYp6pHI/AAAAAAAAADI/GmsWEKzgu0g/s72-c/PetitCopter_4.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3518586897678797789</id><published>2009-11-19T19:16:00.000-08:00</published><updated>2009-11-19T20:25:07.900-08:00</updated><title type='text'>Got my hands on a fairly rare Xbox game today!  Haha.</title><content type='html'>Even though I'm still not off of my Cxbx break yet, I still want to share with you all what my plans are for when I'm ready to start working on it again.  I still have multiple IRL things to take care of, and I think I burned myself out on Cxbx too many times.  No worries, I shall return soon!&lt;br /&gt;&lt;br /&gt;So, about this new game, what is it??  To much surprise, I got the opportunity to get my hands on a Japanese title (NTSC-J) known as "Petit  Copter"!  What is so great about this game?  Well, after browsing the internals of this game, is looks like this game is of little complexity, uses an XDK Well supported by Cxbx (4361), only standard XDK libraries (No LTCG!), and an extremely simplified file structure.  So far, this game looks very easy to emulate!  I already did try running it with Cxbx, and the crash details so far appear to be very minor.  The funny thing that happens with the debug output is that when the console is enabled, it crashes on a missing Xapi function (Rtl*Heap).  On the other hand, this does not happen when the KrnlDbg.txt file is outputed; instead, it's a missing DirectSound function.  No big deal though, nothing I can't fix.&lt;br /&gt;&lt;br /&gt;When I take a good look at Cxbx, it appears that XDK 4361 has been a bit "neglected".  Probably because there aren't (or at least it doesn't appear that) many games using this XDK exist.  So far, I only have 2 besides Petit Copter (if you count Smashing Drive which uses 4242, but counted as 4361, that makes 3).  Since I have this XDK already, finding the missing functions should be no problem.  Can't wait to increase the compatibility list game count to 20!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3518586897678797789?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3518586897678797789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/got-my-hands-on-fairly-rare-xbox-game.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3518586897678797789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3518586897678797789'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/got-my-hands-on-fairly-rare-xbox-game.html' title='Got my hands on a fairly rare Xbox game today!  Haha.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3171389933548153286</id><published>2009-11-16T22:44:00.000-08:00</published><updated>2009-11-16T23:14:03.987-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='source'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>Cxbx and OpenGL: Time to shed some light on this topic...</title><content type='html'>Okay, this question has come up many times (even more ever since I started that poll on ngemu.com getting opinions on an OpenGL port of Cxbx).  Will Cxbx be ported to OpenGL?  That's part of my plan, yes.  For those of you wondering why I'd do such a thing, I'll give you an explanation as to why.&lt;br /&gt;&lt;br /&gt;Ever since Cxbx has been released, you'll notice that it has been using Direct3D 8.0; notice a problem already?  Direct3D 8 has been depreciated a long time ago and it doesn't really have any good debugging tools anymore.  IMO, the driver support for Direct3D 8 isn't that great either.  To top it off, PC standard Direct3D8 (and 9) does not contain all of the functionality we need to emulate the Xbox.  Fortunately, OpenGL does!  Using OpenGL will allow us to have a much cleaner implementation for certain functions if implemented properly.  Some say that because OpenGL isn't COM oriented, an OpenGL port would be too hard.  No, not really.&lt;br /&gt;&lt;br /&gt;Ever heard of Wine?  We can always use the WineD3D implementation instead.  This way, we can basically have our own customized Direct3D library, and add all the custom functionality that standard Direct3D lacks... and still be using OpenGL the whole time!  I've already picked up the idea and have been planning my implementation of WineD3D into Cxbx.  It would be easiest to just take the needed code from WineD3D and create a custom library and call it WineX or something like that.  Thank God it's GPL :)&lt;br /&gt;&lt;br /&gt;So there you have it.  An OpenGL port is planned, but as of now, it's still not a top priority.  But once implemented, we can easily test it against XDK samples to ensure accuracy and speed when necessary.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3171389933548153286?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3171389933548153286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-and-opengl-time-to-shed-some-light.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3171389933548153286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3171389933548153286'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-and-opengl-time-to-shed-some-light.html' title='Cxbx and OpenGL: Time to shed some light on this topic...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-4155813478682346753</id><published>2009-11-14T13:02:00.000-08:00</published><updated>2009-11-14T14:02:50.730-08:00</updated><title type='text'>Thoughts: DrawIndexedVertices[UP] may be our problem...</title><content type='html'>I've been talking to martin_sw about a few things Cxbx related a few days ago.  Eventually we got around to talking about speed and corruption issues (for Panzer, Robotech Battlecry, and BattleStar Galactica appear to suffer from this).  One interesting detail that came up was our implementation of EmuIDirect3DDevice8_DrawIndexedVertices.  He says that if this function is used in any games we are emulating and speed/graphics issues occur, this function is likely the problem as it really needs optimization and stuff.  I've never actually looked into how the Draw[Indexed]Vertices[UP] functions work on a real Xbox, and just assumed sir Caustik had that taken care of.  Just in case you didn't know Draw[Indexed]Vertices[UP] is not a part of PC standard Direct3D.  It's an Xbox extension and as far as I know, Draw[Indexed]Primitive[UP] is really redirected to Draw[Indexed]Vertices[UP].  I can do some simple tests to see what may be causing our problems.&lt;br /&gt;&lt;br /&gt;I can hear you saying, "Do you have anything interesting to show us??".  Hold on, I'm getting to that; okay, fine... lol.  I got Robotech Battlecry to go in-game again.  I still didn't get around to fixing the random problem yet, but someone from emu-land.net (IIRC) made a SSE2 optimized version of Cxbx r-153.  It started up Robotech Battlecry about 4 times in a row without problems.  I did make a few in-game screenshots for you (since I couldn't last time).  They are highly distorted, but here they are:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/Sv8lCMEF8lI/AAAAAAAAACo/DvwyjI_sbsA/s1600-h/RobotechBattlecry_Credits.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/Sv8lCMEF8lI/AAAAAAAAACo/DvwyjI_sbsA/s320/RobotechBattlecry_Credits.jpg" alt="" id="BLOGGER_PHOTO_ID_5404078797396243026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/Sv8lBhYgkZI/AAAAAAAAACg/--lCF70VNsk/s1600-h/RobotechBattlecry_Ingame2.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/Sv8lBhYgkZI/AAAAAAAAACg/--lCF70VNsk/s320/RobotechBattlecry_Ingame2.jpg" alt="" id="BLOGGER_PHOTO_ID_5404078785939149202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/Sv8lBRBAaRI/AAAAAAAAACY/5LO4UU5iQYU/s1600-h/RobotechBattlecry_Ingame1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/Sv8lBRBAaRI/AAAAAAAAACY/5LO4UU5iQYU/s320/RobotechBattlecry_Ingame1.jpg" alt="" id="BLOGGER_PHOTO_ID_5404078781545605394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Even through the frame rates are decent, you can't really do anything in-game because it crashes almost immediately.  Since it was a release build I tested, I wasn't able to track the problem.  I can already tell it's an internal problem in the CxbxKrnl.  I tried to make a youtube video of this, but it looks like fraps can't correctly record this game (everything is just a few blue lines).  Oh well...&lt;br /&gt;&lt;br /&gt;So as you can see, the problem is getting pretty dire (haha).  So I'll start testing some scenarios with DrawIndexedVertices[UP] on Cxbx and then try them on my real debug Xbox.  Well, had to have some kind of update, heh heh....&lt;br /&gt;&lt;br /&gt;Shogun&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-4155813478682346753?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/4155813478682346753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/thoughts-drawindexedverticesup-may-be.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4155813478682346753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4155813478682346753'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/thoughts-drawindexedverticesup-may-be.html' title='Thoughts: DrawIndexedVertices[UP] may be our problem...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JCm3YFlrKgE/Sv8lCMEF8lI/AAAAAAAAACo/DvwyjI_sbsA/s72-c/RobotechBattlecry_Credits.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8334860175488506652</id><published>2009-11-13T13:41:00.000-08:00</published><updated>2009-11-13T13:56:16.883-08:00</updated><title type='text'>New SVN update (r-153)</title><content type='html'>If you've tried to download and compile my last SVN update (r-145), you might have had some problems.  Well, I fixed those issues today (and tested them for myself), and hopefully, that should solve everyone's problems!  What did I change/fix? &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Updated the OpenXDK includes in the import folder.  I forgot to fix that.&lt;/li&gt;&lt;li&gt;Updated the resource files Cxbx.res and CxbxDll.res.  I didn't realize those changed at first.&lt;/li&gt;&lt;li&gt;Updated the libjpeg.lib file.&lt;/li&gt;&lt;li&gt;Added the DirectX8 SDK include and library files so if you don't have it, you can save yourself some time.  It's an extra 12.5MB, but worth it.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;This should make things easier for everyone now.  If you don't have the DirectX8 SDK (or an SDK that has the required include/lib files), you'll still have to set the include/lib directories yourself in Visual Studio.  One more thing, if you have conflicts with LIBC.lib, you can just add LIBC.lib in the "Ignore Specific Library" list (just remember to add a semicolon (;) after each lib.  It's a single threaded library and Cxbx uses the Multi-Threaded options in VS 2008 making it obsolete.  So go ahead and start compiling!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8334860175488506652?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8334860175488506652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/new-svn-update-r-153.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8334860175488506652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8334860175488506652'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/new-svn-update-r-153.html' title='New SVN update (r-153)'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8091622527688640402</id><published>2009-11-11T19:37:00.000-08:00</published><updated>2009-11-11T20:46:52.972-08:00</updated><title type='text'>Chihiro XOR keys discovered!</title><content type='html'>Good news for all the Sega Chihiro enthusiasts!  After a talk with Martin_sw (the one who added support for BattleStar Galactica for Cxbx), I got to find out that he discovered how to decode the entry point and kernel thunk addresses for Sega Chihiro .xbe files!  If you've ever tried to load a Chihiro .xbe into Cxbx, you'll notice that the entry point is some absurd hex number!  That's because the engineers for the Chihiro software decided to do things differently.  So when loading a Chihiro .xbe file, use the following keys to decode the entry point and kernel thunk address instead.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#define XOR_ENTRY_POINT_CHIHIRO   0x40B5C16E&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#define XOR_KERNEL_THUNK_CHIHIRO  0x2290059D&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I haven't actually tried it myself, but Martin_sw really knows his stuff!  Hope to make more discoveries that lead up to emulating this awesome arcade machine architecture!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8091622527688640402?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8091622527688640402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/chihiro-xor-keys-discovered.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8091622527688640402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8091622527688640402'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/chihiro-xor-keys-discovered.html' title='Chihiro XOR keys discovered!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2631538358851267547</id><published>2009-11-11T17:43:00.000-08:00</published><updated>2009-11-11T18:31:31.485-08:00</updated><title type='text'>Cxbx SVN update (145).</title><content type='html'>That's right, the shogun3d branch just got updated today.  TSVN decided to stop being a jerk today, so now it's updated (rev-145).  You can get it from http://cxbx.svn.sourceforge.net/viewvc/cxbx/branches/private/&lt;br /&gt;&lt;br /&gt;So, what does this update contain?  Everything I've done since last October actually.  Sorry I waited this long.  Just has to do it soon before something unfortunate happens.  Yes, it plays Smashing Drive, Panzer, and Robotech: Battlecry (if you're lucky).  Remember, this is still in the beta stages, so please don't ask me why your game doesn't work (even if it is on the compatible list) or how to compile it here because this blog is for the disscussion of the shogun3d-Cxbx branch's updates... not tech support nor a compatibility FAQ.  If you need help, go to the forums @ ngemu.com (and don't PM me for support either!), okay?&lt;br /&gt;&lt;br /&gt;Also, don't forget to chech the doc folder.  There you can view my changelog (ShogunChangeLog.txt) and see what I've done and when I've done it.  I've also started the XACT support too.  It isn't fully tested nor is it complete enough to run any game using it, but Unreal Championship needs it.  There's more, but I am typing from an iPhone so it takes too long for me to type it all!  I'll have more updates soon!&lt;br /&gt;&lt;br /&gt;EDIT: You'll need Microsoft Visual Studio .net 2008, the latest Platform SDK and a DirectX SDK containing the DirectX 8.1 headers and libraries to compile these sources (search google).  If you don't have MSVC .net 2008, you can use an express version of 2008 downloaded from microsoft.com.  If you are using .net 2010 Beta, you'll just have to try it for yourself because 2010 Beta isn't working on my laptop.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2631538358851267547?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2631538358851267547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-svn-update-145.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2631538358851267547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2631538358851267547'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-svn-update-145.html' title='Cxbx SVN update (145).'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3093529865928133373</id><published>2009-11-09T14:18:00.000-08:00</published><updated>2009-11-09T21:56:08.415-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><category scheme='http://www.blogger.com/atom/ns#' term='Robotech Battlecry'/><title type='text'>Robotech: Battlecry... hey, it was working a minute ago!!!</title><content type='html'>*sigh* I hate it when this happens...&lt;br /&gt;&lt;br /&gt;Even though I'm still taking a break from the scene, I just thought I'd share this with you all anyway.  Today I was getting curious about Robotech Battlecry again (XDK 4721).  In general, I just wanted to see if anything I added in for Panzer fixed this one.  It appeared that way, but then again maybe not.  I booted up Robotech Battlecry with Cxbx, and it appeared to go in-game without problems (by problems I mean crashes).  The distortion of 3D was worse than that of Panzer TBH, but at least it worked!  I did take some screens though (how could I not?) so check 'em out below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/SviXUbo-xAI/AAAAAAAAACQ/6hzZ2tF5UNI/s1600-h/RobotechBattlecry_Menus4.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/SviXUbo-xAI/AAAAAAAAACQ/6hzZ2tF5UNI/s320/RobotechBattlecry_Menus4.jpg" alt="" id="BLOGGER_PHOTO_ID_5402234130303730690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/SviXT44RPKI/AAAAAAAAACI/RiwRUMAz1a4/s1600-h/RobotechBattlecry_Menus3.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/SviXT44RPKI/AAAAAAAAACI/RiwRUMAz1a4/s320/RobotechBattlecry_Menus3.jpg" alt="" id="BLOGGER_PHOTO_ID_5402234120972614818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/SviXThkl31I/AAAAAAAAACA/LsYiow04WQI/s1600-h/RobotechBattlecry_Menus2.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/SviXThkl31I/AAAAAAAAACA/LsYiow04WQI/s320/RobotechBattlecry_Menus2.jpg" alt="" id="BLOGGER_PHOTO_ID_5402234114716065618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/SviXTWGh25I/AAAAAAAAAB4/44V5HvQpV6A/s1600-h/RobotechBattlecry_Menus1.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/SviXTWGh25I/AAAAAAAAAB4/44V5HvQpV6A/s320/RobotechBattlecry_Menus1.jpg" alt="" id="BLOGGER_PHOTO_ID_5402234111637183378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In-game, as I stated earlier, the 3D scene was heavily distorted!  I should have taken a screenshot of it, but instead, I closed Cxbx in an attempt to run it with a Release build because I had the debug trace enabled and the debug console was also on and I wanted to see how fast it would run without the console slowing it down.  After that, it never worked again!  Debug or Release build, it just crashed.  It appears that the DirectSound call that was causing the crash didn't get called that time.  I'll look into the problem later as I am just way too tired right now.&lt;br /&gt;&lt;br /&gt;When will I be back, you ask?  I dunno when, but right now, the IRL issues are enough to keep me busy and sleepy throughout the day.  It shouldn't be too long since I tend to have lots of free time these days.  But today is not one of these days, so stick around.  I have lots more tricks up my sleeve!&lt;br /&gt;&lt;br /&gt;Just thought I'd keep you all posted on my progress today (even if it was just a one time fluke).  So if you'll excuse me, I'll be taking a nap now!&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3093529865928133373?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3093529865928133373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/robotech-battlecry-hey-it-was-working.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3093529865928133373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3093529865928133373'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/robotech-battlecry-hey-it-was-working.html' title='Robotech: Battlecry... hey, it was working a minute ago!!!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JCm3YFlrKgE/SviXUbo-xAI/AAAAAAAAACQ/6hzZ2tF5UNI/s72-c/RobotechBattlecry_Menus4.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2136299557006324638</id><published>2009-11-06T12:38:00.001-08:00</published><updated>2009-11-06T13:12:21.838-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox1'/><category scheme='http://www.blogger.com/atom/ns#' term='Panzer'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>Taking a break for a while.</title><content type='html'>Ever since I started working on Panzer, it's been taking a lot of my energy.  Right now, I'm completely burned out from working on Cxbx.  We all get this way.  Don't worry, I'll be back.  Just remember, we all have lives outside of the scene.  I feel good that I've gotten this far, but sometimes you just have to take a step back and get back to other things for a while because the excitement is just killing me (literally, in one way or another).&lt;br /&gt;&lt;br /&gt;Also, it may not be to long until Caustik is back in action.  I won't say much at this point, but I think it's going to happen rather soon.&lt;br /&gt;&lt;br /&gt;Before I go, I just wanted to share something with you all (just in case you haven't seen it).  I made a youtube video of Panzer Dragoon ORTA ingame if you're interested in seeing it right now.  So far, only the NTSC version is compatible, PAL doesn't work yet.&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=4i6fmVuFgvA"&gt;&lt;br /&gt;http://www.youtube.com/watch?v=4i6fmVuFgvA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I come back, I'll try to fix a few more issues with Panzer and get back to work on a few other games I started working on, like Robotech: Battlecry and Unreal Championship, okay?&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2136299557006324638?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2136299557006324638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/taking-break-for-while.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2136299557006324638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2136299557006324638'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/taking-break-for-while.html' title='Taking a break for a while.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-8235170781400964998</id><published>2009-11-05T14:33:00.000-08:00</published><updated>2009-11-05T15:30:15.492-08:00</updated><title type='text'>Continuing preliminary XACT support.</title><content type='html'>&lt;span style="font-family: arial;"&gt;Yup, that's right, I'm finally getting around to adding XACT support for Cxbx.  What is XACT?  It's a cross platform audio API which was originally designed for the Xbox, but now included on the DirectX SDK and Xbox 360 SDK.  It's a rather simple API and it shouldn't take too much work to get it up and running.  So far I'm only adding it for XDK 4627 and 4928.  The reason is that the only game I have access to that uses it is Unreal Championship.  I've been working at this game trying to fix it for "years" (yes, it's that tough), and I have no intention on giving up yet.  Besides, this was one of my first Xbox games and also one of the most memorable :)  For now, I'll share my true motives for emulating this title later... I want it to be a surprise!&lt;br /&gt;&lt;br /&gt;Even though XACT on Xbox1 is basically a wrapper for DirectSound, we still have no choice but to emulate it.  Even though XACT is now on the PC, we still can't simply use the PC version of these interfaces because the .xwb and .xsb file formats appear to be different.  Luckily for us, they have both been hacked and there are open source tools out there to help us learn how to parse these files ourselves.  Since .xsb files generally use .wav files, I can easily use my custom wave loader to load sounds directly from that file.  We'll still have to worry about non-standard PCM formats though (i.e. ADPCM, XBOXADPCM, etc.), but the Xbox Adpcm codec is also hacked and can be loaded via custom decoder.&lt;br /&gt;&lt;br /&gt;When the preliminary support is finished, it will probably have the same status as DirectSound on Cxbx as just getting the functions hijacked are the most important thing.  Then when the XDK samples work without crashing, then we can add the stuff that makes it work!  Eventually, I want to get the Xbox Adpcm codec working.  It shouldn't take too long, but it's only a medium priority now.&lt;br /&gt;&lt;br /&gt;Oh yeah, I figured out why my XRefs were killing Cxbx.  I forgot to increase the size of the XRef database array!  I feel so stupid.  Anyway, I can resume working on this HLE data base maintenance.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-8235170781400964998?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/8235170781400964998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/continuing-preliminary-xact-support.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8235170781400964998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/8235170781400964998'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/continuing-preliminary-xact-support.html' title='Continuing preliminary XACT support.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-4820207774411932389</id><published>2009-11-04T21:32:00.000-08:00</published><updated>2012-01-11T22:23:31.749-08:00</updated><title type='text'>Cxbx compatibility list (Updated January 11, 2012)</title><content type='html'>&lt;span style="font-family:arial;"&gt;This is something I've been meaning to re-write lately.  Now that I have a chance to do it, my internet is not working too well (Comcast wireless).  So we'll have to settle for the plain-old text version.  My last list was on geocities (which was shut down last month), so I've managed to add every game that actually does something here.  So without further adieu... here it is.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:arial;"&gt;IF IT'S NOT ON THE LIST, THEN IT EITHER DOESN'T WORK, OR HASN'T BEEN TESTED!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;***I've added a new catagorey called &lt;span style="color: rgb(255, 0, 0);"&gt;Nothing&lt;/span&gt;.  This means the game shows nothing but a black screen, without crashing.***&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total Games: 58&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;Playable&lt;/span&gt;: 5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Ingame&lt;/span&gt;: 9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Menus&lt;/span&gt;: 11&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(255, 255, 0); font-weight: bold;"&gt;Intros&lt;/span&gt;: 29&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Nothing&lt;/span&gt;:&lt;/span&gt; 4&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Newly added: Panzer Dragoon 1&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;Newly Updated: Myst III (Ingame)&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;1. Turok Evolution&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(51, 204, 0);"&gt;Playable&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;2. Battle Star Galactica&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(0, 0, 153);"&gt;Ingame, with PAL and NTSC!&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;3. Panzer Dragoon Orta&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(0, 0, 153);"&gt;Ingame&lt;/span&gt;)(**)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;4. Halo: Combat Evolved&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 102, 0);"&gt;Menus&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;5. Dead or Alive Xtreme Beach Volleyball&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;6. Unreal Championship &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 102, 0);"&gt;Menus&lt;/span&gt;) (***)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;7. Myst III&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span&gt;Ingame&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;8. Genma Onimusha&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;9. Smashing Drive&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(51, 204, 0);"&gt;Playable&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;10. Futurama&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(51, 204, 0);"&gt;Playable&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;11. Celebrity Death Match&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(0, 0, 153);"&gt;Ingame&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;12. 4x4 Evo2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;13. Star Wars: Clone Wars&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;14. Rayman Arena&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;15. Zapper&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;16. Taz: Wanted&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;17. Robotech: Battlecry&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(51, 204, 0);"&gt;Playable&lt;/span&gt;) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;18. Blood Rayne&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 102, 0);"&gt;Menus&lt;/span&gt;&lt;span style="color: rgb(255, 255, 0);"&gt;&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;19. Tron 2.0: Killer App&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;20. Petit Copter&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(0, 0, 153);"&gt;Ingame&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;21. Fusion Frenzy (Demo)&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;22. Commandos II&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(255, 0, 0);"&gt;Nothing&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;23. Taito Legends&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(255, 0, 0);"&gt;Nothing&lt;/span&gt;)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;24. Dead to Rights&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;Ingame&lt;/span&gt;)(*)(***)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;25. Pacman Worlds 2&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 51);"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;26. Alter Echo&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 51);"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;27. Namco Museum&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 51);"&gt;Intros&lt;/span&gt;)(*)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;28. Dues Ex: Invisible War&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 51);"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;font-family:arial;"&gt;29. Azurik: Rize of Perathia!!!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Status: (&lt;span style="color: rgb(0, 0, 153);"&gt;Ingame&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;30. Burnout&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;31. Blade II&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;32. Kabuki Warriors&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 153, 0);"&gt;Menus&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;33. Blood Wake&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 255, 0);"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;34. Gauntlet: Dark Legacy&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 153, 0);"&gt;Menus&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;35. Metal Arms: Glitch in the System&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span" style="color: rgb(255, 153, 0);"&gt;Menus&lt;/span&gt;)(****)(*)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;36. Tetris Worlds: Live&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span style="color: rgb(255, 255, 0);" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;37. XIII&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span style="color: rgb(255, 255, 0);" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)(****)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;38. Nicelodeon Party Blast&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span style="color: rgb(255, 255, 0);" class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;39. Simpsons: Road Rage&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span style="color: rgb(255, 255, 0);" class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;40. Innocent Tears&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(204, 153, 51);"&gt;Menus&lt;/span&gt;)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;41. World Series Baseball&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span style="color: rgb(255, 255, 0);" class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;42. &lt;span style="font-weight: bold;"&gt;Whacked!&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(51, 204, 0);"&gt;Playable&lt;/span&gt;) (*****)&lt;br /&gt;&lt;br /&gt;43. &lt;span style="font-weight: bold;"&gt;Quantum RedShift&lt;/span&gt;&lt;br /&gt;Status: (&lt;span style="color: rgb(51, 102, 255);"&gt;Ingame&lt;/span&gt;) (*)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;44. &lt;b&gt;Amped&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;45. &lt;b&gt;Metal Slug 3&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Menus&lt;/span&gt;) (*)?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;46. &lt;b&gt;The Red Star&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;47. &lt;b&gt;Exa Skeleton&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;48. &lt;b&gt;Barbie Horse Adventure&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;49. &lt;b&gt;Splinter Cell 2&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;50. &lt;b&gt;Fatal Frame&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Nothing&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;51. &lt;b&gt;Mortal Kombat: Deadly Alliance&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;52. &lt;b&gt;Forza Motorsport&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Nothing&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;53. &lt;b&gt;Angelic Concert&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;54. &lt;b&gt;ESPN NFL Primetime 2002&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;55. &lt;b&gt;Antz Extreme Racing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;Intros&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;56. &lt;b&gt;Panzer Dragoon 1&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span class="Apple-style-span"&gt;&lt;b&gt;Menus&lt;/b&gt;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;57. &lt;b&gt;Nakashima Tetsunari no Othello Seminar&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span&gt;Ingame&lt;/span&gt;?) (****)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;58. &lt;b&gt;Castlevania: Curse of Darkness&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Status: (&lt;span&gt;Menus&lt;/span&gt;) (****)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;(*): Not interactive.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;(**): So far, only supports Vista and later.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;(***): Requires special hacks.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:arial;"&gt;(****): Complete status not yet known.&lt;br /&gt;(*****): Appears to have driver issues (primarily Direct3D) with my machine.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;So until I get around to setting up a new page dedicated to this, check this list every once and a while.  You might be surprised!  I have a few more tricks up my sleeve yet...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Shogun&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-4820207774411932389?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/4820207774411932389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-compatibility-list-updated.html#comment-form' title='46 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4820207774411932389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/4820207774411932389'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/cxbx-compatibility-list-updated.html' title='Cxbx compatibility list (Updated January 11, 2012)'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>46</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-3513696841571157008</id><published>2009-11-04T11:41:00.000-08:00</published><updated>2009-11-04T13:59:48.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Panzer'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='emulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>The lastest on Shogun's branch.</title><content type='html'>&lt;span style="font-family:arial;"&gt;Well, I'm really glad that I've managed to make it this far.  I don't mean to sound... you know, but when I first saw the first screens of Panzer, I never dreamed that I would someday carry on sir Caustik's work and get it ingame, haha.  Sometimes I miss being a noob!  (Yes, that's right... "noob") :D&lt;br /&gt;&lt;br /&gt;Anyway, here's the latest.  I've managed to increase the stabilitiy of Panzer Dragoon ORTA for the most part except for a few but rare random crashes related to threads (not while in game luckily).  So far, the framerates aren't very fast.&lt;br /&gt;&lt;br /&gt;I think I have an idea about the overlapping quad covering the 3D scene.  My guess is that it's really supposed to be transparent (Alpha Blended) to simulate fading in/out for 3D scenes.  This reminds me of the time when I was working on Smashing Drive.  The transparency overlay quad didn't work on my WinXP machine, but worked fine on my notebook PC running Vista.  The problem may be related, but that can't be verified now because I don't have my WinXP desktop here in Washington (State), it's at my cousin's house still in Indiana.&lt;br /&gt;&lt;br /&gt;I've added the Direct3D API IDirect3DDevice8::SetStipple (Xbox extension) and a missing texture state again (D3DTOP_BLENDFACTORALPHA, 15).  So far, that appears to be the end of any missing Direct3D function calls.  That's a big relief!&lt;br /&gt;&lt;br /&gt;The main thing stopping our progress now is this missing low level DirectSound Buffer call to either CDirectSoundBuffer::Pause (as stated in my last update) or CDirectSoundBuffer::GetStatus because when looking at the dissassembly of them both, they look the same!  I had the same problem with Robotech: Battlecry (XDK 4721), so fixing one will fix the other.  Initially I was having trouble adding it because when Cxbx would locate my OOVPA for it, it would crash.  This had me scratching my head for quite some time now.  I discovered a few minutes ago that when I moved the XREF IDs higher up in the list, then they work fine.  That's really strange, and I hope it doesn't cause any future problems because if it does, then we can forget about Metal Gear Solid 2 (and no I don't care about the fact there's a PC port, I still want to see it emulated)!&lt;br /&gt;&lt;br /&gt;Before I conclude this blog update, I just want to address one more thing.  This question/suggestion has come up on more than one occasion for a long time now (in fact, someone asked me about this today!)... can Cxbx use a more up-to-date API such as OpenGL or at least Direct3D9?  If so, when?  Good question.  Right now, an OpenGL 2.1 implementation is looking much better.  Direct3D9 would also be a major improvement.  I'll show you the pros and cons of both.&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Direct3D9&lt;/span&gt;&lt;br /&gt;Good:&lt;br /&gt;&lt;/span&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Easiest to debug.  More debugging tools (i.e. NVIDIA's PerfHUD).&lt;/li&gt;&lt;li&gt;Requires less code wrapping/hacking.&lt;/li&gt;&lt;li&gt;Easier to manage.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;Bad: &lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Still lacks many features native to NVIDIA's hardware.&lt;/li&gt;&lt;li&gt;Less control over some settings (i.e. some games get CreateDevice failures when VSync is enabled).&lt;/li&gt;&lt;li&gt;Not portable.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;2. &lt;span style="font-weight: bold;"&gt;OpenGL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Good:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Closer to the hardware we're emulating.  Some Xbox Direct3D features are only exposed via OpenGL.&lt;/li&gt;&lt;li&gt;VSync can be enabled/disabled without problems.&lt;/li&gt;&lt;li&gt;Better texture support for those unusual formats (IIRC).&lt;/li&gt;&lt;li&gt;Locking/updating resources are much faster.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;Bad:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Harder to manage (i.e. lots of extensions to deal with).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lots of data type converting can get annoying (i.e. DWORD dwARGB -&gt; float4 fRGBA).&lt;/li&gt;&lt;li&gt;No native support for YUV surfaces.  Will have to convert YUV -&gt; RGB manually which may increase overhead.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;So far, OpenGL is looking better now.  But then again, we can always use Wine's Direct3D -&gt; OpenGL implementation as suggested by Caustik and Nisse (a glass of wine sounds pretty good right about now!), and add Xbox specific extensions ourselves.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;That's what's happening with Cxbx today.  Until next time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Shogun.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-3513696841571157008?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/3513696841571157008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/lastest-on-shoguns-branch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3513696841571157008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/3513696841571157008'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/lastest-on-shoguns-branch.html' title='The lastest on Shogun&apos;s branch.'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-5824976862997453778</id><published>2009-11-03T18:29:00.000-08:00</published><updated>2009-11-03T19:21:27.933-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Panzer'/><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>More Panzer Dragoon ORTA stuff...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/SvDyt_K6mXI/AAAAAAAAABw/2Y5skUGkmQ4/s1600-h/Panzer_PandoraBox.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SvDyt_K6mXI/AAAAAAAAABw/2Y5skUGkmQ4/s320/Panzer_PandoraBox.jpg" alt="" id="BLOGGER_PHOTO_ID_5400082825082476914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JCm3YFlrKgE/SvDytb76E6I/AAAAAAAAABo/Ga6dNfRdr9g/s1600-h/Panzer_Ingame7.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_JCm3YFlrKgE/SvDytb76E6I/AAAAAAAAABo/Ga6dNfRdr9g/s320/Panzer_Ingame7.jpg" alt="" id="BLOGGER_PHOTO_ID_5400082815624287138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/SvDytOQF3OI/AAAAAAAAABg/INKuFRclA-M/s1600-h/Panzer_Ingame6.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/SvDytOQF3OI/AAAAAAAAABg/INKuFRclA-M/s320/Panzer_Ingame6.jpg" alt="" id="BLOGGER_PHOTO_ID_5400082811950849250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/SvDys5R9bsI/AAAAAAAAABY/4hvo4v_zIHo/s1600-h/Panzer_Ingame5.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/SvDys5R9bsI/AAAAAAAAABY/4hvo4v_zIHo/s320/Panzer_Ingame5.jpg" alt="" id="BLOGGER_PHOTO_ID_5400082806321540802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Yup, I'm still at it.  This thing is getting way too addictive IMO, just can't stop working on Cxbx, especially when making significant progress such as this.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;Just a few minor additions and discoveries.  Here's the latest...&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;Rewrote my implementation of IDirect3DDevice8_GetTexture2@4.  Since it kept causing a crash in there and IDirect3DResource8_Release, I had to write a dirty (and yet sloppy) hack to fix it.  What I did:&lt;/span&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Get&lt;/span&gt; &lt;span style="font-family:arial;"&gt;a copy of the currently active texture (without allocating any memory).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Return the copy without increasing the reference count.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Added a special flag in the X_D3DResource::Data field to represent that this texture is a clone.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;When IDirect3DResource8_Release is called, don't release the texture if it's a clone.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;The code is really ugly, but at least it works (for now) without leaking memory like crazy.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Now that I've taken a closer look, it looks as if that 3D does work!  The textures look buggy when viewing Pandora's Box.  You can't see it in game because there's a black quad covering the entire scene.  &lt;/span&gt;  &lt;span style="font-family:arial;"&gt;The above fix allows you to stay in game a little longer, but there's yet another missing Direct3D API.  This time, I have no leads on what it is.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;One last issue.  Microsoft must have had Cxbx in mind when they released XDK 4721.  That stupid and totally useless piece of crap IDirectSoundBuffer8_Pause function is giving me trouble (it's another problem on Robotech: BattleCry).  I'll need a break to my brain can rest after putting so much energy into this... good night.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Shogun.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-5824976862997453778?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/5824976862997453778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/more-panzer-dragoon-orta-stuff.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5824976862997453778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/5824976862997453778'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/more-panzer-dragoon-orta-stuff.html' title='More Panzer Dragoon ORTA stuff...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/SvDyt_K6mXI/AAAAAAAAABw/2Y5skUGkmQ4/s72-c/Panzer_PandoraBox.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-6512959801149610834</id><published>2009-11-02T23:12:00.000-08:00</published><updated>2009-11-03T01:06:50.522-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>Panzer Dragoon ORTA: More progress!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fpLj6N1I/AAAAAAAAABQ/Ql2Wp68whv0/s1600-h/Panzer_Ingame4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt;  cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fpLj6N1I/AAAAAAAAABQ/Ql2Wp68whv0/s320/Panzer_Ingame4.jpg" alt="" id="BLOGGER_PHOTO_ID_5399780376811550546" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fowdjbVI/AAAAAAAAABI/XaB5QF_UxkQ/s1600-h/Panzer_Ingame3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt;  cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fowdjbVI/AAAAAAAAABI/XaB5QF_UxkQ/s320/Panzer_Ingame3.jpg" alt="" id="BLOGGER_PHOTO_ID_5399780369537133906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fo0w_urI/AAAAAAAAABA/J_B-olqxNhA/s1600-h/Panzer_Ingame2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt;  cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fo0w_urI/AAAAAAAAABA/J_B-olqxNhA/s320/Panzer_Ingame2.jpg" alt="" id="BLOGGER_PHOTO_ID_5399780370692422322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JCm3YFlrKgE/Su_foZPE2eI/AAAAAAAAAA4/sUItJUAEFJk/s1600-h/Panzer_Ingame1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt;  cursor: pointer; width: 320px; height: 262px;" src="http://3.bp.blogspot.com/_JCm3YFlrKgE/Su_foZPE2eI/AAAAAAAAAA4/sUItJUAEFJk/s320/Panzer_Ingame1.jpg" alt="" id="BLOGGER_PHOTO_ID_5399780363302394338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Okay, I got around to trying to get Panzer Dragoon ORTA a bit more stable in Cxbx.  It's not perfect yet, but it's getting there.  Panzer and Windows Vista don't get along at all, so it makes thing a bit more frustrating.  Nothing I can't handle (I hope).&lt;br /&gt;&lt;br /&gt;So, what's new?  Okay, Panzer Dragoon ORTA is finally showing some REAL in-game progress.  It's still not considered playable at this point (still some bugs to work out).  TBH, I still don't think I'll remove the "asterisk" yet, but like I always say, you can't complain about what little progress comes by, because in this neglected area of emulation, some is better than none!&lt;br /&gt;&lt;br /&gt;New functions added:&lt;br /&gt;&lt;ul  style="font-family:courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;IDirect3DDevice8_SetPixelShaderConstant (4928 - 5344) (implimented only for 4928)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;IDirect3DDevice8_SetRenderState_TwoSidedLighting (4627 - 4928)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;IDirect3DDevice8_GetTexture2 (4627 - 4928)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;New deferred texture states added:&lt;br /&gt;&lt;ul  style="font-family:courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Added D3DTOP_BLENDTEXTUREALPHA (14)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Current issues: There may be a problem with my implementation of IDirect3DDevice8_GetTexture2.  Since no one else did it, I had to write my own.  It's a bit more complex than you might think, but here's my current approach.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;// Since this function does not specify any texture stages,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// I guess we can assume it's just the first one.  According&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// to the XDK documentation, this function should also add&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// to the reference count.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// TODO: Verify texture?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pTexture = EmuD3DActiveTexture[0];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EmuSwapFS(); // Xbox FS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EmuIDirect3DResource8_AddRef(pTexture);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EmuSwapFS(); // Win2k/XP FS &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another idea I had was this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;hRet = g_pD3DDevice8-&gt;GetTexture(0, pTexture-&gt;EmuBaseTexture8);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EmuVerifyResourceIsRegistered(pTexture);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What happens is that Panzer does an unusual act of getting the current texture, setting to some stage, then releasing that copy of the texture.  Not 100% sure if it's my implementation of this function, but Cxbx crashes when releasing the texture.  I'll try implementation #2 later on, because it's late and I'm tired!&lt;br /&gt;&lt;br /&gt;What's the deal with no 3D graphics?  It's too early to say right now, but so far I've narrowed it down to two possibilities:&lt;br /&gt;&lt;br /&gt;1. Incomplete PushBuffer simulation.  This was a problem in Turok (and still is occasionally).&lt;br /&gt;2. RenderTarget problems.  Cxbx continuously informs us that it's setting the render target fails.&lt;br /&gt;&lt;br /&gt;Upgrading to Direct3D9 or better yet, OpenGL, may do use some good.  That's for a later date though...&lt;br /&gt;&lt;br /&gt;Shogun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-6512959801149610834?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/6512959801149610834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/panzer-dragoon-orta-more-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6512959801149610834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/6512959801149610834'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/panzer-dragoon-orta-more-progress.html' title='Panzer Dragoon ORTA: More progress!'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JCm3YFlrKgE/Su_fpLj6N1I/AAAAAAAAABQ/Ql2Wp68whv0/s72-c/Panzer_Ingame4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3053562213260104646.post-2955783277450630752</id><published>2009-11-02T11:22:00.000-08:00</published><updated>2009-11-02T12:06:35.868-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xbox'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Cxbx'/><title type='text'>Panzer Dragoon ORTA: Some progress...</title><content type='html'>Since Cxbx's activity is rather low these days, I think starting a blog dedicated to my work on Cxbx would be a good idea so that everyone knows it's not dead yet.  Right now, I'm the only one who has the time to work on it (I don't have much, still).&lt;br /&gt;&lt;br /&gt;The purpose of this blog is to keep you all up-to-date on what's going on with my Cxbx branch.  This is NOT a help line.  If you need help, click &lt;a href="http://forums.ngemu.com/cxbx-official-discussion/"&gt;here&lt;/a&gt; to be taken to the Cxbx official forum (and read the rules before posting).  &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;DO NOT&lt;/span&gt; ask me for roms, ISOs, betas or release dates!  Requests of this nature will be ignored!&lt;br /&gt;&lt;br /&gt;Anyway, last night I got to work on Cxbx for a while (I really had nothing else to do).  I was originally trying to fix some problems with Taz: Wanted and Zapper.  These two games use the same engine and share the same problems/bugs so far, so fixing one will fix the other!  Instead of finding a solution for those games, I ended up fixing Panzer Dragoon ORTA (XDK 4928) unexpectedly!  I was scrolling through some output generated by IDA and noticed some code referenced ObReferenceObjectByHandle.  After seeing that, the first thing that came to my mind was, "Forget it, this is my chance to fix Panzer!", lol!  Turns out it was just a missing call to GetExitCodeThread, which hasn't changed since 3911, so all I had to do was copy that over to 4627 and it worked... after adding some more missing functions below (verified for all XDKs within the range listed):&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;RtlDestroyHeap (4627-4928) (Others?) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    CDirectSoundVoice::SetAllParameters (4627 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    CDirectSoundBuffer::SetAllParameters (4627 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirectSoundBuffer8_SetAllParameters (4627 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    D3D::SetFence (4627 - 4928) (*)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    IDirect3DDevice8_InsertFence (4627 - 4928) (*)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    D3D::CDevice::KickOff (4627 - 4928)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    (*) These weren't required for Panzer.&lt;/span&gt;&lt;/span&gt;   &lt;br /&gt;&lt;br /&gt;Now, for the good news and bad news:&lt;br /&gt;&lt;br /&gt;Good:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You can get passed the menus and initial dialog.&lt;/li&gt;&lt;li&gt;Audio output is almost perfect and stutter free.  Background music works, but a few sound effects are missing.&lt;/li&gt;&lt;li&gt;No more crashes due to missing APIs!&lt;/li&gt;&lt;/ul&gt;Bad:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;So far, it appears that 3D is not rendering (can't confirm this yet).  If this is true, it's more than likely a problem in the push buffer simulation (then it's Caustik's problem).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Even though Panzer is no longer bound to the menu stages, you can't exactly "Play" it either.  So right now I'm going to set Panzer's status to "Ingame" with an asterisk (*).&lt;/li&gt;&lt;li&gt;Either way, you will get the dreaded dirty disc error message again prior to going ingame.  We might be able to copy some of Panzer's files directly to it's folder in the emulated Z: drive.  This is what I had to do for Myst III.&lt;/li&gt;&lt;/ul&gt;So, it's nothing too major, but in general I'm picking up where Caustik and KingOfC left off.  The solution to fixing Panzer Dragoon ORTA might be simple, but I could be wrong.  Stay tuned, and I'll see what I can do.&lt;br /&gt;&lt;br /&gt;Shogun.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JCm3YFlrKgE/Su86P4kIXxI/AAAAAAAAAAw/hvPacA6Wf7I/s1600-h/Panzer_DirtyDiscError.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_JCm3YFlrKgE/Su86P4kIXxI/AAAAAAAAAAw/hvPacA6Wf7I/s320/Panzer_DirtyDiscError.jpg" alt="" id="BLOGGER_PHOTO_ID_5399598522796891922" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3053562213260104646-2955783277450630752?l=shogun3d-cxbx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shogun3d-cxbx.blogspot.com/feeds/2955783277450630752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/panzer-dragoon-orta-some-progress.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2955783277450630752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3053562213260104646/posts/default/2955783277450630752'/><link rel='alternate' type='text/html' href='http://shogun3d-cxbx.blogspot.com/2009/11/panzer-dragoon-orta-some-progress.html' title='Panzer Dragoon ORTA: Some progress...'/><author><name>blueshogun96</name><uri>http://www.blogger.com/profile/17556100661890977716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_JCm3YFlrKgE/SujXOWwiVSI/AAAAAAAAAAM/C5xpyWn9NkE/S220/FMA_131.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JCm3YFlrKgE/Su86P4kIXxI/AAAAAAAAAAw/hvPacA6Wf7I/s72-c/Panzer_DirtyDiscError.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
