aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-05-28 21:29:04 +0200
committerBad Diode <bd@badd10de.dev>2021-05-28 21:29:04 +0200
commit9c61e2e75220439e917fa5fba9d59014a2a5c43a (patch)
treeb9b4a4a535163238bd50707c05139a560cc92f71 /README.md
parent1fabc50056826ba54ad2a613e5509f3047414cae (diff)
downloaduxngba-9c61e2e75220439e917fa5fba9d59014a2a5c43a.tar.gz
uxngba-9c61e2e75220439e917fa5fba9d59014a2a5c43a.zip
Update README
Diffstat (limited to 'README.md')
-rw-r--r--README.md67
1 files changed, 53 insertions, 14 deletions
diff --git a/README.md b/README.md
index 975201c..0988e6e 100644
--- a/README.md
+++ b/README.md
@@ -9,22 +9,20 @@ screen or console devices, including the beautiful DVD bouncing.
9## Building from source 9## Building from source
10 10
11To build this software you need the [devkitPro][devkitpro] SDK. Once installed, 11To build this software you need the [devkitPro][devkitpro] SDK. Once installed,
12You may need to modify the Makefile to set up the path: 12you may need to modify the Makefile to ensure the path is correct, but should
13work with the default devikit installation methods on Linux and macOS.
13 14
14``` 15```
15DEVKITPRO := /opt/devkitpro 16DEVKITPRO := /opt/devkitpro
16DEVKITARM := /opt/devkitpro/devkitARM 17DEVKITBIN := $(DEVKITPRO)/devkitARM/bin
17PATH := $(DEVKITARM)/bin:$(PATH) 18DEVKITTOOLS := $(DEVKITPRO)/tools/bin
18LIBGBA_DIR := $(DEVKITPRO)/libgba 19LIBGBA_DIR := $(DEVKITPRO)/libgba
19LIBGBA_SRC := /opt/devkitpro/libgba/include/ 20LIBGBA_SRC := $(DEVKITPRO)/libgba/include/
20LIBGBA := $(LIBGBA_DIR)/lib/libgba.a 21LIBGBA := $(LIBGBA_DIR)/lib/libgba.a
21LIBGBA += $(LIBGBA_DIR)/lib/libfat.a 22LIBGBA += $(LIBGBA_DIR)/lib/libfat.a
22LIBGBA += $(LIBGBA_DIR)/lib/libmm.a 23LIBGBA += $(LIBGBA_DIR)/lib/libmm.a
23``` 24```
24 25
25An intermediate build step will create a `src/uxn/roms/boot.c` file, for which
26you need the `bin2carr` utility that can be found [here][bin2carr].
27
28If everything is properly installed, you should be able to run `make` to compile 26If everything is properly installed, you should be able to run `make` to compile
29the program into a `uxngba.gba` rom. If you have `mgba-qt` installed, you can 27the program into a `uxngba.gba` rom. If you have `mgba-qt` installed, you can
30test it with: `make run`. 28test it with: `make run`.
@@ -33,8 +31,49 @@ To use a specific UXN compiled rom, you can pass it as the `ROM_SRC` make
33parameter: 31parameter:
34 32
35``` 33```
36make run ROM_SRC=src/uxn/roms/piano.rom 34make run ROM_SRC=roms/noodle.rom
37``` 35```
38 36
37If you have compiled a rom already and want to change it, you probably want to
38use `make clean` beforehand.
39
39[devkitpro]: https://devkitpro.org/ 40[devkitpro]: https://devkitpro.org/
40[bin2carr]: https://git.badd10de.dev/gba-dev-tools/ 41
42## Configuration
43
44The output .gba files will embed the rom used for installation. Different roms
45have different needs, such as the usage of different input methods or the
46desired audio quality. These options can be selected by defining the right
47macros on compile time as described below.
48
49### Input method order
50
51Uxngba currently supports three different control schemes that can be cycled by
52pressing the SELECT button: `CONTROL_CONTROLLER`, `CONTROL_MOUSE` and
53`CONTROL_KEYBOARD`. To select the order and available methods set the
54`CONTROL_METHODS` macro on compile time. For example, [noodle][noodle] doesn't
55make much use of the controller scheme, and we may want to use the mouse as the
56default input method. This can be achieved with the following command:
57
58```
59make run ROM_SRC=roms/noodle.rom CONFIG="-DCONTROL_METHODS=CONTROL_MOUSE,CONTROL_KEYBOARD"
60```
61
62### Audio quality
63
64Audio processing can be computationally expensive and the GBA has limited
65resources. uxngba supports 4 audio channel devices simultaneously, and depending
66on the demands of the rest of the program, the audio quality can be increased or
67decreased. By default, sounds will play on a 18157 Hz buffer, which offers
68a good quality-performance compromise. A high quality and low-fi audio modes can
69be selected by setting the `AUDIO_HIFI` or `AUDIO_LOFI` macros:
70
71```
72make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_HIFI"
73
74 or
75
76make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_LOFI"
77```
78
79[noodle]: https://wiki.xxiivv.com/site/noodle.html