On the off-chance you didn't recognize the image from my last post, it was part of an animation from Buried in Time. And now you can find the source for running the game in Cabal over here. And, yes, it's completable.
I'll fill in more details on the blog when I get a chance, but I think trying it out is probably a better way to show off what's been done.
Oh, and I went a little overboard with compatibility on this title. Not only is the 24-bit one working, it has full compatibility with the 8-bit game resources too. (This is the ultimate purpose for that Cinepak dithering I spoke of last year.)
Much thanks to Presto Studios yet again for making all this possible and providing the original source code!
Showing posts with label Buried in Time. Show all posts
Showing posts with label Buried in Time. Show all posts
Saturday, September 26, 2015
Monday, February 21, 2011
Just Some Code Lying Around...
Well, as promised by yesterday's post, I would come back with some more code. Oh look! There's two new branches on my fork of ScummVM.
First off, is jmp, which was supposed to be an engine for the Windows versions of The Journeyman Project (Turbo!) and its sequel, Buried in Time. However, other than an AVI player (KQ6 put this code to good use), not much was of use until recently when I added support for loading resources from the EXE/DLL. Both games are entirely hardcoded. Still not much is done, but it's got some good code in there for the Cinepak-based bitmaps I mentioned on my blog before. The codebase here dates back to 2006, so be gentle with it.
Probably the more important of the branches, at least to me, is pegasus. Unlike their predecessors, The Journeyman Project: Pegasus Prime (Mac only) is not hardcoded (minus some 'minigames'). It seemed like a better candidate to me. Well, it's a bit more functional than the others but still not much is done. You can traverse the menus a bit and the intro plays (with that recently-added QuickTime seeking), but not much else can be done yet. And thanks to a fellow fan's research, some of the resource types are also loaded in (but not all). I intend to continue on this when I'm done with Mohawk (at least the "core" Mohawk games :P).
It feels good to get this all off my chest. Have I mentioned how much I love git?
First off, is jmp, which was supposed to be an engine for the Windows versions of The Journeyman Project (Turbo!) and its sequel, Buried in Time. However, other than an AVI player (KQ6 put this code to good use), not much was of use until recently when I added support for loading resources from the EXE/DLL. Both games are entirely hardcoded. Still not much is done, but it's got some good code in there for the Cinepak-based bitmaps I mentioned on my blog before. The codebase here dates back to 2006, so be gentle with it.
Probably the more important of the branches, at least to me, is pegasus. Unlike their predecessors, The Journeyman Project: Pegasus Prime (Mac only) is not hardcoded (minus some 'minigames'). It seemed like a better candidate to me. Well, it's a bit more functional than the others but still not much is done. You can traverse the menus a bit and the intro plays (with that recently-added QuickTime seeking), but not much else can be done yet. And thanks to a fellow fan's research, some of the resource types are also loaded in (but not all). I intend to continue on this when I'm done with Mohawk (at least the "core" Mohawk games :P).
It feels good to get this all off my chest. Have I mentioned how much I love git?
Labels:
Buried in Time,
Pegasus Prime,
ScummVM,
The Journeyman Project
Saturday, March 27, 2010
March Madness
I've been quite busy the last month, though sadly not much related to coding or reverse engineering.
In the ScummVM world, my main focus was working on rewriting the VideoDecoder system. In the current trunk, the VideoDecoder is limited in what it can be used for. It was designed for fixed-rate, 8bpp videos that do not run in the "background" (instead of say in Broken Sword where the cutscene is the only thing going on in the game and the event loop only handles the video) of the games. Because of the way this works, the QuickTime player in Mohawk does not use this (variable rate, >8bpp, and background videos needed) and I designed a different system to run the Myst and Riven videos.
DrMcCoy also had a similar problem with his Dark Seed II engine where >8bpp videos are used (in AVI files). So, I began working on a redesigned VideoDecoder system which took about a week's worth of my spare time up (with much help from DrMcCoy, especially on bug fixing and input on the new API) and we came up with this patch. Since writing the patch I haven't had time to fix some of the things in it or split it up (it's a whopping 130KB), but hopefully I'll get around to that soon. Also, the QuickTime code in Mohawk will eventually also be adapted to that and moved to common so it can be used in the SAGA and SCI engines.
Outside of the ScummVM world, I've done a bit more experimenting with my DOSBox + Windows 3.1 setup mentioned way back when. Now I'm running it at 640x480x24bpp using the S3 Trio drivers, and now Buried in Time doesn't crash on me at all and works in 24bpp. Buried in Time would be a great game to reimplement one of these, however it is entirely hardcoded and would be difficult to implement. The cursors and main menu graphics are stored in the executable too.
As for media, the audio is standard WAVE files (disguised with a .bta extension), the bitmaps are DIB's (disguised with a .btb extension, usually) and the videos are AVI's with Cinepak encoded frames (disguised with a .btv extension, usually). All of the data is normal, except for one image: TITLE/BKG.BTB. I wasn't able to open it in any image viewer, so I opened it in a hex editor only to see a very weird bitmap compression field: 'cvid' ('divc' when decoding because the field is really LE). Cinepak! I hacked together the Mohawk bitmap decoder and the Mohawk Cinepak decoder to display the image, and it came out fine. Apparently, the BKG.BTB file is displayed in the background so the main title video takes up much less room. Interesting, but again, a project that will probably never be realized because of its hardcodedness.
That's it for now... hopefully more posts soon. :)
In the ScummVM world, my main focus was working on rewriting the VideoDecoder system. In the current trunk, the VideoDecoder is limited in what it can be used for. It was designed for fixed-rate, 8bpp videos that do not run in the "background" (instead of say in Broken Sword where the cutscene is the only thing going on in the game and the event loop only handles the video) of the games. Because of the way this works, the QuickTime player in Mohawk does not use this (variable rate, >8bpp, and background videos needed) and I designed a different system to run the Myst and Riven videos.
DrMcCoy also had a similar problem with his Dark Seed II engine where >8bpp videos are used (in AVI files). So, I began working on a redesigned VideoDecoder system which took about a week's worth of my spare time up (with much help from DrMcCoy, especially on bug fixing and input on the new API) and we came up with this patch. Since writing the patch I haven't had time to fix some of the things in it or split it up (it's a whopping 130KB), but hopefully I'll get around to that soon. Also, the QuickTime code in Mohawk will eventually also be adapted to that and moved to common so it can be used in the SAGA and SCI engines.
Outside of the ScummVM world, I've done a bit more experimenting with my DOSBox + Windows 3.1 setup mentioned way back when. Now I'm running it at 640x480x24bpp using the S3 Trio drivers, and now Buried in Time doesn't crash on me at all and works in 24bpp. Buried in Time would be a great game to reimplement one of these, however it is entirely hardcoded and would be difficult to implement. The cursors and main menu graphics are stored in the executable too.
As for media, the audio is standard WAVE files (disguised with a .bta extension), the bitmaps are DIB's (disguised with a .btb extension, usually) and the videos are AVI's with Cinepak encoded frames (disguised with a .btv extension, usually). All of the data is normal, except for one image: TITLE/BKG.BTB. I wasn't able to open it in any image viewer, so I opened it in a hex editor only to see a very weird bitmap compression field: 'cvid' ('divc' when decoding because the field is really LE). Cinepak! I hacked together the Mohawk bitmap decoder and the Mohawk Cinepak decoder to display the image, and it came out fine. Apparently, the BKG.BTB file is displayed in the background so the main title video takes up much less room. Interesting, but again, a project that will probably never be realized because of its hardcodedness.
That's it for now... hopefully more posts soon. :)
Thursday, July 02, 2009
The Inaugural Game
Today I bought a new MacBook Pro (13", the cheapest one). It was desperately needed. And for anyone who's followed my blog for a while, you'll know how badly the previous laptop sucked. Well, it didn't suck, it just was nearing the end of its time and I kept fixing it to keep it alive.
Anyway, as I do with all new computers I get, I always put on the "inaugural game" onto the computer to christen it, so to speak. The game is always Buried in Time, one of my favorite games. However, having an Intel Mac, running this game would not be an easy task. The Intel Macs don't support < Mac OS X anymore and it obviously doesn't support any Windows thing. Now, I could have gone about this in many ways (such as VirtualBox or WINE), but instead, I chose to use DOSBox + Windows 3.11.
Windows 3.11 installs easily under DOSBox. It was simple to put the CD in and then just install. However, I had to mess around a bit for graphics. I used Windows' SVGA driver (640x480x256 colors) and then for DOSBox set the machine type to "svga_et4000" and it worked like a charm. I installed the SB16 drivers for Windows and then sound worked too. Besides a crash that happens when watching the credits video (with the title and whatnot), the game runs but a with a slight lag. Especially with screen updates. You'll see what I mean with this video:
I'll also get to try Myst and dithering under this setup now too. That's the next step ;)
Anyway, as I do with all new computers I get, I always put on the "inaugural game" onto the computer to christen it, so to speak. The game is always Buried in Time, one of my favorite games. However, having an Intel Mac, running this game would not be an easy task. The Intel Macs don't support < Mac OS X anymore and it obviously doesn't support any Windows thing. Now, I could have gone about this in many ways (such as VirtualBox or WINE), but instead, I chose to use DOSBox + Windows 3.11.
Windows 3.11 installs easily under DOSBox. It was simple to put the CD in and then just install. However, I had to mess around a bit for graphics. I used Windows' SVGA driver (640x480x256 colors) and then for DOSBox set the machine type to "svga_et4000" and it worked like a charm. I installed the SB16 drivers for Windows and then sound worked too. Besides a crash that happens when watching the credits video (with the title and whatnot), the game runs but a with a slight lag. Especially with screen updates. You'll see what I mean with this video:
I'll also get to try Myst and dithering under this setup now too. That's the next step ;)
Subscribe to:
Posts (Atom)

