summaryrefslogtreecommitdiffstats
path: root/gbdk/docs/api/docs_toolchain_settings.html
blob: 16670cf1ef9bbbfd0673a2a16d548870bb724076 (plain) (blame)
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
   &#160;<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&amp;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&amp;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&amp;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&#39;</div>
<div class="line">-c  compile only</div>
<div class="line">-dn set switch statement density to `n&#39;</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&#39;</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&#39; to the beginning of the list of #include directories</div>
<div class="line">-K don&#39;t run ihxcheck test on linker ihx output</div>
<div class="line">-lx search library `x&#39;</div>
<div class="line">-m  select port and platform: &quot;-m[port]:[plat]&quot; 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&#39;</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&#39;</div>
<div class="line">-target name    is ignored</div>
<div class="line">-tempdir=dir    place temporary files in `dir/&#39;; default=/tmp</div>
<div class="line">-Uname  undefine the preprocessor symbol `name&#39;</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&#39;</div>
<div class="line">-W[pfablim]arg  pass `arg&#39; 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&#39;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&#39;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     &lt;nnnn&gt; 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 &#39;$&#39; as an identifier character</div>
<div class="line">      --fsigned-char        Make &quot;char&quot; 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        &lt;func[,func,...]&gt; 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&#39;t memcpy initialized xram from code</div>
<div class="line">      --no-c-code-in-asm    don&#39;t include c-code as comments in the asm file</div>
<div class="line">      --no-peep-comments    don&#39;t include peephole optimizer comments</div>
<div class="line">      --codeseg             &lt;name&gt; use this name for the code segment</div>
<div class="line">      --constseg            &lt;name&gt; use this name for the const segment</div>
<div class="line">      --dataseg             &lt;name&gt; 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           &lt;file&gt; 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            &lt;path&gt; 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            &lt;nnnn&gt; External Ram start location</div>
<div class="line">      --xram-size           &lt;nnnn&gt; External Ram size</div>
<div class="line">      --iram-size           &lt;nnnn&gt; Internal Ram size</div>
<div class="line">      --xstack-loc          &lt;nnnn&gt; External Stack start location</div>
<div class="line">      --code-loc            &lt;nnnn&gt; Code Segment Location</div>
<div class="line">      --code-size           &lt;nnnn&gt; Code Segment size</div>
<div class="line">      --stack-loc           &lt;nnnn&gt; Stack pointer initial value</div>
<div class="line">      --data-loc            &lt;nnnn&gt; 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             &lt;name&gt; use this name for the code segment</div>
<div class="line">      --constseg            &lt;name&gt; use this name for the const segment</div>
<div class="line">      --dataseg             &lt;name&gt; 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                   &lt;num&gt; use code bank &lt;num&gt;</div>
<div class="line">      -ba                   &lt;num&gt; use data bank &lt;num&gt;</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             &lt;name&gt; use this name for the code segment</div>
<div class="line">      --constseg            &lt;name&gt; use this name for the const segment</div>
<div class="line">      --dataseg             &lt;name&gt; 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&#39;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&#39;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=&lt;file&gt; : Load object files specified in linker file &lt;file&gt;</div>
<div class="line">-lkout=&lt;file&gt;: Write list of object files out to linker file &lt;file&gt;</div>
<div class="line">-yt&lt;mbctype&gt; : 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=&lt;.ext&gt;  : Write files out with &lt;.ext&gt; instead of source extension</div>
<div class="line">-path=&lt;path&gt; : Write files out to &lt;path&gt; (&lt;path&gt; *MUST* already exist)</div>
<div class="line">-sym=&lt;prefix&gt;: Add symbols starting with &lt;prefix&gt; to match + update list.</div>
<div class="line">               Default entry is &quot;___bank_&quot; (see below)</div>
<div class="line">-cartsize    : Print min required cart size as &quot;autocartsize:&lt;NNN&gt;&quot;</div>
<div class="line">-plat=&lt;plat&gt; : 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: &quot;bankpack -ext=.rel -path=some/newpath/ file1.o file2.o&quot;</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 &lt;size&gt; flags &lt;flags&gt; addr &lt;address&gt;</div>
<div class="line">S b_&lt;function name&gt; Def0000FF</div>
<div class="line">S ___bank_&lt;const name&gt; Def0000FF</div>
<div class="line">    (Above can be made by: const void __at(255) __bank_&lt;const name&gt;;</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 &gt;&gt; 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 &gt;&gt; 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: &quot;ihx_check build/MyProject.ihx&quot;</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] [&lt;in_file&gt; [&lt;out_file&gt;]]</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">  &lt;in_file&gt;      optional IHX input file, &#39;-&#39; means stdin. (default: stdin)</div>
<div class="line">  &lt;out_file&gt;     optional output file, &#39;-&#39; 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=&lt;NAME&gt; : specify variable name for c source output</div>
<div class="line">--alg=&lt;type&gt;     : specify compression type: &#39;rle&#39;, &#39;gb&#39; (default)</div>
<div class="line">Example: &quot;gbcompress binaryfile.bin compressed.bin&quot;</div>
<div class="line">Example: &quot;gbcompress -d compressedfile.bin decompressed.bin&quot;</div>
<div class="line">Example: &quot;gbcompress --alg=rle binaryfile.bin compressed.bin&quot;</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    &lt;file&gt;.png [options]</div>
<div class="line">-c                  ouput file (default: &lt;png file&gt;.c)</div>
<div class="line">-sw &lt;width&gt;         metasprites width size (default: png width)</div>
<div class="line">-sh &lt;height&gt;        metasprites height size (default: png height)</div>
<div class="line">-sp &lt;props&gt;         change default for sprite OAM property bytes (in hex) (default: 0x00)</div>
<div class="line">-px &lt;x coord&gt;       metasprites pivot x coordinate (default: metasprites width / 2)</div>
<div class="line">-py &lt;y coord&gt;       metasprites pivot y coordinate (default: metasprites height / 2)</div>
<div class="line">-pw &lt;width&gt;         metasprites collision rect widht (default: metasprites width)</div>
<div class="line">-ph &lt;height&gt;        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 &lt;bank&gt;           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>