diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 28 |
1 files changed, 15 insertions, 13 deletions
@@ -1,10 +1,13 @@ | |||
1 | # UXNGBA | 1 | # UXNGBA |
2 | 2 | ||
3 | This is a port of the [UXN virtual machine][uxn] for the GBA. It is currently at | 3 | This is a port of the [UXN virtual machine][uxn] for the GBA. UXN is a project |
4 | an early stage, but is capable of running simple demos that make use of the | 4 | created by the artist collective and research studio [100 rabbits][100r]. It can |
5 | screen or console devices, including the beautiful DVD bouncing. | 5 | be used to write small graphical applications, tools and games. Programs written |
6 | for UXN are distributed via bytecode compiled roms, akin to classic console | ||
7 | emulators. 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 | |||
27 | the program into a `uxngba.gba` rom. If you have `mgba-qt` installed, you can | 30 | the program into a `uxngba.gba` rom. If you have `mgba-qt` installed, you can |
28 | test it with: `make run`. | 31 | test it with: `make run`. |
29 | 32 | ||
30 | To use a specific UXN compiled rom, you can pass it as the `ROM_SRC` make | 33 | To use a specific UXN compiled rom, you can pass it as the `UXN_ROM` make |
31 | parameter: | 34 | parameter: |
32 | 35 | ||
33 | ``` | 36 | ``` |
34 | make run ROM_SRC=roms/noodle.rom | 37 | make run UXN_ROM=roms/noodle.rom |
35 | ``` | 38 | ``` |
36 | 39 | ||
37 | If you have compiled a rom already and want to change it, you probably want to | ||
38 | use `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 | ||
51 | Uxngba currently supports three different control schemes that can be cycled by | 51 | Uxngba currently supports three different control schemes that can be cycled by |
52 | pressing the SELECT button: `CONTROL_CONTROLLER`, `CONTROL_MOUSE` and | 52 | pressing 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 |
55 | make much use of the controller scheme, and we may want to use the mouse as the | 55 | make much use of the controller scheme, and we may want to use the mouse as the |
56 | default input method. This can be achieved with the following command: | 56 | default input method. This can be achieved with the following command: |
57 | 57 | ||
58 | ``` | 58 | ``` |
59 | make run ROM_SRC=roms/noodle.rom CONFIG="-DCONTROL_METHODS=CONTROL_MOUSE,CONTROL_KEYBOARD" | 59 | make 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 | |||
69 | be selected by setting the `AUDIO_HIFI` or `AUDIO_LOFI` macros: | 69 | be selected by setting the `AUDIO_HIFI` or `AUDIO_LOFI` macros: |
70 | 70 | ||
71 | ``` | 71 | ``` |
72 | make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_HIFI" | 72 | make run UXN_ROM=roms/audio.rom CONFIG="-DAUDIO_HIFI" |
73 | 73 | ||
74 | or | 74 | or |
75 | 75 | ||
76 | make run ROM_SRC=roms/audio.rom CONFIG="-DAUDIO_LOFI" | 76 | make 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" | |||
81 | When writing text to the screen (for example using the console device) the text | 81 | When writing text to the screen (for example using the console device) the text |
82 | will be drawn by default on the foreground layer. This can be controlled by | 82 | will be drawn by default on the foreground layer. This can be controlled by |
83 | setting the `TEXT_MODE` option to 0 for foreground mode or 1 for background | 83 | setting the `TEXT_MODE` option to 0 for foreground mode or 1 for background |
84 | mode. | 84 | mode. The text layer can be omitted if using the TEXT_DISABLE macro. |
85 | 85 | ||
86 | ``` | 86 | ``` |
87 | make run CONFIG="-DTEXT_MODE=1" | 87 | make run CONFIG="-DTEXT_MODE=1" |
88 | |||
89 | make run CONFIG="-DTEXT_DISABLE=1" | ||
88 | ``` | 90 | ``` |
89 | 91 | ||
90 | ### Performance metrics | 92 | ### Performance metrics |