# 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"