openMSX
RomTypes.hh
Go to the documentation of this file.
1 #ifndef ROMTYPES_HH
2 #define ROMTYPES_HH
3 
4 namespace openmsx {
5 
6 enum RomType {
7  // Order doesn't matter (I sorted them alphabetically)
69 
70  ROM_END_OF_UNORDERED_LIST, // not an actual romtype
71 
72  // For these the numeric value does matter
73  ROM_PAGE0 = 128 + 1, // value of lower 4 bits matters
74  ROM_PAGE1 = 128 + 2,
75  ROM_PAGE01 = 128 + 3,
76  ROM_PAGE2 = 128 + 4,
77  ROM_PAGE12 = 128 + 6,
78  ROM_PAGE012 = 128 + 7,
79  ROM_PAGE3 = 128 + 8,
80  ROM_PAGE23 = 128 + 12,
81  ROM_PAGE123 = 128 + 14,
82  ROM_PAGE0123 = 128 + 15,
83  ROM_MIRRORED0000 = 144 + 0, // value of lower 3 bits matters
84  ROM_MIRRORED4000 = 144 + 2,
85  ROM_MIRRORED8000 = 144 + 4,
86  ROM_MIRROREDC000 = 144 + 6,
87  ROM_NORMAL0000 = 152 + 0, // value of lower 3 bits matters
88  ROM_NORMAL4000 = 152 + 2,
89  ROM_NORMAL8000 = 152 + 4,
90  ROM_NORMALC000 = 152 + 6,
91 
92  ROM_UNKNOWN = 256,
93  ROM_ALIAS = 512, // no other enum value can have this bit set
94 };
95 
96 // Make sure there is no overlap in numeric enum values between the unordered
97 // and ordered part of the enum list.
98 static_assert(int(ROM_END_OF_UNORDERED_LIST) < int(ROM_PAGE0), "renumber romtypes");
99 
100 } // namespace openmsx
101 
102 #endif
openmsx::ROM_PADIAL8
@ ROM_PADIAL8
Definition: RomTypes.hh:55
openmsx::ROM_ASCII8_8
@ ROM_ASCII8_8
Definition: RomTypes.hh:12
openmsx::ROM_PAGE123
@ ROM_PAGE123
Definition: RomTypes.hh:81
openmsx::ROM_SUPERLODERUNNER
@ ROM_SUPERLODERUNNER
Definition: RomTypes.hh:62
openmsx::ROM_MULTIROM
@ ROM_MULTIROM
Definition: RomTypes.hh:51
openmsx::ROM_MEGAFLASHROMSCCPLUS
@ ROM_MEGAFLASHROMSCCPLUS
Definition: RomTypes.hh:45
openmsx::ROM_PADIAL16
@ ROM_PADIAL16
Definition: RomTypes.hh:56
openmsx::ROM_ASCII8_32
@ ROM_ASCII8_32
Definition: RomTypes.hh:11
openmsx::ROM_ARC
@ ROM_ARC
Definition: RomTypes.hh:8
openmsx::ROM_R_TYPE
@ ROM_R_TYPE
Definition: RomTypes.hh:59
openmsx::ROM_NETTOU_YAKYUU
@ ROM_NETTOU_YAKYUU
Definition: RomTypes.hh:53
openmsx::ROM_NORMAL
@ ROM_NORMAL
Definition: RomTypes.hh:54
openmsx::ROM_GAME_MASTER2
@ ROM_GAME_MASTER2
Definition: RomTypes.hh:22
openmsx::ROM_NORMAL4000
@ ROM_NORMAL4000
Definition: RomTypes.hh:88
openmsx::ROM_HOLY_QURAN
@ ROM_HOLY_QURAN
Definition: RomTypes.hh:28
openmsx::ROM_ASCII16_8
@ ROM_ASCII16_8
Definition: RomTypes.hh:15
openmsx::ROM_CROSS_BLAIM
@ ROM_CROSS_BLAIM
Definition: RomTypes.hh:17
openmsx::ROM_MIRRORED0000
@ ROM_MIRRORED0000
Definition: RomTypes.hh:83
openmsx::ROM_ASCII16
@ ROM_ASCII16
Definition: RomTypes.hh:13
openmsx::ROM_MEGAFLASHROMSCC
@ ROM_MEGAFLASHROMSCC
Definition: RomTypes.hh:44
openmsx::ROM_MIRROREDC000
@ ROM_MIRROREDC000
Definition: RomTypes.hh:86
openmsx::ROM_ZEMINA126IN1
@ ROM_ZEMINA126IN1
Definition: RomTypes.hh:68
openmsx::ROM_HOLY_QURAN2
@ ROM_HOLY_QURAN2
Definition: RomTypes.hh:29
openmsx::ROM_DOOLY
@ ROM_DOOLY
Definition: RomTypes.hh:18
openmsx::ROM_SYNTHESIZER
@ ROM_SYNTHESIZER
Definition: RomTypes.hh:64
openmsx::ROM_ASCII16_2
@ ROM_ASCII16_2
Definition: RomTypes.hh:14
openmsx::ROM_MAJUTSUSHI
@ ROM_MAJUTSUSHI
Definition: RomTypes.hh:38
openmsx::ROM_MSXWRITE
@ ROM_MSXWRITE
Definition: RomTypes.hh:50
openmsx::ROM_WIZARDRY
@ ROM_WIZARDRY
Definition: RomTypes.hh:65
openmsx::ROM_MIRRORED
@ ROM_MIRRORED
Definition: RomTypes.hh:46
openmsx::ROM_PAGE2
@ ROM_PAGE2
Definition: RomTypes.hh:76
openmsx::ROM_KOEI_32
@ ROM_KOEI_32
Definition: RomTypes.hh:32
openmsx::ROM_FSA1FM2
@ ROM_FSA1FM2
Definition: RomTypes.hh:21
openmsx::ROM_MIRRORED4000
@ ROM_MIRRORED4000
Definition: RomTypes.hh:84
openmsx::ROM_ZEMINA90IN1
@ ROM_ZEMINA90IN1
Definition: RomTypes.hh:67
openmsx::ROM_NORMAL8000
@ ROM_NORMAL8000
Definition: RomTypes.hh:89
openmsx::ROM_MSXDOS2
@ ROM_MSXDOS2
Definition: RomTypes.hh:48
openmsx::ROM_MITSUBISHIMLTS2
@ ROM_MITSUBISHIMLTS2
Definition: RomTypes.hh:47
openmsx::ROM_REPRO_CARTRIDGE2
@ ROM_REPRO_CARTRIDGE2
Definition: RomTypes.hh:36
openmsx::ROM_MANBOW2_2
@ ROM_MANBOW2_2
Definition: RomTypes.hh:40
openmsx::ROM_ASCII8_2
@ ROM_ASCII8_2
Definition: RomTypes.hh:10
openmsx::ROM_MATRAINK
@ ROM_MATRAINK
Definition: RomTypes.hh:42
openmsx::ROM_COLECOMEGACART
@ ROM_COLECOMEGACART
Definition: RomTypes.hh:16
openmsx::ROM_PAGE1
@ ROM_PAGE1
Definition: RomTypes.hh:74
openmsx::ROM_NATIONAL
@ ROM_NATIONAL
Definition: RomTypes.hh:52
openmsx::ROM_MSXTRA
@ ROM_MSXTRA
Definition: RomTypes.hh:49
openmsx::ROM_ROMHUNTERMK2
@ ROM_ROMHUNTERMK2
Definition: RomTypes.hh:61
openmsx::ROM_KONAMI_SCC
@ ROM_KONAMI_SCC
Definition: RomTypes.hh:34
openmsx::ROM_PANASONIC
@ ROM_PANASONIC
Definition: RomTypes.hh:57
openmsx::ROM_ALIAS
@ ROM_ALIAS
Definition: RomTypes.hh:93
openmsx::ROM_REPRO_CARTRIDGE1
@ ROM_REPRO_CARTRIDGE1
Definition: RomTypes.hh:35
openmsx::ROM_PAGE23
@ ROM_PAGE23
Definition: RomTypes.hh:80
openmsx::ROM_NORMAL0000
@ ROM_NORMAL0000
Definition: RomTypes.hh:87
openmsx::ROM_HARRY_FOX
@ ROM_HARRY_FOX
Definition: RomTypes.hh:27
openmsx::ROM_RBSC_FLASH_KONAMI_SCC
@ ROM_RBSC_FLASH_KONAMI_SCC
Definition: RomTypes.hh:41
openmsx::ROM_MANBOW2
@ ROM_MANBOW2
Definition: RomTypes.hh:39
openmsx::ROM_KONAMI_ULTIMATE_COLLECTION
@ ROM_KONAMI_ULTIMATE_COLLECTION
Definition: RomTypes.hh:37
openmsx::ROM_PLAYBALL
@ ROM_PLAYBALL
Definition: RomTypes.hh:58
openmsx::ROM_ASCII8
@ ROM_ASCII8
Definition: RomTypes.hh:9
openmsx::ROM_SUPERSWANGI
@ ROM_SUPERSWANGI
Definition: RomTypes.hh:63
openmsx::ROM_RAMFILE
@ ROM_RAMFILE
Definition: RomTypes.hh:60
openmsx::ROM_PAGE012
@ ROM_PAGE012
Definition: RomTypes.hh:78
openmsx::ROM_PAGE0
@ ROM_PAGE0
Definition: RomTypes.hh:73
openmsx::ROM_MIRRORED8000
@ ROM_MIRRORED8000
Definition: RomTypes.hh:85
openmsx::ROM_FSA1FM1
@ ROM_FSA1FM1
Definition: RomTypes.hh:20
openmsx::ROM_PAGE0123
@ ROM_PAGE0123
Definition: RomTypes.hh:82
openmsx::ROM_PAGE01
@ ROM_PAGE01
Definition: RomTypes.hh:75
openmsx::ROM_UNKNOWN
@ ROM_UNKNOWN
Definition: RomTypes.hh:92
openmsx::ROM_ZEMINA80IN1
@ ROM_ZEMINA80IN1
Definition: RomTypes.hh:66
openmsx::ROM_KONAMI
@ ROM_KONAMI
Definition: RomTypes.hh:33
openmsx::ROM_KBDMASTER
@ ROM_KBDMASTER
Definition: RomTypes.hh:30
openmsx::ROM_NORMALC000
@ ROM_NORMALC000
Definition: RomTypes.hh:90
openmsx::RomType
RomType
Definition: RomTypes.hh:6
openmsx
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
openmsx::ROM_GENERIC_8KB
@ ROM_GENERIC_8KB
Definition: RomTypes.hh:23
openmsx::ROM_PAGE12
@ ROM_PAGE12
Definition: RomTypes.hh:77
openmsx::ROM_PAGE3
@ ROM_PAGE3
Definition: RomTypes.hh:79
openmsx::ROM_HAMARAJANIGHT
@ ROM_HAMARAJANIGHT
Definition: RomTypes.hh:26
openmsx::ROM_END_OF_UNORDERED_LIST
@ ROM_END_OF_UNORDERED_LIST
Definition: RomTypes.hh:70
openmsx::ROM_GENERIC_16KB
@ ROM_GENERIC_16KB
Definition: RomTypes.hh:24
openmsx::ROM_MATRACOMPILATION
@ ROM_MATRACOMPILATION
Definition: RomTypes.hh:43
openmsx::ROM_KOEI_8
@ ROM_KOEI_8
Definition: RomTypes.hh:31
openmsx::ROM_HALNOTE
@ ROM_HALNOTE
Definition: RomTypes.hh:25
openmsx::ROM_DRAM
@ ROM_DRAM
Definition: RomTypes.hh:19