vendor/file: upgrade from 5.40 to 5.41
[dragonfly.git] / contrib / file / magic / Magdir / msx
1
2 #------------------------------------------------------------------------------
3 # msx:  file(1) magic for the MSX Home Computer
4 # v1.3
5 # Fabio R. Schmidlin <sd-snatcher@users.sourceforge.net>
6
7 ############## MSX Music file formats ##############
8
9 # Gigamix MGSDRV music file
10 0       string/b                MGS     MSX Gigamix MGSDRV3 music file,
11 >6      ubeshort        0x0D0A
12 >>3     byte            x       \bv%c
13 >>4     byte            x       \b.%c
14 >>5     byte            x       \b%c
15 >>8     string          >\0     \b, title: %s
16
17 1       string/b                mgs2\   MSX Gigamix MGSDRV2 music file
18 >6      uleshort        0x80
19 >>0x2E  uleshort        0
20 >>>0x30 string          >\0     \b, title: %s
21
22 # KSS music file
23 0       string/b                KSCC    KSS music file v1.03
24 >0xE    byte            0
25 >>0xF   byte&0x02       0       \b, soundchips: AY-3-8910, SCC(+)
26 >>0xF   byte&0x02       2       \b, soundchip(s): SN76489
27 >>>0xF  byte&0x04       4       stereo
28 >>0xF   byte&0x01       1       \b, YM2413
29 >>0xF   byte&0x08       8       \b, Y8950
30
31 0       string/b                KSSX    KSS music file v1.20
32 >0xE    byte&0xEF       0
33 >>0xF   byte&0x40       0x00    \b, 60Hz
34 >>0xF   byte&0x40       0x40    \b, 50Hz
35 >>0xF   byte&0x02       0       \b, soundchips: AY-3-8910, SCC(+)
36 >>0xF   byte&0x02       0x02    \b, soundchips: SN76489
37 >>>0xF  byte&0x04       0x04    stereo
38 >>0xF   byte&0x01       0x01    \b,
39 >>>0xF  byte&0x18       0x00    \bYM2413
40 >>>0xF  byte&0x18       0x08    \bYM2413, Y8950
41 >>>0xF  byte&0x18       0x18    \bYM2413+Y8950 pseudostereo
42 >>0xF   byte&0x18       0x10    \b, Majyutsushi DAC
43
44 # Moonblaster for Moonsound
45 0       string/b                MBMS
46 >4      byte            0x10    MSX Moonblaster for MoonSound music
47
48 # Music Player K-kaz
49 0       string/b                MPK     MSX Music Player K-kaz song
50 >6      ubeshort        0x0D0A
51 >>3     byte            x       v%c
52 >>4     byte            x       \b.%c
53 >>5     byte            x       \b%c
54
55 # I don't know why these don't work
56 #0      search/0xFFFF   \r\n.FM9
57 #>0     search/0xFFFF   \r\n#FORMAT     MSX Music Player K-kaz source MML file
58 #0      search/0xFFFF   \r\nFM1\ \=
59 #>0     search/0xFFFF   \r\nPSG1\=
60 #>>0    search/0xFFFF   \r\nSCC1\=              MSX MuSiCa MML source file
61
62 # OPX Music file
63 0x35    beshort         0x0d0a
64 >0x7B   beshort         0x0d0a
65 >>0x7D  byte            0x1a
66 >>>0x87 uleshort        0               MSX OPX Music file
67 >>>>0x86        byte            0               v1.5
68 >>>>>0  string          >\32            \b, title: %s
69 >>>>0x86        byte            1               v2.4
70 >>>>>0  string          >\32            \b, title: %s
71
72 # SCMD music file
73 0x8B    string/b                SCMD
74 >0xCE   uleshort        0       MSX SCMD Music file
75 #>>-2   uleshort        0x6a71  ; The file must end with this value. How to code this here?
76 >>0x8F  string          >\0             \b, title: %s
77
78 0       search/0xFFFF   \r\n@title
79 >&0     search/0xFFFF   \r\n@m=[        MSX SCMD source MML file
80
81
82 ############## MSX image file formats ##############
83
84 # MSX raw VRAM dump
85 0       ubyte           0xFE
86 >1      uleshort        0
87 >>5     uleshort        0
88 >>>3    uleshort        0x37FF          MSX SC2/GRP raw image
89 >>>3    uleshort        0x6A00          MSX Graph Saurus SR5 raw image
90 >>>3    uleshort        >0x769E
91 >>>>3   uleshort        <0x8000         MSX GE5/GE6 raw image
92 >>>>>3  uleshort        0x7FFF          \b, with sprite patterns
93 >>>3    uleshort        0xD3FF          MSX screen 7-12 raw image
94 >>>3    uleshort        0xD400          MSX Graph Saurus SR7/SR8/SRS raw image
95
96 # Graph Saurus compressed images
97 0       ubyte           0xFD
98 >1      uleshort        0
99 >>5     uleshort        0
100 >>>3    uleshort        >0x013D         MSX Graph Saurus compressed image
101
102 # MSX G9B image file
103 0       string/b                G9B
104 >1      uleshort        11
105 >>3     uleshort        >10
106 >>>5    ubyte           >0              MSX G9B image, depth=%d
107 >>>>8   uleshort        x               \b, %dx
108 >>>>10  uleshort        x               \b%d
109 >>>>5   ubyte           <9
110 >>>>>6  ubyte           0
111 >>>>>>7 ubyte           x               \b, codec=%d RGB color palettes
112 >>>>>6  ubyte           64              \b, codec=RGB fixed color
113 >>>>>6  ubyte           128             \b, codec=YJK
114 >>>>>6  ubyte           192             \b, codec=YUV
115 >>>>5   ubyte           >8              codec=RGB fixed color
116 >>>>12  ubyte           0               \b, raw
117 >>>>12  ubyte           1               \b, bitbuster compression
118
119 ############## Other MSX file formats ##############
120
121 # MSX internal ROMs
122 0               ubeshort        0xF3C3
123 >2              uleshort        <0x4000
124 >>8             ubyte           0xC3
125 >>>9            uleshort        <0x4000
126 >>>>0x0B        ubeshort        0x00C3
127 >>>>>0x0D       uleshort        <0x4000
128 >>>>>>0x0F      ubeshort        0x00C3
129 >>>>>>>0x11     uleshort        <0x4000
130 >>>>>>>>0x13    ubeshort        0x00C3
131 >>>>>>>>>0x15   uleshort        <0x4000
132 >>>>>>>>>>0x50  ubyte           0xC3
133 >>>>>>>>>>>0x51 uleshort        <0x4000
134 >>>>>>>>>>>>(9.s)       ubyte   0xC3
135 >>>>>>>>>>>>>&0 uleshort        >0x4000
136 >>>>>>>>>>>>>>&0        ubyte   0xC3            MSX BIOS+BASIC
137 >>>>>>>>>>>>>>>0x002D   ubyte+1 <3              \b. version=MSX%d
138 >>>>>>>>>>>>>>>0x002D   ubyte   2               \b, version=MSX2+
139 >>>>>>>>>>>>>>>0x002D   ubyte   3               \b, version=MSX Turbo-R
140 >>>>>>>>>>>>>>>0x002D   ubyte   >3              \b, version=Unknown MSX %d version
141 >>>>>>>>>>>>>>>0x0006   ubyte   x               \b, VDP.DR=%#2x
142 >>>>>>>>>>>>>>>0x0007   ubyte   x               \b, VDP.DW=%#2x
143 >>>>>>>>>>>>>>>0x002B   ubyte&0xF       0               \b, charset=Japanese
144 >>>>>>>>>>>>>>>0x002B   ubyte&0xF       1               \b, charset=International
145 >>>>>>>>>>>>>>>0x002B   ubyte&0xF       2               \b, charset=Korean
146 >>>>>>>>>>>>>>>0x002B   ubyte&0xF       >2              \b, charset=Unknown id:%d
147 >>>>>>>>>>>>>>>0x002B   ubyte&0x70      0x00            \b, date format=Y-M-D
148 >>>>>>>>>>>>>>>0x002B   ubyte&0x70      0x10            \b, date format=M-D-Y
149 >>>>>>>>>>>>>>>0x002B   ubyte&0x70      0x20            \b, date format=D-M-Y
150 >>>>>>>>>>>>>>>0x002B   ubyte&0x80      0x00            \b, vfreq=60Hz
151 >>>>>>>>>>>>>>>0x002B   ubyte&0x80      0x80            \b, vfreq=50Hz
152 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      0               \b, keyboard=Japanese
153 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      1               \b, keyboard=International
154 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      2               \b, keyboard=French
155 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      3               \b, keyboard=UK
156 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      4               \b, keyboard=German
157 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      5               \b, keyboard=Unknown id:%d
158 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      6               \b, keyboard=Spanish
159 >>>>>>>>>>>>>>>0x002C   ubyte&0x0F      >6              \b, keyboard=Unknown id:%d
160 >>>>>>>>>>>>>>>0x002C   ubyte&0xF0      0x00            \b, basic=Japanese
161 >>>>>>>>>>>>>>>0x002C   ubyte&0xF0      0x10            \b, basic=International
162 >>>>>>>>>>>>>>>0x002C   ubyte&0xF0      >0x10           \b, basic=Unknown id:%d
163 >>>>>>>>>>>>>>>0x002E   ubyte&1         1               \b, built-in MIDI
164
165
166 0               string/b                CD
167 >2              uleshort        >0x10
168 >>2             uleshort        <0x4000
169 >>>4            uleshort        <0x4000
170 >>>>6           uleshort        <0x4000
171 >>>>>8          ubyte           0xC3
172 >>>>>>9         uleshort        <0x4000
173 >>>>>>>0x10     ubyte           0xC3
174 >>>>>>>>0x11    uleshort        <0x4000
175 >>>>>>>>>0x14   ubyte           0xC3
176 >>>>>>>>>>0x15  uleshort        <0x4000         MSX2/2+/TR SubROM
177
178 0               string          \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
179 >0x5F0          ubequad         0x8282828244380000
180 >>0x150         ubyte           0x38
181 >>>0x170        string          \20\20\20
182 >>>>0x1E32      string          ())
183 >>>>>0x2130     ubequad         0xA5A5594924231807
184 >>>>>0x2138     ubequad         0x4A4A3424488830C0      MSX Kanji Font
185
186
187
188 # MSX extension ROMs
189 0       string/b                AB
190 >2      uleshort        0x0010                  MSX ROM
191 >>2     uleshort        x                       \b, init=%#4x
192 >>4     uleshort        >0                      \b, stahdl=%#4x
193 >>6     uleshort        >0                      \b, devhdl=%#4x
194 >>8     uleshort        >0                      \b, bas=%#4x
195 >2      uleshort        0x4010                  MSX ROM
196 >>2     uleshort        x                       \b, init=%#04x
197 >>4     uleshort        >0                      \b, stahdl=%#04x
198 >>6     uleshort        >0                      \b, devhdl=%#04x
199 >>8     uleshort        >0                      \b, bas=%#04x
200 >2      uleshort        0x8010                  MSX ROM
201 >>2     uleshort        x                       \b, init=%#04x
202 >>4     uleshort        >0                      \b, stahdl=%#04x
203 >>6     uleshort        >0                      \b, devhdl=%#04x
204 >>8     uleshort        >0                      \b, bas=%#04x
205 0       string/b                AB\0\0
206 >6      uleshort        0
207 >>4     uleshort        >0x400F                 MSX-BASIC extension ROM
208 >>>4    uleshort        >0                      \b, stahdl=%#04x
209 >>>6    uleshort        >0                      \b, devhdl=%#04x
210 >>>0x1C         string          OPLL                    \b, MSX-Music
211 >>>>0x18        string          PAC2                    \b (external)
212 >>>>0x18        string          APRL                    \b (internal)
213
214 0       string/b                AB\0\0\0\0
215 >6      uleshort        >0x400F                 MSX device BIOS
216 >>6     uleshort        >0                      \b, devhdl=%#04x
217
218
219 0       string/b                AB
220 #>2     string          5JSuperLAYDOCK          MSX Super Laydock ROM
221 #>3     string          @HYDLIDE3MSX            MSX Hydlide-3 ROM
222 #>3     string          @3\x80IA862             Golvellius MSX1 ROM
223 >2      uleshort        >15
224 >>2     uleshort        <0xC000
225 >>>8    string          \0\0\0\0\0\0\0\0
226 >>>>(2.s&0x3FFF)        uleshort        >0              MSX ROM
227 >>>>>0x10       string          YZ\0\0\0\0              Konami Game Master 2 MSX ROM
228 >>>>>0x10       string          CD                      \b, Konami RC-
229 >>>>>>0x12      ubyte           x                       \b%d
230 >>>>>>0x13      ubyte/16        x                       \b%d
231 >>>>>>0x13      ubyte&0xF       x                       \b%d
232 >>>>>0x10       string          EF                      \b, Konami RC-
233 >>>>>>0x12      ubyte           x                       \b%d
234 >>>>>>0x13      ubyte/16        x                       \b%d
235 >>>>>>0x13      ubyte&0xF       x                       \b%d
236 >>>>>2  uleshort        x                       \b, init=%#04x
237 >>>>>4  uleshort        >0                      \b, stahdl=%#04x
238 >>>>>6  uleshort        >0                      \b, devhdl=%#04x
239 >>>>>8  uleshort        >0                      \b, bas=%#04x
240 >>>2    uleshort        0
241 >>>>4   uleshort        0
242 >>>>>6  uleshort        0
243 >>>>>>8 uleshort        >0                      MSX BASIC program in ROM, bas=%#04x
244
245 0x4000  string/b                AB
246 >0x4002 uleshort        >0x400F
247 >>0x400A        string          \0\0\0\0\0\0    MSX ROM with nonstandard page order
248 >>>0x4002       uleshort        x                       \b, init=%#04x
249 >>>0x4004       uleshort        >0                      \b, stahdl=%#04x
250 >>>0x4006       uleshort        >0                      \b, devhdl=%#04x
251 >>>0x4008       uleshort        >0                      \b, bas=%#04x
252
253 0x8000  string/b                AB
254 >0x8002 uleshort        >0x400F
255 >>0x800A        string          \0\0\0\0\0\0    MSX ROM with nonstandard page order
256 >>>0x8002       uleshort        x                       \b, init=%#04x
257 >>>0x8004       uleshort        >0                      \b, stahdl=%#04x
258 >>>0x8006       uleshort        >0                      \b, devhdl=%#04x
259 >>>0x8008       uleshort        >0                      \b, bas=%#04x
260
261
262 0x3C000 string/b                AB
263 >0x3C008        string          \0\0\0\0\0\0\0\0        MSX MegaROM with nonstandard page order
264 >>0x3C002       uleshort        x                       \b, init=%#04x
265 >>0x3C004       uleshort        >0                      \b, stahdl=%#04x
266 >>0x3C006       uleshort        >0                      \b, devhdl=%#04x
267 >>0x3C008       uleshort        >0                      \b, bas=%#04x
268
269 # MSX BIN file
270 #0      byte            0xFE
271 #>1     uleshort        >0x8000
272 #>>3    uleshort        >0x8004
273 #>>>5   uleshort        >0x8000                 MSX BIN file
274
275 # MSX-BASIC file
276 0       byte            0xFF
277 >3      uleshort        0x000A
278 >>1     uleshort        >0x8000                 MSX-BASIC program
279
280 # MSX .CAS file
281 0       string/b        \x1F\xA6\xDE\xBA\xCC\x13\x7D\x74        MSX cassette archive
282
283 # Mega-Assembler file
284 0       byte            0xFE
285 >1      uleshort        0x0001
286 >>5     uleshort        0xffff
287 >>>6    byte            0x0A            MSX Mega-Assembler source
288
289 # Execrom Patchfile
290 0       string          ExecROM\ patchfile\x1A  MSX ExecROM patchfile
291 >0x12   ubyte/16        x               v%d
292 >0x12   ubyte&0xF       x               \b.%d
293 >0x13   ubyte           x               \b, contains %d patches
294
295 # Konami's King's Valley-2 custom stage (ELG file)
296 4       uleshort        0x0900
297 >0xF    byte            1
298 >>0x14  byte            0
299 >>>0x1E string          \040\040\040
300 >>>>0x23        byte    1
301 >>>>>0x25       byte    0
302 >>>>>>0x15      string  >\x30
303 >>>>>>>0x15     string  <\x5A           Konami King's Valley-2 custom stage, title: "%-8.8s"
304 >>>>>>>>0x1D    byte    <32     \b, theme: %d
305
306 # Metal Gear 1 savegame
307 #0x4F   string  \x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF
308 #>>0x60 string  \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF
309 #>>>0x7B        string  \0x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00       Metal Gear 1 savegame