/usr/share/openmsx/scripts/reverse.tcl is in openmsx-data 0.10.0-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | namespace eval reverse {
variable is_dingoo [string match *-dingux* $::tcl_platform(osVersion)]
variable is_android [string match android "[openmsx_info platform]"]
variable default_auto_enable_reverse
if {$is_dingoo || $is_android} {
set default_auto_enable_reverse "off"
} else {
set default_auto_enable_reverse "gui"
}
proc after_switch {} {
# enabling reverse could fail if the active machine is an 'empty'
# machine (e.g. because the last machine is removed or because
# you explictly switch to an empty machine)
catch {
if {$::auto_enable_reverse eq "on"} {
auto_enable
} elseif {$::auto_enable_reverse eq "gui"} {
reverse_widgets::enable_reversebar false
}
}
after machine_switch [namespace code after_switch]
}
} ;# namespace reverse
user_setting create string "auto_enable_reverse" \
{Controls whether the reverse feature is automatically enabled on startup.
Internally the reverse feature takes regular snapshots of the MSX state,
this has a (small) cost in memory and in performance. On small systems you
don't want this cost, so we don't enable the reverse feature by default.
Possible values for this setting:
off Reverse not enabled on startup
on Reverse enabled on startup
gui Reverse + reverse_bar enabled (see 'help toggle_reversebar')
} $reverse::default_auto_enable_reverse
user_setting create float "reversebar_fadeout_time" \
{Time it takes for the reverse bar to fade out when it's not in focus. Set to 0 for no fade out at all.
} 5.0 0.0 100.0
# TODO hack:
# The order in which the startup scripts are executed is not defined. But this
# needs to run after the load_icons script has been executed.
#
# It also needs to run after 'after boot' proc in the autoplug.tcl script. The
# reason is tricky:
# - If this runs before autoplug, then the initial snapshot (initial snapshot
# triggered by enabling reverse) does not contain the plugged cassette player
# yet.
# - Shortly after the autoplug proc runs, this will plug the cassetteplayer.
# This plug command will be recorded in the event log. This is fine.
# - The problem is that we don't serialize information for unplugged devices
# ((only) in the initial snapshot, the cassetteplayer is not yet plugged). So
# the information about the inserted tape is lost.
# As a solution/hack, we trigger this script at emutime=0. This is after the
# autoplug script (which triggers at 'after boot'. But also this is also
# triggered when openmsx is started via a replay file from the command line
# (in such case 'after boot' is skipped).
after time 0 {reverse::after_switch}
|