"qtable" is the tool we used to generate the "queen.tbl" file.

As the .tbl file is now the repository (in the engine-data module), I thought it would be nice to have the tool to (re)generate it.
It may also be useful to add support for any other versions.

There's no makefile ; to build the tool, just compile "qtable.c".
To generate the .tbl file, just execute the tool with the output filename as argument.

svn-id: r22226
This commit is contained in:
Gregory Montoir 2006-04-29 14:29:57 +00:00
parent 7c8457ca5d
commit ad5a89a04b
14 changed files with 50900 additions and 0 deletions

7673
tools/qtable/fat_eng_cdrom.h Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

7673
tools/qtable/fat_fre_cdrom.h Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

7658
tools/qtable/fat_ger_cdrom.h Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

7673
tools/qtable/fat_heb_cdrom.h Normal file

File diff suppressed because it is too large Load Diff

7674
tools/qtable/fat_ita_cdrom.h Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

157
tools/qtable/fat_pc_demo.h Normal file
View File

@ -0,0 +1,157 @@
struct DataFileEntry fatPCDemo[] = {
{ 1, 0x00000000, 0x007C0A, "ANDERSON.ACT" },
{ 1, 0x00007C0A, 0x0167F8, "AQ8.RL" },
{ 1, 0x0001E402, 0x02DB36, "AQBANK.MUS" },
{ 1, 0x0004BF38, 0x0059E9, "AQBANK.RL" },
{ 1, 0x00051921, 0x00BF94, "C11.BBK" },
{ 1, 0x0005D8B5, 0x00C01A, "C11.PCX" },
{ 1, 0x000698CF, 0x000308, "C11A.CUT" },
{ 1, 0x00069BD7, 0x000E3C, "C39A.CUT" },
{ 1, 0x0006AA13, 0x013C13, "C7.BBK" },
{ 1, 0x0007E626, 0x00A75D, "C7.PCX" },
{ 1, 0x00088D83, 0x000266, "C70A.CUT" },
{ 1, 0x00088FE9, 0x000312, "C70B.CUT" },
{ 1, 0x000892FB, 0x009A4E, "C70B.SAM" },
{ 1, 0x00092D49, 0x000266, "C70C.CUT" },
{ 1, 0x00092FAF, 0x000952, "C70D.CUT" },
{ 1, 0x00093901, 0x00034E, "C70E.CUT" },
{ 1, 0x00093C4F, 0x0002DA, "C70F.CUT" },
{ 1, 0x00093F29, 0x0076BF, "C70F.SAM" },
{ 1, 0x0009B5E8, 0x0002DC, "C70G.CUT" },
{ 1, 0x0009B8C4, 0x008D7D, "C70G.SAM" },
{ 1, 0x000A4641, 0x0002E2, "C70H.CUT" },
{ 1, 0x000A4923, 0x000392, "C70I.CUT" },
{ 1, 0x000A4CB5, 0x00016E, "C70J.CUT" },
{ 1, 0x000A4E23, 0x000294, "C70K.CUT" },
{ 1, 0x000A50B7, 0x000294, "C70L.CUT" },
{ 1, 0x000A534B, 0x00028E, "C70M.CUT" },
{ 1, 0x000A55D9, 0x00028E, "C70N.CUT" },
{ 1, 0x000A5867, 0x000092, "C71A.CUT" },
{ 1, 0x000A58F9, 0x000092, "C71B.CUT" },
{ 1, 0x000A598B, 0x0000B0, "C71C.CUT" },
{ 1, 0x000A5A3B, 0x0006F0, "C72A.CUT" },
{ 1, 0x000A612B, 0x000626, "C72B.CUT" },
{ 1, 0x000A6751, 0x00007C, "C72C.CUT" },
{ 1, 0x000A67CD, 0x00038A, "C73A.CUT" },
{ 1, 0x000A6B57, 0x0002B8, "C73B.CUT" },
{ 1, 0x000A6E0F, 0x000192, "C73C.CUT" },
{ 1, 0x000A6FA1, 0x0000C8, "C73D.CUT" },
{ 1, 0x000A7069, 0x000110, "C73E.CUT" },
{ 1, 0x000A7179, 0x000110, "C73F.CUT" },
{ 1, 0x000A7289, 0x000210, "C73G.CUT" },
{ 1, 0x000A7499, 0x000762, "C74A.CUT" },
{ 1, 0x000A7BFB, 0x000180, "C74B.CUT" },
{ 1, 0x000A7D7B, 0x0001C8, "C74C.CUT" },
{ 1, 0x000A7F43, 0x000180, "C74D.CUT" },
{ 1, 0x000A80C3, 0x0000E0, "C74F.CUT" },
{ 1, 0x000A81A3, 0x000C82, "C75B.CUT" },
{ 1, 0x000A8E25, 0x000072, "C76A.CUT" },
{ 1, 0x000A8E97, 0x000E3E, "C76B.CUT" },
{ 1, 0x000A9CD5, 0x00B5CE, "C8.BBK" },
{ 1, 0x000B52A3, 0x00C31F, "C8.PCX" },
{ 1, 0x000C15C2, 0x00078C, "C8A.CUT" },
{ 1, 0x000C1D4E, 0x00019E, "C8B.CUT" },
{ 1, 0x000C1EEC, 0x00F68B, "C9.BBK" },
{ 1, 0x000D1577, 0x00A787, "C9.PCX" },
{ 1, 0x000DBCFE, 0x00017E, "C97A.CUT" },
{ 1, 0x000DBE7C, 0x00013C, "C97B.CUT" },
{ 1, 0x000DBFB8, 0x000094, "C99D.CUT" },
{ 1, 0x000DC04C, 0x0002CC, "C99E.CUT" },
{ 1, 0x000DC318, 0x0002CC, "C99F.CUT" },
{ 1, 0x000DC5E4, 0x0001FA, "C9A.CUT" },
{ 1, 0x000DC7DE, 0x0000F8, "C9B.CUT" },
{ 1, 0x000DC8D6, 0x000136, "C9C.CUT" },
{ 1, 0x000DCA0C, 0x0000A0, "C9D.CUT" },
{ 1, 0x000DCAAC, 0x0001DC, "CDCLO.CUT" },
{ 1, 0x000DCC88, 0x0001DC, "CDRES.CUT" },
{ 1, 0x000DCE64, 0x005EF2, "CHANGE.SAM" },
{ 1, 0x000E2D56, 0x00166E, "CINTR.CUT" },
{ 1, 0x000E43C4, 0x0000DA, "CLOGO.CUT" },
{ 1, 0x000E449E, 0x000E0E, "CONTROL.BBK" },
{ 1, 0x000E52AC, 0x000386, "CRED.CUT" },
{ 1, 0x000E5632, 0x000485, "CREDIT1.CRD" },
{ 1, 0x000E5AB7, 0x000A09, "CREDIT2.CRD" },
{ 1, 0x000E64C0, 0x009ACA, "CROWBAR.SAM" },
{ 1, 0x000EFF8A, 0x0001DC, "CUDRS.CUT" },
{ 1, 0x000F0166, 0x0061B7, "D1.BBK" },
{ 1, 0x000F631D, 0x000018, "D1.LUM" },
{ 1, 0x000F6335, 0x001F40, "D1.MSK" },
{ 1, 0x000F8275, 0x00A331, "D1.PCX" },
{ 1, 0x001025A6, 0x00DDD7, "D1C.SAM" },
{ 1, 0x0011037D, 0x004630, "D2.BBK" },
{ 1, 0x001149AD, 0x000018, "D2.LUM" },
{ 1, 0x001149C5, 0x001F40, "D2.MSK" },
{ 1, 0x00116905, 0x008DC3, "D2.PCX" },
{ 1, 0x0011F6C8, 0x004B34, "D3.BBK" },
{ 1, 0x001241FC, 0x000018, "D3.LUM" },
{ 1, 0x00124214, 0x001F40, "D3.MSK" },
{ 1, 0x00126154, 0x00A662, "D3.PCX" },
{ 1, 0x001307B6, 0x00C55A, "D3.SAM" },
{ 1, 0x0013CD10, 0x013E0D, "D4.BBK" },
{ 1, 0x00150B1D, 0x000018, "D4.LUM" },
{ 1, 0x00150B35, 0x001F40, "D4.MSK" },
{ 1, 0x00152A75, 0x00A69B, "D4.PCX" },
{ 1, 0x0015D110, 0x0088A1, "D5.BBK" },
{ 1, 0x001659B1, 0x007BC5, "D5.PCX" },
{ 1, 0x0016D576, 0x002EE7, "D5.SAM" },
{ 1, 0x0017045D, 0x01128E, "D5B.SAM" },
{ 1, 0x001816EB, 0x00A480, "D6.BBK" },
{ 1, 0x0018BB6B, 0x000018, "D6.LUM" },
{ 1, 0x0018BB83, 0x001F40, "D6.MSK" },
{ 1, 0x0018DAC3, 0x0099A6, "D6.PCX" },
{ 1, 0x00197469, 0x008461, "D9.BBK" },
{ 1, 0x0019F8CA, 0x00B551, "D9.PCX" },
{ 1, 0x001AAE1B, 0x00D83A, "DEATH.ACT" },
{ 1, 0x001B8655, 0x0017CA, "DEATH1.DOG" },
{ 1, 0x001B9E1F, 0x00081E, "DEATH2.DOG" },
{ 1, 0x001BA63D, 0x00E199, "DEINO.ACT" },
{ 1, 0x001C87D6, 0x0052E2, "DFRANK.ACT" },
{ 1, 0x001CDAB8, 0x0033DA, "DISK1.SAM" },
{ 1, 0x001D0E92, 0x002A62, "DOG.ACT" },
{ 1, 0x001D38F4, 0x00023A, "DOG.DOG" },
{ 1, 0x001D3B2E, 0x013FDA, "FAYE.ACT" },
{ 1, 0x001E7B08, 0x00007A, "FAYE5.CUT" },
{ 1, 0x001E7B82, 0x00AD60, "FRANK-H.ACT" },
{ 1, 0x001F28E2, 0x016369, "FRANK-H.BBK" },
{ 1, 0x00208C4B, 0x008DD6, "FRANK-H.PCX" },
{ 1, 0x00211A21, 0x008342, "FRANK.ACT" },
{ 1, 0x00219D63, 0x000E48, "FRANK.DOG" },
{ 1, 0x0021ABAB, 0x00728A, "GOONS.ACT" },
{ 1, 0x00221E35, 0x00B102, "HENRY.ACT" },
{ 1, 0x0022CF37, 0x00E8DA, "HUGH.ACT" },
{ 1, 0x0023B811, 0x014B8A, "JOE.BBK" },
{ 1, 0x0025039B, 0x012A5A, "JOE1.BBK" },
{ 1, 0x00262DF5, 0x009B8A, "JOED_A.BBK" },
{ 1, 0x0026C97F, 0x00A50A, "JOED_B.BBK" },
{ 1, 0x00276E89, 0x009B8A, "JOEU_A.BBK" },
{ 1, 0x00280A13, 0x00A50A, "JOEU_B.BBK" },
{ 1, 0x0028AF1D, 0x009B8A, "JOE_A.BBK" },
{ 1, 0x00294AA7, 0x00DC5A, "JOE_B.BBK" },
{ 1, 0x002A2701, 0x000002, "L1.BBK" },
{ 1, 0x002A2703, 0x003F0B, "L1.PCX" },
{ 1, 0x002A660E, 0x000002, "L2.BBK" },
{ 1, 0x002A6610, 0x00BA60, "L2.PCX" },
{ 1, 0x002B2070, 0x00355A, "LARIS.ACT" },
{ 1, 0x002B55CA, 0x000F32, "LARIS.DOG" },
{ 1, 0x002B64FC, 0x00079A, "LARIS3.DOG" },
{ 1, 0x002B6C96, 0x01342D, "LOLA.ACT" },
{ 1, 0x002CA0C3, 0x000ACE, "LOLA1.DOG" },
{ 1, 0x002CAB91, 0x0073EC, "N14.BBK" },
{ 1, 0x002D1F7D, 0x00B3F3, "N14.PCX" },
{ 1, 0x002DD370, 0x02550A, "N14.SAM" },
{ 1, 0x0030287A, 0x00B933, "N14B.PCX" },
{ 1, 0x0030E1AD, 0x019322, "OBJECTS.BBK" },
{ 1, 0x003274CF, 0x002279, "PANEL.PCX" },
{ 1, 0x00329748, 0x012B64, "QUEEN.JAS" },
{ 1, 0x0033C2AC, 0x0089CE, "QUEEN2.JAS" },
{ 1, 0x00344C7A, 0x00117A, "RENEGADE.BBK" },
{ 1, 0x00345DF4, 0x001BFF, "RENEGADE.PCX" },
{ 1, 0x003479F3, 0x0020EA, "RITA.ACT" },
{ 1, 0x00349ADD, 0x00AD00, "SHEET.SAM" },
{ 1, 0x003547DD, 0x00F912, "SPARKY.ACT" },
{ 1, 0x003640EF, 0x000002, "T21.BBK" },
{ 1, 0x003640F1, 0x00B9EE, "T21.PCX" },
{ 1, 0x0036FADF, 0x013902, "TABLET.BBK" },
{ 1, 0x003833E1, 0x00AF16, "TABLET.PCX" },
{ 1, 0x0038E2F7, 0x000FDA, "ZOMBIE1.DOG" }
};

