News and updates Fallout mod manager Oblivion mod manager Shader Replacers Other oblivion stuff Morrowind stuff sfall ddfix csfix (Crimson skies)
Bioshock 2 fake xlive Fable 3 Spellforce 2 pak editor Diablo multimon fix Summoner patch Septerra core patch | News and updatesWarning: May contain traces of cynicism 5th of MarchRight, I haven't posted anything in a long time, so lets see what I can force myself to come up with. The main reason things have gone a little quiet is that most of my work recently has been for GOG and is NDA'd, so there's not a lot I can post about. On the bright side I get paid for it, but on the downside there are people paying for it, which adds a lot of pressure to get things correct the first time around. Alas, despite how thorough GOG's QA tries to be, it doesn't always work out that way. (Hi soulbringer,* thankfully fixed now, I hope.) Slightly more annoyingly, I've had to turn away two offers of work now on account of not having enough free time. One I don't particularly regret, but last week I had a games publisher wanting me to strip GFWL out of a game they were publishing. As much as I like to see (and be responsible for) GFWL getting a kick in the teeth like that, the deadline was too tight for me to manage given that I was busy with emergency soulbringer work, so I had to turn it down. :( My septerra core patch has had an update to fix one crash bug which GOG had fixed but I seem to have re-exposed, and to fix one crash which they hadn't fixed but which no-one would have discovered without randomly mashing the keyboard at the main menu anyway. That patch actually seems to have a bit of a design flaw, in that if the movies in septerra core don't play, then the patch installer normally isn't able to play them either and hence fails to convert them into something that can be played... Seems to be a bit of a catch 22 there, unfortunately. I've also been playing with fuzzos a little. Originally I designed it completely without the use of dynamic expressions, which for a language as dynamic as LPC was probably a little bit silly. Now that I know I little more about the DLR and how to use it, I tried to plug dynamic expressions into the most appropriate places to see what difference it would make. In the end, I was able to speed up the most commonly called version of the call_other efun by 5x or more, but it's still not competitive with fluffos for any existing mudlib, and so has gone back into long term storage. *Made slightly worse by the way crashes didn't start till part way through the game, and though I was keeping a close eye on the forums for a couple of days after release, I was away for the weekend when a clump of people started hitting the section of the game with problems. That unfortunately slowed down the patch a little. Then again, soulbringer was an utter mess to start with, particularly on ATi hardware. I don't think I've ever had to do anything that invasive just to get a game to start up before. 9th of DecemberI was recently reminded* by these guys about the existence of my crimson skies patch, and the fact that I couldn't fix the ATI black squares issue at the time I first wrote it because I didn't have any appropriate hardware available to test with. I do have ATI hardware now though, so it was time to take another look. Sure enough, I can replicate the problem all too easily. It's very obviously z-buffer related; the squares appear where things move away from the screen, and disappear if terrain is very close to the camera. There's a few forum threads around about it, most of which end up blaming it on removed 16 bit z-buffer support in new drivers. I'm not quite sure where that came from though; 16 bit z-buffers are still supported just fine, and in any case, crimson skies uses a 24 bit z-buffer if one is available. (Which is always, these days.) That the squares are multiple pixels across does suggest some sort of driver weirdness, since that's an effect that would be pretty darn hard to do by accident via a game bug. After playing with it for a bit, my best guess is that it's a driver bug that shows up when a z-buffer is used backwards. (i.e. when 1.0 represents the front camera plane and 0.0 the back, rather than the other way around.) I'd be surprised if any game was written like that these days, so someone on the driver team probably thought making that assumption would be a good optimization. Alas, back in crimson skies' time before hardware T&L, when games tended to do their own maths to transform vertices instead of using the standard DirectX functions, it wouldn't have surprised me one bit. I'd be interested in seeing if any of the other games that exhibit the same black squares problem also use backwards z coordinates. A new csfix release is up with a fix for the black squares, and which also fixes the briefing screen flickering that occurs when using a custom resolution. (I've left the old one up too, since the new build wont run on win2k.) Personally, I'm still of the opinion that graphics card manufactures should offer safe reference drivers, (or heck, throw in some reference hardware too, if needed,) with no optimization and which match the reference rasterizer pixel by pixel in all cases at whatever speed hit is required, even if it's going to be 50-90%. Alas, even then, the fact that many (or most?) game glitches are legitimate game bugs, (as was the case with the crimson skies font problem, for example,) probably means it wouldn't actually help very much. Edit: I notice that another game which appears to share the same problem is mechwarrior 3, for which a fix is already available. More interesting to me was the analysis that accompanied it. I know that's not the case for crimson skies, even if it is for mechwarrior 3, because as mentioned already crimson skies prefers to create a 24 bit z-buffer when possible, and furthermore clears it each frame via IDirect3DViewport3::Clear2, rather than via a blt. My 'fix' is simply to call IDirect3DViewport3::Clear2 again, which is every bit as silly as the mechwarrior 3 fix of locking and immediately unlocking the z-buffer without doing anything. I echo Fuddley's comment: "In the end, this is an unsatisfying fix because I don't really know why it works, but if it works for everyone and not just me, I won't let it bother me!". Aren't driver bugs great? :p In other release news, sfall is up to 2.17, with some motion scanner unhardcoding, an expansion to the maximum size of encounter tables and a bugfix or two. Skyrim is out, but as I've already mentioned I'm not going to be modding it. As with FO:NV, I'm going to be holding off for the goty/ultimate/whatever edition with all the DLC included and the obligatory fan patches and UI mods ready and waiting. Kaburke is still the 'official' maintainer of my old mod manager code base, although given how much it's changed since then I don't really want to call it mine any more. I suspect it's going to see less use (at least for skyrim) this time around, if the steam mod tools stand up to the hype, but the strong nexus integration and multi-game support are still very interesting additions. One thing I did notice is that in the absence of the official CS, the version of TESsnip bundled with FOMM is seeing some pretty heavy use in this early modding scene, since the skyrim esps are apparently compatible with it. Had I been paying attention earlier, I'd have at least knocked up a standalone TESsnip version, but reading through the threads I see other people have been playing with it already so I'll leave them to it. (In thee olden days, when we were waiting for the FO3 CS to be released, I wrote an improved version of my oblivion TESsnip to allow basic mod creation, but by the time I was done FO3Edit was available and was much easier to use. I then moved on to writing a script compiler, but again, a couple of days after I was done the official CS showed up. I'm really not good at getting there first, although at least in the case of the script compiler I did score a theoretical if not practical victory. :p) And finally some random gaming news I feel the need to comment on. Back when I was playing xenoblade, I commented (at length) about how first party nintendo games tended to be bug free. Now I have to correct myself: They've gone and added another blemish to their record with skyward sword, which appears to contain an actual, real life, serious bug. Also, Origin seem to be doing pretty much everything evil that their platform allows, from forced exclusives, EULA terms allowing them to force you to rebuy DLC if you don't play it for a while, to spyware, to locking people out of their purchased games due to bad forum behaviour, or, allegedly, no reason at all. It's like someone over there is working off a checklist'o'evil, possibly while wearing a monocle and stroking an elderly white cat. *Via the paypal donate link, which is always a good way of getting my attention. :p 7th of OctoberTime for another round of time for something new. I've been trying to work my way through some of my GoG backlog since finishing xenoblade, and at the moment am running through an interesting rpg called Septerra Core: Legacy of the Creator. GoG made sure it runs, but it still has a few technical issues; windowed mode only works if you have a 16 bit desktop, movies only work on win 7 if you use win xp compatibility mode, etc. I've made a little patch to fix them, as well as to add a couple of extra controls. (Middle click to run and follow the pointer, and right click portraits in combat to queue up moves.) The movie fix is a little involved, hence this is one of my few patches with an installer, which tries to convert them automatically. In case it fails, you'll have to convert them manually. The movies are unfortunately a little big to include in a download. :( |