SoftMax Resource File Format
Format type | Archive |
---|---|
Max files | Set by FAT length |
File Allocation Table (FAT) | External |
Filenames? | No |
Metadata? | None |
Supports compression? | No |
Supports encryption? | No |
Supports subdirectories? | No |
Hidden data? | No |
Games |
The SoftMax Resource File Format is used by games of the Korean developer Softmax. The format itself stores no offsets and/or file names. Instead, potential file tables are stored in the game EXE files or are even calculated using formulas.
The format is very similar to ArtCraft Resource File Format, which is used in the earlier released game Lychnis.
File format
Signature
Sky & Rica uses the following signature:
Data type | Name | Description |
---|---|---|
BYTE[0x20] | cSignature | "(C) SoftMax Resource File" 0x1A 0x00*6 |
FAT
The File Allocation Table, if available, is stored in the game executables.
Sky & Rica (unlike Lychnis) stores only very few information about the resource files. For most of the files, there is only a list of UINT32LE file offsets. For the sound effects, there is an additional UINT32LE list of file sizes. For some files, offsets are calculated by the game. S&R.EXE and SETUP.EXE don't use resource files.
EXE File | Resource file | Number of files | File offsets | File sizes | File type |
---|---|---|---|---|---|
FRAME.EXE | s&r4.res | 135* | 0x011A84 | -- | Sprites |
s&r1.res | 10* | 0x01242C | -- | Cutscene Data? | |
s&r2.res | 10* | 0x012454 | -- | Cutscene Data? | |
s&r5.res | 44* | 0x012700 | -- | Music | |
s&r5.res | 33 | 0x012806 | 0x01288A | Sound Effects | |
STAGE1.EXE | s&r4.res | 120 | 0x012F9C | -- | Sprites |
s&r5.res | 42 | 0x013DAA | -- | Music | |
s&r5.res | 34* | 0x013EA8 | 0x013F34 | Sound Effects | |
STAGE2.EXE | s&r4.res | 132 | 0x01305C | -- | Sprites |
s&r5.res | 34 | 0x013E6A | -- | Music | |
s&r5.res | 34* | 0x013FBC | 0x014048 | Sound Effects | |
STAGE3.EXE | s&r4.res | 120 | 0x012224 | -- | Sprites |
s&r5.res | 42 | 0x013028 | -- | Music | |
s&r5.res | 34* | 0x013126 | 0x0131B2 | Sound Effects | |
STAGE4.EXE | s&r4.res | 120 | 0x013994 | -- | Sprites |
s&r5.res | 34 | 0x0147D2 | -- | Music | |
s&r5.res | 34* | 0x014924 | 0x0149B0 | Sound Effects | |
STAGE5.EXE | s&r4.res | 133 | 0x0138C4 | -- | Sprites |
s&r5.res | 34 | 0x0146D8 | -- | Music | |
s&r5.res | 34* | 0x01482A | 0x0148B6 | Sound Effects | |
STAGE6.EXE | s&r4.res | 120 | 0x0121B4 | -- | Sprites |
s&r5.res | 44* | 0x012FCC | -- | Music | |
s&r5.res | 34* | 0x0130CA | 0x013156 | Sound Effects | |
STAGE7.EXE | s&r4.res | 120 | 0x013754 | -- | Sprites |
s&r5.res | 34 | 0x014558 | -- | Music | |
s&r5.res | 34* | 0x0146AA | 0x014736 | Sound Effects | |
STAGE9.EXE | s&r4.res | 134 | 0x011CE4 | -- | Sprites |
s&r5.res | 34 | 0x012AFA | -- | Music | |
s&r5.res | 34* | 0x012C4C | 0x012CD8 | Sound Effects | |
TITLE.EXE | s&r4.res | 120 | 0x0088A6 | -- | Sprites |
s&r5.res | 34 | 0x008F2A | -- | Music | |
s&r5.res | 34* | 0x00907C | 0x009108 | Sound Effects |
It should be noted that not all executables have full file tables. For example, TITLE.EXE doesn't have all music offsets, but the SFX list is complete. FRAME.EXE has all music offsets, but lacks one sound effect. All complete tables are marked with a *.
Sound Effects are raw 8-bit unsigned PCM. Music consists of IMS and BNK files.
List of files
The following table lists the contents of S&R1.RES.
File # | Offset | Size | Format | Notes |
---|---|---|---|---|
0 | 0x000020 | 887935 | unknown | |
1 | 0x0D8C9F | 333482 | unknown | |
2 | 0x12A349 | 27524 | unknown | |
3 | 0x130ECD | 22472 | unknown | |
4 | 0x136695 | 402640 | unknown | |
5 | 0x198B65 | 137224 | unknown | |
6 | 0x1BA36D | 296062 | unknown | |
7 | 0x2027EB | 126749 | unknown | |
8 | 0x221708 | 183262 | unknown | |
9 | 0x24E2E6 | 143358 | unknown |
The following table lists the contents of S&R2.RES.
File # | Offset | Size | Format | Notes |
---|---|---|---|---|
0 | 0x000020 | 204805 | unknown | |
1 | 0x032025 | 665605 | unknown | |
2 | 0x0D482A | 65413 | unknown | |
3 | 0x0E47AF | 422061 | unknown | |
4 | 0x14B85C | 363058 | unknown | |
5 | 0x1A428E | 237377 | unknown | |
6 | 0x1DE1CF | 446701 | unknown | |
7 | 0x24B2BC | 447507 | unknown | |
8 | 0x2B86CF | 66560 | unknown | |
9 | 0x2C8ACF | 189980 | unknown |
The following table lists the contents of S&R3.RES.
File # | Offset | Size | Format | Notes |
---|---|---|---|---|
0 | 0x000020 | 6752 | Map Data | Title Screen |
1 | 0x001A80 | 16128 | Map Data | Stage 1 |
2 | 0x005980 | 16128 | Map Data | Stage 2 |
3 | 0x009880 | 14528 | Map Data | Stage 3 |
4 | 0x00D140 | 16128 | Map Data | Stage 4 |
5 | 0x011040 | 16128 | Map Data | Stage 5 |
6 | 0x014F40 | 16128 | Map Data | Stage 6 |
7 | 0x018E40 | 14368 | Map Data | Stage 7 |
8 | 0x01C660 | 75904 | Tile Data | Title Screen |
9 | 0x02EEE0 | 216192 | Tile Data | Stage 1 |
10 | 0x063B60 | 252032 | Tile Data | Stage 2 |
11 | 0x0A13E0 | 400768 | Tile Data | Stage 3 |
12 | 0x103160 | 232064 | Tile Data | Stage 4 |
13 | 0x13BBE0 | 173440 | Tile Data | Stage 5 |
14 | 0x166160 | 236928 | Tile Data | Stage 6 |
15 | 0x19FEE0 | 330368 | Tile Data | Stage 7 |
16 | 0x1F0960 | 16896 | Map Data | Stage 9 |
17 | 0x1F4B60 | 252032 | Tile Data | Stage 9 |
Since all of the offsets are hardcoded into the game executables, I searched for magic bytes.
Those were "Map File" and "Tile File" for map and tile data respectively. Both file types also contain the string "Innovation! 1994".
In the STAGE#.EXE files the offsets can be located by searching for the following magic bytes:
Map Data (4-byte offset): F8 89 46 F6 6A 00 66 68 xx xx xx xx
Map Data (1-byte offset): F8 89 46 F6 6A 00 66 6A xx
Tile Data (4-byte offset): FA 89 46 F8 6A 00 66 68 xx xx xx xx
The following table lists the contents of S&R4.RES.
File # | Offset | Size | Format | Notes |
---|---|---|---|---|
0 | 0x000020 | 11367 | Sprite Data | |
1 | 0x002C87 | 9268 | Sprite Data | |
2 | 0x0050BB | 34823 | Sprite Data | |
3 | 0x00D8C2 | 25280 | Sprite Data | |
4 | 0x013B82 | 7640 | Sprite Data | |
5 | 0x01595A | 14302 | Sprite Data | |
6 | 0x019138 | 28980 | Sprite Data | |
7 | 0x02026C | 14448 | Sprite Data | |
8 | 0x023ADC | 4435 | Sprite Data | |
9 | 0x024C2F | 13515 | Sprite Data | |
10 | 0x0280FA | 10548 | Sprite Data | |
11 | 0x02AA2E | 13956 | Sprite Data | |
12 | 0x02E0B2 | 5752 | Sprite Data | |
13 | 0x02F72A | 10245 | Sprite Data | |
14 | 0x031F2F | 3846 | Sprite Data | |
15 | 0x032E35 | 16144 | Sprite Data | |
16 | 0x036D45 | 11848 | Sprite Data | |
17 | 0x039B8D | 7194 | Sprite Data | |
18 | 0x03B7A7 | 8642 | Sprite Data | |
19 | 0x03D969 | 13390 | Sprite Data | |
20 | 0x040DB7 | 12972 | Sprite Data | |
21 | 0x044063 | 6822 | Sprite Data | |
22 | 0x045B09 | 7216 | Sprite Data | |
23 | 0x047739 | 15168 | Sprite Data | |
24 | 0x04B279 | 40454 | Sprite Data | |
25 | 0x05507F | 10136 | Sprite Data | |
26 | 0x057817 | 7347 | Sprite Data | |
27 | 0x0594CA | 7566 | Sprite Data | |
28 | 0x05B258 | 5436 | Sprite Data | |
29 | 0x05C794 | 8796 | Sprite Data | |
30 | 0x05E9F0 | 9283 | Sprite Data | |
31 | 0x060E33 | 3717 | Sprite Data | |
32 | 0x061CB8 | 11706 | Sprite Data | |
33 | 0x064A72 | 13298 | Sprite Data | |
34 | 0x067E64 | 11108 | Sprite Data | |
35 | 0x06A9C8 | 3417 | Sprite Data | |
36 | 0x06B721 | 39070 | Sprite Data | |
37 | 0x074FBF | 5588 | Sprite Data | |
38 | 0x076593 | 8923 | Sprite Data | |
39 | 0x07886E | 5450 | Sprite Data | |
40 | 0x079DB8 | 11653 | Sprite Data | |
41 | 0x07CB3D | 53464 | Sprite Data | |
42 | 0x089C15 | 11620 | Sprite Data | |
43 | 0x08C979 | 6494 | Sprite Data | |
44 | 0x08E2D7 | 3146 | Sprite Data | |
45 | 0x08EF21 | 20656 | Sprite Data | |
46 | 0x093FD1 | 1922 | Sprite Data | |
47 | 0x094753 | 17723 | Sprite Data | |
48 | 0x098C8E | 8592 | Sprite Data | |
49 | 0x09AE1E | 5013 | Sprite Data | |
50 | 0x09C1B3 | 34029 | Sprite Data | |
51 | 0x0A46A0 | 26605 | Sprite Data | |
52 | 0x0AAE8D | 4276 | Sprite Data | |
53 | 0x0ABF41 | 35885 | Sprite Data | |
54 | 0x0B4B6E | 47021 | Sprite Data | |
55 | 0x0C031B | 7005 | Sprite Data | |
56 | 0x0C1E78 | 26605 | Sprite Data | |
57 | 0x0C8665 | 26605 | Sprite Data | |
58 | 0x0CEE52 | 34029 | Sprite Data | |
59 | 0x0D733F | 1958 | Sprite Data | |
60 | 0x0D7AE5 | 3584 | Sprite Data | |
61 | 0x0D88E5 | 2789 | Sprite Data | |
62 | 0x0D93CA | 7121 | Sprite Data | |
63 | 0x0DAF9B | 13715 | Sprite Data | |
64 | 0x0DE52E | 21591 | Sprite Data | |
65 | 0x0E3985 | 9948 | Sprite Data | |
66 | 0x0E6061 | 7054 | Sprite Data | |
67 | 0x0E7BEF | 4680 | Sprite Data | |
68 | 0x0E8E37 | 3378 | Sprite Data | |
69 | 0x0E9B69 | 5103 | Sprite Data | |
70 | 0x0EAF58 | 6835 | Sprite Data | |
71 | 0x0ECA0B | 9360 | Sprite Data | |
72 | 0x0EEE9B | 172253 | Sprite Data | |
73 | 0x118F78 | 147305 | Sprite Data | |
74 | 0x13CEE1 | 19053 | Sprite Data | |
75 | 0x14194E | 1787 | Sprite Data | |
76 | 0x142049 | 1513 | Sprite Data | |
77 | 0x142632 | 4962 | Sprite Data | |
78 | 0x143994 | 10437 | Sprite Data | |
79 | 0x146259 | 6622 | Sprite Data | |
80 | 0x147C37 | 3464 | Sprite Data | |
81 | 0x1489BF | 4085 | Sprite Data | |
82 | 0x1499B4 | 27629 | Sprite Data | |
83 | 0x1505A1 | 19785 | Sprite Data | |
84 | 0x1552EA | 4164 | Sprite Data | |
85 | 0x15632E | 17084 | Sprite Data | |
86 | 0x15A5EA | 13467 | Sprite Data | |
87 | 0x15DA85 | 7184 | Sprite Data | |
88 | 0x15F695 | 44831 | Sprite Data | |
89 | 0x16A5B4 | 8968 | Sprite Data | |
90 | 0x16C8BC | 63467 | Sprite Data | |
91 | 0x17C0A7 | 8856 | Sprite Data | |
92 | 0x17E33F | 6715 | Sprite Data | |
93 | 0x17FD7A | 4050 | Sprite Data | |
94 | 0x180D4C | 1355 | Sprite Data | |
95 | 0x181297 | 12398 | Sprite Data | |
96 | 0x184305 | 16593 | Sprite Data | |
97 | 0x1883D6 | 108061 | Sprite Data | |
98 | 0x1A29F3 | 3604 | Sprite Data | |
99 | 0x1A3807 | 33899 | Sprite Data | |
100 | 0x1ABC72 | 16701 | Sprite Data | |
101 | 0x1AFDAF | 63112 | Sprite Data | |
102 | 0x1BF437 | 9400 | Sprite Data | |
103 | 0x1C18EF | 4269 | Sprite Data | |
104 | 0x1C299C | 6613 | Sprite Data | |
105 | 0x1C4371 | 44437 | Sprite Data | |
106 | 0x1CF106 | 3259 | Sprite Data | |
107 | 0x1CFDC1 | 7243 | Sprite Data | |
108 | 0x1D1A0C | 11166 | Sprite Data | |
109 | 0x1D45AA | 48331 | Sprite Data | |
110 | 0x1E0275 | 3010 | Sprite Data | |
111 | 0x1E0E37 | 83755 | Sprite Data | |
112 | 0x1F5562 | 10248 | Sprite Data | |
113 | 0x1F7D6A | 3729 | Sprite Data | |
114 | 0x1F8BFB | 7018 | Sprite Data | |
115 | 0x1FA765 | 14275 | Sprite Data | |
116 | 0x1FDF28 | 3192 | Sprite Data | |
117 | 0x1FEBA0 | 8064 | Sprite Data | |
118 | 0x200B20 | 7931 | Sprite Data | |
119 | 0x202A1B | 6108 | Sprite Data | |
120 | 0x2041F7 | 18091 | Sprite Data | |
121 | 0x2088A2 | 118034 | Sprite Data | |
122 | 0x2255B4 | 31292 | Sprite Data | |
123 | 0x22CFF0 | 1484 | Sprite Data | |
124 | 0x22D5BC | 4637 | Sprite Data | |
125 | 0x22E7D9 | 7771 | Sprite Data | |
126 | 0x230634 | 3980 | Sprite Data | |
127 | 0x2315C0 | 27329 | Sprite Data | |
128 | 0x238081 | 11086 | Sprite Data | |
129 | 0x23ABCF | 4631 | Sprite Data | |
130 | 0x23BDE6 | 1417 | Sprite Data | |
131 | 0x23C36F | 16593 | Sprite Data | |
132 | 0x240440 | 33899 | Sprite Data | |
133 | 0x2488AB | 39938 | Sprite Data | |
134 | 0x2524AD | 8222 | Sprite Data |
The following table lists the contents of S&R5.RES.
File # | Offset | Size | Format | Notes |
---|---|---|---|---|
0 | 0x000020 | 4609 | PCM Sound Effect | |
1 | 0x001221 | 4609 | PCM Sound Effect | |
2 | 0x002422 | 7759 | PCM Sound Effect | |
3 | 0x004271 | 7759 | PCM Sound Effect | |
4 | 0x0060C0 | 3735 | PCM Sound Effect | |
5 | 0x006F57 | 11387 | PCM Sound Effect | |
6 | 0x009BD2 | 6244 | PCM Sound Effect | |
7 | 0x00B436 | 12243 | PCM Sound Effect | |
8 | 0x00E409 | 7532 | PCM Sound Effect | |
9 | 0x010175 | 14259 | PCM Sound Effect | |
10 | 0x013928 | 6203 | PCM Sound Effect | |
11 | 0x015163 | 19699 | PCM Sound Effect | |
12 | 0x019E56 | 42261 | PCM Sound Effect | |
13 | 0x02436B | 6169 | PCM Sound Effect | |
14 | 0x025B84 | 4318 | PCM Sound Effect | |
15 | 0x026C62 | 3702 | PCM Sound Effect | |
16 | 0x027AD8 | 7944 | PCM Sound Effect | |
17 | 0x0299E0 | 2167 | PCM Sound Effect | |
18 | 0x02A257 | 3006 | PCM Sound Effect | |
19 | 0x02AE15 | 4667 | PCM Sound Effect | |
20 | 0x02C050 | 7901 | PCM Sound Effect | |
21 | 0x02DF2D | 5982 | PCM Sound Effect | |
22 | 0x02F68B | 9396 | PCM Sound Effect | |
23 | 0x031B3F | 156577 | PCM Sound Effect | |
24 | 0x057EE0 | 2715 | PCM Sound Effect | |
25 | 0x05897B | 2608 | PCM Sound Effect | |
26 | 0x0593AB | 3480 | PCM Sound Effect | |
27 | 0x05A143 | 6480 | PCM Sound Effect | |
28 | 0x05BA93 | 9771 | PCM Sound Effect | |
29 | 0x05E0BE | 2284 | PCM Sound Effect | |
30 | 0x05E9AA | 1435 | PCM Sound Effect | |
31 | 0x05EF45 | 39331 | PCM Sound Effect | |
32 | 0x0688E8 | 2177 | PCM Sound Effect | |
33 | 0x069169 | 12701 | PCM Sound Effect | |
34 | 0x06C306 | 1372 | AdLib Instrument Bank Format | |
35 | 0x06C862 | 1372 | AdLib Instrument Bank Format | |
36 | 0x06CDBE | 1372 | AdLib Instrument Bank Format | |
37 | 0x06D31A | 1372 | AdLib Instrument Bank Format | |
38 | 0x06D876 | 1372 | AdLib Instrument Bank Format | |
39 | 0x06DDD2 | 1372 | AdLib Instrument Bank Format | |
40 | 0x06E32E | 1372 | AdLib Instrument Bank Format | |
41 | 0x06E88A | 1372 | AdLib Instrument Bank Format | |
42 | 0x06EDE6 | 1372 | AdLib Instrument Bank Format | |
43 | 0x06F342 | 1372 | AdLib Instrument Bank Format | |
44 | 0x06F89E | 1372 | AdLib Instrument Bank Format | |
45 | 0x06FDFA | 1372 | AdLib Instrument Bank Format | |
46 | 0x070356 | 1372 | AdLib Instrument Bank Format | |
47 | 0x0708B2 | 1372 | AdLib Instrument Bank Format | |
48 | 0x070E0E | 1372 | AdLib Instrument Bank Format | |
49 | 0x07136A | 1372 | AdLib Instrument Bank Format | |
50 | 0x0718C6 | 1372 | AdLib Instrument Bank Format | |
51 | 0x071E22 | 14491 | IMS Format | |
52 | 0x0756BD | 2179 | IMS Format | |
53 | 0x075F40 | 2416 | IMS Format | |
54 | 0x0768B0 | 438 | IMS Format | |
55 | 0x076A66 | 2836 | IMS Format | |
56 | 0x07757A | 9280 | IMS Format | |
57 | 0x0799BA | 4833 | IMS Format | |
58 | 0x07AC9B | 4013 | IMS Format | |
59 | 0x07BC48 | 651 | IMS Format | |
60 | 0x07BED3 | 9877 | IMS Format | |
61 | 0x07E568 | 5364 | IMS Format | |
62 | 0x07FA5C | 6790 | IMS Format | |
63 | 0x0814E2 | 8586 | IMS Format | |
64 | 0x08366C | 7699 | IMS Format | |
65 | 0x08547F | 15395 | IMS Format | |
66 | 0x0890A2 | 9218 | IMS Format | |
67 | 0x08B4A4 | 2843 | IMS Format | |
68 | 0x08BFBF | 6790 | IMS Format | |
69 | 0x08DA45 | 15386 | IMS Format | |
70 | 0x09165F | 3413 | IMS Format | |
71 | 0x0923B4 | 9087 | IMS Format | |
72 | 0x094733 | 7158 | IMS Format | |
73 | 0x096329 | 1372 | AdLib Instrument Bank Format | |
74 | 0x096885 | 1372 | AdLib Instrument Bank Format | |
75 | 0x096DE1 | 1372 | AdLib Instrument Bank Format | |
76 | 0x09733D | 4837 | IMS Format | |
77 | 0x098622 | 1372 | AdLib Instrument Bank Format | |
78 | 0x098B7E | 210650 | unknown |
PCM Sound Effects are raw 8-bit unsigned, but end with a 00 byte like VOC Files. There is one Instrument Bank (BNK) file for each IMS song. The first BNK belongs to the first IMS, the second BNK to the second IMS, etc.
Credits
This file format was reverse engineered by Valley Bell. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)