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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
|
<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="cache-control" content="max-age=86400"/>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GBDK 2020 Docs: Toolchain settings</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen_extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GBDK 2020 Docs
 <span id="projectnumber">4.0.6</span>
</div>
<div id="projectbrief">API Documentation for GBDK 2020</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('docs_toolchain_settings.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Toolchain settings </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="lcc-settings"></a></p>
<h1><a class="anchor" id="autotoc_md206"></a>
lcc settings</h1>
<div class="fragment"><div class="line">./lcc [ option | file ]...</div>
<div class="line"> except for -l, options are processed left-to-right before files</div>
<div class="line"> unrecognized options are taken to be linker options</div>
<div class="line">-A warn about nonANSI usage; 2nd -A warns more</div>
<div class="line">-b emit expression-level profiling code; see bprint(1)</div>
<div class="line">-Bdir/ use the compiler named `dir/rcc'</div>
<div class="line">-c compile only</div>
<div class="line">-dn set switch statement density to `n'</div>
<div class="line">-debug Turns on --debug for compiler, -y (.cdb) and -j (.noi) for linker</div>
<div class="line">-Dname -Dname=def define the preprocessor symbol `name'</div>
<div class="line">-E run only the preprocessor on the named C programs and unsuffixed files</div>
<div class="line">-g produce symbol table information for debuggers</div>
<div class="line">-help or -? print this message</div>
<div class="line">-Idir add `dir' to the beginning of the list of #include directories</div>
<div class="line">-K don't run ihxcheck test on linker ihx output</div>
<div class="line">-lx search library `x'</div>
<div class="line">-m select port and platform: "-m[port]:[plat]" ports:gbz80,z80 plats:ap,duck,gb,sms,gg</div>
<div class="line">-N do not search the standard directories for #include files</div>
<div class="line">-n emit code to check for dereferencing zero pointers</div>
<div class="line">-no-crt do not auto-include the gbdk crt0.o runtime in linker list</div>
<div class="line">-no-libs do not auto-include the gbdk libs in linker list</div>
<div class="line">-O is ignored</div>
<div class="line">-o file leave the output in `file'</div>
<div class="line">-P print ANSI-style declarations for globals</div>
<div class="line">-p -pg emit profiling code; see prof(1) and gprof(1)</div>
<div class="line">-S compile to assembly language</div>
<div class="line">-autobank auto-assign banks set to 255 (bankpack)</div>
<div class="line">-static specify static libraries (default is dynamic)</div>
<div class="line">-t -tname emit function tracing calls to printf or to `name'</div>
<div class="line">-target name is ignored</div>
<div class="line">-tempdir=dir place temporary files in `dir/'; default=/tmp</div>
<div class="line">-Uname undefine the preprocessor symbol `name'</div>
<div class="line">-v show commands as they are executed; 2nd -v suppresses execution</div>
<div class="line">-w suppress warnings</div>
<div class="line">-Woarg specify system-specific `arg'</div>
<div class="line">-W[pfablim]arg pass `arg' to the preprocessor, compiler, assembler, bankpack, linker, ihxcheck, or makebin</div>
</div><!-- fragment --><p><a class="anchor" id="sdcc-settings"></a></p>
<h1><a class="anchor" id="autotoc_md207"></a>
sdcc settings</h1>
<div class="fragment"><div class="line">SDCC : z80/gbz80 4.1.6 #12539 (Linux)</div>
<div class="line">published under GNU General Public License (GPL)</div>
<div class="line">Usage : sdcc [options] filename</div>
<div class="line">Options :-</div>
<div class="line"> </div>
<div class="line">General options:</div>
<div class="line"> --help Display this help</div>
<div class="line"> -v --version Display sdcc's version</div>
<div class="line"> --verbose Trace calls to the preprocessor, assembler, and linker</div>
<div class="line"> -V Execute verbosely. Show sub commands as they are run</div>
<div class="line"> -d Output list of macro definitions in effect. Use with -E</div>
<div class="line"> -D Define macro as in -Dmacro</div>
<div class="line"> -I Add to the include (*.h) path, as in -Ipath</div>
<div class="line"> -A </div>
<div class="line"> -U Undefine macro as in -Umacro</div>
<div class="line"> -M Preprocessor option</div>
<div class="line"> -W Pass through options to the pre-processor (p), assembler (a) or linker (l)</div>
<div class="line"> -S Compile only; do not assemble or link</div>
<div class="line"> -c --compile-only Compile and assemble, but do not link</div>
<div class="line"> -E --preprocessonly Preprocess only, do not compile</div>
<div class="line"> --c1mode Act in c1 mode. The standard input is preprocessed code, the output is assembly code.</div>
<div class="line"> -o Place the output into the given path resp. file</div>
<div class="line"> -x Optional file type override (c, c-header or none), valid until the next -x</div>
<div class="line"> --print-search-dirs display the directories in the compiler's search path</div>
<div class="line"> --vc messages are compatible with Micro$oft visual studio</div>
<div class="line"> --use-stdout send errors to stdout instead of stderr</div>
<div class="line"> --nostdlib Do not include the standard library directory in the search path</div>
<div class="line"> --nostdinc Do not include the standard include directory in the search path</div>
<div class="line"> --less-pedantic Disable some of the more pedantic warnings</div>
<div class="line"> --disable-warning <nnnn> Disable specific warning</div>
<div class="line"> --Werror Treat the warnings as errors</div>
<div class="line"> --debug Enable debugging symbol output</div>
<div class="line"> --cyclomatic Display complexity of compiled functions</div>
<div class="line"> --std-c89 Use ISO C90 (aka ANSI C89) standard (slightly incomplete)</div>
<div class="line"> --std-sdcc89 Use ISO C90 (aka ANSI C89) standard with SDCC extensions</div>
<div class="line"> --std-c95 Use ISO C95 (aka ISO C94) standard (slightly incomplete)</div>
<div class="line"> --std-c99 Use ISO C99 standard (incomplete)</div>
<div class="line"> --std-sdcc99 Use ISO C99 standard with SDCC extensions</div>
<div class="line"> --std-c11 Use ISO C11 standard (incomplete)</div>
<div class="line"> --std-sdcc11 Use ISO C11 standard with SDCC extensions (default)</div>
<div class="line"> --std-c2x Use ISO C2X standard (incomplete)</div>
<div class="line"> --std-sdcc2x Use ISO C2X standard with SDCC extensions</div>
<div class="line"> --fdollars-in-identifiers Permit '$' as an identifier character</div>
<div class="line"> --fsigned-char Make "char" signed by default</div>
<div class="line"> --use-non-free Search / include non-free licensed libraries and header files</div>
<div class="line"> </div>
<div class="line">Code generation options:</div>
<div class="line"> -m Set the port to use e.g. -mz80.</div>
<div class="line"> -p Select port specific processor e.g. -mpic14 -p16f84</div>
<div class="line"> --stack-auto Stack automatic variables</div>
<div class="line"> --xstack Use external stack</div>
<div class="line"> --int-long-reent Use reentrant calls on the int and long support functions</div>
<div class="line"> --float-reent Use reentrant calls on the float support functions</div>
<div class="line"> --xram-movc Use movc instead of movx to read xram (xdata)</div>
<div class="line"> --callee-saves <func[,func,...]> Cause the called function to save registers instead of the caller</div>
<div class="line"> --profile On supported ports, generate extra profiling information</div>
<div class="line"> --fomit-frame-pointer Leave out the frame pointer.</div>
<div class="line"> --all-callee-saves callee will always save registers used</div>
<div class="line"> --stack-probe insert call to function __stack_probe at each function prologue</div>
<div class="line"> --no-xinit-opt don't memcpy initialized xram from code</div>
<div class="line"> --no-c-code-in-asm don't include c-code as comments in the asm file</div>
<div class="line"> --no-peep-comments don't include peephole optimizer comments</div>
<div class="line"> --codeseg <name> use this name for the code segment</div>
<div class="line"> --constseg <name> use this name for the const segment</div>
<div class="line"> --dataseg <name> use this name for the data segment</div>
<div class="line"> </div>
<div class="line">Optimization options:</div>
<div class="line"> --nooverlay Disable overlaying leaf function auto variables</div>
<div class="line"> --nogcse Disable the GCSE optimisation</div>
<div class="line"> --nolabelopt Disable label optimisation</div>
<div class="line"> --noinvariant Disable optimisation of invariants</div>
<div class="line"> --noinduction Disable loop variable induction</div>
<div class="line"> --noloopreverse Disable the loop reverse optimisation</div>
<div class="line"> --no-peep Disable the peephole assembly file optimisation</div>
<div class="line"> --no-reg-params On some ports, disable passing some parameters in registers</div>
<div class="line"> --peep-asm Enable peephole optimization on inline assembly</div>
<div class="line"> --peep-return Enable peephole optimization for return instructions</div>
<div class="line"> --no-peep-return Disable peephole optimization for return instructions</div>
<div class="line"> --peep-file <file> use this extra peephole file</div>
<div class="line"> --opt-code-speed Optimize for code speed rather than size</div>
<div class="line"> --opt-code-size Optimize for code size rather than speed</div>
<div class="line"> --max-allocs-per-node Maximum number of register assignments considered at each node of the tree decomposition</div>
<div class="line"> --nolospre Disable lospre</div>
<div class="line"> --allow-unsafe-read Allow optimizations to read any memory location anytime</div>
<div class="line"> --nostdlibcall Disable optimization of calls to standard library</div>
<div class="line"> </div>
<div class="line">Internal debugging options:</div>
<div class="line"> --dump-ast Dump front-end AST before generating i-code</div>
<div class="line"> --dump-i-code Dump the i-code structure at all stages</div>
<div class="line"> --dump-graphs Dump graphs (control-flow, conflict, etc)</div>
<div class="line"> --i-code-in-asm Include i-code as comments in the asm file</div>
<div class="line"> --fverbose-asm Include code generator comments in the asm output</div>
<div class="line"> </div>
<div class="line">Linker options:</div>
<div class="line"> -l Include the given library in the link</div>
<div class="line"> -L Add the next field to the library search path</div>
<div class="line"> --lib-path <path> use this path to search for libraries</div>
<div class="line"> --out-fmt-ihx Output in Intel hex format</div>
<div class="line"> --out-fmt-s19 Output in S19 hex format</div>
<div class="line"> --xram-loc <nnnn> External Ram start location</div>
<div class="line"> --xram-size <nnnn> External Ram size</div>
<div class="line"> --iram-size <nnnn> Internal Ram size</div>
<div class="line"> --xstack-loc <nnnn> External Stack start location</div>
<div class="line"> --code-loc <nnnn> Code Segment Location</div>
<div class="line"> --code-size <nnnn> Code Segment size</div>
<div class="line"> --stack-loc <nnnn> Stack pointer initial value</div>
<div class="line"> --data-loc <nnnn> Direct data start location</div>
<div class="line"> --idata-loc </div>
<div class="line"> --no-optsdcc-in-asm Do not emit .optsdcc in asm</div>
<div class="line"> </div>
<div class="line">Special options for the z80 port:</div>
<div class="line"> --callee-saves-bc Force a called function to always save BC</div>
<div class="line"> --portmode= Determine PORT I/O mode (z80/z180)</div>
<div class="line"> --asm= Define assembler name (rgbds/asxxxx/isas/z80asm/gas)</div>
<div class="line"> --codeseg <name> use this name for the code segment</div>
<div class="line"> --constseg <name> use this name for the const segment</div>
<div class="line"> --dataseg <name> use this name for the data segment</div>
<div class="line"> --no-std-crt0 For the z80/gbz80 do not link default crt0.rel</div>
<div class="line"> --reserve-regs-iy Do not use IY (incompatible with --fomit-frame-pointer)</div>
<div class="line"> --oldralloc Use old register allocator (deprecated)</div>
<div class="line"> --fno-omit-frame-pointer Do not omit frame pointer</div>
<div class="line"> --emit-externs Emit externs list in generated asm</div>
<div class="line"> --legacy-banking Use legacy method to call banked functions</div>
<div class="line"> --nmos-z80 Generate workaround for NMOS Z80 when saving IFF2</div>
<div class="line"> </div>
<div class="line">Special options for the gbz80 port:</div>
<div class="line"> -bo <num> use code bank <num></div>
<div class="line"> -ba <num> use data bank <num></div>
<div class="line"> --asm= Define assembler name (rgbds/asxxxx/isas/z80asm/gas)</div>
<div class="line"> --callee-saves-bc Force a called function to always save BC</div>
<div class="line"> --codeseg <name> use this name for the code segment</div>
<div class="line"> --constseg <name> use this name for the const segment</div>
<div class="line"> --dataseg <name> use this name for the data segment</div>
<div class="line"> --no-std-crt0 For the z80/gbz80 do not link default crt0.rel</div>
<div class="line"> --legacy-banking Use legacy method to call banked functions</div>
</div><!-- fragment --><p><a class="anchor" id="sdasgb-settings"></a></p>
<h1><a class="anchor" id="autotoc_md208"></a>
sdasgb settings</h1>
<div class="fragment"><div class="line">sdas Assembler V02.00 + NoICE + SDCC mods (GameBoy Z80-like CPU)</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line">Copyright (C) 2012 Alan R. Baldwin</div>
<div class="line">This program comes with ABSOLUTELY NO WARRANTY.</div>
<div class="line"> </div>
<div class="line">Usage: [-Options] file</div>
<div class="line">Usage: [-Options] outfile file1 [file2 file3 ...]</div>
<div class="line"> -d Decimal listing</div>
<div class="line"> -q Octal listing</div>
<div class="line"> -x Hex listing (default)</div>
<div class="line"> -g Undefined symbols made global</div>
<div class="line"> -n Don't resolve global assigned value symbols</div>
<div class="line"> -a All user symbols made global</div>
<div class="line"> -b Display .define substitutions in listing</div>
<div class="line"> -bb and display without .define substitutions</div>
<div class="line"> -c Disable instruction cycle count in listing</div>
<div class="line"> -j Enable NoICE Debug Symbols</div>
<div class="line"> -y Enable SDCC Debug Symbols</div>
<div class="line"> -l Create list file/outfile[.lst]</div>
<div class="line"> -o Create object file/outfile[.rel]</div>
<div class="line"> -s Create symbol file/outfile[.sym]</div>
<div class="line"> -p Disable automatic listing pagination</div>
<div class="line"> -u Disable .list/.nlist processing</div>
<div class="line"> -w Wide listing format for symbol table</div>
<div class="line"> -z Disable case sensitivity for symbols</div>
<div class="line"> -f Flag relocatable references by ` in listing file</div>
<div class="line"> -ff Flag relocatable references by mode in listing file</div>
<div class="line"> -I Add the named directory to the include file</div>
<div class="line"> search path. This option may be used more than once.</div>
<div class="line"> Directories are searched in the order given.</div>
<div class="line"> </div>
<div class="line">removing </div>
</div><!-- fragment --><p><a class="anchor" id="sdasz80-settings"></a></p>
<h1><a class="anchor" id="autotoc_md209"></a>
sdasz80 settings</h1>
<div class="fragment"><div class="line">sdas Assembler V02.00 + NoICE + SDCC mods (GameBoy Z80-like CPU)</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line">Copyright (C) 2012 Alan R. Baldwin</div>
<div class="line">This program comes with ABSOLUTELY NO WARRANTY.</div>
<div class="line"> </div>
<div class="line">Usage: [-Options] file</div>
<div class="line">Usage: [-Options] outfile file1 [file2 file3 ...]</div>
<div class="line"> -d Decimal listing</div>
<div class="line"> -q Octal listing</div>
<div class="line"> -x Hex listing (default)</div>
<div class="line"> -g Undefined symbols made global</div>
<div class="line"> -n Don't resolve global assigned value symbols</div>
<div class="line"> -a All user symbols made global</div>
<div class="line"> -b Display .define substitutions in listing</div>
<div class="line"> -bb and display without .define substitutions</div>
<div class="line"> -c Disable instruction cycle count in listing</div>
<div class="line"> -j Enable NoICE Debug Symbols</div>
<div class="line"> -y Enable SDCC Debug Symbols</div>
<div class="line"> -l Create list file/outfile[.lst]</div>
<div class="line"> -o Create object file/outfile[.rel]</div>
<div class="line"> -s Create symbol file/outfile[.sym]</div>
<div class="line"> -p Disable automatic listing pagination</div>
<div class="line"> -u Disable .list/.nlist processing</div>
<div class="line"> -w Wide listing format for symbol table</div>
<div class="line"> -z Disable case sensitivity for symbols</div>
<div class="line"> -f Flag relocatable references by ` in listing file</div>
<div class="line"> -ff Flag relocatable references by mode in listing file</div>
<div class="line"> -I Add the named directory to the include file</div>
<div class="line"> search path. This option may be used more than once.</div>
<div class="line"> Directories are searched in the order given.</div>
<div class="line"> </div>
<div class="line">removing </div>
</div><!-- fragment --><p><a class="anchor" id="bankpack-settings"></a></p>
<h1><a class="anchor" id="autotoc_md210"></a>
bankpack settings</h1>
<div class="fragment"><div class="line">bankalloc [options] objfile1 objfile2 etc</div>
<div class="line">Use: Read .o files and auto-assign areas with bank=255.</div>
<div class="line"> Typically called by Lcc compiler driver before linker.</div>
<div class="line"> </div>
<div class="line">Options</div>
<div class="line">-h : Show this help</div>
<div class="line">-lkin=<file> : Load object files specified in linker file <file></div>
<div class="line">-lkout=<file>: Write list of object files out to linker file <file></div>
<div class="line">-yt<mbctype> : Set MBC type per ROM byte 149 in Decimal or Hex (0xNN) (see pandocs)</div>
<div class="line">-mbc=N : Similar to -yt, but sets MBC type directly to N instead</div>
<div class="line"> of by intepreting ROM byte 149</div>
<div class="line"> mbc1 will exclude banks {0x20,0x40,0x60} max=127, </div>
<div class="line"> mbc2 max=15, mbc3 max=127, mbc5 max=255 (not 511!) </div>
<div class="line">-min=N : Min assigned ROM bank is N (default 1)</div>
<div class="line">-max=N : Max assigned ROM bank is N, error if exceeded</div>
<div class="line">-ext=<.ext> : Write files out with <.ext> instead of source extension</div>
<div class="line">-path=<path> : Write files out to <path> (<path> *MUST* already exist)</div>
<div class="line">-sym=<prefix>: Add symbols starting with <prefix> to match + update list.</div>
<div class="line"> Default entry is "___bank_" (see below)</div>
<div class="line">-cartsize : Print min required cart size as "autocartsize:<NNN>"</div>
<div class="line">-plat=<plat> : Select platform specific behavior (default:gb) (gb,sms)</div>
<div class="line">-random : Distribute banks randomly for testing (honors -min/-max)</div>
<div class="line">-v : Verbose output, show assignments</div>
<div class="line"> </div>
<div class="line">Example: "bankpack -ext=.rel -path=some/newpath/ file1.o file2.o"</div>
<div class="line">Unless -ext or -path specify otherwise, input files are overwritten.</div>
<div class="line"> </div>
<div class="line">Default MBC type is not set. It *must* be specified by -mbc= or -yt!</div>
<div class="line"> </div>
<div class="line">The following will have FF and 255 replaced with the assigned bank:</div>
<div class="line">A _CODE_255 size <size> flags <flags> addr <address></div>
<div class="line">S b_<function name> Def0000FF</div>
<div class="line">S ___bank_<const name> Def0000FF</div>
<div class="line"> (Above can be made by: const void __at(255) __bank_<const name>;</div>
</div><!-- fragment --><p><a class="anchor" id="sdldgb-settings"></a></p>
<h1><a class="anchor" id="autotoc_md211"></a>
sdldgb settings</h1>
<div class="fragment"><div class="line">sdld Linker V03.00 + NoICE + sdld</div>
<div class="line"> </div>
<div class="line">Usage: [-Options] [-Option with arg] file</div>
<div class="line">Usage: [-Options] [-Option with arg] outfile file1 [file2 ...]</div>
<div class="line">Startup:</div>
<div class="line"> -p Echo commands to stdout (default)</div>
<div class="line"> -n No echo of commands to stdout</div>
<div class="line">Alternates to Command Line Input:</div>
<div class="line"> -c ASlink >> prompt input</div>
<div class="line"> -f file[.lk] Command File input</div>
<div class="line">Libraries:</div>
<div class="line"> -k Library path specification, one per -k</div>
<div class="line"> -l Library file specification, one per -l</div>
<div class="line">Relocation:</div>
<div class="line"> -b area base address = expression</div>
<div class="line"> -g global symbol = expression</div>
<div class="line"> -a (platform) Select platform specific virtual address translation</div>
<div class="line">Map format:</div>
<div class="line"> -m Map output generated as (out)file[.map]</div>
<div class="line"> -w Wide listing format for map file</div>
<div class="line"> -x Hexadecimal (default)</div>
<div class="line"> -d Decimal</div>
<div class="line"> -q Octal</div>
<div class="line">Output:</div>
<div class="line"> -i Intel Hex as (out)file[.ihx]</div>
<div class="line"> -s Motorola S Record as (out)file[.s19]</div>
<div class="line"> -j NoICE Debug output as (out)file[.noi]</div>
<div class="line"> -y SDCDB Debug output as (out)file[.cdb]</div>
<div class="line">List:</div>
<div class="line"> -u Update listing file(s) with link data as file(s)[.rst]</div>
<div class="line">Case Sensitivity:</div>
<div class="line"> -z Disable Case Sensitivity for Symbols</div>
<div class="line">End:</div>
<div class="line"> -e or null line terminates input</div>
</div><!-- fragment --><p><a class="anchor" id="sdldz80-settings"></a></p>
<h1><a class="anchor" id="autotoc_md212"></a>
sdldz80 settings</h1>
<div class="fragment"><div class="line">sdld Linker V03.00 + NoICE + sdld</div>
<div class="line"> </div>
<div class="line">Usage: [-Options] [-Option with arg] file</div>
<div class="line">Usage: [-Options] [-Option with arg] outfile file1 [file2 ...]</div>
<div class="line">Startup:</div>
<div class="line"> -p Echo commands to stdout (default)</div>
<div class="line"> -n No echo of commands to stdout</div>
<div class="line">Alternates to Command Line Input:</div>
<div class="line"> -c ASlink >> prompt input</div>
<div class="line"> -f file[.lk] Command File input</div>
<div class="line">Libraries:</div>
<div class="line"> -k Library path specification, one per -k</div>
<div class="line"> -l Library file specification, one per -l</div>
<div class="line">Relocation:</div>
<div class="line"> -b area base address = expression</div>
<div class="line"> -g global symbol = expression</div>
<div class="line"> -a (platform) Select platform specific virtual address translation</div>
<div class="line">Map format:</div>
<div class="line"> -m Map output generated as (out)file[.map]</div>
<div class="line"> -w Wide listing format for map file</div>
<div class="line"> -x Hexadecimal (default)</div>
<div class="line"> -d Decimal</div>
<div class="line"> -q Octal</div>
<div class="line">Output:</div>
<div class="line"> -i Intel Hex as (out)file[.ihx]</div>
<div class="line"> -s Motorola S Record as (out)file[.s19]</div>
<div class="line"> -j NoICE Debug output as (out)file[.noi]</div>
<div class="line"> -y SDCDB Debug output as (out)file[.cdb]</div>
<div class="line">List:</div>
<div class="line"> -u Update listing file(s) with link data as file(s)[.rst]</div>
<div class="line">Case Sensitivity:</div>
<div class="line"> -z Disable Case Sensitivity for Symbols</div>
<div class="line">End:</div>
<div class="line"> -e or null line terminates input</div>
</div><!-- fragment --><p><a class="anchor" id="ihxcheck-settings"></a></p>
<h1><a class="anchor" id="autotoc_md213"></a>
ihxcheck settings</h1>
<div class="fragment"><div class="line">ihx_check input_file.ihx [options]</div>
<div class="line"> </div>
<div class="line">Options</div>
<div class="line">-h : Show this help</div>
<div class="line">-e : Treat warnings as errors</div>
<div class="line"> </div>
<div class="line">Use: Read a .ihx and warn about overlapped areas.</div>
<div class="line">Example: "ihx_check build/MyProject.ihx"</div>
</div><!-- fragment --><p><a class="anchor" id="makebin-settings"></a></p>
<h1><a class="anchor" id="autotoc_md214"></a>
makebin settings</h1>
<p>Also see <a class="el" href="docs_rombanking_mbcs.html#setting_mbc_and_rom_ram_banks">setting_mbc_and_rom_ram_banks</a> </p><div class="fragment"><div class="line">makebin: convert a Intel IHX file to binary or GameBoy format binary.</div>
<div class="line">Usage: makebin [options] [<in_file> [<out_file>]]</div>
<div class="line">Options:</div>
<div class="line"> -p pack mode: the binary file size will be truncated to the last occupied byte</div>
<div class="line"> -s romsize size of the binary file (default: rom banks * 16384)</div>
<div class="line"> -Z generate GameBoy format binary file</div>
<div class="line"> -S generate Sega Master System format binary file</div>
<div class="line">SMS format options (applicable only with -S option):</div>
<div class="line"> -xo n rom size (0xa-0x2)</div>
<div class="line"> -xj n set region code (3-7)</div>
<div class="line"> -xv n version number (0-15)</div>
<div class="line">GameBoy format options (applicable only with -Z option):</div>
<div class="line"> -yo n number of rom banks (default: 2) (autosize: A)</div>
<div class="line"> -ya n number of ram banks (default: 0)</div>
<div class="line"> -yt n MBC type (default: no MBC)</div>
<div class="line"> -yl n old licensee code (default: 0x33)</div>
<div class="line"> -yk cc new licensee string (default: 00)</div>
<div class="line"> -yn name cartridge name (default: none)</div>
<div class="line"> -yc GameBoy Color compatible</div>
<div class="line"> -yC GameBoy Color only</div>
<div class="line"> -ys Super GameBoy</div>
<div class="line"> -yS Convert .noi file named like input file to .sym</div>
<div class="line"> -yj set non-Japanese region flag</div>
<div class="line"> -yN do not copy big N validation logo into ROM header</div>
<div class="line"> -yp addr=value Set address in ROM to given value (address 0x100-0x1FE)</div>
<div class="line">Arguments:</div>
<div class="line"> <in_file> optional IHX input file, '-' means stdin. (default: stdin)</div>
<div class="line"> <out_file> optional output file, '-' means stdout. (default: stdout)</div>
</div><!-- fragment --><p><a class="anchor" id="gbcompress-settings"></a></p>
<h1><a class="anchor" id="autotoc_md215"></a>
gbcompress settings</h1>
<div class="fragment"><div class="line">gbcompress [options] infile outfile</div>
<div class="line">Use: compress a binary file and write it out.</div>
<div class="line"> </div>
<div class="line">Options</div>
<div class="line">-h : Show this help screen</div>
<div class="line">-d : Decompress (default is compress)</div>
<div class="line">-v : Verbose output</div>
<div class="line">--cin : Read input as .c source format (8 bit char ONLY, uses first array found)</div>
<div class="line">--cout : Write output in .c / .h source format (8 bit char ONLY) </div>
<div class="line">--varname=<NAME> : specify variable name for c source output</div>
<div class="line">--alg=<type> : specify compression type: 'rle', 'gb' (default)</div>
<div class="line">Example: "gbcompress binaryfile.bin compressed.bin"</div>
<div class="line">Example: "gbcompress -d compressedfile.bin decompressed.bin"</div>
<div class="line">Example: "gbcompress --alg=rle binaryfile.bin compressed.bin"</div>
<div class="line"> </div>
<div class="line">The default compression (gb) is the type used by gbtd/gbmb</div>
<div class="line">The rle compression is Amiga IFF style</div>
</div><!-- fragment --><p><a class="anchor" id="png2asset-settings"></a></p>
<h1><a class="anchor" id="autotoc_md216"></a>
png2asset settings</h1>
<div class="fragment"><div class="line">usage: png2asset <file>.png [options]</div>
<div class="line">-c ouput file (default: <png file>.c)</div>
<div class="line">-sw <width> metasprites width size (default: png width)</div>
<div class="line">-sh <height> metasprites height size (default: png height)</div>
<div class="line">-sp <props> change default for sprite OAM property bytes (in hex) (default: 0x00)</div>
<div class="line">-px <x coord> metasprites pivot x coordinate (default: metasprites width / 2)</div>
<div class="line">-py <y coord> metasprites pivot y coordinate (default: metasprites height / 2)</div>
<div class="line">-pw <width> metasprites collision rect widht (default: metasprites width)</div>
<div class="line">-ph <height> metasprites collision rect height (default: metasprites height)</div>
<div class="line">-spr8x8 use SPRITES_8x8 (default: SPRITES_8x16)</div>
<div class="line">-spr8x16 use SPRITES_8x16 (default: SPRITES_8x16)</div>
<div class="line">-b <bank> bank (default 0)</div>
<div class="line">-keep_palette_order use png palette</div>
<div class="line">-noflip disable tile flip</div>
<div class="line">-map Export as map (tileset + bg)</div>
<div class="line">-use_map_attributes Use CGB BG Map attributes (default: palettes are stored for each tile in a separate array)</div>
<div class="line">-use_structs Group the exported info into structs (default: false) (used by ZGB Game Engine)</div>
<div class="line">-bpp bits per pixel: 2, 4 (default: 2)</div>
<div class="line">-max_palettes maximum number of palettes allowed (default: 2)</div>
<div class="line">-pack_mode gb, sgb or sms (default:GB)</div>
<div class="line">-tile_origin tile index offset for maps (instead of zero)</div>
</div><!-- fragment --> </div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
</div>
</body>
</html>
|