Register - Login
Views: 94183471
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
08-14-18 02:48:52 AM
0 users currently in The Cutting Room Floor. | 4 guests

Jul - The Cutting Room Floor - Obscure DOS game D/Generation
  
Login Info: Username: Password:
Reply: Mood avatar list:

















 
Options: - -

Thread history
UserPost
almipopp
Posts: 13/13
I found the password for the proto's terminal at the end!
It's "enterline". Seems to be a placeholder but it melts him and its a cool little animation.
Also reading into game.exe, the word "Empty!" appears among the names of other items you can get from containers suggesting that at one point it was possible to get nothing. Appears on line 00026890 in a hex editor.
almipopp
Posts: 12/13
Im almost done screenshotting each screen of the proto and the final. I guess I should just upload the rooms that are different in some significant way right? great start on the page for D/gen by the way. Im gonna start some screens of the apple II version soon too.

Edit: I think the D/gen proto graphic that's posted on the page might have an error. Ingame It is completely blue, but I notice that the heads seem to be separate graphics for most entities. I believe he has the wrong head. Check the edit I made to the prototypes page
divingkataetheweirdo
Posts: 793/813
Not really, I just fiddle with the image width until the picture looks right. The other thing is that TiledGGD can be changed by how much an image's dimensions are changed under "Width Skip Size" and "Height Skip Size".

I see SLI.CGA and SLI.EGA in my copy of the final game, but not SLI.VGA. SLI.CGA, SLI.EGA, and SLI.VGA is the sliding animation to the Genoq building for/from the prototype.

Each image within the VGA, EGA, and CGA files has a four byte header before the image proper, noting the image dimensions and such. That's important because the images themselves have varying image dimensions. There's also header for referencing various portions of the file right at the beginning of each file, noting where loops and such are for the sprites.

I'll have to code a proper sprite viewer or something to make it easier to view stuff like this.
almipopp
Posts: 11/13
Yeah i figured out the dimensions for the smaller items and character sprites but they are all stretched out. Do you know how to fix that?

In the final there is a file called SLI.VGA It's hard to tell but I'm not sure if it's used ingame. Unless it's his jetpack animation.
divingkataetheweirdo
Posts: 792/813
Usually not. Most, if not all, of the sprites use DGEN.PAL, as does BACK1.DAT. Most of the static screens use PAL files of the same name (i.e. CRED.VIM uses CRED.PAL as its palette).
almipopp
Posts: 10/13
That's very helpful thanks.
Was only able to do partial constructions until I saw what you did there. So you just have to guess what pallet goes to which file?

EDIT: I see many file name matches never mind. Im getting backdrops to work correctly still having trouble with sizing some character sprites and stuff. ill figure it out
divingkataetheweirdo
Posts: 791/813
To open the graphics files in PixelDbg...

1) Open the VIM or VGA file in question in PixelDbg
2) Load the appropriate palette file, which are PAL files in the game's data.
3) The RGBA bits should be set to 6, 6, 6, and 6 respectively. Toggle the R,G, and B bits on, while the A bit is off.
4) The ordering of the RGBA bits should be R - 1, G - 2, B - 3, and A - 4.
5) Tweak the width of the pixel data, as it's usually 320px wide for the static pics and 8-32 px for the sprites. Keep in mind sprites of varying widths are stored inside.

A similar procedure can be done with TiledGGD.

1) For the image, set the bits per pixel to 8, 3 bytes per color, and . For the palette, the skip size is set to 1 colour, the endianness is big endian, and the colour order is set to RGB.
2) Load the appropriate graphic (VIM or VGA file) in TiledGGD, with appropriate palette file also loaded (PAL file).
3) Use the arrow keys to resize the image appropriately.

Keep in mind PixelDbg has no zoom-in function. And either way you do it, you will have to manually tweak the brightness with something like GIMP's Normalize function, as it's way too dark normally. Here's what it should look like if done correctly.

almipopp
Posts: 9/13
Awesome those are some great finds!
Any chance yo can point me to some tutorials for pxeldbg and/or TiledGGD?
I don't seem to be opening the files properly I'm getting a bunch of jumbled pixels and I'm not sure what I might be doing wrong.
divingkataetheweirdo
Posts: 789/813
No problem. Some more things in the prototype...

Ctrl + A refreshes the screen of debug prints and restarts the level. Ctrl + O seems to do the same thing.
Ctrl + B shows some random bytes, presumably that of the level layout.
Ctrl + C allows one to change the color of the player's avatar.
Ctrl + D runs a random demo.
Ctrl + W allows one to record a demo, though this glitches the graphics redrawing routines, making it hard to play.

