Post AzownqAYPZ1AAYMSQK by foone@digipres.club
(DIR) More posts by foone@digipres.club
(DIR) Post #AvIAIjrwwpTzk2FJGi by foone@digipres.club
2025-06-19T15:12:15Z
0 likes, 0 repeats
I'm hacking on FlixMix, a 1993 DOS game. I kinda assumed it'd use FLIC files, but nope, it has its own animation format. A really bad one, it's not compressed at all. The animations are also split into three files, FLIXMIX.001-FLIXMIX.003, which are each about 1.1mb, meaning they didn't have to have an elaborate installer, which could support having one big file spread across three disks
(DIR) Post #AvIAQPdY3SnHJDAWuG by foone@digipres.club
2025-06-19T15:13:35Z
0 likes, 0 repeats
kinda surprised they didn't work harder on making this game fit on fewer disks. 1 disk instead of 3 would have been hard, but it wouldn't be that difficult (even given the dismal state of compression in 1993) to get it down to 2 disks
(DIR) Post #AvIATemMDIGr8jpu2i by foone@digipres.club
2025-06-19T15:14:11Z
0 likes, 0 repeats
they did have multiple revisions of this game, though (mine is version 1.5). perhaps they did, using an installer, but kept the pre-installer file layout?
(DIR) Post #AvIB4xrIErYz1qw0MS by foone@digipres.club
2025-06-19T15:20:59Z
0 likes, 0 repeats
the front of the box boasts "over 170 levels of stunning animations!"which is... charitable. by my count the game has 18 animations. I think they're doing every game mode times every animation?
(DIR) Post #AvIBC2GyE2M2kKJhC4 by foone@digipres.club
2025-06-19T15:22:11Z
0 likes, 0 repeats
but even that only gets us to 72.4 game modes (Single Mingle, Scramblecade, Joint Venture, Mix'n'Match) times 18 animations, 72.
(DIR) Post #AvIBUaWJdHwIAwLBlw by foone@digipres.club
2025-06-19T15:25:38Z
0 likes, 0 repeats
if you go for every animation object count as a separate animation, that gets you up to 53 animations, so 53 times 4 game modes: 212.which I guess is "over 170"
(DIR) Post #AvIKh1fjPKvJRpkb7Q by foone@digipres.club
2025-06-19T17:08:38Z
0 likes, 0 repeats
at least one version of the software was sold in a box with a sticker saying you could get more puzzles by registering it. I wonder if those additional puzzles ever got archived anywhere
(DIR) Post #AvIMVyTT9lAuFksBlY by foone@digipres.club
2025-06-19T17:29:08Z
0 likes, 0 repeats
oh neat. some of the puzzles aren't stored with a palette: they're just greyscale.save those 768 bytes! (a vga palette contains 576 bytes of entropy but bitshifts make programmers sad)
(DIR) Post #AvITRprjv79A4iCOBM by foone@digipres.club
2025-06-19T18:46:42Z
0 likes, 0 repeats
so of the first set, there's only 5 animations in the file: the first five puzzles:* Spherical Aberration* Quixotic Box Paradox* Puddle Muddle* Mishmash Mesh* Reflexion Perplexion (though they're not stored in that order, for some reason)I believe the remaining 4 aren't pre-rendered animations, they're generated at runtime.But there's still more data in the file, so... maybe they just put the binary code for generating them in there?
(DIR) Post #AvIV6kbkTQplawnDf6 by foone@digipres.club
2025-06-19T19:05:24Z
0 likes, 0 repeats
mmm, nope. not x86 code. maybe they just encoded raw sprites for the runtime-generated ones differently
(DIR) Post #AvJ2SqFrSKavy0hGDo by keelan@mastodon.sdf.org
2025-06-20T01:19:03Z
0 likes, 0 repeats
@foone I always thought it would suck if I had to reverse engineer something that used a bespoke virtual machine. Then I encountered a bespoke virtual and it was a lot of fun to take it all apart.
(DIR) Post #AvM7Q6QtvraEWDFmtM by foone@digipres.club
2025-06-21T12:58:52Z
0 likes, 0 repeats
oh buggery, it writes saves into the level files. So these files aren't pristine, they have embedded save games
(DIR) Post #AvM7WOjqmkTL1v7QZc by gsuberland@chaos.social
2025-06-21T12:59:52Z
0 likes, 0 repeats
@foone what an odd approach
(DIR) Post #AvM7k7ZJQ4gxpfjWnQ by foone@digipres.club
2025-06-21T13:02:26Z
0 likes, 0 repeats
this also means that saves are per-level-set. weird design. especially since the game doesn't remember which set you had open last!
(DIR) Post #AvM7oGe9bqGn96yWWW by foone@digipres.club
2025-06-21T13:03:16Z
0 likes, 0 repeats
anyway writing into the level files sounds like a terrible idea. this is a DOS game. what if the system crashes while you're rewriting your level files? do you just corrupt all the levels?
(DIR) Post #AvMDY3KLxiVEvcMgiW by agowa338@chaos.social
2025-06-21T14:07:23Z
0 likes, 0 repeats
@foone the writes aren't atomic operations or are they?I'd imagine that if the savedata fits into e.g. a single sector it would be resistant against os crashes. No?
(DIR) Post #AzoUbO04WIsCc3jOq0 by foone@digipres.club
2025-11-01T20:58:54Z
0 likes, 0 repeats
PAST FOONE! where are the GIFs, you fool? You clearly hacked the format, just going by this thread... GIFS. I want 'em on my desk by 1800!
(DIR) Post #AzoUeaAtiBBHEyJqCW by foone@digipres.club
2025-11-01T20:59:31Z
0 likes, 0 repeats
I could also just extract them by beating every level and filming it, but that's not as much fun.
(DIR) Post #AzoUv8R06Ph281kBkG by foone@digipres.club
2025-11-01T21:02:27Z
0 likes, 0 repeats
a 12-line "hax.txt" file? that's all I did? PFFT. less fun way it is
(DIR) Post #AzoWC3EQnbyQryUjyK by foone@digipres.club
2025-11-01T21:16:43Z
0 likes, 0 repeats
INCONSISTENT FRAME TIMINGS?
(DIR) Post #AzoWgSe8s9ZeNa1OFc by LAbare@anticapitalist.party
2025-11-01T21:22:11Z
0 likes, 0 repeats
@foone For a moment I forgot about the HHMM time format and I thought you were yelling at an ancestor foone
(DIR) Post #AzoXbq0ofiDbLwzDvc by foone@digipres.club
2025-11-01T21:32:27Z
0 likes, 0 repeats
so the game is running at, apparently, 70fps?and the amount of CRT-frames each animation frame is shown for is in consistent. it's usually 3, but sometimes 2.
(DIR) Post #AzoXf9kziXxpSXAUro by foone@digipres.club
2025-11-01T21:33:01Z
0 likes, 0 repeats
each 2-framer is separated by 5 or 6 3-framers
(DIR) Post #AzoXiqznPgs6Qkr3EO by foone@digipres.club
2025-11-01T21:33:23Z
0 likes, 0 repeats
wait maybe that's the loop point in the animation? and it's not handling looping right.
(DIR) Post #AzoXnDeZ7BudrO0QGO by foone@digipres.club
2025-11-01T21:34:39Z
0 likes, 0 repeats
NOPE! the animation is 12 frames long, which frame gets shortened is not at all consistent
(DIR) Post #AzoXvx489mob1L7yim by foone@digipres.club
2025-11-01T21:36:17Z
0 likes, 0 repeats
I should probably try again in a different emulator but for now I'm going to try to ignore this because it hurts my brain and has too many possible sources.
(DIR) Post #AzoYsOy4ZhHqM0AJPs by foone@digipres.club
2025-11-01T21:46:46Z
0 likes, 0 repeats
oh hey I think this roughly works out to 24 FPS
(DIR) Post #AzoZFmeifbN2TsGKYr by foone@digipres.club
2025-11-01T21:51:03Z
0 likes, 0 repeats
So here's FlixMix, puzzle set 001 "Fit to be Tiled", puzzle "Spherical Aberration":(first person to post the meme (in image form!) gets 5 internet points)
(DIR) Post #AzoZLcSVUkhCapKgme by foone@digipres.club
2025-11-01T21:52:09Z
0 likes, 0 repeats
1. WOW that didn't compress well at all. I need to fix that. 2. This animation is so simple it might be possible to reverse engineer the POVRay file that produced it... assuming it's not something the game creators stole off the internet.
(DIR) Post #AzoZcRIIG5G4tBZlAW by foone@digipres.club
2025-11-01T21:55:04Z
0 likes, 0 repeats
"422 2232x792 GIF files are not supported"AND WHY NOT, MASTODON?
(DIR) Post #AzoZhkwkcO6fHw2DPE by foone@digipres.club
2025-11-01T21:55:19Z
0 likes, 0 repeats
@fries It's a GIF!
(DIR) Post #AzoZm1Wguvifrqse4u by foone@digipres.club
2025-11-01T21:56:52Z
0 likes, 0 repeats
trying again with 4x instead of 8x:So here's FlixMix, puzzle set 001 "Fit to be Tiled", puzzle "Spherical Aberration":
(DIR) Post #AzoZpstIxsomFCIa0W by foone@digipres.club
2025-11-01T21:57:35Z
0 likes, 0 repeats
yeah that's fine.
(DIR) Post #AzoaMnAtEt164UDQdk by foone@digipres.club
2025-11-01T22:03:30Z
0 likes, 0 repeats
Here's trying to do the same thing as webm instead. I don't know if this will loop properly, or how it'd work on mobile
(DIR) Post #AzoaVharMJmLMsbxku by foone@digipres.club
2025-11-01T22:05:10Z
0 likes, 0 repeats
okay if I upload a webm it gets turned into an mp4 anyway. if I upload an mp4, does it stay an mp4?
(DIR) Post #Azob6Yv4ZUedBGds00 by foone@digipres.club
2025-11-01T22:11:47Z
0 likes, 0 repeats
Testing an mp4
(DIR) Post #Azob9nVUnAcrI9DmXQ by babble_endanger@freeradical.zone
2025-11-01T22:11:46Z
0 likes, 0 repeats
@foone looks good on my phone
(DIR) Post #AzobDGUXU6bs3RQYOe by foone@digipres.club
2025-11-01T22:12:31Z
0 likes, 0 repeats
yeah all of these got compressed down to roughly the same mp4, it seems. so it doesn't matter (at least on this instance)
(DIR) Post #AzocDxKgIpJOsTi4BM by foone@digipres.club
2025-11-01T22:24:09Z
0 likes, 0 repeats
@gloriouscow there's gotta be one somewhere. like surely someone has compiled povray to webassembly?
(DIR) Post #AzocHMCUIj88sAV0Cm by foone@digipres.club
2025-11-01T22:24:24Z
0 likes, 0 repeats
@frang enjoy your five points!
(DIR) Post #AzocKPuIyZTrEnSAF6 by foone@digipres.club
2025-11-01T22:24:37Z
0 likes, 0 repeats
https://digipres.club/@frang@meow.social/115476753375696857
(DIR) Post #Azocf5U46WEVyf2JKS by foone@digipres.club
2025-11-01T22:29:13Z
0 likes, 0 repeats
moving onto the next puzzle, and I'm looking at the RAM.and it sure is stored in RAM a way. I really don't know why, unless this is some very strange interaction with planar addressing? This game runs at 320x200x8pp, which is usually mode13, a linear mode.
(DIR) Post #AzodDXvupxgW3aUiI4 by foone@digipres.club
2025-11-01T22:35:27Z
0 likes, 0 repeats
darn, it doesn't want to run in martypc
(DIR) Post #AzodJGUuZi1DidaezA by alex02@ieji.de
2025-11-01T22:36:25Z
0 likes, 0 repeats
@foone why is your pc named marty?
(DIR) Post #AzodNOl3nx2yUr7AhM by foone@digipres.club
2025-11-01T22:37:14Z
0 likes, 0 repeats
@alex02 it's not my PC, it's @gloriouscow's!
(DIR) Post #AzodkmNo8M0mQdO4lU by alex02@ieji.de
2025-11-01T22:41:28Z
0 likes, 0 repeats
@foone @gloriouscow username checks out. i got my answer.
(DIR) Post #Azodo2PYztRP0ZlKXw by hillu@infosec.exchange
2025-11-01T22:37:31Z
0 likes, 0 repeats
@foone not "mode x" as it was called back then?
(DIR) Post #Azodo3UYyn2CMN6pyi by foone@digipres.club
2025-11-01T22:41:31Z
0 likes, 0 repeats
@hillu nah, mode x is 320x240, so this'd be mode y
(DIR) Post #Azoe3LNEmGSYAAyNAu by foone@digipres.club
2025-11-01T22:44:48Z
0 likes, 0 repeats
I guess this layout might be somewhat optimized for mode Y. It's just line interleaved
(DIR) Post #AzoeQLrL8dqKKU1Y4e by StompyRobot@mastodon.gamedev.place
2025-11-01T22:48:55Z
0 likes, 0 repeats
@fooneHe posted that sign in the office one day, and I just had to. Before lunch, I had written a from-scratch ray traced sphere-over-checkerboard in C.So satisfying!
(DIR) Post #AzoelQhyIzwhRuh1Qe by foone@digipres.club
2025-11-01T22:52:48Z
0 likes, 0 repeats
@StompyRobot nice!
(DIR) Post #Azof0CHOEWxD2jIjAW by foone@digipres.club
2025-11-01T22:55:25Z
0 likes, 0 repeats
@gloriouscow specs on the box say a 286, yeah. it runs through the intro videos just fine, then crashes back to dos instead of showing the menu
(DIR) Post #AzofITE1y4TYoPRXjU by foone@digipres.club
2025-11-01T22:58:45Z
0 likes, 0 repeats
oh god it's easier to just pull the frames from the data file, they're in a different order
(DIR) Post #AzofZFwIcNpuWs9a7c by foone@digipres.club
2025-11-01T23:01:47Z
0 likes, 0 repeats
in-game this animation shows up as 169x129, with a 1 pixel wide border outside that.Now, what size do you think the animation is stored at, given that this game has a CPU minimum requirement of a "fast AT" and can't resize them at runtime?1. 169x129 (the obvious answer)2. 171x131 (they stored another pixel on each side then covered it up with a box)3. some combination of the two (maybe they're off by one in one direction but not the other?)4. 180x130 for some fucking reason
(DIR) Post #AzogkWkKZQdLnKUfh2 by foone@digipres.club
2025-11-01T23:14:57Z
0 likes, 0 repeats
there doesn't seem to be a framerate indicator in the image data, so that must just be hardcoded into the game? or worse, stored elsewhere?
(DIR) Post #AzohPavhvAWSdtOhto by hollowman@fosstodon.org
2025-11-01T23:22:23Z
0 likes, 0 repeats
@foone bassed on the availale options & the fact that you would not be posting if sensible(ish) ill go with 5
(DIR) Post #AzoieTRk7s1PjP2aWG by foone@digipres.club
2025-11-01T23:36:16Z
0 likes, 0 repeats
FlixMix, puzzle set 001 "Fit to be Tiled", puzzle "Quixotic Box Paradox"
(DIR) Post #AzojClGwMAc2rYKyqO by foone@digipres.club
2025-11-01T23:42:31Z
0 likes, 0 repeats
the next two puzzles in the selection are Puddle Muddle and Mishmash Mesh, but the next one in the datafile is Reflexion Perplexion, for some reason.
(DIR) Post #AzojN9oXxs9FsH0udU by foone@digipres.club
2025-11-01T23:44:26Z
0 likes, 0 repeats
FlixMix, puzzle set 001 "Fit to be Tiled", puzzle "Reflexion Perplexion"
(DIR) Post #AzojrA8NL9BlYOb0m8 by foone@digipres.club
2025-11-01T23:49:51Z
0 likes, 0 repeats
the next image is Mismatch Mesh which seems to be a different format, for some reason
(DIR) Post #Azok7LvfFpa2liN2Lw by foone@digipres.club
2025-11-01T23:52:48Z
0 likes, 0 repeats
I think it's 16 colors? but instead of a palette, it's greyscale, but colored at load time?
(DIR) Post #AzolKVEC5nhNKLs7ZA by foone@digipres.club
2025-11-02T00:06:20Z
0 likes, 0 repeats
wait I think they're encoding 24 16-color frames by doing frames 1-12 as the high nibble and frames 13-24 as the low nibble
(DIR) Post #Azoos7UHAKx3PC7E0W by foone@digipres.club
2025-11-02T00:46:01Z
0 likes, 0 repeats
I'm getting close but something is still wrong, you can see the other frame while rendering one of the frames
(DIR) Post #Azop0jUljkdhbMS9ui by silvermoon82@wandering.shop
2025-11-02T00:47:33Z
0 likes, 0 repeats
@foone Huh, that looks almost like it's drawing the yellow grid for the new frame, *then* the blue grid to erase the previous frame?
(DIR) Post #AzoqM74dMreolRzHxA by foone@digipres.club
2025-11-02T01:02:36Z
0 likes, 0 repeats
oh god, my code was right, ffmpeg was just apparently merging the palettes wrong. stupid GIFs. FlixMix, puzzle set 001 "Fit to be Tiled", puzzle "Mismatch Mesh"
(DIR) Post #AzoqPNiJxNQbF26prE by foone@digipres.club
2025-11-02T01:03:15Z
0 likes, 0 repeats
that one looked a lot better before it got mp4ed
(DIR) Post #AzoqYofN7LfLRIEEym by foone@digipres.club
2025-11-02T01:04:58Z
0 likes, 0 repeats
next up is Puddle Muddle, which does the same thing.
(DIR) Post #AzoqxkLeJEUnHotJsO by foone@digipres.club
2025-11-02T01:09:29Z
0 likes, 0 repeats
WHAT DO YOU MEAN THE FRAMES ARE IN REVERSE ORDER?
(DIR) Post #AzorIS6TL1HmmZfKU4 by foone@digipres.club
2025-11-02T01:13:16Z
0 likes, 0 repeats
who encodes an animation in reverse, seriously?
(DIR) Post #AzorpwCcS1j3goVYHo by foone@digipres.club
2025-11-02T01:19:13Z
0 likes, 0 repeats
okay this is close but there's still some kind of palette issue going on:
(DIR) Post #AzosGzNwj4ELNZhmGe by foone@digipres.club
2025-11-02T01:24:08Z
0 likes, 0 repeats
oh I'm looking at the wrong fucking frame. this would normally be the right frame EXCEPT IT'S BACKWARDS
(DIR) Post #AzosSuyKxXRNARPm5Y by foone@digipres.club
2025-11-02T01:26:20Z
0 likes, 0 repeats
FlixMix, puzzle set 001 "Fit to be Tiled", puzzle "Puddle Muddle"
(DIR) Post #AzosjCvlxPVtUxyzJY by foone@digipres.club
2025-11-02T01:28:37Z
0 likes, 0 repeats
okay, Trig Enigma, Juggle Jumble, Spiral Beguiler, & Right Angleworms are all generated on the fly, so they can't be extracted from the file. there's some data there, though, so presumably they're encoded SOMEHOW
(DIR) Post #AzosjHWQt3DNjpAK0m by foone@digipres.club
2025-11-02T01:29:05Z
0 likes, 0 repeats
moving over to game set 002, Grid Riddlers.
(DIR) Post #Azot0KaYjrZCAiE2gy by foone@digipres.club
2025-11-02T01:32:20Z
0 likes, 0 repeats
FlixMix, puzzle set 002 "Grid Riddlers", puzzle "Sphere Gears"
(DIR) Post #AzotFfP5dCSZ4XAoLY by foone@digipres.club
2025-11-02T01:35:06Z
0 likes, 0 repeats
FlixMix, puzzle set 002 "Grid Riddlers", puzzle "Coil Turmoil"
(DIR) Post #AzotJ6KrxIe1T7pwq8 by foone@digipres.club
2025-11-02T01:35:35Z
0 likes, 0 repeats
oh I forgot the second set has variants. ugh.
(DIR) Post #AzotVVg3YrWDXWfE80 by foone@digipres.club
2025-11-02T01:37:58Z
0 likes, 0 repeats
FlixMix, puzzle set 002 "Grid Riddlers", puzzle "Coil Turmoil", object count = 2
(DIR) Post #AzotdWrF3Ym5W8ig40 by foone@digipres.club
2025-11-02T01:39:28Z
0 likes, 0 repeats
FlixMix, puzzle set 002 "Grid Riddlers", puzzle "Coil Turmoil", object count = 6
(DIR) Post #AzotrlyXe6HESTvTX6 by foone@digipres.club
2025-11-02T01:42:01Z
0 likes, 0 repeats
FlixMix, puzzle set 002 "Grid Riddlers", puzzle "Sphere Gears" Object Count = 1
(DIR) Post #Azotw0QFsG7YQIuJ6W by foone@digipres.club
2025-11-02T01:42:43Z
0 likes, 0 repeats
FlixMix, puzzle set 002 "Grid Riddlers", puzzle "Sphere Gears" Object Count = 16
(DIR) Post #Azou6gtCq0cz1nXm8e by foone@digipres.club
2025-11-02T01:44:42Z
0 likes, 0 repeats
and I think that's it.The remaining puzzles are all generated at runtime:Radiant GradiantsBox InterlocksMoire MeleePath o' LogicalVariety AnxietyPlasma PhantasmaMaze Hypnosis
(DIR) Post #AzouHqUfTCAq05Nwxs by foone@digipres.club
2025-11-02T01:46:40Z
0 likes, 0 repeats
1842. I was about 45 minutes late, but when I made that demand I underestimated how weird this file format is
(DIR) Post #Azovs0Po9uTt9Pv0L2 by foone@digipres.club
2025-11-02T02:04:24Z
0 likes, 0 repeats
found a biography on the guy who programmed the game, Lee Morgenstern:http://www.multimagie.com/English/Morgenstern.htm
(DIR) Post #AzowjQt4T1oybH58ls by foone@digipres.club
2025-11-02T02:14:06Z
0 likes, 0 repeats
the webmaster of that site was apparently last in contact with him as of 2017. maybe they've got an email for Morgenstern, and I can ask about the registered-puzzle-disk.
(DIR) Post #AzownqAYPZ1AAYMSQK by foone@digipres.club
2025-11-02T02:14:53Z
0 likes, 0 repeats
mobygames says the company (Celeris Inc) started in defense:https://www.mobygames.com/company/1263/celeris-inc/wild
(DIR) Post #AzoxGElcYCQeZBEuY4 by foone@digipres.club
2025-11-02T02:20:02Z
0 likes, 0 repeats
emailed the multimagie webmaster with some questions to pass along, if they can
(DIR) Post #AzoyNwfhoRkoiPiDNA by foone@digipres.club
2025-11-02T02:32:37Z
0 likes, 0 repeats
@glitzersachen bah, I beat them all last year
(DIR) Post #AzozwA92KIVyIkJMjw by jackemled@furry.engineer
2025-11-02T02:50:01Z
0 likes, 0 repeats
@foone "Can I come to your house & do whatever this is?"
(DIR) Post #Azp59xUmeV7ktZshFI by morten_skaaning@mastodon.gamedev.place
2025-11-02T03:48:27Z
0 likes, 0 repeats
@foone two pass encoding?