I thinking my ddwrapper should work with `BltMirror=1`. So the `to do` is to check that the wrapper works properly with Dark Omen's Direct3D on Windows (ddwrapper doesn't work with most d3d games...). Figure out how to use a proxy dll of a built-in dll in Wine...
My GOG Sothr install guide for Wine is here. Check out my *newly fixed* color cursors for SOTHR here.
The setup is not very user friendly at the moment...
Maybe I dreamed this but... at some point I may have patch in Fast InvSqrt() into MS Reality Labs for a big performance boost. Which may be helpful for running in an emulator.
===
The original v1.1 release runs in `Ubuntu 20.04 + Wine5.0` with custom patch to make it 32bpp... I haven't tried the original installer, yet. My backport of the `Color and Animated Cursors` from Dark Omen are working for the moment on Win8 and Ubuntu, maybe this is tied to the graphics card?
I haven't played any of the newer warhammer games... but here is a look back at some old titles...
Space Marine: is a good reskin of (I assume) Gears of War. Fun to speed through -- once.
Mark of Chaos: Battle didn't feel like warhammer, units can move thru enemy units. Human campaign was pretty tired.
Shadow of the Horned Rat - someone poured their soul into this game but it is fairly unpolished. Magic in particular is underwhelming. Very hard to live all the way thru to the end. (much better story than Dark Omen, in my opinion. IIRC, "friendly smart AI" is good here but is sorely missed in Dark Omen)
Blood Bowl (1995) - fun game w/bad DOS graphics.
Blood Bowl (2009) - very good. Commentary gets very repetitive. Surprisingly bad frames-per-second, maybe this was fixed in BloodBowl 2? I didn’t like the way Cyanide treated their customers & modders.
Final Liberation – surprisingly fun for a such a simple game! Amusingly, the difficulty starts hard then gradually progresses to very easy as you move thru the game.
Chaos Gate - I couldn't really get into this game... fun sound track though.
Space Hulk: vengeance of the blood angels - bought the 3DO version by mistake; never played it :-/
Dawn of War - got all 6? 8? games on sale for like $5. I think I played all the way thru the original but I don’t remember it to well. I just re-downloaded them on Steam but it looks like they don't work out-of-the-box on Linux.
One would use a hex-editor to "diff" Dege's patched executable with the original executable to obtain the patch sequence. I wonder about the "fullscreen window mode" hack currently in the Mod Pack...
SOTHR friendly unit stats are in the "MAXARMY.MRC" file. Which is (mostly) a text file.
SOTHR makes heavy usage of the "resource" section of executable files to store text and images. the "unit book" entries might be in BKTXT.DLL? You may be able to view it with https://cerbero.io/peinsider/ (I don't have windows or wine install at the moment...)
Dark Omen unit stats can be had using the wh32edit2 program in the download section. The unit book descriptions are embedded in the game executable and can be viewed with IDA or hex-editor.
I think there are several options for viewing dark omen sprites/banners/models on this site.
the heads.db file is partially described in the wiki I don't know if it helps with reversing key/seq files but here is the rest of it... (guess work as always)
Code:
struct HEAD // sizeof 39 bytes (0x27) { 0x00 unsigned char ID[2]; // Presumably controls which texture is used. e.g. MB=Morgab Bernhardt 0x02 unsigned char Flags; // see table 1 0x03 unsigned char KeySeq; // animation to use? 0x04 ?? always zero
0x05 unsigned char MouthWidth; // These may not be unsigned. Not Tested. 0x06 unsigned char MouthHeight; 0x07 unsigned char MouthX; // This is where to draw the moving parts on the main graphic 0x08 unsigned char MouthY; // (replacing what is there already) for facial animation
0x09 unsigned char EyesWidth; // These may not be unsigned. Not Tested. 0x0A unsigned char EyesHeight; 0x0B unsigned char EyesX; // This is where to draw the moving parts on the main graphic 0x0C unsigned char EyesY; // (replacing what is there already) for facial animation // 0x0D char body_mesh_id // meshes/%d.m3d file 0x0E signed char head_body_x; // seperate from center...padding? does not include the neck. 0x0F signed char head_body_y; // ... 0x10 signed char head_body_z; // 0x11 char head_mesh_id // meshes/%d.m3d file 0x12 signed char HeadX; 0x13 signed char HeadY; 0x14 signed char HeadZ;
0x15 char head movement multiplier 0x16 char KeyID // for cut-scenes?
0x17 char NeckID; 0x18 signed char NeckX; 0x19 signed char NeckY; 0x1A signed char NeckZ;