View File

@ -0,0 +1,157 @@
struct DataFileEntry fatPCDemoPcGames[] = {
{ 1, 0x00000000, 0x007C0A, "ANDERSON.ACT" },
{ 1, 0x00007C0A, 0x0167F8, "AQ8.RL" },
{ 1, 0x0001E402, 0x02DB36, "AQBANK.MUS" },
{ 1, 0x0004BF38, 0x0059E9, "AQBANK.RL" },
{ 1, 0x00051921, 0x00BF94, "C11.BBK" },
{ 1, 0x0005D8B5, 0x00C01A, "C11.PCX" },
{ 1, 0x000698CF, 0x000308, "C11A.CUT" },
{ 1, 0x00069BD7, 0x000E3C, "C39A.CUT" },
{ 1, 0x0006AA13, 0x013C13, "C7.BBK" },
{ 1, 0x0007E626, 0x00A75D, "C7.PCX" },
{ 1, 0x00088D83, 0x000266, "C70A.CUT" },
{ 1, 0x00088FE9, 0x000312, "C70B.CUT" },
{ 1, 0x000892FB, 0x009A4E, "C70B.SAM" },
{ 1, 0x00092D49, 0x000266, "C70C.CUT" },
{ 1, 0x00092FAF, 0x000952, "C70D.CUT" },
{ 1, 0x00093901, 0x00034E, "C70E.CUT" },
{ 1, 0x00093C4F, 0x0002DA, "C70F.CUT" },
{ 1, 0x00093F29, 0x0076BF, "C70F.SAM" },
{ 1, 0x0009B5E8, 0x0002DC, "C70G.CUT" },
{ 1, 0x0009B8C4, 0x008D7D, "C70G.SAM" },
{ 1, 0x000A4641, 0x0002E2, "C70H.CUT" },
{ 1, 0x000A4923, 0x000392, "C70I.CUT" },
{ 1, 0x000A4CB5, 0x00016E, "C70J.CUT" },
{ 1, 0x000A4E23, 0x000294, "C70K.CUT" },
{ 1, 0x000A50B7, 0x000294, "C70L.CUT" },
{ 1, 0x000A534B, 0x00028E, "C70M.CUT" },
{ 1, 0x000A55D9, 0x00028E, "C70N.CUT" },
{ 1, 0x000A5867, 0x000092, "C71A.CUT" },
{ 1, 0x000A58F9, 0x000092, "C71B.CUT" },
{ 1, 0x000A598B, 0x0000B0, "C71C.CUT" },
{ 1, 0x000A5A3B, 0x0006F0, "C72A.CUT" },
{ 1, 0x000A612B, 0x000626, "C72B.CUT" },
{ 1, 0x000A6751, 0x00007C, "C72C.CUT" },
{ 1, 0x000A67CD, 0x00038A, "C73A.CUT" },
{ 1, 0x000A6B57, 0x0002B8, "C73B.CUT" },
{ 1, 0x000A6E0F, 0x000192, "C73C.CUT" },
{ 1, 0x000A6FA1, 0x0000C8, "C73D.CUT" },
{ 1, 0x000A7069, 0x00011A, "C73E.CUT" },
{ 1, 0x000A7183, 0x00011A, "C73F.CUT" },
{ 1, 0x000A729D, 0x000210, "C73G.CUT" },
{ 1, 0x000A74AD, 0x000762, "C74A.CUT" },
{ 1, 0x000A7C0F, 0x000180, "C74B.CUT" },
{ 1, 0x000A7D8F, 0x0001C8, "C74C.CUT" },
{ 1, 0x000A7F57, 0x000180, "C74D.CUT" },
{ 1, 0x000A80D7, 0x0000E0, "C74F.CUT" },
{ 1, 0x000A81B7, 0x000C82, "C75B.CUT" },
{ 1, 0x000A8E39, 0x000072, "C76A.CUT" },
{ 1, 0x000A8EAB, 0x000E3E, "C76B.CUT" },
{ 1, 0x000A9CE9, 0x00B5CE, "C8.BBK" },
{ 1, 0x000B52B7, 0x00C31F, "C8.PCX" },
{ 1, 0x000C15D6, 0x00078C, "C8A.CUT" },
{ 1, 0x000C1D62, 0x00019E, "C8B.CUT" },
{ 1, 0x000C1F00, 0x00F68B, "C9.BBK" },
{ 1, 0x000D158B, 0x00A787, "C9.PCX" },
{ 1, 0x000DBD12, 0x00017E, "C97A.CUT" },
{ 1, 0x000DBE90, 0x00013C, "C97B.CUT" },
{ 1, 0x000DBFCC, 0x000094, "C99D.CUT" },
{ 1, 0x000DC060, 0x0002CC, "C99E.CUT" },
{ 1, 0x000DC32C, 0x0002CC, "C99F.CUT" },
{ 1, 0x000DC5F8, 0x0001FA, "C9A.CUT" },
{ 1, 0x000DC7F2, 0x0000F8, "C9B.CUT" },
{ 1, 0x000DC8EA, 0x000136, "C9C.CUT" },
{ 1, 0x000DCA20, 0x0000A0, "C9D.CUT" },
{ 1, 0x000DCAC0, 0x0001DC, "CDCLO.CUT" },
{ 1, 0x000DCC9C, 0x0001DC, "CDRES.CUT" },
{ 1, 0x000DCE78, 0x005EF2, "CHANGE.SAM" },
{ 1, 0x000E2D6A, 0x00166E, "CINTR.CUT" },
{ 1, 0x000E43D8, 0x0000DA, "CLOGO.CUT" },
{ 1, 0x000E44B2, 0x000E0E, "CONTROL.BBK" },
{ 1, 0x000E52C0, 0x000386, "CRED.CUT" },
{ 1, 0x000E5646, 0x000485, "CREDIT1.CRD" },
{ 1, 0x000E5ACB, 0x000A09, "CREDIT2.CRD" },
{ 1, 0x000E64D4, 0x009ACA, "CROWBAR.SAM" },
{ 1, 0x000EFF9E, 0x0001DC, "CUDRS.CUT" },
{ 1, 0x000F017A, 0x0061B7, "D1.BBK" },
{ 1, 0x000F6331, 0x000018, "D1.LUM" },
{ 1, 0x000F6349, 0x001F40, "D1.MSK" },
{ 1, 0x000F8289, 0x00A331, "D1.PCX" },
{ 1, 0x001025BA, 0x00DDD7, "D1C.SAM" },
{ 1, 0x00110391, 0x004630, "D2.BBK" },
{ 1, 0x001149C1, 0x000018, "D2.LUM" },
{ 1, 0x001149D9, 0x001F40, "D2.MSK" },
{ 1, 0x00116919, 0x008DC3, "D2.PCX" },
{ 1, 0x0011F6DC, 0x004B34, "D3.BBK" },
{ 1, 0x00124210, 0x000018, "D3.LUM" },
{ 1, 0x00124228, 0x001F40, "D3.MSK" },
{ 1, 0x00126168, 0x00A662, "D3.PCX" },
{ 1, 0x001307CA, 0x00C55A, "D3.SAM" },
{ 1, 0x0013CD24, 0x013E0D, "D4.BBK" },
{ 1, 0x00150B31, 0x000018, "D4.LUM" },
{ 1, 0x00150B49, 0x001F40, "D4.MSK" },
{ 1, 0x00152A89, 0x00A69B, "D4.PCX" },
{ 1, 0x0015D124, 0x0088A1, "D5.BBK" },
{ 1, 0x001659C5, 0x007BC5, "D5.PCX" },
{ 1, 0x0016D58A, 0x002EE7, "D5.SAM" },
{ 1, 0x00170471, 0x01128E, "D5B.SAM" },
{ 1, 0x001816FF, 0x00A480, "D6.BBK" },
{ 1, 0x0018BB7F, 0x000018, "D6.LUM" },
{ 1, 0x0018BB97, 0x001F40, "D6.MSK" },
{ 1, 0x0018DAD7, 0x0099A6, "D6.PCX" },
{ 1, 0x0019747D, 0x008461, "D9.BBK" },
{ 1, 0x0019F8DE, 0x00B551, "D9.PCX" },
{ 1, 0x001AAE2F, 0x00D83A, "DEATH.ACT" },
{ 1, 0x001B8669, 0x0017CA, "DEATH1.DOG" },
{ 1, 0x001B9E33, 0x00081E, "DEATH2.DOG" },
{ 1, 0x001BA651, 0x00E199, "DEINO.ACT" },
{ 1, 0x001C87EA, 0x0052E2, "DFRANK.ACT" },
{ 1, 0x001CDACC, 0x0033DA, "DISK1.SAM" },
{ 1, 0x001D0EA6, 0x002A62, "DOG.ACT" },
{ 1, 0x001D3908, 0x00023A, "DOG.DOG" },
{ 1, 0x001D3B42, 0x013FDA, "FAYE.ACT" },
{ 1, 0x001E7B1C, 0x00007A, "FAYE5.CUT" },
{ 1, 0x001E7B96, 0x00AD60, "FRANK-H.ACT" },
{ 1, 0x001F28F6, 0x016369, "FRANK-H.BBK" },
{ 1, 0x00208C5F, 0x008DD6, "FRANK-H.PCX" },
{ 1, 0x00211A35, 0x008342, "FRANK.ACT" },
{ 1, 0x00219D77, 0x000E48, "FRANK.DOG" },
{ 1, 0x0021ABBF, 0x00728A, "GOONS.ACT" },
{ 1, 0x00221E49, 0x00B102, "HENRY.ACT" },
{ 1, 0x0022CF4B, 0x00E8DA, "HUGH.ACT" },
{ 1, 0x0023B825, 0x014B8A, "JOE.BBK" },
{ 1, 0x002503AF, 0x012A5A, "JOE1.BBK" },
{ 1, 0x00262E09, 0x009B8A, "JOED_A.BBK" },
{ 1, 0x0026C993, 0x00A50A, "JOED_B.BBK" },
{ 1, 0x00276E9D, 0x009B8A, "JOEU_A.BBK" },
{ 1, 0x00280A27, 0x00A50A, "JOEU_B.BBK" },
{ 1, 0x0028AF31, 0x009B8A, "JOE_A.BBK" },
{ 1, 0x00294ABB, 0x00DC5A, "JOE_B.BBK" },
{ 1, 0x002A2715, 0x000002, "L1.BBK" },
{ 1, 0x002A2717, 0x003F0B, "L1.PCX" },
{ 1, 0x002A6622, 0x000002, "L2.BBK" },
{ 1, 0x002A6624, 0x00BA60, "L2.PCX" },
{ 1, 0x002B2084, 0x00355A, "LARIS.ACT" },
{ 1, 0x002B55DE, 0x000F32, "LARIS.DOG" },
{ 1, 0x002B6510, 0x00079A, "LARIS3.DOG" },
{ 1, 0x002B6CAA, 0x01342D, "LOLA.ACT" },
{ 1, 0x002CA0D7, 0x000ACE, "LOLA1.DOG" },
{ 1, 0x002CABA5, 0x0073EC, "N14.BBK" },
{ 1, 0x002D1F91, 0x00B3F3, "N14.PCX" },
{ 1, 0x002DD384, 0x02550A, "N14.SAM" },
{ 1, 0x0030288E, 0x00B933, "N14B.PCX" },
{ 1, 0x0030E1C1, 0x019322, "OBJECTS.BBK" },
{ 1, 0x003274E3, 0x002279, "PANEL.PCX" },
{ 1, 0x0032975C, 0x012B64, "QUEEN.JAS" },
{ 1, 0x0033C2C0, 0x0089CE, "QUEEN2.JAS" },
{ 1, 0x00344C8E, 0x00117A, "RENEGADE.BBK" },
{ 1, 0x00345E08, 0x001BFF, "RENEGADE.PCX" },
{ 1, 0x00347A07, 0x0020EA, "RITA.ACT" },
{ 1, 0x00349AF1, 0x00AD00, "SHEET.SAM" },
{ 1, 0x003547F1, 0x00F912, "SPARKY.ACT" },
{ 1, 0x00364103, 0x000002, "T21.BBK" },
{ 1, 0x00364105, 0x009C03, "T21.PCX" },
{ 1, 0x0036DD08, 0x013902, "TABLET.BBK" },
{ 1, 0x0038160A, 0x00AF16, "TABLET.PCX" },
{ 1, 0x0038C520, 0x000FDA, "ZOMBIE1.DOG" }
};

