mirror of
https://github.com/86Box/86Box.git
synced 2026-02-21 09:05:32 -07:00
79 lines
3.4 KiB
Plaintext
79 lines
3.4 KiB
Plaintext
UNIX MODE WITH OSD
|
|
|
|
86Box supports running on the linux framebuffer without QT and without X, making the pc appear as a nearly native old machine.
|
|
|
|
running it that way is already supported but when doing it, 86box loses all menu and all abilities to mount floppies and CDs, it also becomes the owner of the entire pc with no way of quitting it or changing virtual console.
|
|
|
|
to overcome this, an on screen display menu is available that allows doing everything the textual console (src/unix/unix.c) does;
|
|
mount/unmount all supported media like floppy and cd
|
|
hard reset the machine
|
|
quit 86box
|
|
seeing the current performance %
|
|
|
|
key bindings:
|
|
Right Control + F11 opens the osd
|
|
|
|
while is open:
|
|
arrows up, down moves the cursor
|
|
enter does the action, at mount options it enters a list of appropriate files (*.img, *.iso)
|
|
ESC goes back to main or closes the OSD
|
|
|
|
current limitations:
|
|
OSD can mount images to first floppy and first cd, secondary devices are not supported
|
|
it does not show if an image is mounted or not
|
|
the option "version" does actully print it, but it can't be seen beacuse its printed under 86box display
|
|
extremely long filenames can overflow the blue window
|
|
the title does actually overflow the window width :)
|
|
|
|
These are the steps to install a machine fully dedicated to 86Box and tuned to make it appear almost native.
|
|
This works almost the same for on a Raspberry Pi
|
|
|
|
|
|
1) install a vanilla Debian Trixie with netinst and without any graphical environment, or a "server" distro for RPI
|
|
depending on the machine speed, this will make boot time extremely short
|
|
|
|
2) apt update if necessary
|
|
|
|
3) install git and almost all required packages
|
|
apt install git build-essential cmake extra-cmake-modules pkg-config ninja-build libfreetype-dev libsdl2-dev libpng-dev libopenal-dev librtmidi-dev libfluidsynth-dev libsndfile1-dev libserialport-dev libevdev-dev libxkbcommon-dev libxkbcommon-x11-dev libslirp-dev
|
|
|
|
4) setup git and clone
|
|
git@github.com:86Box/86Box.git
|
|
git@github.com:86Box/roms.git
|
|
|
|
5) build (128 => super speed, too much for a 2GB machine)
|
|
cd 86Box
|
|
mkdir build
|
|
cd build
|
|
cmake .. --preset regular -D QT=OFF -D PREFER_STATIC=ON
|
|
cmake --build regular -j 128
|
|
cd ../../
|
|
ln -s 86Box/build/regular/src/86Box 86Box.exe
|
|
|
|
6) boot
|
|
as root so it can take complete ownership of the linux framebuffer
|
|
|
|
7) notes:
|
|
- 86Box will complain to be unable to find readline, this is fine, we don't need the command line at all
|
|
- ALSOFT will complain it can't connect to PipeWire, no problem, sounds will come from standard ALSA
|
|
|
|
8) additional steps
|
|
add a new udev rule to automount any USB key to a known location so files in it can be listed in the OSD floppy/cd mount options
|
|
|
|
create /etc/udev/rules.d/99-automount.rules
|
|
|
|
with:
|
|
ACTION=="add", ENV{ID_BUS}=="usb", ENV{ID_TYPE}=="disk", ENV{ID_FS_TYPE}=="exfat", RUN+="/usr/bin/systemd-mount --no-block --automount=yes --collect /dev/%k '/mnt'"
|
|
|
|
replicate this line for each filesystem you expect the usb key to be formatted, in this example "exfat"
|
|
this is going to conflict if multiple keys are inserted, don't do it
|
|
|
|
final step
|
|
configure some 86box vm using another pc with the GUI
|
|
copy the VM definitions to this new pc and manually launch 86box from the textual command line
|
|
optionally craft a boot menu to be shown in place of the login prompt or setup 86box as a debiasn service, it will start at boot
|
|
just make sure the pc will be accessible via ssh or some other way, autobooting 86box canà make difficult terminating it
|
|
|
|
|
|
|