|
|
1.1 root 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);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.