From d64f751eb79b5b04dc2e12946ac301ea5585541e Mon Sep 17 00:00:00 2001 From: LionsPhil Date: Sat, 13 May 2023 13:47:26 +0100 Subject: [PATCH 1/6] Fix broken link (missing protocol was making it relative to the current page). --- usage/faq.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usage/faq.rst b/usage/faq.rst index fcc3a1a..173b64a 100644 --- a/usage/faq.rst +++ b/usage/faq.rst @@ -49,4 +49,4 @@ Are you going to add emulation of the Pentium 3 and/or newer CPUs? In short, no. Newer CPUs are way too powerful and even the top-end systems that are currently on the market are not nearly performant enough to be able to emulate them at usable speeds. In fact, we already had to add some low-clocked variants of the Pentium 2 that never actually existed, just so more people could use it! -For further reading, team member RichardG wrote a `blog post <86box.net/2022/03/21/why-not-p3>`_ that goes into the details of what makes the emulation of newer CPUs so controversial. +For further reading, team member RichardG wrote a `blog post `_ that goes into the details of what makes the emulation of newer CPUs so controversial. From 80f4dddfd3f5e0516ed770f244fa4e54e09592cf Mon Sep 17 00:00:00 2001 From: Robert de Rooy <17701098+rderooy@users.noreply.github.com> Date: Sat, 2 Sep 2023 10:42:50 +0200 Subject: [PATCH 2/6] update build requirements, add Fedora --- dev/buildguide.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dev/buildguide.rst b/dev/buildguide.rst index fb0ac40..fc00a6e 100644 --- a/dev/buildguide.rst +++ b/dev/buildguide.rst @@ -95,11 +95,14 @@ The build process requires the following tools: * CMake (>= 3.15) * ``pkg-config`` +* libatomic Development files for the following libraries are also needed: +* FluidSynth * FreeType * libpng +* libslirp * RtMidi * SDL2 * FAudio (optional on Windows) @@ -135,6 +138,15 @@ Arch .. note:: Make sure to enable the multilib repository in your ``pacman.conf`` file. +Fedora +"""""" + +.. code-block:: bash + + $ sudo dnf groupinstall "C Development Tools and Libraries" + $ sudo dnf install cmake extra-cmake-modules pkg-config ninja-build freetype-devel SDL2-devel libatomic libpng-devel libXi-devel openal-soft-devel rtmidi-devel libFAudio-devel qt5-linguist qt5-qtconfiguration-devel qt5-qtbase-private-devel qt5-qtbase-static wayland-devel libevdev-devel libxkbcommon-x11-devel + + macOS (Homebrew) """""""""""""""" From b0bd1133722a16a5d143c76f014a3a4f74237a1d Mon Sep 17 00:00:00 2001 From: Robert de Rooy <17701098+rderooy@users.noreply.github.com> Date: Sat, 2 Sep 2023 14:26:53 +0200 Subject: [PATCH 3/6] Add missing libslirp-devel --- dev/buildguide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/buildguide.rst b/dev/buildguide.rst index fc00a6e..bf6426a 100644 --- a/dev/buildguide.rst +++ b/dev/buildguide.rst @@ -144,7 +144,7 @@ Fedora .. code-block:: bash $ sudo dnf groupinstall "C Development Tools and Libraries" - $ sudo dnf install cmake extra-cmake-modules pkg-config ninja-build freetype-devel SDL2-devel libatomic libpng-devel libXi-devel openal-soft-devel rtmidi-devel libFAudio-devel qt5-linguist qt5-qtconfiguration-devel qt5-qtbase-private-devel qt5-qtbase-static wayland-devel libevdev-devel libxkbcommon-x11-devel + $ sudo dnf install cmake extra-cmake-modules pkg-config ninja-build freetype-devel SDL2-devel libatomic libpng-devel libslirp-devel libXi-devel openal-soft-devel rtmidi-devel libFAudio-devel qt5-linguist qt5-qtconfiguration-devel qt5-qtbase-private-devel qt5-qtbase-static wayland-devel libevdev-devel libxkbcommon-x11-devel macOS (Homebrew) From 67e9156ef2acb4d2574363f7684f0fdd1c0cd460 Mon Sep 17 00:00:00 2001 From: Randomno Date: Fri, 8 Sep 2023 00:43:24 +0100 Subject: [PATCH 4/6] faq tense --- usage/faq.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usage/faq.rst b/usage/faq.rst index fcc3a1a..b2c49cf 100644 --- a/usage/faq.rst +++ b/usage/faq.rst @@ -8,7 +8,7 @@ VirtualBox, Virtual PC and similar applications are *hypervisors*. For the most They also mostly implement peripherals that are custom designed to let the guest take full potential of the virtualizer as long as appropriate drivers, which are distributed with the provided additions, are installed. This is great for modern operating systems and software that does is not designed for a specific hardware target, but rather an abstraction interface such as DirectX; however, running older applications and games will often lead to a suboptimal experience, as hypervisors don't tend to be designed with this usecase in mind. -On the other hand, 86Box is a *system emulator*. It implements a whole system in software, which includes the CPU, chipset and additional cards, if any. Furthermore, it interprets every single instruction running in the virtual machine, and while that comes with the obvious tradeoff of emulation being more CPU intensive than virtualization, it also makes it possible to simulate authentic behavior of the original hardware, including its speed. This in turn allows running countless games and demos that wouldn't have ran in a hypervisor before, as they simply run too fast or fail to make use of various hardware quirks that don't exist in modern processors. +On the other hand, 86Box is a *system emulator*. It implements a whole system in software, which includes the CPU, chipset and additional cards, if any. Furthermore, it interprets every single instruction running in the virtual machine, and while that comes with the obvious tradeoff of emulation being more CPU intensive than virtualization, it also makes it possible to simulate authentic behavior of the original hardware, including its speed. This in turn allows running countless games and demos that wouldn't have run in a hypervisor before, as they simply run too fast or fail to make use of various hardware quirks that don't exist in modern processors. In addition, the large variety of peripherals emulated by 86Box also makes it possible to use existing software, games and drivers that had been specifically designed for such peripherals. However, this obviously means that the emulator is also stuck with the limitations of the original hardware, and therefore it is not possible to offer advanced features such as mouse pointer integration. From bee72c1cf0adaea53c9d9ff1cd35dc91ce90b6a8 Mon Sep 17 00:00:00 2001 From: Randomno Date: Fri, 8 Sep 2023 06:35:49 +0100 Subject: [PATCH 5/6] grammar not putting this in a new pr --- usage/faq.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usage/faq.rst b/usage/faq.rst index b2c49cf..907085f 100644 --- a/usage/faq.rst +++ b/usage/faq.rst @@ -6,7 +6,7 @@ What is the difference between 86Box and applications like VirtualBox or Virtual VirtualBox, Virtual PC and similar applications are *hypervisors*. For the most part, they execute code running in the virtual machine as is, and only step in whenever it is required to enforce the separation of a virtual machine from the rest of the system. This also means that the virtual machine sees the same CPU as the host system. -They also mostly implement peripherals that are custom designed to let the guest take full potential of the virtualizer as long as appropriate drivers, which are distributed with the provided additions, are installed. This is great for modern operating systems and software that does is not designed for a specific hardware target, but rather an abstraction interface such as DirectX; however, running older applications and games will often lead to a suboptimal experience, as hypervisors don't tend to be designed with this usecase in mind. +They also mostly implement peripherals that are custom designed to let the guest take full potential of the virtualizer as long as appropriate drivers, which are distributed with the provided additions, are installed. This is great for modern operating systems and software that is not designed for a specific hardware target, but rather an abstraction interface such as DirectX; however, running older applications and games will often lead to a suboptimal experience, as hypervisors don't tend to be designed with this usecase in mind. On the other hand, 86Box is a *system emulator*. It implements a whole system in software, which includes the CPU, chipset and additional cards, if any. Furthermore, it interprets every single instruction running in the virtual machine, and while that comes with the obvious tradeoff of emulation being more CPU intensive than virtualization, it also makes it possible to simulate authentic behavior of the original hardware, including its speed. This in turn allows running countless games and demos that wouldn't have run in a hypervisor before, as they simply run too fast or fail to make use of various hardware quirks that don't exist in modern processors. From 3ef1e9666ae972a41add558b9762d89029bf1c13 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Sat, 9 Sep 2023 09:33:28 -0700 Subject: [PATCH 6/6] hardware/diskimages: Instructions for mounting under Linux --- hardware/diskimages.rst | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/hardware/diskimages.rst b/hardware/diskimages.rst index 48b3abb..c8d2d91 100644 --- a/hardware/diskimages.rst +++ b/hardware/diskimages.rst @@ -319,3 +319,41 @@ The following command will copy ``file1`` and ``file2`` to the floppy image ``fl Wildcards are also supported with ``mcopy``. .. note:: The ``::`` is required to let ``mtools`` know there are no more files to copy or arguments to process. + +Mounting on Linux +***************** + +Linux can natively mount raw disk images (floppy or hard disk) of most types (``FAT`` and ``NTFS`` included). The easiest path is to use `losetup `_ so that partitions can be properly recognized. Floppies are not normally partitioned, and you can use `mount `_ directly. + +All following commands must be run as root: + +.. code-block:: + + losetup -fP /path/to/86box/hdd + losetup # to verify which loopback device was set up. + # Assuming /dev/loop0 was selected: + mount /dev/loop0p1 /mnt # Mount the first partition at /mnt + +Disk images should at least be unmounted before running 86Box again, and preferably detached too: + +.. code-block:: + + umount /mnt + losetup -d /dev/loop0 + +Partitionless media can be mounted directly: + +.. code-block:: + + mount /path/to/86box/fdd /mnt + +VHD images may be mounted via `qemu-nbd `_: + +.. code-block:: + + modprobe nbd max_part=16 + qemu-nbd -f vpc -c /dev/nbd0 /path/to/86box/hdd + mount /dev/nbd0p1 /mnt + # After doing some work... + umount /mnt + qemu-nbd -d /dev/nbd0