620 lines
24 KiB
TOML
620 lines
24 KiB
TOML
# martypc.toml
|
|
# Main configuration file for the MartyPC emulator
|
|
#
|
|
[meta]
|
|
file_type = "main_config"
|
|
config_version = "0.2"
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Machine Options
|
|
#
|
|
# Items specific to machine configuration are listed here first for
|
|
# convenience, as they are usually the first thing people want to change.
|
|
#
|
|
# General emulator options are given in [emulator] below.
|
|
# ----------------------------------------------------------------------------
|
|
[machine]
|
|
# Specify the name of a machine configuration to load. Valid config_names
|
|
# are defined via machine configuration profiles in the /configs/machines
|
|
# directory.
|
|
#config_name = "ibm5160"
|
|
config_name = "ibm5160_hdd"
|
|
|
|
# Specify configuration overlays to load on top of machine configuration.
|
|
# Config overlays are a convenient way to swap or add to a base config.
|
|
# The 'ega' overlay will add an EGA card to a system that defaults to
|
|
# MDA or CGA, for example.
|
|
#
|
|
# - See 'machine_config_overlays.toml' for more examples, or define your own.
|
|
#config_overlays = ["ega"]
|
|
|
|
# Prefer OEM ROMs over other compatible ROMs, if present. Default: true.
|
|
prefer_oem = true
|
|
|
|
# Reload ROMs from disk when system is hard-rebooted (not ctrl-alt-del)
|
|
reload_roms = true
|
|
|
|
# Apply ROM patches defined in ROM sets. Disable this for authenticity
|
|
# as some patches may speed up boot time.
|
|
patch_roms = true
|
|
|
|
# Don't load any ROMs if true. Default: false
|
|
#no_roms = true
|
|
|
|
# Enable disassembly recording. This is similar to CPU instruction history,
|
|
# but records the disassembly of each instruction executed, sorted by
|
|
# address. This builds a disassembly listing of the program as it runs.
|
|
disassembly_recording = false
|
|
|
|
# Filename to save diassembly recording to.
|
|
# This will be saved in the 'traces' directory
|
|
disassembly_file = "disassembly.lst"
|
|
|
|
# Enable a console debugging port. Writes to this port will be printed to the
|
|
# host terminal. ESC bytes (0x1B) will be filtered to avoid terminal abuse.
|
|
#terminal_port = 0xE9
|
|
|
|
# Turbo Button
|
|
# ----------------------------------------------------------------------------
|
|
# Change the clock divisor/multiplier for the CPU to run the CPU faster than
|
|
# normal. Other devices like the timer will continue to run at the same rate.
|
|
#
|
|
# On IBM PC/XT, turbo increases CPU clock from 4.77Mhz to 7.16Mhz.
|
|
turbo = false
|
|
|
|
# Emulate phase offset of PIT vs CPU. Don't change this if you don't know why
|
|
# you would want to do that.
|
|
pit_phase = 0
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Input options
|
|
# ----------------------------------------------------------------------------
|
|
[machine.input]
|
|
# Keyboard layouts are normally specified in machine configurations. You can
|
|
# override the keyboard layout here. Easier than editing all your machines.
|
|
# A keyboard mapping file compatible with the specified layout and keyboard
|
|
# type must be present.
|
|
|
|
keyboard_layout = "US"
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# CPU Options
|
|
# ----------------------------------------------------------------------------
|
|
[machine.cpu]
|
|
|
|
# Enable CPU wait states. This includes wait states from DMA, memory access
|
|
# and device IO. Setting this to false may speed up the CPU, but reduce
|
|
# accuracy (Area 5150 will break)
|
|
wait_states = true
|
|
|
|
# Attempt to detect when the CPU is executing invalid instructions and halt.
|
|
# May need to disable for certain test programs like acid88
|
|
off_rails_detection = false
|
|
|
|
# What to do when the CPU has entered an unrecoverable halt condition.
|
|
# Valid options are:
|
|
# Continue - Do nothing; just keep running
|
|
# Warn - Keep running, but display a warning notification
|
|
# Stop - Stop the system and display a warning notification
|
|
on_halt = "Warn"
|
|
|
|
# Enable instruction history. This slows down the emulator a modest amount
|
|
# when enabled. Only enable if debugging.
|
|
instruction_history = false
|
|
|
|
# Enable MartyPC's internal emulator serivce interrupt at 0xFC. You may need
|
|
# to disable this if conflicts arise. 'mdebug.com' requires this to be set
|
|
# true.
|
|
service_interrupt = true
|
|
|
|
# CPU Tracing Options
|
|
# ----------------------------------------------------------------------------
|
|
# CPU tracing may be enabled by specifying trace_mode
|
|
# Tracing does not begin unless trace_on == true or set in GUI
|
|
#
|
|
# Valid values for trace_mode:
|
|
# Instruction - Output per-instruction traces (slow, big)
|
|
# CycleText - Output per-cycle traces, text format (very slow, huge)
|
|
# CycleCsv - Output per-cycle traces, text/csv format (recommended)
|
|
# CycleSigrok - Output per-cycle traces, sigrok csv format (very slow, huge)
|
|
# Designed for import into sigrok PulseView for debugging.
|
|
# Use an import string of t,x20,l,l,x2,x3,l,l,l,l,l,l
|
|
|
|
# >>> WARNING: Any of these options will quickly make multi-gigabyte files <<<
|
|
#
|
|
# Additionally, a valid value for trace_file must be supplied.
|
|
#
|
|
trace_on = false
|
|
#trace_mode = "Instruction"
|
|
trace_mode = "CycleSigrok"
|
|
trace_file = "cycle_trace.log"
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Emulator paths
|
|
#
|
|
# By default, emulator paths are defined as relative to the base_dir path.
|
|
# If $base_dir$ is omitted from a path specifier, then that patch becomes
|
|
# an absolute path.
|
|
# Each path entry must be defined on a single line due to TOML grammar.
|
|
#
|
|
# Multiple entries for the same resource string can be defined for the
|
|
# following resources:
|
|
#
|
|
# hdd - MartyPC will search all defined paths for valid VHD images.
|
|
# rom - MartyPC will search all defined paths for valid ROMs.
|
|
# floppy - MartyPC will search all defined paths for valid floppy images.
|
|
# ----------------------------------------------------------------------------
|
|
[emulator]
|
|
# basedir: Base emulator data directory.
|
|
# Other emulator paths can be set as absolute paths, or relative to
|
|
# basedir with $basedir$
|
|
# The default is ".", effecting a portable installation with all
|
|
# directories relative to the current working directory.
|
|
basedir = "/home/gmgauthier/Retro/marty"
|
|
paths = [
|
|
{ resource = "machine", path = "$basedir$/configs/machines", recurse = true },
|
|
{ resource = "keyboard_layout", path = "$basedir$/configs/keyboard_layouts", recurse = false },
|
|
{ resource = "rom", path = "$basedir$/media/roms", recurse = true },
|
|
{ resource = "hdd", path = "$basedir$/media/hdds", recurse = true },
|
|
{ resource = "floppy", path = "$basedir$/media/floppies", recurse = true, create = true },
|
|
{ resource = "cartridge", path = "$basedir$/media/cartridges", recurse = true, create = true },
|
|
{ resource = "cassette", path = "$basedir$/media/cassettes", recurse = true, create = true },
|
|
{ resource = "dump", path = "$basedir$/output/dumps", create = true },
|
|
{ resource = "trace", path = "$basedir$/output/traces", create = true },
|
|
{ resource = "screenshot", path = "$basedir$/output/screenshots", create = true },
|
|
]
|
|
|
|
# Exclude any matching directories from recursion. Useful for temporarily
|
|
# hiding files, or moving files in and out of a "library" subdir.
|
|
ignore_dirs = ["parking"]
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# General emulator options
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
# Power on the emulated machine on startup (only applicable in gui mode)
|
|
auto_poweron = true
|
|
|
|
# cpu_autostart: Run the CPU on startup - if false CPU will start paused
|
|
# (only applicable in gui mode)
|
|
cpu_autostart = true
|
|
|
|
# benchmark_mode: Run MartyPC in benchmark mode (cmdline: --benchmark-mode)
|
|
benchmark_mode = false
|
|
|
|
# headless: Run MartyPC without any windows
|
|
headless = false
|
|
|
|
# fuzzer: Run the instruction fuzzer (requires validator feature)
|
|
fuzzer = false
|
|
|
|
# title_hacks: Enable compatibility tweaks for specific software titles
|
|
title_hacks = true
|
|
|
|
# Debug mode does a few miscellaneous things.
|
|
# - CPU Autostart is disabled
|
|
# - Several debug panels are opened automatically
|
|
# - CPU Instruction history is turned on (overrides setting)
|
|
debug_mode = false
|
|
|
|
# Warn if MartyPC was compiled in debug mode. Disable this if you intend to
|
|
# do so and don't want the nag.
|
|
debug_warn = true
|
|
|
|
# Run the specified program instead of booting BIOS. The CPU reset vector will
|
|
# be set to 'run_bin_seg:run_bin_ofs'
|
|
#run_bin = "./program/a_effect.bin"
|
|
run_bin_seg = 0x1000
|
|
run_bin_ofs = 0x0000
|
|
|
|
[emulator.backend]
|
|
# Enable vsync. For wgpu frontend, I would recommend leaving this off. FIFO
|
|
# presentation mode increase latency and causes window resizing issues.
|
|
vsync = false
|
|
|
|
# There appears to be a bug in the wgpu backend that causes vertical stripes when
|
|
# running fullscreen under Intel graphics. This is a workaround for that issue, setting
|
|
# the surface size to one pixel less than fullscreen.
|
|
macos_stripe_fix = false
|
|
|
|
[emulator.audio]
|
|
# Set this to false to disable sound system initialization.
|
|
enabled = true
|
|
|
|
[emulator.media]
|
|
# Provide a list of file extensions to interpret as raw floppy sector images.
|
|
raw_sector_image_extensions = ["img", "ima", "dsk", "mnx"]
|
|
|
|
# Default state of write protection for newly loaded floppy images.
|
|
write_protect_default = false
|
|
|
|
[[emulator.media.vhd]]
|
|
# VHD to mount into drive 0 (Typically C:)
|
|
drive = 0
|
|
filename = "DRIVE_C.vhd"
|
|
|
|
[[emulator.media.vhd]]
|
|
# VHD to mount into drive 1 (Typically D:)
|
|
drive = 1
|
|
filename = "DRIVE_D.vhd"
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Debugger Options
|
|
# ----------------------------------------------------------------------------
|
|
[emulator.debugger]
|
|
# Create toast notifications for ROM checkpoints at this level.
|
|
checkpoint_notify_level = 0
|
|
# Create a toast notification when breakpoint hit
|
|
breakpoint_notify = true
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Emulator Window Options
|
|
#
|
|
# MartyPC will always have a main window, unless run headless. The main
|
|
# window can be set to display a video adapter, or not. Additional windows
|
|
# can be defined in [[emulator.window]] sections. Multiple windows can
|
|
# reference the same video card - aperture and scaling options are set
|
|
# per-window, so you can visualize an adapter's output multiple ways.
|
|
# Of course, every window you create has a cost in memory throughput and
|
|
# rendering time.
|
|
#
|
|
# At least one [[emulator.window]] section must be present. The first
|
|
# [[emulator.window]] defines the main window.
|
|
#
|
|
# A note about sizes - the real minimum size of a window is the unscaled size
|
|
# of the card's selected video aperture, which may be larger than expected
|
|
# due to overscan. If this is larger than the requested min_size, min_size
|
|
# will be ignored, the scaler will not resample downwards.
|
|
# Therefore, if you specifically want a 640x480 window, you should
|
|
# select the "Cropped" aperture.
|
|
# ----------------------------------------------------------------------------
|
|
[[emulator.window]]
|
|
# Provide a name for this window. (Required)
|
|
name = "Main GUI"
|
|
|
|
# If this parameter is provided, the window will be created at *at least*
|
|
# this size, or the video aperture resolution, whichever is higher.
|
|
# It is useful to use this value for the main window, but for secondary
|
|
# display windows, you may wish to use card_scale instead.
|
|
size = { w = 1024, h = 768 }
|
|
|
|
# If this window has a GUI menu, add the vertical height of the menu to the
|
|
# window height, and adjust the scaler to display the emulated display
|
|
# beneath it. Otherwise, if you create a 640x480 Cropped main window,
|
|
# the menu bar will overlap the top of image unless the GUI is hidden.
|
|
menu_adjust = true
|
|
|
|
# If set to false, the window cannot be resized by the user. It may still
|
|
# resize if the associated video card changes resolutions or the display
|
|
# aperture is changed.
|
|
resizable = true
|
|
|
|
# If this field is present, the window will display the specified card in its
|
|
# client area. If you do not want the window to display a card, comment this
|
|
# out.
|
|
# card_id is the numeric index of cards defined in a Machine configuration.
|
|
card_id = 0
|
|
|
|
# Size the initial window dimensions to the specified card's aperture size
|
|
# times this number.
|
|
# Setting this value overrides 'size' and 'resizable'.
|
|
#card_scale = 1
|
|
|
|
# Specify the scaler preset to use for this window. See the
|
|
# [[emulator.scaler_preset]] definitions defined below for reference.
|
|
scaler_preset = "default"
|
|
|
|
# Request that this window remain on top. Not recommended for main window.
|
|
always_on_top = false
|
|
|
|
# Second window, optional. Set 'enabled' to true to activate.
|
|
[[emulator.window]]
|
|
enabled = false
|
|
name = "Secondary Window"
|
|
size = { w = 800, h = 600 }
|
|
resizable = false
|
|
card_id = 0
|
|
card_scale = 1
|
|
scaler_preset = "Green CRT"
|
|
always_on_top = false
|
|
|
|
# Third window, optional
|
|
[[emulator.window]]
|
|
enabled = false
|
|
name = "Tertiary Window"
|
|
size = { w = 640, h = 480 }
|
|
resizable = false
|
|
card_id = 0
|
|
card_scale = 1
|
|
scaler_preset = "default"
|
|
always_on_top = false
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Emulator Scaler Presets
|
|
#
|
|
# Rather than define scaler settings for each possible window/display target,
|
|
# targets can reference a scaler preset defined here. Any number of
|
|
# [[emulator.scaler_preset]] sections can be defined, as long as the 'name'
|
|
# field is unique.
|
|
#
|
|
# At least one preset named "default" must be present.
|
|
#
|
|
# MartyPC's display pipeline for a video card has two stages - rendering
|
|
# and shading. Renderer options are listed under
|
|
# [emulator.scaler_preset.renderer] blocks. These must appear at the end
|
|
# of a scaler_preset definition.
|
|
# ----------------------------------------------------------------------------
|
|
[[emulator.scaler_preset]]
|
|
# Provide a unique name for this preset. Reference this name in window
|
|
# definitions. A name is required.
|
|
name = "default" # Default preset must exist! Do not rename.
|
|
|
|
# Specify the scaler mode to use for this window when displaying a video card.
|
|
# The default value is "Integer". This has no effect if no card_id is provided.
|
|
#
|
|
# Valid options for Scaler mode are
|
|
# Fixed - Video and shader output will be displayed at native base resolution
|
|
# Integer - Video and shader output will be scaled to the largest integer
|
|
# multiple that will fit in the window. This generally produces the
|
|
# clearest results, but can leave large black borders.
|
|
# Fit - Video will be scaled proportionally to fit the window.
|
|
# Stretch - Video will be scaled to fit the window.
|
|
mode = "Fit"
|
|
|
|
# Valid options for filter are:
|
|
# Linear - Bilinear filtering. Best results but may introduce blur.
|
|
# Nearest - Nearest neighbor filtering. Crisp, but may introduce scanline
|
|
# artifacts at non-integer scale sizes. Looks terrible with crt
|
|
# effects.
|
|
filter = "Linear"
|
|
|
|
# RGBA color to use for the 'border' area around scaler output.
|
|
# This is also used for the background color of a window with no card
|
|
# attachment.
|
|
border_color = 0x323338 # Medium gray.
|
|
|
|
# Enable or disable CRT shader effects
|
|
crt_effect = false
|
|
|
|
# Degree to which the corners of the display should be rounded, from
|
|
# 0.0 (sharp corners) to 1.0 (maximum rounding)
|
|
crt_corner_radius = 0.0
|
|
|
|
# Amount of barrel distortion from 0 (no distortion) to 1.0
|
|
crt_barrel_distortion = 0.0
|
|
|
|
# Emulated phosphor type
|
|
# Valid values are:
|
|
# Color - (default) Normal color CRT
|
|
# White - White CRT phosphors
|
|
# Green - Green CRT phosphors
|
|
# Amber - Amber CRT phosphors
|
|
crt_phosphor_type = "Color"
|
|
|
|
# Emulate scanlines?
|
|
crt_scanlines = false
|
|
|
|
# Gamma correction value (only used when crt_phosphor_type != Color)
|
|
gamma = 1.0
|
|
|
|
# Renderer options. In MartyPC a renderer is responsible for presenting data
|
|
# to the scaler for display. These options are not technically part of the
|
|
# scaler, but included in scaler presets for convenience.
|
|
[emulator.scaler_preset.renderer]
|
|
#
|
|
# display_aperture: Valid options are:
|
|
# Cropped - Display the card in the "traditional" resolution for each graphics
|
|
# mode, with no overscan. Ie, 320x200 for low resolution CGA,
|
|
# 640x350 for high resolution EGA, 640x480 for high resolution VGA
|
|
# Accurate - Display the card with overscan extents as they would appear on a
|
|
# typical CRT monitor
|
|
# Full - Display the entire overscan area
|
|
# Debug - Display the entire video field, including horizontal and vertical
|
|
# blanking periods. Helpful for debugging video code.
|
|
display_aperture = "Accurate"
|
|
|
|
# Aspect-correct scaler output to 4:3. This will make the video output more
|
|
# visually accurate to what you would see on a real monitor, but will introduce
|
|
# vertical blur if using Integer or Fixed scaling modes. This can be toggled in
|
|
# the GUI.
|
|
aspect_correction = true
|
|
|
|
# Aspect ratio to use, representing a w:h ratio. Both fields should be
|
|
# integers.
|
|
aspect_ratio = { h = 4, v = 3 }
|
|
|
|
# Emulate a composite color signal (and produce artifact color)
|
|
# Has no effect unless card type is CGA.
|
|
composite = false
|
|
|
|
# Define additional scaler presets below...
|
|
[[emulator.scaler_preset]]
|
|
name = "IBM 5153"
|
|
filter = "Linear"
|
|
border_color = 0x323338 # Medium gray.
|
|
crt_effect = true
|
|
crt_barrel_distortion = 0.2
|
|
crt_corner_radius = 0.2
|
|
crt_phosphor_type = "Color"
|
|
crt_scanlines = true
|
|
gamma = 1.0
|
|
[emulator.scaler_preset.renderer]
|
|
display_aperture = "Accurate"
|
|
aspect_correction = true
|
|
aspect_ratio = { h = 4, v = 3 }
|
|
composite = false
|
|
|
|
[[emulator.scaler_preset]]
|
|
name = "Green CRT"
|
|
filter = "Linear"
|
|
border_color = 0x323338 # Medium gray.
|
|
crt_effect = true
|
|
crt_barrel_distortion = 0.2
|
|
crt_corner_radius = 0.2
|
|
crt_phosphor_type = "Green"
|
|
crt_scanlines = true
|
|
gamma = 1.0
|
|
[emulator.scaler_preset.renderer]
|
|
display_aperture = "Accurate"
|
|
aspect_correction = true
|
|
aspect_ratio = { h = 4, v = 3 }
|
|
composite = false
|
|
|
|
[[emulator.scaler_preset]]
|
|
name = "Amber CRT"
|
|
filter = "Linear"
|
|
border_color = 0x323338 # Medium gray.
|
|
crt_effect = true
|
|
crt_barrel_distortion = 0.2
|
|
crt_corner_radius = 0.2
|
|
crt_phosphor_type = "Amber"
|
|
crt_scanlines = true
|
|
gamma = 1.0
|
|
[emulator.scaler_preset.renderer]
|
|
display_aperture = "Accurate"
|
|
aspect_correction = true
|
|
composite = false
|
|
aspect_ratio = { h = 4, v = 3 }
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# General Input Options
|
|
# ----------------------------------------------------------------------------
|
|
[emulator.input]
|
|
# Some platforms reverse the left and right mouse button id #'s.
|
|
# We try to detect this, but it can be overridden here.
|
|
reverse_mouse_buttons = false
|
|
|
|
# Define hotkeys.
|
|
# Each hotkey definition specifies an event enum and a list of keycodes. See
|
|
# one of the keyboard mapping files in /config/keyboards for a list of valid
|
|
# keycode names.
|
|
#
|
|
# scope: When is the hotkey recognized?
|
|
# "Any" - Hotkey triggers in any context
|
|
# "Gui" - Hotkey only triggers when GUI has focus
|
|
# "Machine" - Hotkey only triggers when emulated machine has focus
|
|
# "Captured" - Hotkey only triggers when emulated machine has captured input
|
|
#
|
|
# capture_disable: Disable this hotkey when input is captured. Setting this and
|
|
# the "Captured" scope will disable the hotkey
|
|
#
|
|
# Multiple events can be mapped to the same input sequence. They will all fire
|
|
# when that key sequence is pressed.
|
|
#
|
|
# Events are a bit limited at first. More hotkey events are coming in the future.
|
|
hotkeys = [
|
|
{ event = "CaptureMouse", keys = ["ControlLeft", "F10"], scope = "Any", capture_disable = false },
|
|
{ event = "CtrlAltDel", keys = ["ControlLeft", "F11"], scope = "Any", capture_disable = false },
|
|
{ event = "Reboot", keys = ["ControlLeft", "F12"], scope = "Any", capture_disable = false },
|
|
{ event = "Screenshot", keys = ["ControlLeft", "F5"], scope = "Any", capture_disable = false },
|
|
{ event = "ToggleGui", keys = ["ControlLeft", "F1"], scope = "Any", capture_disable = false },
|
|
{ event = "ToggleFullscreen", keys = ["ControlLeft", "Enter"], scope = "Any", capture_disable = false },
|
|
{ event = "DebugStepOver", keys = ["F10"], scope="Gui", capture_disable = false },
|
|
{ event = "DebugStep", keys = ["F11"], scope="Gui", capture_disable = false },
|
|
# Joystick hotkeys. Only enabled when joystick keyboard emulation is enabled.
|
|
{ event = "JoyToggle", keys = ["ControlLeft", "F9"], scope="Any", capture_disable = false },
|
|
]
|
|
|
|
# Enable keyboard -> joystick emulation. This can be toggled via the JoyToggle hotkey
|
|
# above, so it isn't necessary to set this to true unless you want it enabled by default.
|
|
keyboard_joystick = false
|
|
|
|
joystick_keys = [
|
|
{ input = "JoyButton1", key = "AltRight" },
|
|
{ input = "JoyButton2", key = "ControlRight" },
|
|
{ input = "JoyUp", key = "ArrowUp" },
|
|
{ input = "JoyLeft", key = "ArrowLeft"},
|
|
{ input = "JoyRight", key = "ArrowRight"},
|
|
{ input = "JoyDown", key = "ArrowDown" }
|
|
]
|
|
|
|
# Help the developer debug any keyboard issues you may be having. With this
|
|
# feature set to true, MartyPC will print information about every keystroke
|
|
# to the terminal.
|
|
debug_keyboard = false
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Benchmarking (not yet implemented - configs are placeholder)
|
|
# ----------------------------------------------------------------------------
|
|
[emulator.benchmark]
|
|
# Machine configuration to benchmark
|
|
config_name = "ibm5160"
|
|
config_overlays = []
|
|
prefer_oem = true
|
|
|
|
# Valid options for benchmark_end_condition are:
|
|
# "Timeout" - Benchmark for 'timeout' seconds and exit
|
|
# "Trigger" - Terminate benchmark on signal from internal service interrupt
|
|
# "Cycles" - Terminate benchmark after 'cycles' CPU cycles
|
|
end_condition = "Timeout"
|
|
timeout = 60
|
|
cycles = 572400000 # 2 minutes
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# GUI options
|
|
# ----------------------------------------------------------------------------
|
|
[gui]
|
|
|
|
# Select the color theme for the GUI.
|
|
# Valid values are:
|
|
# - DefaultLight : default EGUI Light theme
|
|
# - Lilac : light theme variant
|
|
# - Hal : light theme variant
|
|
# - DefaultDark : default EGUI Dark theme (recommended)
|
|
# - Purple : dark theme variant
|
|
# - Cobalt : dark theme variant
|
|
theme = "Purple"
|
|
|
|
# Theme for the top menu can be defined independently
|
|
menu_theme = "DefaultLight"
|
|
|
|
# Global zoom level for GUI. Smaller numbers will make all the GUI elements
|
|
# smaller. Default: 1.0 Max: 1.0 Min: 0.1
|
|
zoom = 1.0
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Options for the CPU Validator module.
|
|
# ----------------------------------------------------------------------------
|
|
# You must have an Arduino8088 connected via USB to utilize
|
|
# the validator. For more information, see
|
|
# https://github.com/dbalsom/arduino_8088
|
|
[validator]
|
|
type = "Arduino8088"
|
|
trigger_address = 0xFFFF0
|
|
trace_file = "./traces/validator_trace.log"
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# Options for JSON test facilities
|
|
# MartyPC can create JSON tests or validate them.
|
|
# ----------------------------------------------------------------------------
|
|
# Test generation requires a functioning CPU Validator module, see above
|
|
[tests]
|
|
|
|
# Valid values for test_mode are:
|
|
# None - Do not generate or validate tests (default - run emulator normally)
|
|
# Generate - generate tests based on supplied parameters
|
|
# Valdidate - validate tests
|
|
test_mode = "None"
|
|
|
|
# Random seed for testing. The same random seed should produce the same
|
|
# set of tests. If you want a different set of tests, change this to any
|
|
# other number.
|
|
test_seed = 1234
|
|
|
|
# Directory to look for / place tests
|
|
test_dir = "tests/v1"
|
|
|
|
# Opcode range to generate or validate. Provide start and end opcodes.
|
|
# If start == end, that single opcode will be generated or validated.
|
|
test_opcode_range = [0, 0]
|
|
|
|
# List of opcodes to exclude in generation or validation.
|
|
test_opcode_exclude_list = [0xF1]
|
|
|
|
# Number of tests to generate per opcode.
|
|
test_opcode_gen_count = 5000
|
|
|
|
# If true, append to existing test JSON if < test_opcode_gen_count.
|
|
# If false, generation will replace any existing JSON file.
|
|
test_opcode_gen_append = true
|