From efedec4d82a5f1ea89189cd8aecb23ea74d9465f Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Mon, 19 Mar 2018 11:42:57 +0000 Subject: [PATCH] Add some doubts on the obj format --- doc/formats/jungtil_drawn.png | Bin 0 -> 43556 bytes doc/formats/obj.md | 24 ++++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 doc/formats/jungtil_drawn.png diff --git a/doc/formats/jungtil_drawn.png b/doc/formats/jungtil_drawn.png new file mode 100644 index 0000000000000000000000000000000000000000..5880fcbcf8a7ce40fc9a27517164021c2c330ccc GIT binary patch literal 43556 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 literal 0 HcmV?d00001 diff --git a/doc/formats/obj.md b/doc/formats/obj.md index 515dcb4..ef13239 100644 --- a/doc/formats/obj.md +++ b/doc/formats/obj.md @@ -57,7 +57,7 @@ END OF FILE Investigated by using strace on WH40K_TD.exe while starting up. -It opens and reads jungtil.obj ub 20 blocks, *after* reading jungtil.asn. +It opens and reads jungtil.obj in 20 blocks, *after* reading jungtil.asn. Presumably each is a frame in some format or another, but seemingly *not* FLC. Here's our list of reads: @@ -226,4 +226,24 @@ Average bits per pixel seems to be less-than-1, e.g. for crates.obj: So some form of compression? RLE? -How does WH40K_TD.EXE draw these? \ No newline at end of file +Here's the WH40K_TD.EXE rendering: + +![First first frames of jungtil.obj as rendered by WH40K_TD.exe](img/jungtil_drawn.png) + +When it *does* draw them, they end up being 64x64 squares, so the possible +`width` (above) is definitely not. + +A clue lies in the identical frames 0 and 12 in jungtil.obj - these are just 463 +bytes, yet represent a 64x64 block (4096 bytes, assuming 1bpp). These are both +*empty frames*. One undamaged, one damaged, but identical pixel data when drawn +by WH40K_TD.exe + +So a compression algorithm of some kind *must* have taken that 64x64x? block and +compressed it to just 463 bytes. But which one? `file` doesn't recognise any +magic bytes. + +Perhaps there's a built-in assumption that these are all square, and 0x06 stores +the maximum X/Y coordinate (0 - 63 = 64). 0x04 then becomes something else - a +flag, perhaps? We see a stray 0x80 in the frame number sprite number field in +the .obj coordinate records; perhaps it says "this is an X type of sprite"? +