mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Man pages!
This commit is contained in:
17
Makefile
17
Makefile
@@ -2,8 +2,6 @@ localversion = $(shell sh scripts/localversion.sh)
|
||||
|
||||
CFLAGS+=-Wall -Iinclude -Iinclude/asm/gameboy -DLOCALVERSION=\"$(localversion)\" -g -std=c99 -D_POSIX_C_SOURCE=200112L
|
||||
|
||||
all:
|
||||
|
||||
yacc_pre := \
|
||||
src/asm/yaccprt1.y\
|
||||
src/asm/gameboy/yaccprt2.y\
|
||||
@@ -48,6 +46,7 @@ clean:
|
||||
rm -rf rgblink $(rgblink_obj)
|
||||
rm -rf rgbfix $(rgbfix_obj)
|
||||
rm -rf src/asm/asmy.c
|
||||
rm -rf rgbasm.0 rgbfix.0 rgblib.0 rgblink.0
|
||||
|
||||
rgbasm: $(rgbasm_obj)
|
||||
${CC} $(CFLAGS) -o $@ $(rgbasm_obj) -lm
|
||||
@@ -69,3 +68,17 @@ src/asm/asmy.c: src/asm/asmy.y
|
||||
|
||||
src/asm/asmy.y: $(yacc_pre)
|
||||
cat $(yacc_pre) > $@
|
||||
|
||||
man: rgbasm.0 rgbfix.0 rgblib.0 rgblink.0
|
||||
|
||||
rgbasm.0: man/rgbasm.1
|
||||
nroff -mdoc man/rgbasm.1 > rgbasm.0
|
||||
|
||||
rgbfix.0: man/rgbfix.1
|
||||
nroff -mdoc man/rgbfix.1 > rgbfix.0
|
||||
|
||||
rgblib.0: man/rgblib.1
|
||||
nroff -mdoc man/rgblib.1 > rgblib.0
|
||||
|
||||
rgblink.0: man/rgblink.1
|
||||
nroff -mdoc man/rgblink.1 > rgblink.0
|
||||
|
||||
61
man/rgbasm.1
Normal file
61
man/rgbasm.1
Normal file
@@ -0,0 +1,61 @@
|
||||
.Dd $\&Mdocdate$
|
||||
.Dt RGBASM 1
|
||||
.Os RGBDS Manual
|
||||
.Sh NAME
|
||||
.Nm rgbasm
|
||||
.Nd Game Boy assembler
|
||||
.\" SECTION
|
||||
.Sh SYNOPSIS
|
||||
.Nm rgbasm
|
||||
.Op Fl b Ar chars
|
||||
.Op Fl g Ar chars
|
||||
.Op Fl i Ar path
|
||||
.Op Fl o Ar outfile
|
||||
.Op Fl p Ar pad_value
|
||||
.Ar file
|
||||
.\" SECTION
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
program creates an object file from an assembly source file. Its arguments
|
||||
are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.\" ITEM
|
||||
.It Fl b Ar chars
|
||||
Change the two characters used for binary constants. The defaults are 01.
|
||||
.\" ITEM
|
||||
.It Fl g Ar chars
|
||||
Change the four characters used for binary constants. The defaults are 0123.
|
||||
.\" ITEM
|
||||
.It Fl i Ar path
|
||||
Add an include path.
|
||||
.\" ITEM
|
||||
.It Fl o Ar outfile
|
||||
Write an object file to the given filename.
|
||||
.\" ITEM
|
||||
.It Fl p Ar pad_value
|
||||
When padding an image, pad with this value. The default is 0x00.
|
||||
.El
|
||||
.\" SECTION
|
||||
.Sh EXAMPLES
|
||||
Assembling a basic source file is simple:
|
||||
.Pp
|
||||
.D1 $ rgbasm \-o bar.o foo.asm
|
||||
.Pp
|
||||
The resulting object file is not yet a usable ROM image \(em it must first be
|
||||
run through
|
||||
.Xr rgblink 1
|
||||
and
|
||||
.Xr rgbfix 1 .
|
||||
.\" SECTION
|
||||
.Sh SEE ALSO
|
||||
.Xr rgbds 7 ,
|
||||
.Xr rgbfix 1 ,
|
||||
.Xr rgblib 1 ,
|
||||
.Xr rgblink 1 ,
|
||||
.Xr gbz80 7
|
||||
.\" SECTION
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was originally written by Carsten Sørensen as part of the ASMotor package,
|
||||
and was later packaged in RGBDS by Justin Lloyd.
|
||||
111
man/rgbfix.1
Normal file
111
man/rgbfix.1
Normal file
@@ -0,0 +1,111 @@
|
||||
.Dd $\&Mdocdate$
|
||||
.Dt RGBFIX 1
|
||||
.Os RGBDS Manual
|
||||
.Sh NAME
|
||||
.Nm rgbfix
|
||||
.Nd Game Boy checksum fixer
|
||||
.\" SECTION
|
||||
.Sh SYNOPSIS
|
||||
.Nm rgbfix
|
||||
.Op Fl Ccdjqrsv
|
||||
.Op Fl k Ar licensee_str
|
||||
.Op Fl m Ar mbc_type
|
||||
.Op Fl p Ar pad_value
|
||||
.Op Fl r Ar ram_size
|
||||
.Op Fl t Ar title_str
|
||||
.Ar file Ns Op .gb
|
||||
.\" SECTION
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
program changes headers of Game Boy ROM images. It also performs other
|
||||
filetype operations, such as truncation. The arguments are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.\" ITEM
|
||||
.It Fl C
|
||||
Set the Game Boy Color compatible flag: [0x143] = 0x80. This flag and the
|
||||
.Fl c
|
||||
flag are mutually exclusive.
|
||||
.\" ITEM
|
||||
.It Fl c
|
||||
Set the Game Boy Color only flag: [0x143] = 0xC0. This flag and the
|
||||
.Fl C
|
||||
flag are mutually exclusive.
|
||||
.\" ITEM
|
||||
.It Fl d
|
||||
Don't perform any changes, just pretend to for debugging.
|
||||
.\" ITEM
|
||||
.It Fl j
|
||||
Set the non-Japanese region flag: [0x14A] = 1.
|
||||
.\" ITEM
|
||||
.It Fl k Ar licensee_str
|
||||
Set the new licensee string ([0x144\(en0x145]) to a given string, truncated
|
||||
to at most two characters.
|
||||
.\" ITEM
|
||||
.It Fl m Ar mbc_type
|
||||
Set the MBC type, [0x147], to a given value from 0 to 0xFF.
|
||||
.\" ITEM
|
||||
.It Fl p Ar pad_value
|
||||
Pad the image to a valid size with a given pad value from 0 to 0xFF.
|
||||
.Nm
|
||||
will automatically pick a size from 32KiB, 64KiB, 128KiB, ..., 8192KiB and
|
||||
give a warning thereafter. The cartridge size byte ([0x148]) will be changed
|
||||
to reflect this new size.
|
||||
.\" ITEM
|
||||
.It Fl q
|
||||
Enable quiet mode, suppressing all text except errors.
|
||||
.\" ITEM
|
||||
.It Fl r Ar ram_size
|
||||
Set the RAM size, [0x149], to a given value from 0 to 0xFF.
|
||||
.\" ITEM
|
||||
.It Fl s
|
||||
Set the SGB flag: [0x146] = 3, and set the old licensee code: [0x14B] = 0x33.
|
||||
.\" ITEM
|
||||
.It Fl t Ar title
|
||||
Set the title string ([0x134\(en0x143]) to a given string, truncated to at
|
||||
most 16 characters. It is recommended to use 15 characters instead, to avoid
|
||||
clashing with the CGB flag (
|
||||
.Fl c
|
||||
or
|
||||
.Fl C Ns
|
||||
).
|
||||
.\" ITEM
|
||||
.It Fl v
|
||||
Validate the header and fix checksums: the Nintendo character area
|
||||
([0x104\(en0x133]), the header checksum ([0x14D]), and the global checksum
|
||||
([0x14E\(en0x14F]).
|
||||
.El
|
||||
.\" SECTION
|
||||
.Sh EXAMPLES
|
||||
Most values in the ROM header are only cosmetic. The bare minimum requirements
|
||||
for a workable image are checksums, the Nintendo logo, and (if needed) the
|
||||
CGB/SGB flags. It is a good idea to pad the image to a valid size as well
|
||||
("valid" meaning a multiple of 32KiB).
|
||||
.Pp
|
||||
The following will make a plain, no-color Game Boy game without checking for
|
||||
a valid size:
|
||||
.Pp
|
||||
.D1 $ rgbfix \-v foo.gb
|
||||
.Pp
|
||||
The following will make a SGB-enabled, color-enabled game with a title of
|
||||
"foobar", and pad it to a multiple of 32KiB. (The Game Boy itself does not
|
||||
use the title, but some emulators or ROM managers might.)
|
||||
.Pp
|
||||
.D1 $ rgbfix \-vCs \-p 0 \-t foobar baz.gb
|
||||
.Pp
|
||||
The following will duplicate the header (sans global checksum) of the game
|
||||
"Survival Kids":
|
||||
.Pp
|
||||
.D1 $ rgbfix \-Cjsv \-k A4 \-m 0x1B \-p 0xFF \-r 3 \-t SURVIVALKIDAVKE SurvivalKids.gbc
|
||||
.\" SECTION
|
||||
.Sh SEE ALSO
|
||||
.Xr rgbds 7 ,
|
||||
.Xr rgbasm 1 ,
|
||||
.Xr rgblib 1 ,
|
||||
.Xr rgblink 1 ,
|
||||
.Xr gbz80 7
|
||||
.\" SECTION
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was originally released by Carsten Sørensen as a standalone program called
|
||||
gbfix. It was later integrated with the ASMotor package, which became RGBDS.
|
||||
44
man/rgblib.1
Normal file
44
man/rgblib.1
Normal file
@@ -0,0 +1,44 @@
|
||||
.Dd $\&Mdocdate$
|
||||
.Dt RGBLIB 1
|
||||
.Os RGBDS Manual
|
||||
.Sh NAME
|
||||
.Nm rgblib
|
||||
.Nd Game Boy library manager
|
||||
.\" SECTION
|
||||
.Sh SYNOPSIS
|
||||
.Nm rgblib
|
||||
.Ar library
|
||||
.Op add | delete | extract | list
|
||||
.Ar module ...
|
||||
.\" SECTION
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
program manages libraries for use with
|
||||
.Xr rgblink 1 .
|
||||
.Bl -tag -width Ds
|
||||
.\" ITEM
|
||||
.It add
|
||||
Add the given modules to the library.
|
||||
.\" ITEM
|
||||
.It delete
|
||||
Delete the given modules from the library.
|
||||
.\" ITEM
|
||||
.It extract
|
||||
Extract the given modules from the library.
|
||||
.\" ITEM
|
||||
.It list
|
||||
List all the modules in the library.
|
||||
.El
|
||||
.\" SECTION
|
||||
.Sh SEE ALSO
|
||||
.Xr rgbds 7 ,
|
||||
.Xr rgbasm 1 ,
|
||||
.Xr rgbfix 1 ,
|
||||
.Xr rgblink 1 ,
|
||||
.Xr gbz80 7
|
||||
.\" SECTION
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was originally released by Carsten Sørensen as part of the ASMotor package,
|
||||
and was later packaged in RGBDS by Justin Lloyd.
|
||||
85
man/rgblink.1
Normal file
85
man/rgblink.1
Normal file
@@ -0,0 +1,85 @@
|
||||
.Dd $\&Mdocdate$
|
||||
.Dt RGBLINK 1
|
||||
.Os RGBDS Manual
|
||||
.Sh NAME
|
||||
.Nm rgblink
|
||||
.Nd Game Boy linker
|
||||
.\" SECTION
|
||||
.Sh SYNOPSIS
|
||||
.Nm rgblink
|
||||
.Op Fl t
|
||||
.Op Fl l Ar library
|
||||
.Op Fl m Ar mapfile
|
||||
.Op Fl n Ar symfile
|
||||
.Op Fl o Ar outfile
|
||||
.Op Fl p Ar pad_value
|
||||
.Op Fl s Ar symbol
|
||||
.Ar
|
||||
.\" SECTION
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
program links objects created by
|
||||
.Xr rgbasm 1
|
||||
into a single Game Boy ROM file.
|
||||
.Pp
|
||||
By default, HOME sections created by the assembler are placed in the 16KiB
|
||||
bank 0, and CODE/DATA sections are placed in any bank except bank 0. If your
|
||||
ROM will only be 32KiB, you can use the
|
||||
.Fl t
|
||||
option to override this.
|
||||
.Pp
|
||||
The arguments are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.\" ITEM
|
||||
.It Fl l Ar library
|
||||
Include a referenced library module created with
|
||||
.Xr rgblib 1 .
|
||||
Note that specified libraries will be included only if needed\(emthat is, if
|
||||
a SECTION from a library is referenced by an object file. Only the relevant
|
||||
SECTION will be included, rather than the entire module.
|
||||
.\" ITEM
|
||||
.It Fl m Ar mapfile
|
||||
Write a mapfile to the given filename.
|
||||
.\" ITEM
|
||||
.It Fl n Ar symfile
|
||||
Write a symbol file to the given filename.
|
||||
.\" ITEM
|
||||
.It Fl o Ar outfile
|
||||
Write ROM image to the given filename.
|
||||
.\" ITEM
|
||||
.It Fl p Ar pad_value
|
||||
When padding an image, pad with this value. The default is 0x00.
|
||||
.\" ITEM
|
||||
.It Fl s Ar symbol
|
||||
???
|
||||
.\" ITEM
|
||||
.It Fl t
|
||||
Write a tiny (32KiB) ROM file. This forces all DATA/CODE sections to be of
|
||||
type HOME, and increases the HOME section size from 16KiB to 32KiB.
|
||||
.El
|
||||
.\" SECTION
|
||||
.Sh EXAMPLES
|
||||
All you need for a basic ROM is an object file, which can be made into a ROM
|
||||
image like so:
|
||||
.Pp
|
||||
.D1 $ rgblink \-o bar.gb foo.o
|
||||
.Pp
|
||||
The resulting bar.gb will not have correct checksums (unless you put them in
|
||||
the assembly source). You should use
|
||||
.Xr rgbfix 1
|
||||
to fix these so that the program will actually run in a Game Boy:
|
||||
.Pp
|
||||
.D1 $ rgbfix \-v bar.gb
|
||||
.\" SECTION
|
||||
.Sh SEE ALSO
|
||||
.Xr rgbds 7 ,
|
||||
.Xr rgbasm 1 ,
|
||||
.Xr rgbfix 1 ,
|
||||
.Xr rgblib 1 ,
|
||||
.Xr gbz80 7
|
||||
.\" SECTION
|
||||
.Sh HISTORY
|
||||
.Nm
|
||||
was originally written by Carsten Sørensen as part of the ASMotor package,
|
||||
and was later packaged in RGBDS by Justin Lloyd.
|
||||
Reference in New Issue
Block a user