# Configuration file for MegaZeux
# December 16, 2004

# Comments begin with #. Whitespace is ignored. Empty lines are
# ignored as well.
# Options are set in the following format:
# option = value
# If value is not given, then it is assumed to be 1.
# You can include spaces in values by escaping them with \s.
# (see the default macros for examples)
# For directories, use forward slashes (/) instead of back-slashes,
# as they work more reliably.
# Note that even if the option is given to change the values
# in MZX, this text file will NOT be modified, and hence the
# values will revert to what they are here when you restart MZX.

# Default options are given (and commented out) with
# an explanation. If an option is not chosen at all
# this default will automatically be used.

### Video options ###

# Resolution MZX uses for fullscreen. Note that MZX will always
# be 640x350 centered within the resolution you choose
# (in other words, it won't be stretched). Give in x, y format.
# Use this if the default is giving you problems. Suggested
# values are 640, 400 and 640, 480.
# This resolution may not actually work; if it doesn't, you will
# get the nearest that does.
# You may also try a resolution like 640x700 that multiplies
# the width, then set the multiplier..

force_resolution = 640, 480

# Make it so the display is stretched by this amount (must be
# integer). This is useful for getting resolutions like 640x700
# to look correct (set to 2).

#force_height_multiplier = 1

# Whether MZX should start up in fullscreen or not.
# Press ctrl-alt-enterWh to toggle fullscreen as MZX runs.

fullscreen = 1
force_32bpp = 1


### Audio options ###

# Audio buffer size. Setting this to lower can improve latency,
# so audio will be heard sooner after it is set to be changed.
# It is also possible to change PC speaker effects more rapidly
# with lower values. Lower buffer sizes need more CPU power to
# process. The default is adequete for PC speaker playback every
# command at speed 4.

audio_buffer = 2048

audio_sample_rate = 44100

# Allow music to be sampled at higher precision. Increases CPU
# usage but increases audio quality as well.

#enable_oversampling = 1

# Set resampling mode. Choices are:
# none (fastest, poor quality)
# linear (fast, good quality)
# cubic (slow, great quality)
# fir (very slow, excellent quality)

resampling_mode = linear

# Whether music/samples should be played or not.
# Does not include PC speaker effects.

#music_on = 1

# Whether PC speaker effects should be played or not.

#pc_speaker_on = 1

# Volume music plays at
#music_volume = 8

# Volume samples play at
#sample_volume = 8

# Volume PC speaker SFX play at
#pc_speaker_volume = 8


### Game options ###

# Name of world file that should be loaded when MZX starts.

startup_file = megademo.mzx

# Default save file name given when you first try to save.

#save_file = saved.sav

# Speed MZX should start at (1 through 9)

mzx_speed = 5


### Robot editor options ###

# Enable or disable color coding in the editor.
# If color coding is off, ccode_string is used for the entire
# line.
#color_coding_on = 0

# Color codes for various types.
# For colors, use 255 to show a color box.
#ccode_colors = 255
#ccode_commands = 15
#ccode_conditions = 15
#ccode_current_line = 11
#ccode_directions = 3
#ccode_equalities = 0
#ccode_extras = 7
#ccode_immediates = 10
#ccode_items = 11
#ccode_params = 2
#ccode_strings = 14
#ccode_things = 11

# Whether or not "extra words" should be displayed.
# For instance, if turned on, a line like "wait 1" will
# become "wait for 1."

#disassemble_extras = 0

# The base numbers should be displayed as. Valid options
# are 10 and 16 (decimal and hexidecimal). Hex numbers are
# prefixed with a dollar sign ($).

#disassemble_base = 16

# Changing this will allow invalid comments to automatically
# be marked to "delete" or "comment" instead of "ignore".
# Don't change this unless you know what you're doing.

#default_invalid_status = ignore

# Single line macros
# These are the traditional MZX macros; they may only
# occupy one line in their definition in this file. They
# correspond to parameter-less macros: when you press
# F6 through F10 the following strings are printed to
# the editor, verbatim. For instance if you set macro_1 to
# * "hello", * "hello" will be inserted every time you
# press F6 in the robot editor.
# The following are the default singe-line macros.

#macro_1 = char\s
#macro_2 = color\s
#macro_3 = goto\s
#macro_4 = send\s
#macro_5 = :\splayershot

# Extended macros:
# See macro.txt.

# The following is an example extended macro.
# It sets up a sprite. If you find it useful, remove the #'s.

macro_5 = Sprite\sSetup
 (number255 spr_num)
 (number255 w, h, rx, ry)
 (number255 cx, cy, cw, ch)
 (number255 x, y)
 set spr!spr_num!_width !w!
 set spr!spr_num!_height !h!
 set spr!spr_num!_refx !rx!
 set spr!spr_num!_refy !ry!
 set spr!spr_num!_cwidth !cw!
 set spr!spr_num!_cheight !ch!
 set spr!spr_num!_cx !cx!
 set spr!spr_num!_cy !cy!
 put !x1! sprite p!#spr_num! !x! !y!

# Whether or not the palette should be reverted to default
# when the robot editor is load. If set, SMZX mode 0 will
# also be enforced.

#robot_editor_default_palette = 0

# Set to 1 if you want the robot editor to not show the hotkey
# help and horizontal border by default.

#robot_editor_hide_help = 0

# Backup options

# Backups are save files made in the editor. They will only be made
# while in the main editor, not while in a sub-editor or a dialogue
# box of sorts. Note that this can cause slight pauses while editing,
# as the game saves.
# If you have multiple backups you should check the modified date in
# a console or file properties to determine which was most recently
# modified. The number will not indicate most recently saved.

# How many backups to be made. Set to zero to disable backups.

#backup_count = 3

# How often (in seconds) backups should be made

#backup_interval = 180

# The name of the backup file. If you choose "backup" with 3 backups
# the backups will be named backup1.mzx, backup2.mzx, and backup3.mzx.

#backup_name = backup


# Joystick options

# It is possible to emulate key presses using a joystick. If this file
# is config.txt these options will apply as a default to all games -
# you can put them in game.cnf to apply specifically to game.mzx.

# A joystick is first specified as joyN where N is the number from
# 1 onwards identifying the joystick in your system. You may have
# to experiment to find which joystick is which number, if you have
# multiple ones, otherwise just use 1. Up to 16 joysticks are
# recognized.
# You can currently map two things, axes and buttons.
# Axes/buttons are mapped to keys given by number. You can find out
# a key's number by printing key_pressed in a loop (NOT key_code).
# Axis mapping looks as follows:

#joyXaxisY = A, B

# Where X is the number of the joystick, Y is the number of the axis
# (1 is typically left/right, 2 is typically up/down), A is the key
# for one extreme (such as left) and B is the key for the other
# (such as right).

# Button mapping looks as follows:

#joyXbuttonY = A

# Where X is the number of the joystick, Y is the number of the button
# (you may have to experiment to find out which button is which number),
# and A is the key whose press is emulated when this button is pressed.


# Misc Options

# Set to 1 if you want MZX to pause when key focus is lost. Useful for
# when another app (such as someone IM'ing you) steals the screen. This
# might cause MZX to lock up sometimes on some machines - if you have
# problems with it don't enable it.

#pause_on_unfocus = 0

# Set to 0 if you want input boxes and strings in the robot editor
# to use the game set for characters 32-127, as opposed to the protected
# GUI set.

#mask_midchars = 1

