Commit 392a638

Nick Faro committed on
More manual revising
commit 392a638855c65c9c93f67b2379941a842cb15b12 parent 2892d29
3 changed files +25−20
Modifiedmanual/src/hUGEDriver/integration.md +3−7
@@ -2,18 +2,16 @@
2 2
3 Integrating hUGEDriver into your project depends on what you are using. 3 Integrating hUGEDriver into your project depends on what you are using.
4 4
5 <details><summary>RGBDS (assembly)</summary> 5 First, get the [release of hUGEDriver](https://github.com/SuperDisk/hUGEDriver/releases) that matches your version of hUGETracker.
6 6
7 Get the [release of hUGEDriver](https://github.com/SuperDisk/hUGEDriver/releases) that matches your version of hUGETracker. 7 ### RGBDS (assembly)
8 8
9 Import [`hUGEDriver.asm`](https://github.com/SuperDisk/hUGEDriver/blob/master/hUGEDriver.asm) and [`hUGE.inc`](https://github.com/SuperDisk/hUGEDriver/blob/master/include/hUGE.inc) (in the `include` directory) into your project (songs need the latter as well). 9 Import [`hUGEDriver.asm`](https://github.com/SuperDisk/hUGEDriver/blob/master/hUGEDriver.asm) and [`hUGE.inc`](https://github.com/SuperDisk/hUGEDriver/blob/master/include/hUGE.inc) (in the `include` directory) into your project (songs need the latter as well).
10 You will additionally need [`hardware.inc`](https://github.com/gbdev/hardware.inc) 4.2 or later, if you don't already. 10 You will additionally need [`hardware.inc`](https://github.com/gbdev/hardware.inc) 4.2 or later, if you don't already.
11 11
12 Then, simply compile `hUGEDriver.asm` with the rest of your code, and you're done! 12 Then, simply compile `hUGEDriver.asm` with the rest of your code, and you're done!
13 13
14 </details> 14 ### GBDK (C)
15
16 <details><summary>GBDK (C)</summary>
17 15
18 hUGEDriver releases contain a pre-compiled `.lib` for use with GBDK-2020. Link it while compiling, include `hUGEDriver.h`, and you're done: 16 hUGEDriver releases contain a pre-compiled `.lib` for use with GBDK-2020. Link it while compiling, include `hUGEDriver.h`, and you're done:
19 17
@@ -29,8 +27,6 @@ If you want to compile the driver yourself, a few extra steps are necessary.
29 4. Import `hUGEDriver.h` into your project 27 4. Import `hUGEDriver.h` into your project
30 5. Simply link `hUGEDriver.o` with the rest of your code, and you're done! 28 5. Simply link `hUGEDriver.o` with the rest of your code, and you're done!
31 29
32 </details>
33
34 ## Usage 30 ## Usage
35 31
36 There are two parts to using hUGEDriver: *initializing* a song, and *playing* a song. 32 There are two parts to using hUGEDriver: *initializing* a song, and *playing* a song.
Modifiedmanual/src/hUGEDriver/sfx.md +2−6
@@ -12,18 +12,14 @@ The general outline of how to play sound effects and music is as follows:
12 12
13 ## How-to 13 ## How-to
14 14
15 <details><summary>RGBDS (assembly)</summary> 15 ### RGBDS (assembly)
16 16
17 Call `hUGE_mute_channel` with `b` containing the channel's ID minus one (so between 0 and 3 inclusive), and `c` being `0` to release the channel, or `1` to unmute it. 17 Call `hUGE_mute_channel` with `b` containing the channel's ID minus one (so between 0 and 3 inclusive), and `c` being `0` to release the channel, or `1` to unmute it.
18 18
19 </details> 19 ### GBDK (C)
20
21 <details><summary>GBDK (C)</summary>
22 20
23 Call `hUGE_mute_channel`; see `hUGEDriver.h` for the corresponding arguments. 21 Call `hUGE_mute_channel`; see `hUGEDriver.h` for the corresponding arguments.
24 22
25 </details>
26
27 ## Notes 23 ## Notes
28 24
29 - **IMPORTANT** precaution for CH3: if you release this channel and modify wave RAM, you **must** inform hUGEDriver, by writing `hUGE_NO_WAVE` to `hUGE_current_wave`. 25 - **IMPORTANT** precaution for CH3: if you release this channel and modify wave RAM, you **must** inform hUGEDriver, by writing `hUGE_NO_WAVE` to `hUGE_current_wave`.
Modifiedmanual/src/hUGETracker/subpatterns.md +20−7
@@ -1,16 +1,17 @@
1 # Subpatterns 1 # Subpatterns
2 2
3 Subpatterns are one of hUGETracker's most powerful features. 3 Subpatterns are one of hUGETracker's most powerful features.
4 They are like mini-tracker grids attached to instruments, which allow you to modulate them quite precisely. 4 They are like mini-tracker grids attached to instruments, which allow you to use effects on very precise ticks.
5 They fulfill the same role as instrument macros in FamiTracker. 5 They fulfill the same role as instrument macros in FamiTracker.
6 6
7 What are subpatterns useful for? 7 What are subpatterns useful for?
8 - Percussion! (Subpatterns replace noise macros) 8 - Percussion! (Subpatterns replace noise macros)
9 - Cooler arpeggios than [effect](./effect-reference.md) `0`! 9 - Cooler arpeggios than effect `0`!
10 - Cooler vibratos than effect `4`! 10 - Nicer vibratos than effect `4`!
11 - "Pluck" sounds! (Start one octave up, then go back to base) 11 - "Pluck" sounds! (Start one octave up, then go back to base)
12 - Serves as an extra FX channel in a pinch! 12 - Serves as an extra FX channel in a pinch!
13 - Changing timbre really quickly! (Use effect `9`) 13 - Changing timbre really quickly! (Use effect `9`)
14 - And much more!
14 15
15 **TODO: insert screenshot** 16 **TODO: insert screenshot**
16 17
@@ -19,14 +20,26 @@ Rows are composed of three columns, similiar *but not identical* to the tracker
19 - an optional jump to a specific row, 20 - an optional jump to a specific row,
20 - and an effect. 21 - and an effect.
21 22
22 The offset is a positive number of semitones that is applied to the base note (though only for this row). 23 The offset is a positive number of semitones that is applied to the base note.
23 24
24 Subpatterns automatically loop back to the beginning, or can be made to jump backwards earlier via the jump column. 25 Subpatterns automatically loop back to the beginning, or can be made to jump backwards earlier via the jump column.
25 If you do not want this, you can make a row that jumps to itself. 26 If you want to halt a subpattern in place and have it not loop at all, specify a jump command that jumps to itself.
26 27
27 ## Interaction with the "regular" tracker grid 28 ## Interaction with the "regular" tracker grid
28 29
29 Subpatterns override effects `0`, `1`, `2`, `3` (which will instead jump directly to the target note), and `4`. 30 Subpatterns take precedence over the "regular" tracker grid. That is, if there's a row on the tracker grid like so:
31
32 ```
33 C-5 05 101
34 ```
35
36 And the first row of instrument `05`'s subpattern is:
37
38 ```
39 +02 ... ...
40 ```
41
42 Then the `+02` offset in the subpattern will override the `1xx` portamento up effect.
30 43
31 ## Effects 44 ## Effects
32 45
@@ -39,7 +52,7 @@ Effects in subpatterns work just like in the regular tracker grid ([reference](.
39 Effect | Name | Usable? | Notes 52 Effect | Name | Usable? | Notes
40 -------|-------------------|----------------------|------- 53 -------|-------------------|----------------------|-------
41 `0xy` | Arpeggio | <b class="y">Yes</b> | Technically you can use this, but 1) you would have to use it on many rows consecutively, and 2) you can just use the offset column instead. 54 `0xy` | Arpeggio | <b class="y">Yes</b> | Technically you can use this, but 1) you would have to use it on many rows consecutively, and 2) you can just use the offset column instead.
42 `1xx` | Portamento up | <b class="y">Yes</b> | The "units" are finer than semitones, so this can be used to increase granularity; it is reset on the following row, however. 55 `1xx` | Portamento up | <b class="y">Yes</b> | The "units" are finer than semitones, so this can be used to increase granularity
43 `2xx` | Portamento down | <b class="y">Yes</b> | Same as above. 56 `2xx` | Portamento down | <b class="y">Yes</b> | Same as above.
44 `3xx` | Tone portamento | <b class="n">No</b> | There is no "target note" in the first place. 57 `3xx` | Tone portamento | <b class="n">No</b> | There is no "target note" in the first place.
45 `4xy` | Vibrato | <b class="y">Yes</b> | This can give finer control than the offset column, but you will have to use this effect on many consecutive rows, and the portamento effects may work better in the first place. 58 `4xy` | Vibrato | <b class="y">Yes</b> | This can give finer control than the offset column, but you will have to use this effect on many consecutive rows, and the portamento effects may work better in the first place.