
*Main Keys:

    Ctrl+Q - Quit
    Ctrl+S - Save module
    Ctrl+R - Open existing module
    
    ALT+ENTER - Switch to fullscreen

    F1 - Help
    F2 - Pattern editor
    F3 - Instrument/SFX editor
    F4 - Wave editor
  
    F5 - Play song (with Shift for low-cpu usage)
    F6 - Play pattern
    F8 - Stop

    F11 - Order list editor & misc options
    F12 - System setup & messages

    TAB - cycle thru input fields
    Shift+TAB - cycle backward thru input fields

    ALT+1 to ALT+4 - Mute Channel (displays an X in the Channels box)
    
    Alternatively to F1 - F12 you can use CTRL+SHIFT+1 to =

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

instruments, waves and pattern names must be a 1 or 2 digit hexadecimal 
number folowed by a ':' and an optional name.
if the hex number is longer than 2 digit, not followed by a ':' or 
invalid the item wont be exported (usefull to disable/swap instruments)

instrument and soundFX names have to be valid assembler labels, that is
  - no spaces
  - letters A-Z, a-z (case sensitive)
  - numbers 0-9
  - underscore allowed '_'

valid:
"0:"
"1:snare"
"5F:intro"

invalid:
"0 piano"
" 3:jumpsfx1"
"3: jumpsfx2"
""

instruments and sound-effects are reordered on export so its fine to 
have them unordered in the instrument list

unused instrument numbers take space (8 bytes) in the instrument table, 
that is until i add song size optimizing functions
for example if two instruments are used:
"0:inst_A"
"2:inst_B"
will create an empty instrument "1:" adding 8 useless bytes in the 
instrument table.

instrument numbers are in hexadecimal ( 0123456789ABCDEF )

names will be prefixed by "SFX_" when exported (that is "1:ping" in the
tracker will become "SFX_ping EQU 1" in the exported .inc source file)

invalid names wont be exported

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*notes on gameboy particularities:

- Channel 1 is identical to channel 2 with the following exception:
  channel 1 has a frequency sweep function that channel 2 doesnt have.
  that function can be used for basedrum

- The envelope speed and direction can be changed when the channel is 
  still playing, if it reach volume zero, changing the envelope wont 
  work, instead, if the new setting is volume slide UP volume will jump 
  to 14 (0x0E) and stay there, if the new setting is volume slide DOWN, 
  volume will increase by 2 and stay there. 
  The current playing volume wont change unless the channel is 
  restarted.


*- channel 1 and 2 are square wave generator, they have:
    -volume envelope functions
    -4 pulse width settings: 0: -_______ (12%) 
                             1: --______ (25%) 
                             2: ----____ (50%) 
                             3: ------__ (75%)
    -free frequency setting of about 6 octaves wide
    -only channel 1 has a frequency sweep function 
     (slide up or down of pitch)

*- channel 3 is a digital wave loop output, it has:
    -only 4 volume settings: full (100%), half (50%), quarter (25%) 
     and silent (0%)
    -only 32 samples of 4 bits in a loop, to allow making of about 
     any waveform
    -none of the volume envelope functions
    -free frequency setting of about 6 octaves wide

*- channel 4 is a noise generator it has:
    -volume envelope functions
    -2 operating modes: 15 steps mode and 7 steps mode, 
     the 15 steps mode sounds like white noise
     the 7 steps mode sounds more like a buzz
    -limited frequency settings using 2 variables:
     X- 0 to 13
     Y- 0 to 7    (for this 0 is concidered like 0.5)

     freq = (262144Hz / Y) SHR X

     (SHR X means SHift Right (divided by '2 to the power of X') )

     X settings below 4 or 5 dont show up on the tracker because of the 
     44Khz mixing rate. the gameboy has a much higher rate so it does 
     make a difference on the console.
     overall, settings above are filtered by both the ear and 
     internal speaker&filter giving a softer white noise, but it doesnt
     sound higher pitched than a setting of 4

*volume envelope functions: (only for channels 1, 2 and 4)
     -starting volume, from 0 to 15 (0 to F)
     -volume slide Up or Down
     -number of frames for every volume changes (0 to 7)
      (60 frames per second, 16.67ms)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*Command line parameters: 
  (some options are not available on all platforms)

+      --no-gpu
  don't use gpu for scaling

+      --disable_vertex_buffer_object
  Disable OpenGL vertex buffer object
  
+      --force-power-of-two-textures
  Force textures to powers of two

+      --alsahw
  open ALSA device in hardware mode
  
+  -h, --help
  print this help
  
+      --dh
  display height in characters (default 50)
  
+      --dw
  display width in characters (default 78)
  
+      --hz
  Audio rate (default 48000)

+      --blocks
	Audio blocks per second (default 10)

+      --exec-file
  Override executable filename (URI format)
  
+      --exec-dir
  Override executable directory (URI format)
  
+      --home-dir
  Override home directory (URI format)
  
+      --startup-dir
  Override startup directory (URI format, unix="fs:/path/", 
  windows="c:/path/", with trailing slash for directories)
  
+      --home-from-exec
  Use executable directory as home directory
  
+      --startup-from-exec
  Use executable directory as startup directory

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!!