View File

@ -0,0 +1,86 @@
struct DataFileEntry fatPCInterview[] = {
{ 1, 0x00000000, 0x001372, "1007SSSS.SB" },
{ 1, 0x00001372, 0x00220C, "1009SSSS.SB" },
{ 1, 0x0000357E, 0x003B1E, "1010SSSS.SB" },
{ 1, 0x0000709C, 0x005110, "96SSSSSS.SB" },
{ 1, 0x0000C1AC, 0x004972, "97SSSSSS.SB" },
{ 1, 0x00010B1E, 0x063F3A, "AQ.RL" },
{ 1, 0x00074A58, 0x0167F8, "AQ8.RL" },
{ 1, 0x0008B250, 0x04FE89, "AQBANK.MUS" },
{ 1, 0x000DB0D9, 0x0059E9, "AQBANK.RL" },
{ 1, 0x000E0AC2, 0x000076, "BLANK000.SB" },
{ 1, 0x000E0B38, 0x000E0E, "CONTROL.BBK" },
{ 1, 0x000E1946, 0x000A24, "D1A.CUT" },
{ 1, 0x000E236A, 0x000098, "D1B.CUT" },
{ 1, 0x000E2402, 0x000154, "D1C.CUT" },
{ 1, 0x000E2556, 0x00015A, "D1D.CUT" },
{ 1, 0x000E26B0, 0x0002C6, "D1E.CUT" },
{ 1, 0x000E2976, 0x0001EC, "D1F.CUT" },
{ 1, 0x000E2B62, 0x00012E, "D1G.CUT" },
{ 1, 0x000E2C90, 0x00033A, "D1H.CUT" },
{ 1, 0x000E2FCA, 0x00012C, "D1I.CUT" },
{ 1, 0x000E30F6, 0x0000E2, "D1J.CUT" },
{ 1, 0x000E31D8, 0x000128, "D1K.CUT" },
{ 1, 0x000E3300, 0x0000BC, "D1L.CUT" },
{ 1, 0x000E33BC, 0x0000CA, "D1M.CUT" },
{ 1, 0x000E3486, 0x000154, "D1N.CUT" },
{ 1, 0x000E35DA, 0x0000D4, "D1O.CUT" },
{ 1, 0x000E36AE, 0x000172, "D1P.CUT" },
{ 1, 0x000E3820, 0x00015A, "D1Q.CUT" },
{ 1, 0x000E397A, 0x0000F0, "D1R.CUT" },
{ 1, 0x000E3A6A, 0x000420, "D1Z.CUT" },
{ 1, 0x000E3E8A, 0x00019E, "D2A.CUT" },
{ 1, 0x000E4028, 0x0001A8, "D2B.CUT" },
{ 1, 0x000E41D0, 0x0000E8, "D2C.CUT" },
{ 1, 0x000E42B8, 0x0000DE, "D2D.CUT" },
{ 1, 0x000E4396, 0x000172, "D2E.CUT" },
{ 1, 0x000E4508, 0x0003A4, "D3A.CUT" },
{ 1, 0x000E48AC, 0x00036A, "D3B.CUT" },
{ 1, 0x000E4C16, 0x0003D4, "D3C.CUT" },
{ 1, 0x000E4FEA, 0x00807A, "FAYE-H.ACT" },
{ 1, 0x000ED064, 0x000002, "FAYE-H.BBK" },
{ 1, 0x000ED066, 0x00BA0D, "FAYE-H.PCX" },
{ 1, 0x000F8A73, 0x013FDA, "FAYE.ACT" },
{ 1, 0x0010CA4D, 0x00007A, "FAYE1.CUT" },
{ 1, 0x0010CAC7, 0x000C90, "FAYE1.DOG" },
{ 1, 0x0010D757, 0x00009C, "FAYE2.CUT" },
{ 1, 0x0010D7F3, 0x009B8A, "JOE_A.BBK" },
{ 1, 0x0011737D, 0x00DC5A, "JOE_B.BBK" },
{ 1, 0x00124FD7, 0x0061AA, "JOHN.ACT" },
{ 1, 0x0012B181, 0x000CD2, "JOHN1.DOG" },
{ 1, 0x0012BE53, 0x000918, "JOHN2.DOG" },
{ 1, 0x0012C76B, 0x000039, "NEWMUS.BAT" },
{ 1, 0x0012C7A4, 0x001C3A, "OBJECTS.BBK" },
{ 1, 0x0012E3DE, 0x002279, "PANEL.PCX" },
{ 1, 0x00130657, 0x000DEC, "QUEEN.JAS" },
{ 1, 0x00131443, 0x00126E, "QUEEN2.JAS" },
{ 1, 0x001326B1, 0x0002A8, "START.CUT" },
{ 1, 0x00132959, 0x006452, "STEVE.ACT" },
{ 1, 0x00138DAB, 0x0006DE, "STEVE1.DOG" },
{ 1, 0x00139489, 0x0010BE, "STEVE2.DOG" },
{ 1, 0x0013A547, 0x000082, "TEST.CUT" },
{ 1, 0x0013A5C9, 0x0038A2, "TONY.ACT" },
{ 1, 0x0013DE6B, 0x000826, "TONY1.DOG" },
{ 1, 0x0013E691, 0x000002, "Z0.BBK" },
{ 1, 0x0013E693, 0x0043F7, "Z0.PCX" },
{ 1, 0x00142A8A, 0x00CB64, "Z1.BBK" },
{ 1, 0x0014F5EE, 0x0134F6, "Z1.PCX" },
{ 1, 0x00162AE4, 0x0028EA, "Z2.BBK" },
{ 1, 0x001653CE, 0x013043, "Z2.PCX" },
{ 1, 0x00178411, 0x0052C6, "Z3.BBK" },
{ 1, 0x0017D6D7, 0x00C13C, "Z3.PCX" },
{ 1, 0x00189813, 0x00467A, "Z4.BBK" },
{ 1, 0x0018DE8D, 0x00BBA1, "Z4.PCX" },
{ 1, 0x00199A2E, 0x0046D0, "Z4.SAM" },
{ 1, 0x0019E0FE, 0x00C46A, "Z5.BBK" },
{ 1, 0x001AA568, 0x008B28, "Z5.PCX" },
{ 1, 0x001B3090, 0x000002, "Z6.BBK" },
{ 1, 0x001B3092, 0x009B2A, "Z6.PCX" },
{ 1, 0x001BCBBC, 0x000002, "Z7.BBK" },
{ 1, 0x001BCBBE, 0x008F0F, "Z7.PCX" },
{ 1, 0x001C5ACD, 0x000002, "Z8.BBK" },
{ 1, 0x001C5ACF, 0x005ED7, "Z8.PCX" },
{ 1, 0x001CB9A6, 0x000002, "Z9.BBK" },
{ 1, 0x001CB9A8, 0x008249, "Z9.PCX" },
{ 1, 0x001D3BF1, 0x000018, "ZZZZZZZZ.ZZZ" }
};

