Forum Archive

Go Back   3D Realms Forums > 3D Realms Topics > Other Apogee/3D Realms Games
Blogs FAQ Community Calendar

Notices

 
 
Thread Tools
Old 10-11-2013, 06:05 AM   #1
Malvineous

Malvineous's Avatar
Extracting Raptor GLB files
Hi all,

Does anyone know if the Raptor GLB format is known? I am investigating it and I have made a little progress, but I'm a bit stuck.

I have worked out that the first 1536*28 bytes is the list of files and offsets, and this is encrypted (none of the data is encrypted though.) You can partially decode the file like this:

- Read a byte
- Subtract the previous byte read (may cause integer wrap)
- XOR with the next byte in the first key

The first key is the string "32768GLB". The decryption starts at the second character ("2") and when it gets to the end of the string it loops back to the first character ("3").

After this, you can begin to see the structure of the FAT. Every second block of 28 bytes is XOR encrypted again with the hex key 75 7B 74 0B. Applying this makes every second block of 28 bytes look like the other blocks.

This is as far as I have gotten. The first file is a 768-byte VGA palette starting directly after the FAT at offset 0xA800, and in the FAT at offset 0x20 you can see the number 0xB800 which I think is 0xA800 but encrypted. At offset 0x24 the number 0x0D00 is, I think, the size (0x0300) encrypted. At offset 0x28 I think is the encrypted filename. If I XOR the first three bytes with 0x80 I get the letters "PAL" which seems correct as this file is a palette, but I can't get the rest of the filename to come out.

If anyone has any ideas or suggestions about figuring out this file format, please let me know!
Malvineous is offline  
Old 10-12-2013, 07:07 AM   #2
Malvineous

Malvineous's Avatar
Re: Extracting Raptor GLB files
Well I couldn't find *anything* about this format so I sat down and reverse engineered it. The encryption algorithm and file format is now documented at the ModdingWiki and the next release of Camoto will have support for editing Raptor's .GLB files.

Here's a taste of what FILE0000.GLB looks like:
Code:
$ gamearch file0000.glb -l
Opening files/file0000.glb as type <autodetect>
File is definitely a Raptor GLB File [glb-raptor]
@0      ATENTION_TXT             [encrypted; 443 bytes]
@1      LASTSCR1_TXT             [encrypted; 4000 bytes]
@2      LASTSCR2_TXT             [encrypted; 4000 bytes]
@3      FILE_ID_DIZ              [encrypted; 447 bytes]
@4      FILE_ID_DIX              [encrypted; 497 bytes]
@5      DIZ_ERR                  [encrypted; 241 bytes]
@6      CREDITS_TXT              [encrypted; 417 bytes]
@7      ORDER_TXT                [encrypted; 323 bytes]
@8      END0_TXT                 [encrypted; 389 bytes]
@9      END1_TXT                 [encrypted; 507 bytes]
@10     END2_TXT                 [encrypted; 539 bytes]
@11     END3_TXT                 [encrypted; 512 bytes]
@12     DMXGUS_INI               [6311 bytes]
@13     GENMIDI_OP2              [11908 bytes]
@14     STARTHELP                [0 bytes]
@15     REG_VER1_TXT             [encrypted; 407 bytes]
@16     REG_VER2_TXT             [encrypted; 481 bytes]
@17     HELP1_TXT                [encrypted; 842 bytes]
@18     STORY1_TXT               [encrypted; 504 bytes]
@19     OVERVW01_TXT             [encrypted; 468 bytes]
@20     OVERVW02_TXT             [encrypted; 498 bytes]
@21     TRAIN01_TXT              [encrypted; 470 bytes]
@22     TRAIN02_TXT              [encrypted; 452 bytes]
@23     OVERVW03_TXT             [encrypted; 504 bytes]
@24     OVERVW04_TXT             [encrypted; 670 bytes]
@25     OVERVW05_TXT             [encrypted; 370 bytes]
@26     OVERVW06_TXT             [encrypted; 565 bytes]
@27     OVERVW07_TXT             [encrypted; 575 bytes]
@28     OVERVW08_TXT             [encrypted; 390 bytes]
@29     OVERVW09_TXT             [encrypted; 486 bytes]
@30     GAMEHLP1_TXT             [encrypted; 593 bytes]
@31     GAMEHLP2_TXT             [encrypted; 643 bytes]
@32     GAMEHLP3_TXT             [encrypted; 633 bytes]
@33     GAMEHLP4_TXT             [encrypted; 671 bytes]
@34     GAMEHLP5_TXT             [encrypted; 601 bytes]
@35     HINTS01_TXT              [encrypted; 440 bytes]
@36     HINTS02_TXT              [encrypted; 478 bytes]
@37     NEWPLAY1_TXT             [encrypted; 488 bytes]
@38     NEWPLAY2_TXT             [encrypted; 534 bytes]
@39     LOADPLY1_TXT             [encrypted; 488 bytes]
@40     LOADPLY2_TXT             [encrypted; 451 bytes]
@41     HANGHLP1_TXT             [encrypted; 533 bytes]
...
And here's the contents of CREDITS1_TXT after decryption:

Code:
TEXT_IMAGE SMCYGLOG_PIC 100 10

TEXT_COLOR 80
TEXT_POS 31 66
PROGRAMMER:   

TEXT_POS 195 66
SCOTT HOST 

TEXT_POS 31 87
ARTISTS:         

TEXT_POS 195 87
RICH FLEIDER
TIM NEVEU

TEXT_POS 31 119
LEVEL DESIGN:    

TEXT_POS 195 119 
JIM MOLINETS

TEXT_POS 31 140
SOUND SYSTEM:           

TEXT_POS 195 140
PAUL RADEK 

TEXT_POS 31 163
MUSIC:           

TEXT_POS 195 163
MATT MURPHY
Malvineous is offline  
 

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 02:44 PM.

Page generated in 0.08388495 seconds (100.00% PHP - 0% MySQL) with 16 queries

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

Website is ©1987-2014 Apogee Software, Ltd.
Ideas and messages posted here become property of Apogee Software Ltd.