-
Notifications
You must be signed in to change notification settings - Fork 83
Configuration files (.ini)
The MiST firmware has a few configuration options available, which can be set by adding a mist.ini
file to the root of the SD card. MiST itself may produce a MISTCFG.INI
file under certain conditions, like saving the joystick mapping.
The ini files are not case sensitive and can contain several sections. First of all, the file should contain a [mist]
tag at the top. It may also have a [cfg]
section for the core status word (created by the Save Settings option in the system menu).
[mist]
keyrah_mode=0
sdram64=0
scandoubler_disable=0
mouse_boot_mode=0
mouse_speed=100
joystick_ignore_hat=0
joystick_ignore_osd=0
joystick_disable_shortcuts=0
joystick0_prefer_db9=0
joystick_db9_fixed_index=0
joystick_emu_fixed_index=0
key_menu_as_rgui=0
reset_combo=0
ypbpr=0
keep_video_mode=0
led_animation=0
key_remap=04,05
key_remap=05,04
hid_button_remap=
joystick_remap=
joy_key_map=
[c16]
rom=1541KRNL
rom=KERNAL
Comments can be added after each setting by using ; e.g.:
[mist]
scandoubler_disable=0 ; leave at 0 if not sure
...
scandoubler_disable=<0|1>
Default: 0
If set to 1, some cores will disable their scandoubler to produce a 15 kHz video signal. This works better for upscalers and arcade displays. Also if you want to use a VGA-to-SCART cable with MiST, you need to set this option to 1.
Support is core specific; currently it is used by the ST, Amiga, Colecovision, Vic20 and Astrocade and several other cores. Cores not supporting this will ignore the setting.
Holding the middle button (OSD) for some seconds toggles this setting, too. This can be used to temporary switch displays without the need to edit mist.ini
.
For more details see Scart cable.
csync_disable=<0|1>
Default: 0
In 15 kHz mode, cores are producing composite sync signal on Pin 13 (Hsync), and constant high level on Pin 14. Some older, non-VGA monitor, which accepts a 15 kHz video signal doesn't work with that properly, they need separate HSync and VSync. Set this to 1 to enable these monitors to work. Core support for this setting is only at the beginning (as of Feb 2020).
sdram64=<0|1>
Default: 0
Set to 1 if your MiST/Mystica has 64MB SDRAM, 0 for stock 32MB.
Cores that support this option as of 2023-07: Minimig (Amiga).
Other cores which need 64MB (CPS2 and NeoGeo only) simply assume 64MB SDRAM. If not present, then some previously written data will be overwritten during ROM loading.
joystick0_prefer_db9=<0|1>
Default: 0
If set to 1, it disables joystick0 reordering. Default value is 0. Joystick reordering is used when one or more USB joystick devices are detected, and it moves any DB9 - connected devices to joystick numbers 3, 4, etc. When this setting is enabled, it allows use of a real Amiga or Atari DB9 mouse even if USB devices are present.
joystick_remap=<VendorID,ProductID,input mapping[,input mapping[,...]]>
Joystick remapping allows to rearrange the joystick/gamepad buttons. For more information see USB Joystick Mapping.
Since firmware 201006: to remap DB9 joysticks use the special vendor ID 00db
and product IDs 0000
for DB9 port 0 or 0001
for DB9 port 1.
joy_key_map=<joystick button code>,<USB HID keycode>
This allows you to map USB HID keycodes (keyboard keys) to a joystick button. For example to map F1 key to Joystick L2 (1000) use:
[mist]
joy_key_map=1000,3A
You can then use joystick_remap
to remap that L2 button to any button on your joystick/gamepad.
joystick_emu_fixed_index=<0|1>
Default: 0
Setting this to 1 will always emulate joystick 0 and 1 if controller emulation turned on (via Num Lock). Default is to follow the reordering of the DB9 ports.
joystick_db9_fixed_index=<0|1>
Default: 0
Setting this to 1 will prefer DB9 joysticks over USB joysticks (since firmware 200614). It's best to use it a per-core basis, since activating this setting will prevent using USB joysticks.
Allow scaling the analogue joystick range from -128..127 (0 is the center). The formula used: scaled_value = value * joystick_analog_multiplier/128 + joystick_analog_offset. The defaults are 128 and 0, thus no scaling is applied.
Recommended for minimig to play Microprose simulators:
[minimig]
joystick_analog_multiplier=20
joystick_analog_offset=-108
This will scale the analogue values to the range 0..40, with the center value of 20.
Since firmware 211207.
joystick_dead_range=<0..255>
Default: 4
This setting defines the joystick deadzone. This is the area around the center of a joystick that does not respond to movement.
Set to 0 to disable analogue joystick dead range (useful for paddles).
Since firmware 220805.
joystick_autofire_combo=<0|1|2>
Default: 0
This option defines the keyboard shortcut for autofire toggle. Set to 0 for LCTRL+LALT+KP0, 1 for LCTRL+LALT+TAB, 2 for disable autofire toggle.
When the keyboard shortcut is pressed it toggles autofire FAST - MEDIUM - SLOW - OFF. An OSD message shows the current autofire state.
Since firmware 220220.
NOTE: This option works for 8bit, MiSTery, Archie cores. For the Minimig core the keyboard shortcut is always LCTRL+LALT+KP0.
joystick_disable_swap=<0|1>
Default: 0
Set to 1 to disable the automatic swapping of joystick 0 and joystick 1.
Since firmware 240105.
led_animation=<0|1>
Default: 0
If set to 1, the four LEDs on the bottom side of the MiST V1.3+ boards (some sold in clear cases) show some Knight Rider like animation.
ypbpr=<0|1>
Default: 0
If set to 1, some cores will enable component (YPbPr) video output. For more details see YPbPr/RGsB cable. Pressing the middle button (OSD) & the right button toggles this setting, too.
keep_video_mode=<0|1>
Default: 0
If set to 1, YPbPr and/or Scandoubler modes will be preserved between cores till reset button is pressed (either on MiST board, or hard reset key combination).
key_menu_as_rgui=<0|1>
Default: 0
If set to 1, bind Menu USB key to RGUI (Right Amiga key in Minimig). For reduced keyboards without physical key.
reset_combo=<0|1|2>
Default: 0
Choose key combination for reset:
0 - LCtrl-LAlt-RAlt
1 - LCtrl-LGui-RGui (Ctrl-LAmiga-RAmiga)
2 - LCtrl-LAlt-Delete
LShift + reset key combination resets the MiST. This is the same as pressing the left button.
amiga_mod_keys=<0|1>
Default: 0
Since firmware 210525.
This option swaps the Caps Lock - LCtrl, LGui - LAlt, RAlt - RGui keys of the keyboard to resemble an Amiga keyboard:
For the correct reset key combination LCtrl-LGui-RGui (Ctrl-LAmiga-RAmiga) set reset_combo=1
.
keyrah_mode=<KeyrahVIDPID>
KeyrahVIDPID:
18d80002
: VendorID+ProductID for Keyrah v2
23418037
: VendorID+ProductID for Arduino Micro based Keyrah like AMIGA 500/1000/2000 Keyboard Interface
If set then Keyrah v2 converter will have special tweaks for convenient usage in Minimig and other cores. Please note it requires ISO US/UK type of keyboard (with two blank keys). For ANSI and localized keyboards disable all Keyrah tweaks.
mouse_boot_mode=<0|1>
Default: 0
Set to 1 to revert back to an old mouse handler which may solve compatibility issues with some mice (the default handler is much more compatible with keyboard/mouse wireless devices, though).
mouse_speed=<percentage>
Default: 100
Set to scale mouse speed in percentage (since firmware 201011).
joystick_ignore_hat=<0|1>
Default: 0
If set to 1, the firmware will revert to old behavior of using analog axes instead of the digital direction pad, which is the default behaviour for newer firmwares (since firmware 150524).
key_remap=<USB HID keycode>,<USB HID keycode>
This allows you to remap USB HID keycodes reported to the cores. For example, if you want to exchange the keys 'a' and 'b' on your keyboard you'd want to have the USB HID keycodes 04 (the USB Usage ID of the key labeled 'a') and 05
to be exchanged the mist.ini
would look like:
[mist]
key_remap=04,05
key_remap=05,04
This makes key 04 to be reported as key 05 and vice versa.
hid_button_remap=<vid>,<pid>,<offset>,<button>
Overrides the mapping of a USB HID code to a button of the MiST virtual gamepad for device with VendorID vid
and ProductID pid
. One has to know what is the bit location of buttons in the HID message, provide an offset, and then list the buttons to assign.
For more information see this post on Atari-Forum.
rom=<DOS short filename>
DOS short filename
: filename, max. 8 chars without ROM extension
Most cores allow to upload a default ROM named <corename>.rom
. For some cores like the c16 core this file
includes several ROM files. In case of the c16 this file e.g. includes the 16 kBytes floppy ROM, the 16 kBytes
kernal ROM and the 16 kBytes basic ROM. These are usually only available as seperate files and the user
would have to combine them into one file for MiST upload.
The rom
option allows to specify several file names for upload like so:
[c16]
rom=1541KRNL
rom=KERNAL
In this case a file named 1541KRNL.ROM and a file named KERNAL.ROM are uploaded. The files names must be short (max 8 characters) and they must only consist of uppercase letters and numbers. Also the .ROM extension is not explicitely specified in the ini file but appended automatically. The example above would load the 16 kBtyes 1541KRNL.ROM file and the 16 kBytes KERNAL.ROM file whenever the c16 core is being loaded.
ROMs are uploaded in the order they appear in the ini file. The ROM option should always be used in the "per core settings" as described below since the ROMs are highly core specific.
usb_storage=<0|1>
Default: 0
usb_storage=1 enables using MiST as a mass-storage device. Useful if you power your device from your computer. It's possible to mount the SD Card without removing it from MiST, makes more convenient to install new cores/updates and reduces connector/SD Card wear. The drawback is the USB port is Full Speed (12MBit/s) only, so it's not ideal for the initial installation and copying HDFs.
This feature works well with a Linux host (although a bit slow), on Windows you'll need a bit of luck: seems the MCU cannot answer fast enough, and the Windows USB stack marks it as broken. Sometimes it helps trying in another port (like on an EHCI instead of XHCI).
Since firmware 211121.
Each core may need some different settings like key remap or scandoubler enable/disable. Any option from [mist]
section can be overridden for specific core. Just add another section with core name (case-insensitive) and new value for desired setting.
Hardcoded names for specific cores: MINIMIG, ST, PACE, ARCHIE. For 8bit cores use names you see on main page of OSD on the left vertical stripe.
Example:
[minimig]
scandoubler_disable=1
Keep in mind: [mist]
section should be the first section in mist.ini
!
[minimig_config]
kick1x_memory_detection_patch=1
conf_default="68020 AGA"
;conf_1="68000 ECS"
;conf_2="68000 OCS"
;conf_3=
;conf_4=
clock_freq=0 ; 0 - choose in OSD, 1 - pal 2 - ntsc
[atarist_config]
conf_default="STe 2.06"
;conf_1="STf 1.04"
;conf_2="MSTe"
;conf_3="STeroids"
;conf_4=
kick1x_memory_detection_patch=<0|1>
Default: 1
Patches Kickstart 1.2/1.3 to detect the memory size in every boot.
conf_default=<profile name>
conf_1=<profile name>
conf_2=<profile name>
conf_3=<profile name>
conf_4=<profile name>
profile name
length: 1...10 chars.
Displays a friendly name for profiles on the save/load profile OSD page.
clock_freq=<0|1|2>
Default: 0
Setting to override Minimig master clock, since firmware 201006.
0 - choose in OSD, 1 - PAL, 2 - NTSC.
MiST FPGA - One Chip to Rule Them All
- What is it?
- FAQ
- Board overview
- Installing firmware
- Joystick mapping
- Peripherals
- Projects it is based on
- Rom Management
- Setting up a mist.ini file
- Using a custom font
- Tested Displays/Upscalers
- Troubleshooting
- Videos
- User Videos
- Getting Started
- Current core status
- Joy/Keyboard/On-board Shortcuts
- MIDI support
- SD card setup
- Startup menu
- Atari ST
- Atari ST/STe (mistery)
- Amiga
- Amstrad
- Amstrad - alternative
- Apogee/Radio86RK
- Apple I
- Apple II+
- Apple //e
- Apple Macintosh
- Acorn Archimedes
- Atari 800
- BBC Micro
- BK0011M
- Commodore PET
- Commodore VIC-20
- Commodore 64
- Commodore 16/Plus4
- Enterprise
- HT1080Z (TRS80 I clone)
- LM80C
- Mattel Aquarius
- Miles Gordon SAM Coupe
- MSX
- Ondra SPO 186
- Oric
- PC (Next186)
- PC (XT)
- Primo
- Sinclair ZX80/ZX81
- Sinclair ZX Spectrum
- Sinclair ZX Spectrum - alternative
- Sinclair ZX Spectrum Next
- Sinclair QL
- Texas Instruments TI-99/4A
- TSConf
- Vector-06C
- Videoton TVC
- Vtech Video Technology Laser 350/500/700
- Atari 2600
- Atari 5200
- Atari 7800
- Bally Astrocade
- Coleco ColecoVision
- GCE Vectrex
- Intellivision
- Nec PC Engine/TurboGrafx-16
- Nintendo Gameboy
- Nintendo NES
- Nintendo SNES
- Philips Videopac/Odyssey²
- Philips Videopac/Odyssey² - alternative
- Sega Genesis/Megadrive
- Sega Master System
- SNK Neo Geo MVS/AES