aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md28
1 files changed, 15 insertions, 13 deletions
diff --git a/README.md b/README.md
index dbc90c0..baadcc9 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,13 @@
1# UXNGBA 1# UXNGBA
2 2
3This is a port of the [UXN virtual machine][uxn] for the GBA. It is currently at 3This is a port of the [UXN virtual machine][uxn] for the GBA. UXN is a project
4an early stage, but is capable of running simple demos that make use of the 4created by the artist collective and research studio [100 rabbits][100r]. It can
5screen or console devices, including the beautiful DVD bouncing. 5be used to write small graphical applications, tools and games. Programs written
6for UXN are distributed via bytecode compiled roms, akin to classic console
7emulators. For this project, uxn roms are embedded directly in the .gba rom.
6 8
7[uxn]: https://wiki.xxiivv.com/site/uxn.html 9[uxn]: https://wiki.xxiivv.com/site/uxn.html
10[100r]: https://100r.co/
8 11
9## Building from source 12## Building from source
10 13
@@ -27,16 +30,13 @@ If everything is properly installed, you should be able to run `make` to compile
27the program into a `uxngba.gba` rom. If you have `mgba-qt` installed, you can 30the program into a `uxngba.gba` rom. If you have `mgba-qt` installed, you can
28test it with: `make run`. 31test it with: `make run`.
29 32
30To use a specific UXN compiled rom, you can pass it as the `ROM_SRC` make 33To use a specific UXN compiled rom, you can pass it as the `UXN_ROM` make
31parameter: 34parameter:
32 35
33``` 36```
34make run ROM_SRC=roms/noodle.rom 37make run UXN_ROM=roms/noodle.rom
35``` 38```
36 39
37If you have compiled a rom already and want to change it, you probably want to
38use `make clean` beforehand.
39
40[devkitpro]: https://devkitpro.org/ 40[devkitpro]: https://devkitpro.org/
41 41
42## Configuration 42## Configuration
@@ -49,14 +49,14 @@ macros on compile time as described below.
49### Input method order 49### Input method order
50 50
51Uxngba currently supports three different control schemes that can be cycled by 51Uxngba currently supports three different control schemes that can be cycled by
52pressing the SELECT button: `CONTROL_CONTROLLER`, `CONTROL_MOUSE` and 52pressing the L or R buttons: `CONTROL_CONTROLLER`, `CONTROL_MOUSE` and
53`CONTROL_KEYBOARD`. To select the order and available methods set the 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 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 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: 56default input method. This can be achieved with the following command:
57 57
58``` 58```
59make run ROM_SRC=roms/noodle.rom CONFIG="-DCONTROL_METHODS=CONTROL_MOUSE,CONTROL_KEYBOARD" 59make run UXN_ROM=roms/noodle.rom CONFIG="-DCONTROL_METHODS=CONTROL_MOUSE,CONTROL_KEYBOARD"
60``` 60```
61 61
62### Audio quality 62### Audio quality
@@ -69,11 +69,11 @@ a good quality-performance compromise. A high quality and low-fi audio modes can
69be selected by setting the `AUDIO_HIFI` or `AUDIO_LOFI` macros: 69be selected by setting the `AUDIO_HIFI` or `AUDIO_LOFI` macros:
70 70
71``` 71```
72make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_HIFI" 72make run UXN_ROM=roms/audio.rom CONFIG="-DAUDIO_HIFI"
73 73
74 or 74 or
75 75
76make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_LOFI" 76make run UXN_ROM=roms/audio.rom CONFIG="-DAUDIO_LOFI"
77``` 77```
78 78
79### Text layer 79### Text layer
@@ -81,10 +81,12 @@ make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_LOFI"
81When writing text to the screen (for example using the console device) the text 81When writing text to the screen (for example using the console device) the text
82will be drawn by default on the foreground layer. This can be controlled by 82will be drawn by default on the foreground layer. This can be controlled by
83setting the `TEXT_MODE` option to 0 for foreground mode or 1 for background 83setting the `TEXT_MODE` option to 0 for foreground mode or 1 for background
84mode. 84mode. The text layer can be omitted if using the TEXT_DISABLE macro.
85 85
86``` 86```
87make run CONFIG="-DTEXT_MODE=1" 87make run CONFIG="-DTEXT_MODE=1"
88
89make run CONFIG="-DTEXT_DISABLE=1"
88``` 90```
89 91
90### Performance metrics 92### Performance metrics