msxbuild/lib/openmsx/share/scripts/boot_env.tcl
Willem Cazander b4d4fad185
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -5s
Split openMSX layout from artifacts and added video recorder.
2024-06-27 20:14:23 +02:00

76 lines
2.1 KiB
Tcl

# boot_env -- Sets various openMSX settings based from environment variables.
#
# Typically used in automation tools which run openMSX without human interaction.
# Supported environment variables by this script;
#
# RENDERER=SDL
# Override video output from command line.
#
# SCALE_FACTOR=3
# Override video scale factor for SDL renderer.
#
# THROTTLE=off
# Disables msx speed emulation.
#
# SPEED=400
# Sets msx speed to 4x of original but only when throttle is on.
#
# JOYPORTA=mouse
# Inserts mouse in joyporta.
#
# JOYPORTB=mouse
# Inserts mouse in joyportb.
#
# RECORD_SESSION=bin/output.avi
# Enables the session video recorder.
#
if {[info exists ::env(RENDERER)] && ([string trim $::env(RENDERER)] != "")} {
if {[catch {set renderer [string trim $::env(RENDERER)]} err_msg]} {
puts stderr "error: env.RENDERER value $err_msg"
exit 1
}
}
if {[info exists ::env(SCALE_FACTOR)] && ([string trim $::env(SCALE_FACTOR)] != "")} {
if {[catch {set scale_factor [string trim $::env(SCALE_FACTOR)]} err_msg]} {
puts stderr "error: env.SCALE_FACTOR value $err_msg"
exit 1
}
}
if {[info exists ::env(THROTTLE)] && ([string trim $::env(THROTTLE)] != "")} {
if {[catch {set throttle [string trim $::env(THROTTLE)]} err_msg]} {
puts stderr "error: env.THROTTLE value $err_msg"
exit 1
}
}
if {[info exists ::env(SPEED)] && ([string trim $::env(SPEED)] != "")} {
if {[catch {set speed [string trim $::env(SPEED)]} err_msg]} {
puts stderr "error: env.SPEED value $err_msg"
exit 1
}
}
if {[info exists ::env(JOYPORTA)] && ([string trim $::env(JOYPORTA)] != "")} {
if {[catch {plug joyporta [string trim $::env(JOYPORTA)]} err_msg]} {
puts stderr "error: env.JOYPORTA value $err_msg"
exit 1
}
}
if {[info exists ::env(JOYPORTB)] && ([string trim $::env(JOYPORTB)] != "")} {
if {[catch {plug joyportb [string trim $::env(JOYPORTB)]} err_msg]} {
puts stderr "error: env.JOYPORTB value $err_msg"
exit 1
}
}
if {[info exists ::env(RECORD_SESSION)] && ([string trim $::env(RECORD_SESSION)] != "")} {
if {[catch {after time 1 "record start [string trim $::env(RECORD_SESSION)]"} err_msg]} {
puts stderr "error: env.RECORD_SESSION value $err_msg"
exit 1
}
}