7673
tools/qtable/fat_spa_cdrom.h Normal file

File diff suppressed because it is too large Load Diff

174
tools/qtable/qtable.c Normal file
View File

@ -0,0 +1,174 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
/*
Table file format for scummvm/queen
uint32 : 'QTBL'
uint32 : version/tag
repeat (number of resources tables) {
uint16 : number of entries
repeat (number of entries) {
char[12] : name
uint8 : queen.%d
uint32 : offset in queen.%d
uint32 : length in queen.%d
}
}
*/
#define MAX_VERSIONS 20
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned int uint32;
typedef struct DataFileEntry {
uint8 bundle;
uint32 offset;
uint32 length;
char name[13];
} DataFileEntry;
typedef struct DataFileEntriesTable {
const DataFileEntry *fileEntries;
uint16 fileEntriesCount;
} DataFileEntriesTable;
typedef struct TableFile {
const char *outfile;
DataFileEntriesTable dataFileEntriesTable[MAX_VERSIONS];
uint16 dataFileEntriesTableCount;
} TableFile;
typedef struct GameVersion {
const char *id;
uint32 dataSize;
DataFileEntry *dataFileEntries;
uint16 dataFileEntriesCount;
uint32 offset;
} GameVersion;
#include "fat_eng_floppy.h"
#include "fat_eng_cdrom.h"
#include "fat_fre_floppy.h"
#include "fat_fre_cdrom.h"
#include "fat_ger_floppy.h"
#include "fat_ger_cdrom.h"
#include "fat_ita_floppy.h"
#include "fat_ita_cdrom.h"
#include "fat_spa_cdrom.h"
#include "fat_heb_cdrom.h"
#include "fat_pc_demo_pcgames.h"
#include "fat_pc_demo.h"
#include "fat_pc_interview.h"
#define FAT(x) x, (sizeof(x)/sizeof(x[0]))
static GameVersion gameVersionsTable[] = {
{ "PEM10", 22677657, FAT(fatEngFl), 0 },
{ "CEM10", 190787021, FAT(fatEngCd), 0 },
{ "PFM10", 22157304, FAT(fatFreFl), 0 },
{ "CFM10", 186689095, FAT(fatFreCd), 0 },
{ "PGM10", 22240013, FAT(fatGerFl), 0 },
{ "CGM10", 217648975, FAT(fatGerCd), 0 },
{ "PIM10", 22461366, FAT(fatItaFl), 0 },
{ "CIM10", 190795582, FAT(fatItaCd), 0 },
{ "CSM10", 190730602, FAT(fatSpaCd), 0 },
{ "CHM10", 190705558, FAT(fatHebCd), 0 },
{ "PE100", 3724538, FAT(fatPCDemoPcGames), 0 },
{ "PE100", 3732177, FAT(fatPCDemo), 0 },
{ "PEint", 1915913, FAT(fatPCInterview), 0 }
};
static const uint32 QTBL_TAG = 0x5154424C;
static const uint32 CURRENT_VERSION = 1;
static void writeByte(FILE *fp, uint8 b) {
fwrite(&b, 1, 1, fp);
}
static void writeUint16BE(FILE *fp, uint16 value) {
writeByte(fp, (uint8)(value >> 8));
writeByte(fp, (uint8)(value & 0xFF));
}
static void writeUint32BE(FILE *fp, uint32 value) {
writeUint16BE(fp, (uint16)(value >> 16));
writeUint16BE(fp, (uint16)(value & 0xFFFF));
}
static void writeEntry(FILE *fp, const DataFileEntry *dfe) {
fwrite(dfe->name, 12, 1, fp);
writeByte(fp, dfe->bundle);
writeUint32BE(fp, dfe->offset);
writeUint32BE(fp, dfe->length);
}
static void createTableFile(TableFile *tf) {
FILE *out;
uint16 i, j;
uint32 offset; /* dump offset */
/* setup file entries table */
assert(ARRAYSIZE(gameVersionsTable) < MAX_VERSIONS);
for (i = 0; i < ARRAYSIZE(gameVersionsTable); ++i) {
const GameVersion *gv = &gameVersionsTable[i];
tf->dataFileEntriesTable[i].fileEntries = gv->dataFileEntries;
tf->dataFileEntriesTable[i].fileEntriesCount = gv->dataFileEntriesCount;
}
tf->dataFileEntriesTableCount = ARRAYSIZE(gameVersionsTable);
/* write queen table file */
out = fopen(tf->outfile, "wb");
if (!out) {
printf("ERROR: can't write output file.\n");
return;
}
/* write header tag */
writeUint32BE(out, QTBL_TAG);
/* write version */
writeUint32BE(out, CURRENT_VERSION);
/* write tables */
offset = 4 + 4;
for(i = 0; i < tf->dataFileEntriesTableCount; ++i) {
const DataFileEntriesTable *dfet = &tf->dataFileEntriesTable[i];
/* write number of entries in table */
writeUint16BE(out, dfet->fileEntriesCount);
/* write table entries */
for (j = 0; j < dfet->fileEntriesCount; ++j) {
const DataFileEntry *dfe = &dfet->fileEntries[j];
writeEntry(out, dfe);
}
gameVersionsTable[i].offset = offset;
/* update offset */
offset += 2 + dfet->fileEntriesCount * (12 + 1 + 4 + 4);
}
fclose(out);
}
static void printGameVersionTable() {
int i;
printf("const GameVersion Resource::_gameVersions[] = {\n");
for (i = 0; i < ARRAYSIZE(gameVersionsTable); ++i) {
const GameVersion *gv = &gameVersionsTable[i];
printf("\t{ \"%s\", 0x%08X, %9d },\n", gv->id, gv->offset, gv->dataSize);
}
printf("};\n");
}
int main(int argc, char *argv[]) {
TableFile tf;
if (argc < 2) {
printf("syntax: %s tablefile\n", argv[0]);
exit(0);
}
memset(&tf, 0, sizeof(tf));
tf.outfile = argv[1];
createTableFile(&tf);
printGameVersionTable();
return 0;
}