12-18-2022, 10:43 AM
(This post was last modified: 12-18-2022, 10:47 AM by InsOp.
Edit Reason: remove smiley
)
I'm currently trying to get the game files (sprites, audio, etc) from a game I enjoyed in the past: Pizza Syndicate (Or Fast Food Tycoon)
The installation dir yields a directory named "resources" with
files - bingo!
I opened them with a hex editor and found data such as here:
https://pastebin.com/aTTKEgev
and later here:
https://pastebin.com/DEnZMBCY
I uploaded the whole file to here: https://we.tl/t-tvDk8SV769
Now I'm very inexperienced in ripping sprites. but it looks like the filepaths visible in the beginning are mapped to the files appearing later in the file.
for example at offset 000E DF08 we see the file signature of jpeg: which is `FF D8 FF E0` . when extracting the file we see an image that correlates with the first jpeg of the list in the beginning E:\pizza2\Sprites\Characterinfo\aush_m.jpg (offset: 516D).
this leads me to the conclusion that the filepaths in the beginning correlate with the data after the list - in that way that all files are appended at the end of the list in the order of the filepaths.
now I want to automatically extract them (I ahve written a python script for that) but I dont know when a new file starts and ends. with JPEG its easy, because I know the file signature and since they are all in sequence I can extract them all. but what with the other file formats? for example SPR (which should be spritesheet data, dont know yet with which application i can open it).
Thus I need to know how big they are, or at least know their file signatures. I think that this information, as well as the offset might be encoded in between the filepaths.
Lets look at the first 150 bytes of the file:
there is indeed some data inbetween the first two filepaths for example:
`00 41 04 00 00 00 00 00 00`
or between the next two filepaths:
`00 2A 04 00 00 41 04 00 00`
I thought that this data could be the offset and/or size of each file(path) and its data.
Because the game somehow needs instructions on how to retrieve the files I believe that there is somehow information encoded on how to retrieve the data of the files.
I dont know whether the info is presented as BE or LE, whether its offset information or size information, but Im sure someone more experienced than I sees this at a first glance.
A hint into the right direction would be superb
The installation dir yields a directory named "resources" with
Code:
animation.res isodaten.res language.res menues.res mission.res movie.res music.res sfx.res speech.res sprites.res
I opened them with a hex editor and found data such as here:
https://pastebin.com/aTTKEgev
and later here:
https://pastebin.com/DEnZMBCY
I uploaded the whole file to here: https://we.tl/t-tvDk8SV769
Now I'm very inexperienced in ripping sprites. but it looks like the filepaths visible in the beginning are mapped to the files appearing later in the file.
for example at offset 000E DF08 we see the file signature of jpeg: which is `FF D8 FF E0` . when extracting the file we see an image that correlates with the first jpeg of the list in the beginning E:\pizza2\Sprites\Characterinfo\aush_m.jpg (offset: 516D).
this leads me to the conclusion that the filepaths in the beginning correlate with the data after the list - in that way that all files are appended at the end of the list in the order of the filepaths.
now I want to automatically extract them (I ahve written a python script for that) but I dont know when a new file starts and ends. with JPEG its easy, because I know the file signature and since they are all in sequence I can extract them all. but what with the other file formats? for example SPR (which should be spritesheet data, dont know yet with which application i can open it).
Thus I need to know how big they are, or at least know their file signatures. I think that this information, as well as the offset might be encoded in between the filepaths.
Lets look at the first 150 bytes of the file:
Code:
0000:0000 | CC 64 02 00 60 0C 00 00 53 6F 66 74 77 61 72 65 | Ìd..`...Software
0000:0010 | 32 30 30 30 45 3A 5C 70 69 7A 7A 61 32 5C 53 70 | 2000E:\pizza2\Sp
0000:0020 | 72 69 74 65 73 5C 43 68 61 72 61 63 74 65 72 5C | rites\Character\
0000:0030 | 46 41 31 5F 30 5F 30 31 2E 73 70 72 00 41 04 00 | FA1_0_01.spr.A..
0000:0040 | 00 00 00 00 00 45 3A 5C 70 69 7A 7A 61 32 5C 53 | .....E:\pizza2\S
0000:0050 | 70 72 69 74 65 73 5C 43 68 61 72 61 63 74 65 72 | prites\Character
0000:0060 | 5C 46 41 31 5F 30 5F 30 32 2E 73 70 72 00 2A 04 | \FA1_0_02.spr.*.
0000:0070 | 00 00 41 04 00 00 45 3A 5C 70 69 7A 7A 61 32 5C | ..A...E:\pizza2\
0000:0080 | 53 70 72 69 74 65 73 5C 43 68 61 72 61 63 74 65 | Sprites\Characte
0000:0090 | 72 5C 46 41 31 5F 30 5F 30 33 2E 73 70 72 00 20 | r\FA1_0_03.spr.
0000:00A0 | 04 00 00 6B 08 00 00 45 3A 5C 70 69 7A 7A 61 32 | ...k...E:\pizza2
there is indeed some data inbetween the first two filepaths for example:
`00 41 04 00 00 00 00 00 00`
or between the next two filepaths:
`00 2A 04 00 00 41 04 00 00`
I thought that this data could be the offset and/or size of each file(path) and its data.
Because the game somehow needs instructions on how to retrieve the files I believe that there is somehow information encoded on how to retrieve the data of the files.
I dont know whether the info is presented as BE or LE, whether its offset information or size information, but Im sure someone more experienced than I sees this at a first glance.
A hint into the right direction would be superb