tarted work on restoring Apple @e support.
This commit is contained in:
@@ -79,6 +79,33 @@ download_with_fallback() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internet_available() {
|
||||||
|
local targetUrl
|
||||||
|
local targetUrls=(
|
||||||
|
"https://www.gnu.org/"
|
||||||
|
"https://1.1.1.1/"
|
||||||
|
)
|
||||||
|
|
||||||
|
for targetUrl in "${targetUrls[@]}"; do
|
||||||
|
if curl -fsS --connect-timeout 5 --max-time 8 "$targetUrl" > /dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
require_internet_connection() {
|
||||||
|
local message="No internet connection detected. Configure a connection from System Settings, Internet Configuration, then try again."
|
||||||
|
|
||||||
|
if internet_available; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ui_msgbox "Game Installer" "Game Installer" "$message"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
get_remote_file_size() {
|
get_remote_file_size() {
|
||||||
local sourceUrl="$1"
|
local sourceUrl="$1"
|
||||||
local headerOutput
|
local headerOutput
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ trap finish_logging EXIT
|
|||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source "${scriptDir}/game_install_functions.sh"
|
source "${scriptDir}/game_install_functions.sh"
|
||||||
|
|
||||||
|
require_internet_connection
|
||||||
|
|
||||||
speak "Installing ${gameName}"
|
speak "Installing ${gameName}"
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${installerPath}"
|
source "${installerPath}"
|
||||||
|
|||||||
@@ -7,9 +7,157 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import curses
|
import curses
|
||||||
|
import hashlib
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import tempfile
|
||||||
|
import zipfile
|
||||||
|
from pathlib import Path
|
||||||
import speechd # Python bindings for Speech Dispatcher
|
import speechd # Python bindings for Speech Dispatcher
|
||||||
from stormux_speech_settings import load_speech_settings, save_speech_settings
|
from stormux_speech_settings import load_speech_settings, save_speech_settings
|
||||||
|
|
||||||
|
|
||||||
|
APPLE2E_CID = "QmY9fUfpexakGuq6MGn3pSLpNJxy8jW7rU79GGywBSekHY"
|
||||||
|
APPLE2E_ZIP_NAME = "apple2e.zip"
|
||||||
|
APPLE2E_ZIP_SHA256 = "5632c11d86c173f9e2a686e31542c16aafd1cc9ef3b6a3bcb5ff44a19bdd1195"
|
||||||
|
APPLE2E_SUPPORT_DIR = Path.home() / ".local" / "games" / "apple2e"
|
||||||
|
APPLE2E_CACHE_DIR = Path.home() / ".cache" / "stormux"
|
||||||
|
APPLE2E_BOOT_DISK = "Echo II - Textalker DOS 3.3.dsk"
|
||||||
|
|
||||||
|
|
||||||
|
def speak_message(message, wait=False):
|
||||||
|
flag = "-Cw" if wait else "-C"
|
||||||
|
subprocess.run(["spd-say", flag, message], check=False)
|
||||||
|
|
||||||
|
|
||||||
|
def internet_available():
|
||||||
|
"""Return True when outbound HTTPS appears available."""
|
||||||
|
targets = ("https://www.gnu.org/", "https://1.1.1.1/")
|
||||||
|
for target in targets:
|
||||||
|
result = subprocess.run(
|
||||||
|
["curl", "-fsS", "--connect-timeout", "5", "--max-time", "8", target],
|
||||||
|
stdout=subprocess.DEVNULL,
|
||||||
|
stderr=subprocess.DEVNULL,
|
||||||
|
check=False,
|
||||||
|
)
|
||||||
|
if result.returncode == 0:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def apple_support_url():
|
||||||
|
gateway = os.environ.get("ipfsGateway", "https://ipfs.stormux.org")
|
||||||
|
return f"{gateway}/ipfs/{APPLE2E_CID}?filename={APPLE2E_ZIP_NAME}"
|
||||||
|
|
||||||
|
|
||||||
|
def sha256_file(filePath):
|
||||||
|
digest = hashlib.sha256()
|
||||||
|
with open(filePath, "rb") as fileHandle:
|
||||||
|
for chunk in iter(lambda: fileHandle.read(1024 * 1024), b""):
|
||||||
|
digest.update(chunk)
|
||||||
|
return digest.hexdigest()
|
||||||
|
|
||||||
|
|
||||||
|
def download_file(sourceUrl, outputPath):
|
||||||
|
subprocess.run(
|
||||||
|
[
|
||||||
|
"curl",
|
||||||
|
"--fail",
|
||||||
|
"--show-error",
|
||||||
|
"--location",
|
||||||
|
"--connect-timeout",
|
||||||
|
"20",
|
||||||
|
"--retry",
|
||||||
|
"3",
|
||||||
|
"--retry-delay",
|
||||||
|
"2",
|
||||||
|
"--output",
|
||||||
|
str(outputPath),
|
||||||
|
sourceUrl,
|
||||||
|
],
|
||||||
|
check=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def apple_support_installed(supportDir=APPLE2E_SUPPORT_DIR):
|
||||||
|
supportDir = Path(supportDir)
|
||||||
|
return (
|
||||||
|
(supportDir / APPLE2E_BOOT_DISK).is_file()
|
||||||
|
and (supportDir / "disks").is_dir()
|
||||||
|
and any((supportDir / "disks").glob("*.dsk"))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def validate_zip_member(memberName):
|
||||||
|
memberPath = Path(memberName)
|
||||||
|
return (
|
||||||
|
not memberPath.is_absolute()
|
||||||
|
and ".." not in memberPath.parts
|
||||||
|
and len(memberPath.parts) >= 1
|
||||||
|
and memberPath.parts[0] == "apple2e"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def extract_apple_support_archive(zipPath, supportDir):
|
||||||
|
supportDir = Path(supportDir)
|
||||||
|
gamesDir = supportDir.parent
|
||||||
|
gamesDir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
with zipfile.ZipFile(zipPath) as archive:
|
||||||
|
memberNames = archive.namelist()
|
||||||
|
if not all(validate_zip_member(name) for name in memberNames):
|
||||||
|
raise RuntimeError("Apple 2e support archive contains unsafe paths.")
|
||||||
|
if f"apple2e/{APPLE2E_BOOT_DISK}" not in memberNames:
|
||||||
|
raise RuntimeError("Apple 2e support archive is missing the boot disk.")
|
||||||
|
if not any(name.startswith("apple2e/disks/") and name.lower().endswith(".dsk") for name in memberNames):
|
||||||
|
raise RuntimeError("Apple 2e support archive is missing disk images.")
|
||||||
|
|
||||||
|
tempRoot = Path(tempfile.mkdtemp(prefix="apple2e_extract_", dir=str(gamesDir)))
|
||||||
|
try:
|
||||||
|
archive.extractall(tempRoot)
|
||||||
|
extractedDir = tempRoot / "apple2e"
|
||||||
|
if supportDir.exists():
|
||||||
|
shutil.rmtree(supportDir)
|
||||||
|
shutil.move(str(extractedDir), str(supportDir))
|
||||||
|
(supportDir / ".stormux-installed").write_text("installed\n")
|
||||||
|
finally:
|
||||||
|
shutil.rmtree(tempRoot, ignore_errors=True)
|
||||||
|
|
||||||
|
|
||||||
|
def ensure_apple_support_files(
|
||||||
|
supportDir=APPLE2E_SUPPORT_DIR,
|
||||||
|
cacheDir=APPLE2E_CACHE_DIR,
|
||||||
|
speak=speak_message,
|
||||||
|
):
|
||||||
|
supportDir = Path(supportDir)
|
||||||
|
cacheDir = Path(cacheDir)
|
||||||
|
if apple_support_installed(supportDir):
|
||||||
|
return True
|
||||||
|
|
||||||
|
if not internet_available():
|
||||||
|
message = (
|
||||||
|
"No internet connection detected. Configure a connection from "
|
||||||
|
"System Settings, Internet Configuration, then open Apple 2e again."
|
||||||
|
)
|
||||||
|
print(message)
|
||||||
|
speak(message, True)
|
||||||
|
return False
|
||||||
|
|
||||||
|
cacheDir.mkdir(parents=True, exist_ok=True)
|
||||||
|
zipPath = cacheDir / APPLE2E_ZIP_NAME
|
||||||
|
|
||||||
|
speak("Apple 2e support files are not installed. Downloading them now.", True)
|
||||||
|
download_file(apple_support_url(), zipPath)
|
||||||
|
|
||||||
|
if sha256_file(zipPath) != APPLE2E_ZIP_SHA256:
|
||||||
|
zipPath.unlink(missing_ok=True)
|
||||||
|
raise RuntimeError("Apple 2e support archive failed checksum verification.")
|
||||||
|
|
||||||
|
extract_apple_support_archive(zipPath, supportDir)
|
||||||
|
speak("Apple 2e support files installed.", True)
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class VoicedDiskMenu:
|
class VoicedDiskMenu:
|
||||||
def __init__(self, title="Apple 2e Disk Menu"):
|
def __init__(self, title="Apple 2e Disk Menu"):
|
||||||
self.title = title
|
self.title = title
|
||||||
@@ -363,6 +511,9 @@ class VoicedDiskMenu:
|
|||||||
|
|
||||||
# Run the menu
|
# Run the menu
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
if not ensure_apple_support_files():
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
# Create the menu
|
# Create the menu
|
||||||
menu = VoicedDiskMenu()
|
menu = VoicedDiskMenu()
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,31 @@ progress_beep() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internet_available() {
|
||||||
|
local targetUrl
|
||||||
|
local targetUrls=(
|
||||||
|
"https://www.gnu.org/"
|
||||||
|
"https://1.1.1.1/"
|
||||||
|
)
|
||||||
|
|
||||||
|
for targetUrl in "${targetUrls[@]}"; do
|
||||||
|
if curl -fsS --connect-timeout 5 --max-time 8 "$targetUrl" > /dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
require_internet_connection() {
|
||||||
|
if internet_available; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
speak "No internet connection detected. Configure a connection from System Settings, Internet Configuration, then try again."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
# Download with progress feedback
|
# Download with progress feedback
|
||||||
download_with_progress() {
|
download_with_progress() {
|
||||||
local url="$1"
|
local url="$1"
|
||||||
@@ -192,6 +217,8 @@ auto_install() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
require_internet_connection || return 1
|
||||||
|
|
||||||
# Download and install
|
# Download and install
|
||||||
local temp_zip="/tmp/${directory}_download.zip"
|
local temp_zip="/tmp/${directory}_download.zip"
|
||||||
if download_with_progress "$url" "$temp_zip" "$name"; then
|
if download_with_progress "$url" "$temp_zip" "$name"; then
|
||||||
@@ -233,6 +260,8 @@ auto_install() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
require_internet_connection || return 1
|
||||||
|
|
||||||
# Install package
|
# Install package
|
||||||
if install_system_package "$package" "$name"; then
|
if install_system_package "$package" "$name"; then
|
||||||
speak "Installation complete"
|
speak "Installation complete"
|
||||||
|
|||||||
@@ -0,0 +1,410 @@
|
|||||||
|
#
|
||||||
|
# CORE CONFIGURATION OPTIONS
|
||||||
|
#
|
||||||
|
readconfig 1
|
||||||
|
writeconfig 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE SEARCH PATH OPTIONS
|
||||||
|
#
|
||||||
|
homepath .
|
||||||
|
rompath $HOME/.mame/roms
|
||||||
|
hashpath $HOME/.mame/hash;/usr/lib/mame/hash
|
||||||
|
samplepath $HOME/.mame/samples
|
||||||
|
artpath $HOME/.mame/artwork;/usr/lib/mame/artwork
|
||||||
|
ctrlrpath $HOME/.mame/ctrlr;/usr/lib/mame/ctrlr
|
||||||
|
inipath $HOME/.mame/ini
|
||||||
|
fontpath .
|
||||||
|
cheatpath cheat
|
||||||
|
crosshairpath crosshair
|
||||||
|
pluginspath /usr/lib/mame/plugins
|
||||||
|
languagepath $HOME/.mame/language;/usr/lib/mame/language
|
||||||
|
swpath software
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE OUTPUT DIRECTORY OPTIONS
|
||||||
|
#
|
||||||
|
cfg_directory $HOME/.mame/cfg
|
||||||
|
nvram_directory $HOME/.mame/nvram
|
||||||
|
input_directory $HOME/.mame/inp
|
||||||
|
state_directory $HOME/.mame/sta
|
||||||
|
snapshot_directory $HOME/.mame/snap
|
||||||
|
diff_directory $HOME/.mame/diff
|
||||||
|
comment_directory $HOME/.mame/comments
|
||||||
|
share_directory share
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE STATE/PLAYBACK OPTIONS
|
||||||
|
#
|
||||||
|
state
|
||||||
|
autosave 0
|
||||||
|
rewind 0
|
||||||
|
rewind_capacity 100
|
||||||
|
playback
|
||||||
|
record
|
||||||
|
exit_after_playback 0
|
||||||
|
mngwrite
|
||||||
|
aviwrite
|
||||||
|
wavwrite
|
||||||
|
snapname %g/%i
|
||||||
|
snapsize auto
|
||||||
|
snapview auto
|
||||||
|
snapbilinear 1
|
||||||
|
statename %g
|
||||||
|
burnin 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE PERFORMANCE OPTIONS
|
||||||
|
#
|
||||||
|
autoframeskip 0
|
||||||
|
frameskip 0
|
||||||
|
seconds_to_run 0
|
||||||
|
throttle 1
|
||||||
|
sleep 1
|
||||||
|
speed 1.0
|
||||||
|
refreshspeed 0
|
||||||
|
lowlatency 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE RENDER OPTIONS
|
||||||
|
#
|
||||||
|
keepaspect 1
|
||||||
|
unevenstretch 1
|
||||||
|
unevenstretchx 0
|
||||||
|
unevenstretchy 0
|
||||||
|
autostretchxy 0
|
||||||
|
intoverscan 0
|
||||||
|
intscalex 0
|
||||||
|
intscaley 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE ROTATION OPTIONS
|
||||||
|
#
|
||||||
|
rotate 1
|
||||||
|
ror 0
|
||||||
|
rol 0
|
||||||
|
autoror 0
|
||||||
|
autorol 0
|
||||||
|
flipx 0
|
||||||
|
flipy 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE ARTWORK OPTIONS
|
||||||
|
#
|
||||||
|
artwork_crop 0
|
||||||
|
fallback_artwork
|
||||||
|
override_artwork
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE SCREEN OPTIONS
|
||||||
|
#
|
||||||
|
brightness 1.0
|
||||||
|
contrast 1.0
|
||||||
|
gamma 1.0
|
||||||
|
pause_brightness 0.65
|
||||||
|
effect none
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE VECTOR OPTIONS
|
||||||
|
#
|
||||||
|
beam_width_min 1.0
|
||||||
|
beam_width_max 1.0
|
||||||
|
beam_dot_size 1.0
|
||||||
|
beam_intensity_weight 0
|
||||||
|
flicker 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE SOUND OPTIONS
|
||||||
|
#
|
||||||
|
samplerate 48000
|
||||||
|
samples 1
|
||||||
|
volume 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE INPUT OPTIONS
|
||||||
|
#
|
||||||
|
coin_lockout 1
|
||||||
|
ctrlr
|
||||||
|
mouse 0
|
||||||
|
joystick 1
|
||||||
|
lightgun 0
|
||||||
|
multikeyboard 0
|
||||||
|
multimouse 0
|
||||||
|
steadykey 0
|
||||||
|
ui_active 0
|
||||||
|
offscreen_reload 0
|
||||||
|
joystick_map auto
|
||||||
|
joystick_deadzone 0.15
|
||||||
|
joystick_saturation 0.85
|
||||||
|
joystick_threshold 0.3
|
||||||
|
natural 0
|
||||||
|
joystick_contradictory 0
|
||||||
|
coin_impulse 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE INPUT AUTOMATIC ENABLE OPTIONS
|
||||||
|
#
|
||||||
|
paddle_device keyboard
|
||||||
|
adstick_device keyboard
|
||||||
|
pedal_device keyboard
|
||||||
|
dial_device keyboard
|
||||||
|
trackball_device keyboard
|
||||||
|
lightgun_device keyboard
|
||||||
|
positional_device keyboard
|
||||||
|
mouse_device mouse
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE DEBUGGING OPTIONS
|
||||||
|
#
|
||||||
|
verbose 0
|
||||||
|
log 0
|
||||||
|
oslog 0
|
||||||
|
debug 0
|
||||||
|
update_in_pause 0
|
||||||
|
debugscript
|
||||||
|
debuglog 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE COMM OPTIONS
|
||||||
|
#
|
||||||
|
comm_localhost 0.0.0.0
|
||||||
|
comm_localport 15112
|
||||||
|
comm_remotehost 127.0.0.1
|
||||||
|
comm_remoteport 15112
|
||||||
|
comm_framesync 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# CORE MISC OPTIONS
|
||||||
|
#
|
||||||
|
drc 1
|
||||||
|
drc_use_c 0
|
||||||
|
drc_log_uml 0
|
||||||
|
drc_log_native 0
|
||||||
|
bios
|
||||||
|
cheat 0
|
||||||
|
skip_gameinfo 0
|
||||||
|
uifont default
|
||||||
|
ui cabinet
|
||||||
|
ramsize
|
||||||
|
confirm_quit 0
|
||||||
|
ui_mouse 1
|
||||||
|
language
|
||||||
|
nvram_save 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCRIPTING OPTIONS
|
||||||
|
#
|
||||||
|
autoboot_command
|
||||||
|
autoboot_delay 0
|
||||||
|
autoboot_script
|
||||||
|
console 0
|
||||||
|
plugins 1
|
||||||
|
plugin
|
||||||
|
noplugin
|
||||||
|
|
||||||
|
#
|
||||||
|
# HTTP SERVER OPTIONS
|
||||||
|
#
|
||||||
|
http 0
|
||||||
|
http_port 8080
|
||||||
|
http_root web
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD INPUT MAPPING OPTIONS
|
||||||
|
#
|
||||||
|
uimodekey auto
|
||||||
|
controller_map none
|
||||||
|
background_input 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD FONT OPTIONS
|
||||||
|
#
|
||||||
|
uifontprovider auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD OUTPUT OPTIONS
|
||||||
|
#
|
||||||
|
output auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD INPUT OPTIONS
|
||||||
|
#
|
||||||
|
keyboardprovider auto
|
||||||
|
mouseprovider auto
|
||||||
|
lightgunprovider auto
|
||||||
|
joystickprovider auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD DEBUGGING OPTIONS
|
||||||
|
#
|
||||||
|
debugger auto
|
||||||
|
debugger_host localhost
|
||||||
|
debugger_port 23946
|
||||||
|
debugger_font auto
|
||||||
|
debugger_font_size 0
|
||||||
|
watchdog 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD PERFORMANCE OPTIONS
|
||||||
|
#
|
||||||
|
numprocessors auto
|
||||||
|
bench 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD VIDEO OPTIONS
|
||||||
|
#
|
||||||
|
video opengl
|
||||||
|
numscreens 1
|
||||||
|
window 0
|
||||||
|
maximize 1
|
||||||
|
waitvsync 0
|
||||||
|
syncrefresh 0
|
||||||
|
monitorprovider auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD PER-WINDOW VIDEO OPTIONS
|
||||||
|
#
|
||||||
|
screen auto
|
||||||
|
aspect auto
|
||||||
|
resolution auto
|
||||||
|
view auto
|
||||||
|
screen0 auto
|
||||||
|
aspect0 auto
|
||||||
|
resolution0 auto
|
||||||
|
view0 auto
|
||||||
|
screen1 auto
|
||||||
|
aspect1 auto
|
||||||
|
resolution1 auto
|
||||||
|
view1 auto
|
||||||
|
screen2 auto
|
||||||
|
aspect2 auto
|
||||||
|
resolution2 auto
|
||||||
|
view2 auto
|
||||||
|
screen3 auto
|
||||||
|
aspect3 auto
|
||||||
|
resolution3 auto
|
||||||
|
view3 auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD FULL SCREEN OPTIONS
|
||||||
|
#
|
||||||
|
switchres 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD ACCELERATED VIDEO OPTIONS
|
||||||
|
#
|
||||||
|
filter 1
|
||||||
|
prescale 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# OpenGL-SPECIFIC OPTIONS
|
||||||
|
#
|
||||||
|
gl_forcepow2texture 0
|
||||||
|
gl_notexturerect 0
|
||||||
|
gl_vbo 1
|
||||||
|
gl_pbo 1
|
||||||
|
gl_glsl 0
|
||||||
|
gl_glsl_filter 1
|
||||||
|
glsl_shader_mame0 none
|
||||||
|
glsl_shader_mame1 none
|
||||||
|
glsl_shader_mame2 none
|
||||||
|
glsl_shader_mame3 none
|
||||||
|
glsl_shader_mame4 none
|
||||||
|
glsl_shader_mame5 none
|
||||||
|
glsl_shader_mame6 none
|
||||||
|
glsl_shader_mame7 none
|
||||||
|
glsl_shader_mame8 none
|
||||||
|
glsl_shader_mame9 none
|
||||||
|
glsl_shader_screen0 none
|
||||||
|
glsl_shader_screen1 none
|
||||||
|
glsl_shader_screen2 none
|
||||||
|
glsl_shader_screen3 none
|
||||||
|
glsl_shader_screen4 none
|
||||||
|
glsl_shader_screen5 none
|
||||||
|
glsl_shader_screen6 none
|
||||||
|
glsl_shader_screen7 none
|
||||||
|
glsl_shader_screen8 none
|
||||||
|
glsl_shader_screen9 none
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD SOUND OPTIONS
|
||||||
|
#
|
||||||
|
sound auto
|
||||||
|
audio_latency 0.0
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD MIDI OPTIONS
|
||||||
|
#
|
||||||
|
midiprovider auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# OSD EMULATED NETWORKING OPTIONS
|
||||||
|
#
|
||||||
|
networkprovider auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# BGFX POST-PROCESSING OPTIONS
|
||||||
|
#
|
||||||
|
bgfx_path $HOME/.mame/bgfx;/usr/lib/mame/bgfx
|
||||||
|
bgfx_backend auto
|
||||||
|
bgfx_debug 0
|
||||||
|
bgfx_screen_chains
|
||||||
|
bgfx_shadow_mask slot-mask.png
|
||||||
|
bgfx_lut lut-default.png
|
||||||
|
bgfx_avi_name auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL PERFORMANCE OPTIONS
|
||||||
|
#
|
||||||
|
sdlvideofps 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL VIDEO OPTIONS
|
||||||
|
#
|
||||||
|
centerh 1
|
||||||
|
centerv 1
|
||||||
|
scalemode none
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL FULL SCREEN OPTIONS
|
||||||
|
#
|
||||||
|
useallheads 0
|
||||||
|
attach_window
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL KEYBOARD MAPPING
|
||||||
|
#
|
||||||
|
keymap 0
|
||||||
|
keymap_file keymap.dat
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL INPUT OPTIONS
|
||||||
|
#
|
||||||
|
enable_touch 0
|
||||||
|
sixaxis 0
|
||||||
|
dual_lightgun 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL LIGHTGUN MAPPING
|
||||||
|
#
|
||||||
|
lightgun_index1 auto
|
||||||
|
lightgun_index2 auto
|
||||||
|
lightgun_index3 auto
|
||||||
|
lightgun_index4 auto
|
||||||
|
lightgun_index5 auto
|
||||||
|
lightgun_index6 auto
|
||||||
|
lightgun_index7 auto
|
||||||
|
lightgun_index8 auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDL LOW-LEVEL DRIVER OPTIONS
|
||||||
|
#
|
||||||
|
videodriver auto
|
||||||
|
renderdriver auto
|
||||||
|
audiodriver auto
|
||||||
|
gl_lib auto
|
||||||
|
|
||||||
|
#
|
||||||
|
# FRONTEND COMMAND OPTIONS
|
||||||
|
#
|
||||||
|
dtd 1
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# PLUGINS OPTIONS
|
||||||
|
#
|
||||||
|
console 0
|
||||||
|
cheat 0
|
||||||
|
inputmacro 0
|
||||||
|
timecode 0
|
||||||
|
discord 0
|
||||||
|
hiscore 0
|
||||||
|
data 1
|
||||||
|
layout 1
|
||||||
|
cheatfind 0
|
||||||
|
autofire 0
|
||||||
|
dummy 0
|
||||||
|
timer 0
|
||||||
|
gdbstub 0
|
||||||
|
portname 0
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
#
|
||||||
|
# UI SEARCH PATH OPTIONS
|
||||||
|
#
|
||||||
|
historypath history;dats;.
|
||||||
|
categorypath folders
|
||||||
|
cabinets_directory cabinets;cabdevs
|
||||||
|
cpanels_directory cpanel
|
||||||
|
pcbs_directory pcb
|
||||||
|
flyers_directory flyers
|
||||||
|
titles_directory titles
|
||||||
|
ends_directory ends
|
||||||
|
marquees_directory marquees
|
||||||
|
artwork_preview_directory "artwork preview;artpreview"
|
||||||
|
bosses_directory bosses
|
||||||
|
logos_directory logo
|
||||||
|
scores_directory scores
|
||||||
|
versus_directory versus
|
||||||
|
gameover_directory gameover
|
||||||
|
howto_directory howto
|
||||||
|
select_directory select
|
||||||
|
icons_directory icons
|
||||||
|
covers_directory covers
|
||||||
|
ui_path ui
|
||||||
|
|
||||||
|
#
|
||||||
|
# UI MISC OPTIONS
|
||||||
|
#
|
||||||
|
system_names
|
||||||
|
skip_warnings 0
|
||||||
|
unthrottle_mute 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# UI OPTIONS
|
||||||
|
#
|
||||||
|
infos_text_size 0.75
|
||||||
|
font_rows 30
|
||||||
|
ui_border_color ffffffff
|
||||||
|
ui_bg_color ef101030
|
||||||
|
ui_clone_color ff808080
|
||||||
|
ui_dipsw_color ffffff00
|
||||||
|
ui_gfxviewer_color ef101030
|
||||||
|
ui_mousedown_bg_color b0606000
|
||||||
|
ui_mousedown_color ffffff80
|
||||||
|
ui_mouseover_bg_color 70404000
|
||||||
|
ui_mouseover_color ffffff80
|
||||||
|
ui_selected_bg_color ef808000
|
||||||
|
ui_selected_color ffffff00
|
||||||
|
ui_slider_color ffffffff
|
||||||
|
ui_subitem_color ffffffff
|
||||||
|
ui_text_bg_color ef000000
|
||||||
|
ui_text_color ffffffff
|
||||||
|
ui_unavail_color ff404040
|
||||||
|
|
||||||
|
#
|
||||||
|
# SYSTEM/SOFTWARE SELECTION MENU OPTIONS
|
||||||
|
#
|
||||||
|
hide_main_panel 0
|
||||||
|
use_background 1
|
||||||
|
skip_biosmenu 0
|
||||||
|
skip_partsmenu 0
|
||||||
|
remember_last 1
|
||||||
|
last_used_machine
|
||||||
|
last_used_filter
|
||||||
|
system_right_panel image
|
||||||
|
software_right_panel image
|
||||||
|
system_right_image snap
|
||||||
|
software_right_image snap
|
||||||
|
enlarge_snaps 1
|
||||||
|
forced4x3 1
|
||||||
|
info_audit_enabled 0
|
||||||
|
hide_romless 1
|
||||||
Reference in New Issue
Block a user