From 423da45ef3e7ff400a0f57ccd857d0a5849a076c Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sat, 12 Jul 2025 21:08:06 -0400 Subject: [PATCH] More files added. Updated game_launcher and apple launcher. --- home/stormux/.bash_profile | 47 ++++++++ home/stormux/.firstboot | 0 home/stormux/.xinitrc | 5 + home/stormux/Documents/change_log.md | 113 +++++++++++++++++++ home/stormux/Documents/contact.md | 31 +++++ home/stormux/Documents/dlna.md | 12 ++ home/stormux/Documents/game_menu_controls.md | 67 +++++++++++ home/stormux/Documents/game_notes.md | 92 +++++++++++++++ home/stormux/Documents/music_player.md | 19 ++++ home/stormux/Documents/navigating_help.md | 54 +++++++++ home/stormux/Documents/terminal.md | 18 +++ home/stormux/Documents/voices.md | 11 ++ usr/local/bin/apple_2e.py | 23 +++- usr/local/bin/game_launcher.py | 3 +- 14 files changed, 488 insertions(+), 7 deletions(-) create mode 100644 home/stormux/.bash_profile create mode 100644 home/stormux/.firstboot create mode 100644 home/stormux/Documents/change_log.md create mode 100644 home/stormux/Documents/contact.md create mode 100644 home/stormux/Documents/dlna.md create mode 100644 home/stormux/Documents/game_menu_controls.md create mode 100644 home/stormux/Documents/game_notes.md create mode 100644 home/stormux/Documents/music_player.md create mode 100644 home/stormux/Documents/navigating_help.md create mode 100644 home/stormux/Documents/terminal.md create mode 100644 home/stormux/Documents/voices.md diff --git a/home/stormux/.bash_profile b/home/stormux/.bash_profile new file mode 100644 index 0000000..aeeb8f1 --- /dev/null +++ b/home/stormux/.bash_profile @@ -0,0 +1,47 @@ +# +# ~/.bash_profile +# + +[[ -f ~/.bashrc ]] && . ~/.bashrc + +# First boot volume configuration - run before startup sound +if [[ -f ~/.firstboot ]]; then + # Initialize speech system which will start pipewire + spd-say "Configuring volume" + + # Wait for pipewire to become available + wait=0 + volume=100 + while [[ $wait -lt 30 ]]; do + if pgrep pipewire &> /dev/null ; then + wait=30 # We don't want to continue the loop + else + sleep 1 + continue + fi + while [[ $volume -le 130 ]]; do + clear + spd-say "If this is loud enough, press enter." + if read -t4 ; then + break + else + ((volume+=10)) + fi + pactl set-sink-volume @DEFAULT_SINK@ "${volume}%" + done + ((wait++)) + done + # Remove marker so this only runs once + rm -f ~/.firstboot +fi + +if ! [[ -e "/tmp/startup_complete" ]]; then + #FEXLoader ~/.fex-emu/RootFS/ArchLinux/usr/bin/speech-dispatcher + touch "/tmp/startup_complete" + play -qV0 /usr/share/sounds/stormux/start.opus +fi +if [[ "$(tty)" == "/dev/tty1" ]]; then + /usr/local/bin/diagnostics.sh + exec /usr/local/bin/game_launcher.py + exit +fi diff --git a/home/stormux/.firstboot b/home/stormux/.firstboot new file mode 100644 index 0000000..e69de29 diff --git a/home/stormux/.xinitrc b/home/stormux/.xinitrc index d7e7775..ee7444c 100755 --- a/home/stormux/.xinitrc +++ b/home/stormux/.xinitrc @@ -338,6 +338,11 @@ case "$GAME" in "https://"*) run_web "$GAME" ;; + "DISK_ONLY:"*) + DISK_PATH="${GAME#DISK_ONLY:}" + xbindkeys + exec mame apple2ee -sl1 echoii -flop1 "$DISK_PATH" -samplerate 48000 -sound pulse + ;; *".dsk") xbindkeys exec mame apple2ee -sl1 echoii -flop1 ~/.local/games/apple2e/Echo\ II\ -\ Textalker\ DOS\ 3.3.dsk -flop2 "$GAME" -samplerate 48000 -sound pulse diff --git a/home/stormux/Documents/change_log.md b/home/stormux/Documents/change_log.md new file mode 100644 index 0000000..1eb1cef --- /dev/null +++ b/home/stormux/Documents/change_log.md @@ -0,0 +1,113 @@ +# Change log for the gaming image + +Dates are given for the image. All items listed are available for the listed image version coinciding with the listed date. For example, everything listed under may 7, 2025 are available in the imaged named stormux_gaming_image-2025.05.07.img.xz. + + +## August 1, 2025 + +- Improvements to Apple 2 E +- Started work on the x86_64 version of the gaming image +- Switched to dwm-systray necessary to get blueman working +- Bluetooth configuration added to accessories + - Make sure bluetooth is enabled in system menu, then manage bluetooth devices from accessories + + +## July 1, 2025 + +- System updates +- Updated game BallBouncer to latest version +- Added game Stationfall +- Added game Planetfall +- Migrate to xlibre, the continuation of the Xorg project + - For information see https://github.com/X11Libre/xserver + + +## June 15, 2025 + +- Fixed speech-dispatcher issues which should make Voxin voice uploads work again +- Upload server improved, press any key while it is running to hear the ip and port again +- Fenrir updated, now ignores the game menu +- Latest version of fex-emu +- Updated system + + +## June 1, 2025 + +- Added Audio directory, where recordings are stored, to DLNA server paths +- Installed winetricks natively, made it much more reliable by simlinking wine from the RootFS +- Updated documentation +- Added ability to upload voxin voices and have them automatically installed. +- Updated motd to reflect this is the gaming image, not a standard Stormux image +- Added menu for speech-dispatcher module selection +- Initial install and configuration of Retroarch +- Warn if a image running from a USB drive is in the usb2 port instead of usb3. +- Check to see if trim is possible for the system, if so enable the service +- The r key now toggles on and off random mode even while music is playing. +- Fixed some bugs with the music player. +- Added game Haunted House +- Added game Mine Racer +- Added game Upheaval +- Added game Mach1 +- Added game Golf +- Added game Pong +- Added game River Raiders +- Added game Sketchbook (Your World) +- Added game Scrolling Battles +- Added game BallBouncer +- Added game Wheels of Prio +- Added game Shadow Line +- Added game Screaming Strike 2 +- Added game Super Liam. (See Game Notes in Help and Documentation) +- Added ability to record your game, bound to shift+f3. Gives count down and sound before start, plays sound when stopped. + + +## May 14, 2025 + +- Reset speech-dispatcher when escape is pressed in the game menu +- Added simple OCR program. Press alt+f5 to run ocr on the current screen. Press alt+f5 to interrupt speech if it gets too long winded. +- Added DLNA server available in system menu +- Added Brltty and Fenrir screen reader to the system menu +- Reduced enabled services +- Changed hostname to stormux-gaming +- Added ability to set default system speech rate. It is accessed from the system menu. +- Added accessories category with web browser and music player. +- Updated upload server to handle music folders, recommended artist with album subfolders. +- Added configure internet option to system menu +- Add message to game menu when it becomes active after closing a program. +- Updated documentation +- Updated the documentation system +- Added emulator Bop It Emulator +- Added game Bokurano Daibouken +- Added game Bokurano Daibouken 2 +- Added game Bokurano Daibouken 3 +- Added game Haunted Party +- Added game Kaskade +- Added game Clashes of the Sky +- Added game Battle of the Hunter +- Added game RS Games in Board and Card Games section +- Added game Manamon 2 +- Added game Villains From Beyond +- Added game Q9 +- Added game Top Speed 3 +- Added game Oh Shit +- Added game Crazy Party +- Added game Scramble +- Added game Super Egg Hunt +- Added game Challenge of the Horse +- Added game Side Party +- Added game The Blind Swordsman +- Added game Skateboarder Pro +- Added game Shooter +- Added game Rs Games (tintin++ version) +- Added game Slay the Text +- Added game BPG +- Added game Fantasy Story 2 +- Added MUD Empire MUD +- Added MUD End of Time +- Added MUD Kallisti + + +## may 7, 2025 + +- Initial image released for Patrons +- Still pre-alpha, some things are broken, but most of the main interfaces work diff --git a/home/stormux/Documents/contact.md b/home/stormux/Documents/contact.md new file mode 100644 index 0000000..981bdf7 --- /dev/null +++ b/home/stormux/Documents/contact.md @@ -0,0 +1,31 @@ +# Contacting Stormux + +Running into problems? Have questions? Just want to chat about Stormux or accessible gaming? Here's how you can reach out. + +## Mailing List + +The Stormux mailing list is a great place to ask questions, get help, or follow along with updates. You can subscribe at: + + + +## IRC (Live Chat) + +You can also join us on IRC for real-time help and discussion. + +Server: irc.stormux.org +Channels: +- #stormux For Stormux-related stuff, including the gaming image. +- #a11y General accessibility discussion and questions. +- #a11y-offtopic Anything goes here. Some content may not be safe for work. Those who are easily offended should not join this channel. + +The IRC server is public. No account or nick registration is required. Just connect and start chatting. + +If no one replies right away, don't worry. It's a small server and replies can take time, sometimes up to 24 hours. + +## Fediverse (Mastodon) + +For updates, announcements, and occasional conversation, you can follow Stormux on the Fediverse: + +https://social.stormux.org/@stormux + +Feel free to reply to posts or mention the account if you have questions or feedback. diff --git a/home/stormux/Documents/dlna.md b/home/stormux/Documents/dlna.md new file mode 100644 index 0000000..c74361f --- /dev/null +++ b/home/stormux/Documents/dlna.md @@ -0,0 +1,12 @@ +# DLNA Server + +The toggle for the server is located in the System menu. It does not stay enabled, so it will need to be turned on after each boot when you want to use it. If you are comfortable with the terminal and want it enabled permanently, you can do so from TTY2. + + sudo systemctl enable minidlna.service + + +The version of minidlna shipped with the Stormux Gaming Image has been patched to support opus files. It will serve music, videos, and pictures. Each media type is served from its corresponding folder in /home/stormux. + +Currently music can be added from the upload server. Magic-wormhole is also available on the image. Videos and pictures that are uploaded through the server will be placed in ~/Downloads and must be moved to their folders manually. + +For those who are unfamiliar with DLNA, it allows you to stream the media stored on the device with the server, in this case the Stormux Gaming image, to a DLNA compatible device such as a smart TV, a computer or phone with compatible software such as vlc, etc. diff --git a/home/stormux/Documents/game_menu_controls.md b/home/stormux/Documents/game_menu_controls.md new file mode 100644 index 0000000..45d5a04 --- /dev/null +++ b/home/stormux/Documents/game_menu_controls.md @@ -0,0 +1,67 @@ +# Using the Menus + +The menus for the game launcher are quite simple. In order to move through items in the main menu, use up, down, left and right arrows. To select an item, press enter on it. That is likely how you opened this document. There are a few more options though. Here is a list of keybindings. + + +## Game Selection Menu + +This is the menu that opens when you first boot the Raspberry pi. It also is where you are placed after closing an application or document such as this help file. + +- UpArrow: Move up an item. +- DownArrow: Move down an item. +- Enter: Activate the currently selected item. +- LeftArrow: Change category, Arcade, Text Games, Web, etc. +- RightArrow: Change category, Arcade, Text Games, Web, etc. +- 9: Decrease sysstem volume. +- 0: Increase sysstem volume. +- LeftBracket: Decrease speech rate. +- RightBracket: Increase speech rate. +- Escape: Refresh the menu. Use this if for some reason you lose speech in the menu. + + +## Apple 2e Disk Menu + +This is the menu that opens when you select "Apple 2e with Disk." + +- UpArrow: Move up an item. +- DownArrow: Move down an item. +- Enter: Activate the currently selected item. +- Escape: Close the menu. +- 9: Decrease sysstem volume. +- 0: Increase sysstem volume. +- LeftBracket: Decrease speech rate. +- RightBracket: Increase speech rate. + + +## Game Console Menu + +This is the menu that opens from the Emulators menu. It only has categories for games it can find. If there are no games, it will say "no games found," and return to the main menu. + +- UpArrow: Move up an item. +- DownArrow: Move down an item. +- Enter: Activate the currently selected item. +- LeftArrow: Change game system, Nintendo Entertainment System, Sega Master System, etc. +- RightArrow: Change game system, Nintendo Entertainment System, Sega Master System, etc. +- Escape: Close the menu. +- 9: Decrease sysstem volume. +- 0: Increase sysstem volume. +- LeftBracket: Decrease speech rate. +- RightBracket: Increase speech rate. + +## Music Player Menu + +This is a menu of music you have put on the Pi. You can use the Upload Server to add music. Recommended folder structure is artist folder/albums. So, select artist folder when uploading and it will pull in all the album subdirectories. Other formats will work, but this is the optimal layout. + +- UpArrow: Move up an album or song if in album view. +- DownArrow: Move down an album or song if in album view. +- Enter: Activate the currently selected item. If it's an album, show contents, if it's a song, play it. +- LeftArrow: Change artist view, special note, to play all music, press left once when the menu opens. +- RightArrow: Change artist view. +- q: Close the menu. +- Escape: Close the menu. +- 9: Decrease sysstem volume. +- 0: Increase sysstem volume. +- LeftBracket: Decrease speech rate. +- RightBracket: Increase speech rate. + +The main menu will announce when it has gained focus. There is a sound that plays when the image boots as well as when the image is powering down. The sound for power on always plays, but the image for power off may not play every time. This is a problem with how quickly shutdown disables things, and currently there is no reliable solution for making it work constantly. diff --git a/home/stormux/Documents/game_notes.md b/home/stormux/Documents/game_notes.md new file mode 100644 index 0000000..4d98cf8 --- /dev/null +++ b/home/stormux/Documents/game_notes.md @@ -0,0 +1,92 @@ +# Game Specific Notes + +Here are notes on games. These notes are things of interest for the Stormux Game Image, and do not replace the documentation for the game itself. If you connect a screen, or an hdmi dummy, some games may run faster. Be sure to select use hdmi screen from the system menu. If you need to run games without a screen, you will need to go back and disable HDMI from the same menu. The screen is disabled by default. + + +## Global Keybindings + +- Alt+F5: Perform simple OCR. This may be a bit slow. +- Alt+Shift+F5: Intterrupt speech +- Alt+Control+BackSpace: Close a game if it gets stuck +- Super: Toggle transmit on or off for Mumble. Notes for configuring Mumble are available in the Terminal document from the Help and Documentation menu. +- Shift+F3: Toggle recording. Records all sound, even through mic, so great for recording games with commentary. Recordings are in ~/Audio + + +## Bokurano Daibouken + +This section covers all 3 games. If you have the dict.dat file for the Bokurano Daibouken 3 English translation, you can use the upload server. Select "other" as the file type and the rest is handled automatically. The translation will be available when you next open the game. If you would rather use something like magic-wormhole, the file should be placed in the ~/Downloads directory. + +I have had the readme files for each game translated to English. Hopefully the translation came out well enough to be useful. + +- [Bokurano Daibouken](/home/stormux/.local/games/bk/readme.txt) +- [Bokurano Daibouken 2](/home/stormux/.local/games/bk2/readme.txt) +- [Bokurano Daibouken 3](/home/stormux/.local/games/bk3/readme.txt) + + +## Bop It Emulator + +- [Instructions](/home/stormux/.local/games/BopIt/readme.txt) + + +## Crazy Party + +This game takes a while to load. The responsiveness when it is loaded is ok though. Because it's using nvda2speechd, sometimes messages get interrupted by the next incoming message. You can use page up and down to review the messages. On the Raspberry Pi 400 or 500 the key is Fn+Up or Down Arrow. + +- [Crazy Party Website](http://pragmapragma.free.fr/crazy-party) +- [Change Log](file:///home/stormux/.local/games/Crazy-Party-beta82/changelog.txt) +- [Mini-games reference](file:///home/stormux/.local/games/Crazy-Party-beta82/Mini-games%20reference.txt) +- [cards reference](file:///home/stormux/.local/games/Crazy-Party-beta82/cards%20reference.txt) +- [type effectiveness reference](file:///home/stormux/.local/games/Crazy-Party-beta82/type%20effectiveness%20reference.txt) + + +## Periphery Synthetic EP + +When this game is launched, it opens the demo on itch.io. If you log in, you can download the html5 version of the game if you have purchased it. The next time the game is launched, it will use the html5 version that was downloaded. + + +## Scramble + +When asked to initialize speech, choose no. After pressing "done" it is at the prompt for your desired username. You can type in a name, or press enter to be assigned one automatically. If the game closes, re-open it to continue. + +- [The Scramble manual](file:///home/stormux/.local/games/scramble_win32/manual.html) + + +## Shadow Line + +Documentation translated to English. + +- [Readme file](file:///home/stormux/.local/games/ShadowRine_FullVoice/ReadMe.html) + + +## Side Party + +The first time you launch Side Party, the itch.io page will open. Download the game, and when it has finished, close the browser. Relaunch the game and the game will be installed and opened. + +The username dialog does not speak. To enter your user name, wait about thirty seconds, then type your name and press enter. The main menu should open after that. Thirty seconds is actually probably way to long, but I recommend it to be absolutely sure the game has opened. + +- [Documentation on itch.io](https://masonasons.itch.io/sideparty) + +## Skateboarder Pro + +- [Readme file](file:///home/stormux/.local/games/sb_pro_rw/readme.txt) + +## SoundRTS + +This game gets stuck when you close it. Use the Control+Alt+BackSpace shortcut to get back to the game menu. + + +## Super Liam + +This game is a little finicky. Make sure to let the intro music play, press enter, also let the L-Works presents message play and press enter when the demo starts. After that, things should be fine. + + +## Toy Mania + +When downloading the game, be sure to choose the portable Windows version. + + +## Warsim + +The game may freeze on first launch. To avoid this, press escape to refresh the game menu or restart the Pi. + +- Follow these [instructions to turn off ascii art](/home/stormux/.local/games/Warsim/Blind Players of Warsim Please Read!.txt). diff --git a/home/stormux/Documents/music_player.md b/home/stormux/Documents/music_player.md new file mode 100644 index 0000000..2fce17f --- /dev/null +++ b/home/stormux/Documents/music_player.md @@ -0,0 +1,19 @@ +# Using the Music Player + +Behind the scenes, music is handled with the mpv media player. This gives you the ability to adjust various settings during playback. Here is a non-exhaustive list of keybindings to get you started. For more, please see [the mpv man page](https://mpv.io/manual/stable/). + +- Space: Pause or resume playback. +- Backspace: Reset to default. +- F1: Announce current track information. +- 9: Decrease volume. +- 0: Increase volume. +- Less Than: Previous track. +- Greater Than: Next track. +- Left Arrow: Seek backward. +- Right Arrow: Seek forward. +- Down Arrow: Seek backward by a larger increment. +- Up Arrow: Seek forward by a larger increment. +- Left Bracket: Slow down playback. +- Right Bracket: Speed up playback. +- q: Close mpv. +- Shift+Q: Save your position in the current track and close mpv. diff --git a/home/stormux/Documents/navigating_help.md b/home/stormux/Documents/navigating_help.md new file mode 100644 index 0000000..46aa535 --- /dev/null +++ b/home/stormux/Documents/navigating_help.md @@ -0,0 +1,54 @@ +# W3M Introduction + +This guide introduces navigation in the `w3m` web browser, as used in the Stormux gaming image. W3M can function both as a text only browser and as a pager. Basically, it's very good at displaying text, and can follow links. + + +## Moving Around + +- Use the **Up** and **Down arrow keys** to read the page line by line. +- If the page contains **links**, use: + - **Tab** to move forward through links. + - **Shift+Tab** to move backward. + - **Enter** to follow the selected link. + + +## Understanding Key Notation + +- `C-x` means **hold Control and press x**. +- `ESC-x` means **press Escape**, then press **x** (not at the same time). + + +## Useful Keybindings + +- **UpArrow**: Move up one line. +- **DownArrow**: Move down one line. +- **LeftArrow**: Move back one character. +- **RightArrow**: Move forward one character. +- **b**: Move back one word. +- **w**: Move forward one word. +- **Shift+B**: Return to the previous page. + +- **PageUp**: Move up one screen. + On Raspberry Pi 400 or 500: **Fn+LeftArrow** + +- **PageDown**: Move down one screen. + On Raspberry Pi 400 or 500: **Fn+RightArrow** + +- **Home**: Jump to the top of the page. + On Raspberry Pi 400 or 500: **Fn+UpArrow** + +- **End**: Jump to the bottom of the page. + On Raspberry Pi 400 or 500: **Fn+DownArrow** + +- **q**: Quit `w3m`. + +- **Shift+H**: Show the full list of keybindings. + +- **ESC-l**: Open a list of all links on the page. + + +## Additional Help + +To read the full built-in help for `w3m`, press `Shift+H` or visit the [W3M Help File](/usr/share/w3m/w3mhelp.html). + +To return to this help page after viewing the built-in help, press `Shift+B` (to go back up one page). diff --git a/home/stormux/Documents/terminal.md b/home/stormux/Documents/terminal.md new file mode 100644 index 0000000..78ff1c7 --- /dev/null +++ b/home/stormux/Documents/terminal.md @@ -0,0 +1,18 @@ +# Terminal for Advanced Users + +TTY2, a terminal, is available by pressing control+alt+f2. Before switching, it is a good idea to enable the Fenrir screen reader from the system menu so the terminal will be accessible. + +When you are finished with the terminal, you can get back to the menu by pressing control+alt+f1. Fenrir and the menu will clash, so you may want to turn off fenrir. To do this, press Fenrir+q. On the game image, the Fenrir key is either capslock or the super key, pick which ever you like. + +If you are not all that familiar with Linux, you probably won't spend all that much time in the terminal. The one exception is if you want to connect to a Mumble server. To do this: + +- Start fenrir from the system menu. +- Switch to TTY2 with control+alt+f2. +- Log in with the username stormux and the password stormux +- type barnard-ui +- Use up and down arrows to navigate the options, you will likely want to first add a server. +- Choose connect to connect to a server. You will see a list of available servers. Find the one you want and press enter. + +Transmission mode is toggled with the F1 key. To close the barnard application, press F10. You will be placed back in the menu for adding servers, connecting, etc. + +If you are playing a game that requires the graphical user interface, any of the windows games, doom, wicked quest, etc you can use the Super key to toggle transmit on and off. The super key is sometimes referred to as the Windows key. It is the key to the left of the left alt key. diff --git a/home/stormux/Documents/voices.md b/home/stormux/Documents/voices.md new file mode 100644 index 0000000..6fbad93 --- /dev/null +++ b/home/stormux/Documents/voices.md @@ -0,0 +1,11 @@ +# Changing the voice + +By default, the gaming image uses the RHVoice BDL voice. This voice is clear and easily understandable without costing too much in the way of resources. If you do not like the default voice, and would like to change it, you can use the upload server to upload a [Voxin voice](https://oralux.org) of your choosing. + +To do this, simply upload the file as it was saved, they follow the pattern: + + voxin-language-name-quality-4version.tgz + +This is the format the server expects. After uploading the file, installation is handled automatically. If everything goes like it should, you will hear a message in the new voice. Note that the first voice will be used, so it is recommended to only upload one Voxin package. If you want to set specific different screen reader voices, more packages may be uploaded, but screen reader configuration must be done manually. + +Changing the default voice can be done from the system menu with the set default voice option. diff --git a/usr/local/bin/apple_2e.py b/usr/local/bin/apple_2e.py index 7e9c93d..0ebf75c 100755 --- a/usr/local/bin/apple_2e.py +++ b/usr/local/bin/apple_2e.py @@ -152,8 +152,17 @@ class VoicedDiskMenu: # Clean up resources before executing the command self.cleanup(full_cleanup=True) - # Execute the command to launch the disk file - os.system(f'export GAME="{path}" && startx') + # Handle special boot options + if path == "TEXTALKER_ONLY": + # Boot with TextTalker only (original Apple 2e option) + os.system('export GAME="Apple 2e" && startx') + elif path.startswith("DISK_ONLY:"): + # Boot with disk only, no TextTalker + os.system(f'export GAME="{path}" && startx') + else: + # Boot with TextTalker + specified disk (default behavior) + os.system(f'export GAME="{path}" && startx') + sys.exit(0) # Exit after launching def speak_help(self): @@ -259,6 +268,9 @@ class VoicedDiskMenu: def load_disks_from_directory(self, directory_path): """Load disk files from the specified directory""" + # Add special boot options first + self.menu_items.append(("Boot with TextTalker only", "TEXTALKER_ONLY")) + # Expand the path (in case it contains ~) directory_path = os.path.expanduser(directory_path) @@ -275,7 +287,7 @@ class VoicedDiskMenu: # Sort files alphabetically files.sort() - # Create menu items + # Create menu items for disk files for file in files: # Get full path to the file file_path = os.path.join(directory_path, file) @@ -286,8 +298,9 @@ class VoicedDiskMenu: # Replace underscores with spaces for better readability display_name = display_name.replace('_', ' ') - # Add to menu items list - self.menu_items.append((display_name, file_path)) + # Add both TextTalker + disk and disk-only options + self.menu_items.append((f"{display_name} (with TextTalker)", file_path)) + self.menu_items.append((f"{display_name} (disk only)", f"DISK_ONLY:{file_path}")) except Exception as e: print(f"Error loading disk directory: {e}") diff --git a/usr/local/bin/game_launcher.py b/usr/local/bin/game_launcher.py index 1695b90..dd0badb 100755 --- a/usr/local/bin/game_launcher.py +++ b/usr/local/bin/game_launcher.py @@ -827,8 +827,7 @@ if __name__ == "__main__": # Add emulators section menu.add_section("Emulators") - menu.add_item("Emulators", "Apple 2e", "GAME='Apple 2e' startx") - menu.add_item("Emulators", "Apple 2e with disk", "/usr/local/bin/apple_2e.py") + menu.add_item("Emulators", "Apple 2e", "/usr/local/bin/apple_2e.py") menu.add_item("Emulators", "Bop It", "GAME='Bop It' startx") menu.add_item("Emulators", "Dosbox", "GAME=Dosbox startx") menu.add_item("Emulators", "Game Console Menu", "/usr/local/bin/rom_launcher.py")