-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmmc3.cfg
199 lines (156 loc) · 10.7 KB
/
mmc3.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
SYMBOLS {
PAGESIZE: type = weak, value = $0100;
FTSIZE: type = weak, value = PAGESIZE;
FTSTART: type = weak, value = $0300;
STACKSIZE: type = weak, value = $0040;
RAMSTART: type = weak, value = FTSTART + FTSIZE;
RAMSIZE: type = weak, value = $0800 - RAMSTART;
STACKSTART: type = weak, value = $0100 - STACKSIZE;
}
MEMORY {
#RAM Addresses:
#----------------------------------------------------------------------------
# Zero page
ZP: start = $00, size = PAGESIZE, type = rw, define = yes;
#note, the c compiler + neslib + famitone2 use about 60 zp addresses, I think
# RAM:
RAM: start = RAMSTART, size = RAMSIZE, define = yes;
# FAMITONE:
FTRAM: start = FTSTART, size = FTSIZE, define = yes;
# Cartridge RAM (8K)
WRAM: start = $6000, size = $2000;
# INES Header:
HEADER: start = $0, size = $10, file = %O, fill = yes;
# ROM Addresses:
DAT: start = $8000, size = $2000, file = %O, fill = yes, define = no; #0
M01: start = $8000, size = $2000, file = %O, fill = yes, define = no; #1
M02: start = $8000, size = $2000, file = %O, fill = yes, define = no; #2
M03: start = $8000, size = $2000, file = %O, fill = yes, define = no; #3
M04: start = $8000, size = $2000, file = %O, fill = yes, define = no; #4
M05: start = $8000, size = $2000, file = %O, fill = yes, define = no; #5
M06: start = $8000, size = $2000, file = %O, fill = yes, define = no; #6
M07: start = $8000, size = $2000, file = %O, fill = yes, define = no; #7
M08: start = $8000, size = $2000, file = %O, fill = yes, define = no; #8
M09: start = $8000, size = $2000, file = %O, fill = yes, define = no; #9
M10: start = $8000, size = $2000, file = %O, fill = yes, define = no; #10
M11: start = $8000, size = $2000, file = %O, fill = yes, define = no; #11
M12: start = $8000, size = $2000, file = %O, fill = yes, define = no; #12
M13: start = $8000, size = $2000, file = %O, fill = yes, define = no; #13
M14: start = $8000, size = $2000, file = %O, fill = yes, define = no; #14
M15: start = $8000, size = $2000, file = %O, fill = yes, define = no; #15
M16: start = $8000, size = $2000, file = %O, fill = yes, define = no; #16
M17: start = $8000, size = $2000, file = %O, fill = yes, define = no; #17
M18: start = $8000, size = $2000, file = %O, fill = yes, define = no; #18
M19: start = $8000, size = $2000, file = %O, fill = yes, define = no; #19
M20: start = $8000, size = $2000, file = %O, fill = yes, define = no; #20
M21: start = $8000, size = $2000, file = %O, fill = yes, define = no; #21
M22: start = $8000, size = $2000, file = %O, fill = yes, define = no; #22
M23: start = $8000, size = $2000, file = %O, fill = yes, define = no; #23
M24: start = $8000, size = $2000, file = %O, fill = yes, define = no; #24
M25: start = $8000, size = $2000, file = %O, fill = yes, define = no; #25
M26: start = $8000, size = $2000, file = %O, fill = yes, define = no; #26
M27: start = $8000, size = $2000, file = %O, fill = yes, define = no; #27
M28: start = $8000, size = $2000, file = %O, fill = yes, define = no; #28
M29: start = $8000, size = $2000, file = %O, fill = yes, define = no; #29
M30: start = $8000, size = $2000, file = %O, fill = yes, define = no; #30
M31: start = $8000, size = $2000, file = %O, fill = yes, define = no; #31
M32: start = $8000, size = $2000, file = %O, fill = yes, define = no; #32
M33: start = $8000, size = $2000, file = %O, fill = yes, define = no; #33
M34: start = $8000, size = $2000, file = %O, fill = yes, define = no; #34
M35: start = $8000, size = $2000, file = %O, fill = yes, define = no; #35
M36: start = $8000, size = $2000, file = %O, fill = yes, define = no; #36
M37: start = $8000, size = $2000, file = %O, fill = yes, define = no; #37
M38: start = $8000, size = $2000, file = %O, fill = yes, define = no; #38
M39: start = $8000, size = $2000, file = %O, fill = yes, define = no; #39
M40: start = $8000, size = $2000, file = %O, fill = yes, define = no; #40
M41: start = $8000, size = $2000, file = %O, fill = yes, define = no; #41
M42: start = $8000, size = $2000, file = %O, fill = yes, define = no; #42
M43: start = $8000, size = $2000, file = %O, fill = yes, define = no; #43
M44: start = $8000, size = $2000, file = %O, fill = yes, define = no; #44
M45: start = $8000, size = $2000, file = %O, fill = yes, define = no; #45
M46: start = $8000, size = $2000, file = %O, fill = yes, define = no; #46
M47: start = $8000, size = $2000, file = %O, fill = yes, define = no; #47
M48: start = $8000, size = $2000, file = %O, fill = yes, define = no; #48
M49: start = $8000, size = $2000, file = %O, fill = yes, define = no; #49
M50: start = $8000, size = $2000, file = %O, fill = yes, define = no; #50
M51: start = $8000, size = $2000, file = %O, fill = yes, define = no; #51
XTD: start = $A000, size = $2000, file = %O, fill = yes, define = no; #52
EX9: start = $A000, size = $2000, file = %O, fill = yes, define = no; #53
EX8: start = $A000, size = $2000, file = %O, fill = yes, define = no; #54
EX7: start = $A000, size = $2000, file = %O, fill = yes, define = no; #55
EX6: start = $A000, size = $2000, file = %O, fill = yes, define = no; #56
EX5: start = $A000, size = $2000, file = %O, fill = yes, define = no; #57
EX4: start = $A000, size = $2000, file = %O, fill = yes, define = no; #58
EX3: start = $A000, size = $2000, file = %O, fill = yes, define = no; #59
EX2: start = $A000, size = $2000, file = %O, fill = yes, define = no; #60
EX1: start = $A000, size = $2000, file = %O, fill = yes, define = no; #61
PRG: start = $C000, size = $4000, file = %O, fill = yes, define = yes; #62-63
# CHR ROM
CHR: start = $0000, size = $40000, file = %O, fill = yes;
}
SEGMENTS {
HEADER: load = HEADER, type = ro;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RODATA: load = DAT, start = $8000, type = ro, define = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DATA_01: load = M01, start = $8000, type = ro, define = yes, optional = yes;
DATA_02: load = M02, start = $8000, type = ro, define = yes, optional = yes;
DATA_03: load = M03, start = $8000, type = ro, define = yes, optional = yes;
DATA_04: load = M04, start = $8000, type = ro, define = yes, optional = yes;
DATA_05: load = M05, start = $8000, type = ro, define = yes, optional = yes;
DATA_06: load = M06, start = $8000, type = ro, define = yes, optional = yes;
DATA_07: load = M07, start = $8000, type = ro, define = yes, optional = yes;
DATA_08: load = M08, start = $8000, type = ro, define = yes, optional = yes;
DATA_09: load = M09, start = $8000, type = ro, define = yes, optional = yes;
DATA_10: load = M10, start = $8000, type = ro, define = yes, optional = yes;
DATA_11: load = M11, start = $8000, type = ro, define = yes, optional = yes;
DATA_12: load = M12, start = $8000, type = ro, define = yes, optional = yes;
DATA_13: load = M13, start = $8000, type = ro, define = yes, optional = yes;
DATA_14: load = M14, start = $8000, type = ro, define = yes, optional = yes;
DATA_15: load = M15, start = $8000, type = ro, define = yes, optional = yes;
DATA_16: load = M16, start = $8000, type = ro, define = yes, optional = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MUS_01: load = M17, start = $8000, type = ro, define = yes, optional = yes;
MUS_02: load = M18, start = $8000, type = ro, define = yes, optional = yes;
MUS_03: load = M19, start = $8000, type = ro, define = yes, optional = yes;
MUS_04: load = M20, start = $8000, type = ro, define = yes, optional = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SND_01: load = M21, start = $8000, type = ro, define = yes, optional = yes;
SND_02: load = M22, start = $8000, type = ro, define = yes, optional = yes;
SND_03: load = M23, start = $8000, type = ro, define = yes, optional = yes;
SND_04: load = M24, start = $8000, type = ro, define = yes, optional = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODE_EX1: load = EX1, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX2: load = EX2, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX3: load = EX3, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX4: load = EX4, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX5: load = EX5, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX6: load = EX6, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX7: load = EX7, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX8: load = EX8, start = $A000, type = ro, define = yes, optional = yes;
CODE_EX9: load = EX9, start = $A000, type = ro, define = yes, optional = yes;
CODE_XTD: load = XTD, start = $A000, type = ro, define = yes, optional = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODE: load = PRG, start = $C000, type = ro, define = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DATA: load = PRG, run = RAM, type = rw, define = yes;
CHARS: load = CHR, type = ro;
FAMITONE: load = FTRAM, type = rw, define = yes, optional = yes;
BSS: load = RAM, type = bss, define = yes;
HEAP: load = RAM, type = bss, optional = yes;
ZEROPAGE: load = ZP, type = zp;
ONCE: load = PRG, type = ro, define = yes, optional = yes;
WRAM: load = WRAM, type = bss, optional = yes;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STARTUP: load = PRG, start = $F800, type = ro, define = yes;
VECTORS: load = PRG, start = $FFFA, type = ro;
}
SYMBOLS {
__STACKSIZE__: type = weak, value = STACKSIZE;
__STACK_START__: type = weak, value = STACKSTART;
NES_MAPPER: type = weak, value = 4; # mapper number, 0 = NROM
NES_PRG_BANKS: type = weak, value = 32; # number of 16K PRG banks
NES_CHR_BANKS: type = weak, value = 32; # number of 8K CHR banks
NES_MIRRORING: type = weak, value = 0; # 0 horizontal, 1 vertical, 8 four screen
NES_BATTERY: type = weak, value = 1; # battery save, 1 = enable, 0 disable
}