gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-support/bankpack/common.h
1
2 #ifndef _COMMON_H
3 #define _COMMON_H
4
5 #define QSORT_A_FIRST -1
6 #define QSORT_A_SAME 0
7 #define QSORT_A_AFTER 1
8
9 enum {
10 MBC_TYPE_NONE = 0,
11 MBC_TYPE_MBC1 = 1,
12 MBC_TYPE_MBC2 = 2,
13 MBC_TYPE_MBC3 = 3,
14 /* MBC4 doesn't exist */
15 MBC_TYPE_MBC5 = 5,
16 MBC_TYPE_MBC6 = 6,
17 MBC_TYPE_MBC7 = 7,
18
19 MBC_TYPE_MIN = MBC_TYPE_MBC1,
20 MBC_TYPE_MAX = MBC_TYPE_MBC7,
21 MBC_TYPE_DEFAULT = MBC_TYPE_NONE
22 };
23
24 enum {
25 NES_MAPPER_TYPE_NONE = 0,
26 NES_MAPPER_TYPE_UXROM = 2,
27 NES_MAPPER_TYPE_MAPPER30 = 30,
28
29 NES_MAPPER_TYPE_MIN = NES_MAPPER_TYPE_NONE,
30 NES_MAPPER_TYPE_MAX = NES_MAPPER_TYPE_MAPPER30,
31 NES_MAPPER_TYPE_DEFAULT = NES_MAPPER_TYPE_MAPPER30
32 };
33
34 enum {
35 OBJ_FILE_XL3_24BIT_ADDR = 0,
36 OBJ_FILE_XL4_32BIT_ADDR = 1,
37 OBJ_FILE_UNKNOWN
38 };
39 #define OBJ_FILE_XL3_ID "XL3"
40 #define OBJ_FILE_XL4_ID "XL4"
41
42
43 #define MAX_FILE_STR 2048
44
45 #define BANK_NUM_UNASSIGNED 0xFFFFU
46 #define BANK_NUM_AUTO 255
47 #define BANK_NUM_ROM_MIN 0
48 #define BANK_NUM_ROM_MAX 255
49 #define BANK_NUM_ROM_DEFAULT 1
50 #define BANK_ROM_TOTAL 256 // Banks 0-255
51 #define BANK_ROM_CALC_MAX 512 // Banks 0-512 (>256 not supported for auto-banking right now)
52 #define BANK_SIZE_ROM 0x4000U
53 #define BANK_SIZE_ROM_MAX (BANK_SIZE_ROM)
54
55 #define BANK_ITEM_COUNT_MAX 0xFFFF
56
57 #define BANK_NUM_ROM_MAX_MBC1 127
58 #define BANK_NUM_ROM_MAX_MBC2 15
59 #define BANK_NUM_ROM_MAX_MBC3 127
60 #define BANK_NUM_ROM_MAX_MBC5 255 // 511 // TODO: support full MBC5 address range (currently 8 bit only)
61 #define BANK_NUM_ROM_MAX_MBC7 127
62
63 #define BANK_NUM_ROM_MAX_UXROM 127 // Oversize UNROM supports up to 4MB, but iNES 1.0 only supports up to 2MB. Historical UxROM boards only supported 256kB at most
64 #define BANK_NUM_ROM_MAX_MAPPER30 31 // Mapper30 only supports up to 512kB due to other register bits being used for CHR-RAM / 1-screen mirroring control.
65
66 #define STRINGIFY(x) #x
67 #define TOSTR(x) STRINGIFY(x)
68
69 #endif // _COMMON_H
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.