• Content count

  • Joined

  • Last visited

  • Days Won


Krycztij last won the day on September 20 2015

Krycztij had the most liked content!

Community Reputation

2 Neutral

About Krycztij

  • Rank
  • Birthday 09/05/1981
  1. It had nothing to do with GPU capability – all of D3DX were CPU functions which called regular D3D APIs. It was just a high-level wrapper over the D3D (“load this texture” instead of “create texture object, map it, copy data from here, unmap it, generate mip levels”). I don’t know the reason why they did it, but I suspect very bad motivations. The amount of code that Microsoft destroyed 2005–2015 was incredible. Not just with D3DX, but also with XNA – the C# framework that powered many actual PC/XBox games, which was abandoned just like that. And DirectPlay, the DirectX network API. The various XBox APIs that were abandoned. And so on. All these engines, all these games – their sources became useless in the fraction of a second. I personally rely on the D3D 9 core being supported for two or three more years (mobile devices have been fully D3D 11 compatible for years now, with much better performance with 11 than with 9) D3D 11 being supported for five to ten more years (they explicitly stated that D3D 12 is no replacement, but a low-level alternative) only C/C++ (I bet WPF and WinRT will be abandoned next) [end of MS rant ]
  2. D3DX9 is Direct3D 9 extensions. It’s a helper library for vector math, texture loading, and other things. (Much like GLUT for OpenGL.) The library has been deprecated a long time ago. MS stopped shipping it with D3D 10 and they cut the 9 version from the Windows SDK (which ships with Visual Studio) some time around 2010 (to the outrage of many developers). The only way to get it is via installing an old DirectX SDK (June 2010 is the best version for a couple of reasons). If you don’t want to do that, you’re basically screwed. Even if you find the header file and provide it, you’ll be missing the library file. If you provide it, users can’t run the program because D3DX9.DLL will be missing. TFXplorer relies on its own helper functions and does not use D3DX, that’s why it still compiles. (It was the exact mess with D3DX that taught me to use as few Microsoft libraries as possible.) Projects don’t need a complete rewrite, but they’ll need to replace D3D extensions with their own code. This is likely a major project (even more for D3D9, because there are no direct replacements in newer libraries), but we can estimate the amount of work: Hit CTRL+SHIFT+F to open "Find in Files" type D3DX uncheck "match whole word" Find You will see what D3DX functions are called by the code. If it’s just D3DXCompile, we can probably get it working with Visual Studio 2015 very quickly. (VS can compile shaders on its own.) If it’s using many vector and matrix functions, they need to be replaced with some kind of math library. This will be a hassle and take long time. If it’s using even more functions for sprites, texture loading, mesh optimization – we’re pretty much screwed. I hope this helps …
  3. He played so many notable roles. RIP!
  4. It does seem to be stereoscopic, according to the footage at 4:39.
  5. TAW & FSX are four or five generations of GPU programming apart Mikew’s approach is plausible, it would just require some fine tuning with texts, HUD, and UI. (These are probably transmitted as textures quads as well, but one should’nt use their depth information because we don’t want them right in front of our eyes.)
  6. Wow. One thing that annoys me a lot is that the time of day opcodes actually differ in between EF2000 and TAW. Whenever there are drawing errors in TFXplorer, it’s due to TOD opcodes having a different meaning in EF2000. E.g. there once was a frame rate slowdown at 12:00, and when I investigated, I found out that everything is drawn twice due to the TOD opcodes which I only analyzed for TAW. I didn’t write down which specific shapes or opcodes were affected, though. My comments on 003f…0046: // 003F <time> <offset> // If (1 << time of day) equals <time>, draw the submesh at <offset> - 2 B. // Enables building lights and street lights at 22:00–06:00. // 0040 <time> <offset> // 0042 <time> <offset> // If a bitwise AND of (1 << time of day) and <time> evaluates nonzero, draw the submesh at <offset> - 2 B. // Enables building lights at 20:00–08:00. 0042 enables high-quality glare in TFX3’s “air_hq.3” and “oilrig.3”. // 0043 <time> <offset> // 0045 <time> <offset> // If (2 << time of day) - 1 is above or equals <time>, jump <offset> - 2 B. // Selects shadows and enables landing gear lights on planes at night.
  7. Me, too!
  8. I guess I used ImageShack in my very first posts here (ca. 2011?) and they deleted my pictures pretty fast … I’d rather not use it again, and if they want a fee now, well who cares!
  9. Can’t see anything. If I try to open the image source, I’m asked to sign it.
  10. I left photobucket a few years ago, when they started deleting my images. I usually rely on the attachment option of the forum I’m posting in. I can be 99 % sure it will never ever be deleted or replaced with ads. That doesn’t work with CombatSim, however, because it downscales attachments on upload. Should we ask TheDude about it? I tried Dropbox, but the hotlinking option has some catches – especially for folders with restricted access. There was some issue with you seeing your image fine, but it will be placeholder for other users. I don’t recall exactly, but I moved on. I tried tinypic. Never created an account, but at least my images are still online (e.g. here). There is no guarantee that they don’t, in a few years, become like photobucket, though. I remember MGonzales hosting his images on his own server. I guess that’s the only true way to go, but I don’t have one … Nevermind, with current DOS attacks you’d rather host your stuff via CloudFlare or something like that. I hope I could help.
  11. My list: 00 TFX2 entity 04 TFX2 sub-entity 20 TFX2/3 terrain without LOD 83 TFX3 entity 87 TFX3 sub-entity A3 TFX3 terrain with LOD With “sub-entity” meaning that it is typically attached to something else, e.g. many weapon shapes are sub-entities to planes. Wow, that’s an interesting find! If I just had some time, I’d look at JR myself …
  12. I’m re-constructing this from code comments, so it will probably not be 100 % right, but: My code handles hard-coded textures names in any class (00, 04, 20, 83, 87, A3). I can’t recall if it was out of necessity or just for simplifying code. TFXplorer uses rendering priority directly, not taking into account shape classes. However, this only applies to terrain shapes because planes/tanks/… are handled entirely different from TAW’s rendering. Summary: I don’t know anything for sure
  13. That has been heavily optimized, but if we resolve it to plain old if-elses, it’s basically this: resX = GetSystemMetrics(0); resY = GetSystemMetrics(1); if(resX != 800 || resY != 600) { return false; } sub_4EA8F0(); Sleep(500); // wait half a second resX = GetSystemMetrics(0); resY = GetSystemMetrics(1); if(resX != 800 || resY != 600) { return false; } return true; It checks if the resolution is 800×600 by default. If not, it calls sub_4EA8F8(), which I don’t know, but I’m sure it’s some DirectDraw or Win32 stuff to force resolution to 800×600. It lets half a second pass to realize that change, then it checks again. At this point I’m sure sub_4EA8F8() fails for whatever reason. Does the display driver/monitor support 800×600 at all?
  14. But where’s the volleyball!? Can we introduce it into the monk’s backstory? There’s plenty of volleyball-worthy sand in Iran’s desert, I suppose …
  15. RA is Huffman, and as such it has very high CPU demand (lots of ALU and cache pressure). I have not seen anything like that in early 1990ies systems (even sliding windows were rare), so I stand by my opinion – it is very likely RLE compression