1 #define ROMTYPE_KICK 1
2 #define ROMTYPE_KICKCD32 2
3 #define ROMTYPE_EXTCD32 4
4 #define ROMTYPE_EXTCDTV 8
5 #define ROMTYPE_A2091BOOT 16
6 #define ROMTYPE_A4091BOOT 32
7 #define ROMTYPE_AR 64
8 #define ROMTYPE_SUPERIV 128
9 #define ROMTYPE_KEY 256
10 #define ROMTYPE_ARCADIABIOS 512
11 #define ROMTYPE_ARCADIAGAME 1024
12 #define ROMTYPE_HRTMON 2048
13 
14 struct romheader {
15     char *name;
16     int id;
17 };
18 
19 /* Mask to determine CPU type required by the ROM.  */
20 #define ROMREQ_CPUMASK 3
21 
22 #define ROMREQ_68EC020 1
23 #define ROMREQ_68020 2
24 #define ROMREQ_68030 3
25 #define ROMREQ_A4000MB 4
26 #define ROMREQ_A4000 (ROMREQ_A4000MB | ROMREQ_68020)
27 #define ROMREQ_A1000 8
28 
29 struct romdata {
30     char *name;
31     int ver, rev;
32     int subver, subrev;
33     char *model;
34     uae_u32 size;
35     int id;
36     int cpu;
37     int cloanto;
38     int type;
39     int title;
40     uae_u32 crc32;
41     uae_u32 sha1[5];
42     char *configname;
43 };
44 
45 /* Used to tag a romlist elt with the location where it was found.
46    That way, we can quickly remove everything from a user path when
47    that changes, leaving the system ROMs intact.  */
48 #define ROMLOC_SYSTEM 1
49 #define ROMLOC_USER 2
50 
51 struct romlist {
52     char *path;
53     struct romdata *rd;
54     int loc;
55 };
56 
57 extern struct romdata *getromdatabycrc (uae_u32 crc32);
58 extern struct romdata *getromdatabydata (uae_u8 *rom, int size);
59 extern struct romdata *getromdatabyid (int id);
60 extern struct romdata *getarcadiarombyname (char *name);
61 extern void getromname (struct romdata*, char*);
62 extern struct romdata *getromdatabyname (char*);
63 extern void romlist_add (char *path, struct romdata *rd, int loc);
64 extern char *romlist_get (struct romdata *rd);
65 extern void romlist_clear (int mask);
66 extern int decode_cloanto_rom (uae_u8 *, int, int, int);
67 extern struct romlist *romlist_from_idx (int idx, int type, int need_crc32);
68 
69 extern void scan_roms (const char *path, int loc);
70