/usr/share/openmsx/scripts/psg_profile.tcl is in openmsx-data 0.8.2-2.1.
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | namespace eval psg_profile {
set_help_text psg_profile \
{Select a PSG sound profile.
Usage:
psg_profile Shows the current profile
psg_profile -list Shows the possible profiles
psg_profile <profile> Select a new profile
}
variable psg_settings {::PSG_vibrato_percent ::PSG_vibrato_frequency
::PSG_detune_percent ::PSG_detune_frequency}
variable psg_profiles [dict create \
normal { 0.0 - 0.0 - } \
vibrato { 1.0 5.0 0.0 - } \
detune { 0.0 - 0.5 5.0 } \
detune_vibrato { 1.0 5.0 0.5 5.0 }]
set_tabcompletion_proc psg_profile [namespace code tab_psg_profile]
proc tab_psg_profile {args} {
variable psg_profiles
set result [dict keys $psg_profiles]
lappend result "-list"
}
proc equal_psg_profile {values} {
variable psg_settings
foreach setting $psg_settings value $values {
if {$value ne "-"} {
if {[set $setting] != $value} {
return false
}
}
}
return true
}
proc get_psg_profile {} {
variable psg_settings
set result [list]
foreach setting $psg_settings {
lappend result [set $setting]
}
return $result
}
proc set_psg_profile {values} {
variable psg_settings
foreach setting $psg_settings value $values {
if {$value ne "-"} {
set $setting $value
}
}
}
proc psg_profile {{profile ""}} {
variable psg_profiles
if {$profile eq ""} {
dict for {name value} $psg_profiles {
if {[equal_psg_profile $value]} {
return $name
}
}
return "Custom profile: [get_psg_profile]"
} elseif {$profile eq "-list"} {
return [dict keys $psg_profiles]
} else {
if {![dict exists $psg_profiles $profile]} {
error "No such profile: $profile"
}
set_psg_profile [dict get $psg_profiles $profile]
}
}
namespace export psg_profile
} ;# namespace psg_profile
namespace import psg_profile::*
|