Alt + C allows the player to jump to scenes. (You've already found this one) Don't use any of the other debug controls before using this or else the game will crash. Interestingly, the text for this is still in the final game, but unused.
Alt + O restores a saved game.
Alt + S saves the game.
Alt + T shows the player's coordinates.
Alt + Z prints how much base DOS memory is left.

In the intro level, rather than using a jetpack to enter, they use a rope ala Elevator Action.

This demo has no AdLib support. PC speaker is all you get.

The SAV.DAT file is three bytes shorter than the final version.
almipopp
Posts: 8/13
Thanks so much! Really appreciate all your help!
divingkataetheweirdo
Posts: 788/813
Here's the prototype in question. It shouldn't be too hard to view the tiles, as most of them are uncompressed and can be viewed easily if you have the proper tools.
almipopp
Posts: 7/13
Nice! yes Freeman and ASCATS is explicitly given to you ingame. D/Generation is in the game but it's a bit tricky to get to him. The devs tried to cutoff access to one of the top floors with a locked door that has no key but if you happen to have a bomb item you can just blow it up and continue. You need to lead him into an ionization chamber, lock him in, then put a password into a nearby terminal to kill him. That's the password that's never given to you and if it's not in the game files I guess it's not been implemented yet.
I did beat the Apple II version. Just got it to not crash somehow it had a similar ending sans the terminal. Then it takes you up a floor to a landing pad that says "end".
Incidentally with the proto I am remembering that the D/gen is affected by any items you carry, shields and freezers. Might be able to play with him and figure out what is behind him where the exit is in the final.
Also, may I ask how you got your hands on the proto? I'd love to play it without having to do it on archive.org.
If I figure out how to look at tiles like that I'd love to make a proper page on tcrf for D/generation.

EDIT: I found a teleport dev command in the proto. Hit alt C and it will ask for a scene. put in a number and press enter. it will ask side? type left or right. Scene 114 will take you right to the end.

EDIT 2: Some things might be stored in memory because if you just keep warping to a bunch of different rooms you can occasionally get some weird messed up ones. Fun! Also, scenes 102 through 106 seem to be unused rooms that crash the game!
divingkataetheweirdo
Posts: 787/813
Some differences in the prototype...

The titular D/Generation has a different look, making him look more human and less like a bioweapon. Not sure if he is in the game itself without hacking, but...

Final version...



Proto version...



The intro graphics, plus the backgrounds for many of the levels, are missing.

For the passcode...

the final has

user name: .seth
passcode: .ostrich

but the prototype has
user name: .freeman
passcode: .ascats

There's also these warnings, which aren't in the final game...

Contamination Seal Broken!
Thermonuclear Self-Destruct Engaged.
%d minute%s until thermonuclear detonation
Blammo!
almipopp
Posts: 6/13
You da man!!!!
divingkataetheweirdo
Posts: 786/813
Oh crud, I forgot, this is a .nib file. They are pains in the butts to work with precisely because there aren't many programs that can do anything useful with these files. In that case, you'll have to see if you get in the Apple II code monitor and do something from there. Assuming it can, considering games would sometimes abort if you attempted to view that. Some help can be found here.

The most useful advice I found regarding nib files was this and it's honestly a doozy. I got a hold of the prototype stored on there, btw. Will be updating this topic soon on anything interesting.
almipopp
Posts: 5/13
I just hit disk sector viewer, pick the .nib file and i tried picking a couple different option, proDOS among them. Again, not sure if im doing this right never done this before and it's what the tutorial said to do. I just get hex code though.
On a side note, I've been trying to look through the HTML on this page https://archive.org/embed/msdos_D-Generation_1991 which has DGEN V 0.62. to find the game file and save it. I'm finding a couple references to "D-Generation_1991.zip" but have not been able to save it. Archive.org seems to be using a DOSBOX loader I wonder if it's even possible to extract the file just by looking at the source...
divingkataetheweirdo
Posts: 785/813
I usually look at text through a hex editor (my choice is HxD), but you can also use an online one at hexed.it.

For graphics, if they're uncompressed, I can use pixeldbg, TiledGGD, or some equally suitable tool that view data visually. For compressed data, you dump the memory of the program first (you can do this with Task Manager) and view the data then.

For sounds and music, it depends on the file formats. If it's an uncompressed piece of audio though, I can usually grab Audacity and see if I can hear anything raw. As with compressed graphics, I try to see compressed data by dumping the program while it's running in DOSBox.

Speaking of which, DOSBox has its own debugger, but it's not very stable.

EDIT: How you are trying to open the images in Ciderpress? Because you should be able to open the disks as ProDOS disks and look at the contents there. It does seem to have a primitive disassembler too, though it's more useful to disassemble games for the Apple II on an actual machine.
almipopp
Posts: 4/13
I've never used a program like ciderpress but ill give it a try thanks for the summary. Were those keywords for the regular ms dos one? The passwords were changed from v 0.62 to v 1.0. I gotta see if theres a way to pull the image off of that archive.org page i found. What program do you use to look into DOS games?

EDIT: Also been trying to look into the apple II disk images. I might be doing something wrong. all I se eis a bunch of hex. I don't know what to do with that.
divingkataetheweirdo
Posts: 784/813
Neato. CiderPress is what I use to look into Apple II Disk images. As for the DOS version, it doesn't seem to use compression on many of the main game's files (like the player graphics), not even the backgrounds are compressed. The next step is to see if I can match the palettes and the graphics files.

CGA, EGA, and VGA files are graphics used by the game for the various graphics modes. CIM, EIM, and VIM are similar, but are used for static images rather than constantly updating ones. There's also TIM, which would probably be for Tandy machines.

SCN is probably where all the level data is.

Oh, and the keywords? The ones I found were war, death, pestilence, and famine.
almipopp
Posts: 3/13
Hey thanks so much!!! This is awesome!
It works great in the applewin emulator although I am running into a consistent issue (3 times in a row so far) right near the end where the game either crashes or bugs out in such a way as to render finishing the game impossible. Ill update if i find a fix.
This is a long thread. Click here to view it.
Jul - The Cutting Room Floor - Obscure DOS game D/Generation



Rusted Logic

Acmlmboard - commit 5d36857 [2018-03-03]
©2000-2018 Acmlm, Xkeeper, Inuyasha, et al.

20 database queries.
Query execution time: 0.144191 seconds
Script execution time: 0.009652 seconds
Total render time: 0.153843 seconds
Memory used: 524288