DocIni - mist-devel/mist-board GitHub Wiki

Using mist.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.

Overall the file should contain a [mist] tag at the top:

[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
...

Description

scandoubler_disable

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

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

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

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

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

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

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

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.

joystick_analog_multiplier

joystick_analog_offset

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

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

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

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

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

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

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

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

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

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:

Keyboard layout with amiga_mod_keys

For the correct reset key combination LCtrl-LGui-RGui (Ctrl-LAmiga-RAmiga) set reset_combo=1.

keyrah_mode

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

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

mouse_speed=<percentage>

Default: 100

Set to scale mouse speed in percentage (since firmware 201011).

joystick_ignore_hat

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

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

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

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

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.

Per core settings override

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!

Special sections for Minimig and Atari ST

[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

kick1x_memory_detection_patch=<0|1>

Default: 1

Patches Kickstart 1.2/1.3 to detect the memory size in every boot.

conf_XXX

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

clock_freq=<0|1|2>

Default: 0

Setting to override Minimig master clock, since firmware 201006.

0 - choose in OSD, 1 - PAL, 2 - NTSC.

⚠️ **GitHub.com Fallback** ⚠️