martypc/martypc.toml

195 lines
6.5 KiB
TOML

# martypc.toml
# Version 0.1.3
# Configuration file for the MartyPC emulator.
[emulator]
# ----------------------------------------------------------------------------
# General emulator options
# ----------------------------------------------------------------------------
# Base emulator data folder.
basedir = "/opt/martypc/"
# Power on the emulated machine on startup (only applicable in gui mode)
auto_poweron = true
# Run the emulator without gui
headless = false
# Run the instruction fuzzer (requires validator feature)
fuzzer = false
# Do aspect correction to convert display buffer to 4:3. May introduce some
# resampling blur. This can be toggled on/off in options menu.
correct_aspect = 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 intended to
# do so and don't want the nag. Unfortunately, 'cargo build' makes a debug
# build by default...
debug_warn = true
# Don't load BIOS if true (not useful on its own)
no_bios = false
# 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
# ----------------------------------------------------------------------------
# Debug 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" -> Perform per-instruction traces (slow, big)
# "Cycle" -> Perform per-cycle traces (slowest, biggest)
# >>> WARNING: This will quickly make multi-gigabyte files.
#
# Additionally, a valid value for trace_file must be supplied.
#
trace_on = false
trace_mode = "Cycle"
#trace_file = "./traces/instr_trace.log"
# Enable Video tracing. Video device may log memory and register read/writes.
#video_trace_file = "./traces/video_trace.log"
# Enable Video frame debugging. This will display the entire video field
# including overscan and blanking periods for cards that support Direct
# rendering (CGA only for now)
video_frame_debug = false
# Enable PIT output save to file. All samples from PIT will be saved to disk.
# >>> WARNING: This will quickly make multi-gigabyte files.
#pit_output_file = "./traces/pit_output.pcm"
# Use emulator service interrupt to trigger PIT output writing
#pit_output_int_trigger = true
[gui]
# ----------------------------------------------------------------------------
# GUI options
# ----------------------------------------------------------------------------
# Disable the GUI entirely. Use autostart=true or you'll have no way to start
# the machine.
gui_disabled = false
# Specify the base color for GUI control theme. Ideally use something dark and
# desaturated. Comment out for default EGUI theme.
#theme_color = 0x382D59 # Marty purple
theme_color = 0x2D4859 # Alt blue
[cpu]
# ----------------------------------------------------------------------------
# Various CPU related options.
# ----------------------------------------------------------------------------
# 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_enabled = 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
# Whether to enable instruction history by default. This slows down the
# emulator a modest amount when enabled.
instruction_history = false
[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
[machine]
# Machine info
# ----------------------------------------------------------------------------
# Emulated machine model type.
# ----------------------------------------------------------------------------
# Valid options for model are:
# "IBM_PC_5150"
# "IBM_XT_5160"
#model = "IBM_PC_5150"
model = "IBM_XT_5160"
# ROM Override
# ----------------------------------------------------------------------------
# Specify a specific BIOS to load. This overrides MartyPC's ROM autodetection.
# This feature is intended for advanced users. The address will depend on the
# ROM loaded. Please indicate if you are using this feature if you need to
# report issues.
# Values for 'org' include
# Normal,
# Reversed,
# InterleavedEven,
# InterleavedOdd
#rom_override = [
# { path = "./roms/BIOS_5160_09MAY86_U19_62X0819_68X4370_27256_F000.BIN", address = 0xF0000, offset=0, org="Normal" },
# { path = "./roms/BIOS_5160_09MAY86_U18_59X7268_62X0890_27256_F800.BIN", address = 0xF8000, offset=0, org="Normal" }
#]
# Used by web player. Do not modify.
raw_rom = false
# 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 = true
# Video card type.
# ----------------------------------------------------------------------------
# Valid options for video are:
# "CGA"
video = "CGA"
# Emulate a composite monitor? Only meaningful for CGA.
composite = false
# Hard Disk Controller Type
# ----------------------------------------------------------------------------
# Valid options for hard disk controller are:
# "None" - No hard disk controller will be present
# "Xebec" - Emulates the IBM/Xebec 20MB Fixed Disk Controller
#hdc = "None"
hdc = "Xebec"
#will assign letter in sequence with number
#0=c, 1=d, 2=e, and so forth...
drive0 = "cmsdos5.vhd"
drive1 = "dmsdos5.vhd"
# as of 0.13.1 - only supports 2 hd's
#drive2 = "emsdos5.vhd"
# 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"