Brainuxにエミュレータをインストール
———-
higan マルチゲームコンソールエミュレータ(動作はするが遅すぎる)
マルチコンソールゲーム機のエミュレータです。
正確な動作を目標に作成されたエミュレータとのことです。
インストールはApt経由で可能です。
sudo apt install higan
インストール自体は成功して、実行してみましたが、
Brainuxで動作はするが、1FPSくらいしか出ないので、実用上は難しいです。

user@brain:~$ sudo apt show higan
Package: higan
Version: 106-2
Priority: optional
Section: otherosfs
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Installed-Size: 5,794 kB
Provides: nes-emulator
Depends: libao4 (>= 1.1.0), libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.17), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.12), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.5), libgdk-pixbuf2.0-0 (>= 2.22.0), libgl1, libglib2.0-0 (>= 2.16.0), libgomp1 (>= 4.9), libgtk2.0-0 (>= 2.24.0), libopenal1 (>= 1.14), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libpulse0 (>= 0.99.1), libsdl1.2debian (>= 1.2.11), libstdc++6 (>= 5), libudev1 (>= 183), libx11-6, libxext6, libxv1
Homepage: http://byuu.org/emulation/higan/
Tag: uitoolkit::gtk, uitoolkit::sdl
Download-Size: 1,365 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: Accurate multi-system emulator
higan is an emulator for systems from Nintendo (SNES, NES, Gameboy,
Gameboy Color, Gameboy Advance), Sega (Master System, Game Gear),
NEC (PC Engine, SuperGrafx) and Bandai (WonderSwan, WonderSwan Color).
It was formerly called bsnes and the SNES emulation is especially
complete and polished.
.
higan strives to provide the most faithful hardware emulation possible.
It focuses on accuracy and clean code, rather than speed and special
features. It is meant as a reference emulator to document how the underlying
hardware works. As a result the minimum system requirements are high.
user@brain:~$ sudo apt install higan
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libao-common libao4 libopenal-data libopenal1 libsdl1.2debian libsndio7.0
Suggested packages:
libaudio2 libsndio6.1 libportaudio2 sndiod
The following NEW packages will be installed:
higan libao-common libao4 libopenal-data libopenal1 libsdl1.2debian libsndio7.0
0 upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 2,252 kB of archives.
After this operation, 7,628 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.debian.org/debian bullseye/main armel libao-common all 1.2.2+20180113-1.1 [11.7 kB]
~
Processing triggers for libc-bin (2.31-13+deb11u11) ...
———–
gngb GAME BOY エミュレータ
gngbは、GAMEBOY エミュレータです。
画面は小さいですが、結構まともに動きました。
インストールはApt経由で可能です。
sudo apt install gngb
とりあえず、以下のコマンドでも手持ちのGBカードリッジのデータで実行したところ、以下で普通に動きます(音なし)。
gngb “rom.gb”

デフォルト操作
Start Enter(決定)
Select Right Shift(Brainにキーなし)
移動 カーソルキー
A X
B W
Menu TAB(国語辞典)
終了 ESC(戻る,調べる)
快適に動かすため、以下のように実行パラメータを指定して、動作を確認してみました。
FDcloneに”.gb”の拡張子で、使用するオプション込みで追加すれば、便利ですよ。
(.gb: gngb –autoframeskip –sound –sample_rate=11025 –fps )
パラメータ調整(–fps は、フレームレート表示確認用です。)
・音無しで 43-60fps
gngb –autoframeskip –no-sound –fps “.rom.gb”
・音あり(usbサウンドデバイス必須)で 28-35fips
gngb –autoframeskip –sound –sample_rate=11025 –fps “.rom.gb”
デフォルト設定を変えるには、「/usr/share/doc/gngb/examples/sample_gngbrc」を、「$HOME/.gngb/gngbrc」にコピーして、編集してください。
例えば、Setartを「m」、Selectを「n」に割り当てするには以下のように変更します。
(キーコードはこちらを参照)
#map_key 273,274,276,275,120,119,13,303
map_key 273,274,276,275,120,119,109,110
/usr/share/doc/gngb/にドキュメントが保存されているので、参考にしてください。
user@brain:~$ sudo apt show gngb
[sudo] password for user:
Package: gngb
Version: 20060309-5
Priority: optional
Section: x11
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Installed-Size: 223 kB
Depends: libc6 (>= 2.28), libgl1, libsdl1.2debian (>= 1.2.11), zlib1g (>= 1:1.1.4)
Homepage: http://m.peponas.free.fr/gngb/
Tag: hardware::emulation, hardware::input:joystick, hardware::input:keyboard,
interface::commandline, interface::graphical, interface::x11,
role::program, scope::utility, uitoolkit::sdl, use::gameplaying,
x11::application
Download-Size: 74.1 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: Color Gameboy emulator
Gngb is an emulator for GameBoy Classic, Color and others.
.
It uses the SDL library and OpenGL. This software supports joystick
and keyboard as input.
user@brain:~$ sudo apt install gngb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
gngb
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 74.1 kB of archives.
After this operation, 223 kB of additional disk space will be used.
Get:1 http://archive.debian.org/debian bullseye/main armel gngb armel 20060309-5 [74.1 kB]
Fetched 74.1 kB in 1s (53.2 kB/s)
Selecting previously unselected package gngb.
(Reading database ... 53441 files and directories currently installed.)
Preparing to unpack .../gngb_20060309-5_armel.deb ...
Unpacking gngb (20060309-5) ...
Setting up gngb (20060309-5) ...
Processing triggers for man-db (2.9.4-2) ...
user@brain:~$
user@brain:~$ gngb
Usage: gngb [OPTION]... FILE
Emulate the GameBoy rom pointed by FILE
-h, --help print this help and exit
-a, --autoframeskip turn on autoframeskip
--sleep_idle sleep when idle
--color_filter turn on the color filter
-r, --rumble turn on the rumble simulation
--filter=X Set the filter to apply (only for standard mode)
0 = none
1 = scanline
2 = scanline 50%
3 = smooth
4 = pseudo cell shading
-R, --res=WxH set the resolution to WxH (for YUV and GL mode)
-Y, --yuv turn YUV mode on
--yuv_type set the type of the YUV overlay
0 = YV12
1 = YUY2
-o, --opengl turn OpenGL mode on (if conpiled in)
-f, --fullscreen run gngb in fullscreen
--fps show frame/sec
-s, --sound turn on sound
--sample_rate=RATE set the sample rate to RATE
-C, --color_gb force to color gameboy mode
-G, --normal_gb force to normal gameboy mode
-S, --super_gb force to super gameboy mode (experimental)
--auto_gb turn on automatique detection
-j, --joy_dev=N use the Nth joystick
-g, --gdma_cycle cpu stop during gdma transfer (experimental)
-v, --version printf gngb number version
Most options can be disabled with --no-OPTION (Ex: --no-sound turn sound off)
———-
fceux ファミコンエミュレータ(動作は遅いです。->SDL1.2版では動きます。)
インストールはApt経由で可能です。
sudo apt install fceux
X11環境で、Shellから”fceux”で起動できます。
(libSDL2の再構築が必要です。再構築していないと、Illegal instruction エラーになります)
Optionから設定変更できますが、Video configからDriverをSDLにしたりしたけど、4-5fpsぐらいしか出ませんでした。チューニング次第で、もう少しあげられるのだろうか?
キー入力も何とか反応するレベルでした。

user@brain:~$ sudo apt show fceux
[sudo] password for user:
Package: fceux
Version: 2.3.0+dfsg1-3
Priority: optional
Section: games
Maintainer: Joseph Nahmias <jello@debian.org>
Installed-Size: 3,077 kB
Provides: nes-emulator
Depends: libc6 (>= 2.29), libgcc-s1 (>= 3.5), liblua5.1-0, libminizip1 (>= 1.1), libopengl0, libqt5core5a (>= 5.5.0), libqt5gui5 (>= 5.11.0~rc1) | libqt5gui5-gles (>= 5.11.0~rc1), libqt5widgets5 (>= 5.15.1), libsdl2-2.0-0 (>= 2.0.12), libstdc++6 (>= 5.2), zlib1g (>= 1:1.1.4)
Suggests: efp
Homepage: http://fceux.com/
Tag: uitoolkit::gtk, uitoolkit::sdl
Download-Size: 1,014 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: all-in-one NES/Famicom Emulator
FCE Ultra X [FCEUX] is an emulator of the original (8-bit) Nintendo
Entertainment System (NES) released under the GNU General Public License
(GPL). It includes the following features (and many more):
.
* fully customizable color palette rendering engine
* complete sound emulation (all five channels)
* support for up to four joystick controllers
* zapper emulation for the mouse
* GameGenie emulation
* accepts compressed (PKZIP, gzip) ROM images
* TCP/IP network play
* Lua scripting
user@brain:~$ sudo apt install fceux
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
liblua5.1-0 libminizip1 libopengl0
Suggested packages:
efp
The following NEW packages will be installed:
fceux liblua5.1-0 libminizip1 libopengl0
0 upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
Need to get 1,155 kB of archives.
After this operation, 3,647 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.debian.org/debian bullseye/main armel liblua5.1-0 armel 5.1.5-8.1+b3 [83.5 kB]
~
Processing triggers for libc-bin (2.31-13+deb11u11) ...
user@brain:~$
user@brain:~$ fceux --help
Usage is as follows:
fceux <options> filename
Option Value Description
--pal {0|1} Use PAL timing.
--newppu {0|1} Enable the new PPU core. (WARNING: May break savestates)
--input(1,2) d Set which input device to emulate for input 1 or 2.
Devices: gamepad zapper powerpad.0 powerpad.1
arkanoid
--input(3,4) d Set the famicom expansion device to emulate for
input(3, 4)
Devices: quizking hypershot mahjong toprider ftrainer
familykeyboard oekakids arkanoid shadow bworld
4player
--gamegenie {0|1} Enable emulated Game Genie.
--frameskip x Set # of frames to skip per emulated frame.
--xres x Set horizontal resolution for full screen mode.
--yres x Set vertical resolution for full screen mode.
--autoscale {0|1} Enable autoscaling in fullscreen.
--keepratio {0|1} Keep native NES aspect ratio when autoscaling.
--(x/y)scale x Multiply width/height by x.
(Real numbers >0 with OpenGL, otherwise integers >0).
--(x/y)stretch {0|1} Stretch to fill surface on x/y axis (OpenGL only).
--fullscreen {0|1} Enable full screen mode.
--noframe {0|1} Hide title bar and window decorations.
--special {1-4} Use special video scaling filters
(1 = hq2x; 2 = Scale2x; 3 = NTSC 2x; 4 = hq3x;
5 = Scale3x; 6 = Prescale2x; 7 = Prescale3x; 8=Precale4x; 9=PAL)
--palette f Load custom global palette from file f.
--sound {0|1} Enable sound.
--soundrate x Set sound playback rate to x Hz.
--soundq {0|1|2} Set sound quality. (0 = Low 1 = High 2 = Very High)
--soundbufsize x Set sound buffer size to x ms.
--volume {0-256} Set volume to x.
--soundrecord f Record sound to file f.
--playmov f Play back a recorded FCM/FM2/FM3 movie from filename f.
--pauseframe x Pause movie playback at frame x.
--fcmconvert f Convert fcm movie file f to fm2.
--ripsubs f Convert movie's subtitles to srt
--subtitles {0|1} Enable subtitle display
--fourscore {0|1} Enable fourscore emulation
--no-config {0|1} Use default config file and do not save
--net s Connect to server 's' for TCP/IP network play.
--port x Use TCP/IP port x for network play.
--user x Set the nickname to use in network play.
--pass x Set password to use for connecting to the server.
--netkey s Use string 's' to create a unique session for the
game loaded.
--players x Set the number of local players in a network play
session.
--rp2mic {0|1} Replace Port 2 Start with microphone (Famicom).
--4buttonexit {0|1} exit the emulator when A+B+Select+Start is pressed
--loadstate {0-9|>9} load from the given state when the game is loaded
--savestate {0-9|>9} save to the given state when the game is closed
to not save/load automatically provide a number
greater than 9
--periodicsaves {0|1} enable automatic periodic saving. This will save to
the state passed to --savestate
--loadlua f Loads lua script from filename f.
--style=KEY Use Qt GUI Style based on supplied key. Available system style keys are:
Windows Fusion
Custom Qt stylesheets (.qss files) may be used by setting an
environment variable named FCEUX_QT_STYLESHEET equal to the
full (absolute) path to the qss file.
Compiled with SDL version 2.0.14
Linked with SDL version 2.0.14
Compiled with QT version 5.15.2
git URL: https://github.com/TASVideos/fceux.git
git Rev: 65c5b0d2a1c08db75bb41340bfa5534578926944
user@brain:~$
———-
fceux 2.2.3 (SDL1.2版) ファミコンエミュレータ(音無しであれば実用的な速度で動作)

Brainでapt経由でインストールできる fceux2.3.0(SDL2.0版)だと動作速度遅すぎて、4-5fpsしかでない&キー入力も怪しいという状況でした。
で、先日同様に動作が重かったopenMSXをSDL1.2でビルドしてみたところ動作が改善したということで、fceuxもSDL1.2で構築してみました。
結果的に音無しでですが、調子のよいときは最大38 fpsぐらい出るときもあります。
これくらいfpsが出れば、十分遊べる範囲です。
(なんらかの条件で遅かったり早かったりします。条件不明。)
(plusaudio起動している確率があがるような気が・・・)
(10fps or 20fps or 40fps)
インストールは、SDl1.2をサポートする最終バージョンである2.2.3のソースを元にビルドします。
公式サイト
https://fceux.com/web/download.html
$ cd
$ mkdir fcmux
$ cd fcmux
$ wget https://github.com/TASEmulators/fceux/archive/refs/tags/fceux-2.2.3.tar.gz
$ tar zxf fceux-2.2.3.src.tar.gz
$ cd fceux-2.2.3
インストールの仕方の詳細は、README-SDLを確認してください。
まずは、ビルドパラメータを修正します。
いったん、以下のように修正してみました。
$ vi SConstruct

また、最適化も追記設定しておきます(“-O2” -> “-O3 -march=native”)

Fceux 2.2.3 のビルドシステムは sconsを利用します(2.3.0からはcmakeです。)。
が、現行のpython3ではなく、python2版のsconsが必要になります。
ですので、以下のようにpython2環境を作成してsconsを導入、ビルドします。。
$ sudo apt install python2
$ curl -sS https://bootstrap.pypa.io/pip/2.7/get-pip.py | sudo python2
$ sudo python2 -m pip install
$ virtualenvvirtualenv -p python2 ~/fceux-py2env
$ source ~/fceux-py2env/bin/activate
$ pip install ‘scons<3.0’
$ cd ~/fcmux/fceux-2.2.3
$ scons -c && rm -rf .scon* # ビルド情報をクリア
$ scons # ビルド(約3時間程度)
$ deactivate
テスト実行
$ cd bin
$ ./fceux
システムにインストール
$ sudo bash
$ source /home/user/fceux-py2env/bin/activate
$ scons install
$ deactivate
これで、/user/local/bin/に実行ファイルがインストールされ、fceuxできるようになります。
もし、JWMのメニューから起動したければdesktopファイルが以下にインストールされているのでこれをベースにアプリのインストール先などを変更してください(Exec,Icon)。
sudo vi /usr/local/share/application/fceux.desktop
Exec=/usr/local/bin/fceux
Icon=/usr/local/share/pixmaps/fceux.png
———-
nestopia ファミコンエミュレータ(動作は遅いです。キー入力反応なし?)
インストールはApt経由で可能です。
sudo apt install nestopia
X11環境で、Shellから”nestopia”で起動できます。
(libSDL2の再構築が必要です。再構築していないと、Illegal instruction エラーになります)
設定変更はEmurator -> Configurationからできます。
FPSは出ていませんし、キー入力も受け付けていないように見えます。

user@brain:~$ sudo apt show nestopia
[sudo] password for user:
Package: nestopia
Version: 1.50-2
Priority: optional
Section: games
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Installed-Size: 3,532 kB
Provides: nes-emulator
Depends: libao4 (>= 1.1.0), libarchive13 (>= 3.0.4), libc6 (>= 2.29), libepoxy0 (>= 1.0), libgcc-s1 (>= 3.5), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk-3-0 (>= 3.21.4), libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125, libsdl2-2.0-0 (>= 2.0.12), libstdc++6 (>= 5.2), zlib1g (>= 1:1.1.4)
Homepage: http://0ldsk00l.ca/nestopia/
Tag: uitoolkit::gtk, uitoolkit::sdl
Download-Size: 824 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: Nintendo Entertainment System/Famicom emulator
Nestopia is a cycle-accurate NES/Famicom emulator. It has a high
compatibility rate and support for many peripherals and input
devices.
.
Features:
* Save states
* Movie recording
* Game rewinding
* GUI or command line interface
* Emulation of NTSC, PAL, and Dendy systems
* Support for NES Zapper games
* Support for Famicom Disk System games
.
Nestopia requires OpenGL 3.2 or later.
user@brain:~$ sudo apt install nestopia
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libarchive13
Suggested packages:
lrzip
The following NEW packages will be installed:
libarchive13 nestopia
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 1,124 kB of archives.
After this operation, 4,314 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.debian.org/debian bullseye/main armel libarchive13 armel 3.4.3-2+deb11u1 [300 kB]
Get:2 http://archive.debian.org/debian bullseye/main armel nestopia armel 1.50-2 [824 kB]
Fetched 1,124 kB in 3s (350 kB/s)
Selecting previously unselected package libarchive13:armel.
(Reading database ... 53453 files and directories currently installed.)
Preparing to unpack .../libarchive13_3.4.3-2+deb11u1_armel.deb ...
Unpacking libarchive13:armel (3.4.3-2+deb11u1) ...
Selecting previously unselected package nestopia.
Preparing to unpack .../nestopia_1.50-2_armel.deb ...
Unpacking nestopia (1.50-2) ...
Setting up libarchive13:armel (3.4.3-2+deb11u1) ...
Setting up nestopia (1.50-2) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for libc-bin (2.31-13+deb11u11) ...
user@brain:~$
user@brain:~$ nestopia --help
Usage: nestopia [options] [FILE]
Options:
-f, --fullscreen Fullscreen mode
-w, --window Window mode
-l, --filter Video Filter
(0=None, 1=NTSC, 2=xBR, 3=HqX, 4=2xSaI, 5=ScaleX)
-m, --maskoverscan Mask overscan areas
-n, --no-maskoverscan Disable overscan masking
-o, --stretchfs Stretch to native resolution in fullscreen mode
-p, --preserveaspect Preserve aspect ratio in fullscreen mode
-s, --scalefactor Video scale factor (1-4)
-t, --tvaspect TV aspect ratio
-r, --no-tvaspect Regular aspect ratio
-u, --unlimitedsprites Remove sprite limit
-q, --spritelimit Enable sprite limit
-v, --version Show version information
More options can be set in the configuration file.
Options are saved, and do not need to be set on future invocations.
user@brain:~$
———-
openmsx MSXエミュレータ(動作は遅い->SDL1.2版で現実的な速度に。)
インストールはApt経由で可能です。
sudo apt-get install openmsx openmsx-catapult openmsx-data cbios
X11環境で、Shellから”openmsx”で起動できます。
(libSDL2の再構築が必要です。再構築していないと、Illegal instruction エラーになります)

また、専用ランチャである”openmsx-catapult”を起動すると、ROM指定を含めてGUIで操作できます(初回起動時は各種チェック処理が入ります)。
とりあえず、ROM起動しましたレベルまでの確認です。やはり遅いです。
user@brain:~$ sudo apt show openmsx
Package: openmsx
Version: 16.0-1
Priority: optional
Section: otherosfs
Maintainer: Bas Wijnen <wijnen@debian.org>
Installed-Size: 6,851 kB
Provides: msx-emulator
Depends: openmsx-data (= 16.0-1), cbios (>= 0.23), libasound2 (>= 1.0.16), libc6 (>= 2.30), libgcc-s1 (>= 3.5), libgl1, libglew2.1 (>= 1.12.0), libogg0 (>= 1.0rc3), libpng16-16 (>= 1.6.2-1), libsdl2-2.0-0 (>= 2.0.12+dfsg1), libsdl2-ttf-2.0-0 (>= 2.0.14), libstdc++6 (>= 6), libtcl8.6 (>= 8.6.0), libtheora0 (>= 1.0), libvorbis0a (>= 1.1.2), zlib1g (>= 1:1.1.4)
Suggests: openmsx-catapult, openmsx-debugger, dmktools
Replaces: openmsx-data (<< 16.0-1)
Homepage: https://openmsx.org
Tag: hardware::emulation, implemented-in::c++, implemented-in::tcl,
interface::3d, interface::graphical, interface::x11, role::program,
uitoolkit::sdl, uitoolkit::tk, use::gameplaying, works-with::audio,
works-with::video, x11::application
Download-Size: 1,720 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: MSX emulator that aims for perfection
openMSX is an open source MSX emulator that uses a unique emulation model,
which tries to achieve the highest level of accuracy possible. It allows
emulating a large number of different MSX machines. Combined with the
C-BIOS ROM-files that are available in a separate package, you can run game
ROM-files without the need for non-free BIOS ROM files.
user@brain:~$
user@brain:~$ sudo apt show openmsx-debubber
N: Unable to locate package openmsx-debubberN: Unable to locate package openmsx-debubber
E: No packages found
user@brain:~$
user@brain:~$
user@brain:~$ sudo apt show openmsx-catapult
Package: openmsx-catapult
Version: 16.0-1
Priority: optional
Section: otherosfs
Maintainer: Bas Wijnen <wijnen@debian.org>
Installed-Size: 1,069 kB
Depends: libc6 (>= 2.4), libgcc-s1 (>= 3.5), libstdc++6 (>= 5.2), libwxbase3.0-0v5 (>= 3.0.5.1+dfsg), libwxgtk3.0-gtk3-0v5 (>= 3.0.5.1+dfsg), libxml2 (>= 2.7.4), openmsx (>= 16.0), openmsx (<< 16.1~)
Homepage: http://openmsx.org
Tag: hardware::emulation, implemented-in::c++, interface::graphical,
interface::x11, role::program, uitoolkit::wxwidgets, x11::application
Download-Size: 376 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: GUI for openMSX
OpenMSX catapult is a graphical frontend for starting the openMSX emulator.
user@brain:~$ sudo apt show openmsx-data
Package: openmsx-data
Version: 16.0-1
Priority: optional
Section: otherosfs
Source: openmsx
Maintainer: Bas Wijnen <wijnen@debian.org>
Installed-Size: 5,322 kB
Depends: ttf-bitstream-vera
Recommends: openmsx
Homepage: https://openmsx.org
Tag: hardware::emulation, role::app-data, works-with-format::xml
Download-Size: 1,400 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: datafiles for openMSX, an MSX emulator
openMSX is an open source MSX emulator that uses a unique emulation model,
which tries to achieve the highest level of accuracy possible.
.
This package provides data that openmsx needs to run.
user@brain:~$ sudo apt show cbios
Package: cbios
Version: 0.28-1.1
Priority: optional
Section: misc
Maintainer: Bas Wijnen <wijnen@debian.org>
Installed-Size: 483 kB
Recommends: openmsx | msx-emulator
Homepage: http://cbios.sf.net
Tag: hardware::emulation, role::app-data
Download-Size: 30.1 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: open source MSX BIOS roms
C-BIOS is an open source BIOS for MSX computers.
.
C-BIOS can be shipped with MSX emulators so they are usable
out-of-the-box. It comes readily configured for the openMSX
emulator.
user@brain:~$ sudo apt-get install openmsx openmsx-catapult openmsx-data cbios
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libglew2.1 libnotify4 libsdl2-ttf-2.0-0 libtcl8.6 libwxbase3.0-0v5
libwxgtk3.0-gtk3-0v5 ttf-bitstream-vera
Suggested packages:
glew-utils tcl8.6 openmsx-debugger dmktools
Recommended packages:
notification-daemon
The following NEW packages will be installed:
cbios libglew2.1 libnotify4 libsdl2-ttf-2.0-0 libtcl8.6 libwxbase3.0-0v5
libwxgtk3.0-gtk3-0v5 openmsx openmsx-catapult openmsx-data
ttf-bitstream-vera
0 upgraded, 11 newly installed, 0 to remove and 1 not upgraded.
Need to get 9,423 kB of archives.
After this operation, 35.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.debian.org/debian bullseye/main armel cbios all 0.28-1.1 [30.1 kB]
~
Get:2 http://archive.debian.org/debian bullseye/main armel libglew2.1 armel 2.1.0-4+b1 [159 kB]
Get:3 http://archive.debian.org/debian bullseye/main armel libnotify4 armel 0.7.9-3 [21.7 kB]
Get:4 http://archive.debian.org/debian bullseye/main armel libsdl2-ttf-2.0-0 armel 2.0.15+dfsg1-1 [15.4 kB]
Get:5 http://archive.debian.org/debian bullseye/main armel libtcl8.6 armel 8.6.11+dfsg-1 [894 kB]
~
Processing triggers for fontconfig (2.13.1-4.2) ...
user@brain:~$
user@brain:~$ openmsx --help
openMSX 16.0
============
usage: openmsx [arguments]
an argument is either an option or a filename
this is the list of supported options:
--help, -h Shows this text
--version, -v Prints openMSX version and exits
-cart, -carta,
-cartb, -cartc,
-cartd Insert the ROM file (cartridge) specified in
argument
-cassetteplayer Put cassette image specified in argument in
virtual cassetteplayer
-cda Use iso image in argument for the CDROM extension
-command Run Tcl command at startup (see also -script)
-control Enable external control of openMSX process
-diska, -diskb Insert the disk image specified in argument
-ext, -exta,
-extb, -extc,
-extd Insert the extension specified in argument
-hda Use hard disk image in argument for the IDE or
SCSI extensions
-ips Apply the given IPS patch to the ROM or disk
image specified in the preceding option
-laserdisc Put LaserDisc image specified in argument in
virtual LaserDisc player
-machine Use machine specified in argument
-replay Load replay and start replaying it in view only
mode
-romtype Specify the rom type for the ROM image specified
in the preceding option
-savestate Load savestate and start emulation from there
-script Run extra startup script
-setting Load an alternative settings file
-testconfig Test if the specified config works and exit
this is the list of supported file types:
cas, wav Cassette image, raw recording or fMSX CAS image
di1, di2, dmk,
dsk, fd1, fd2,
xsa Disk image
mx1, mx2, ri, rom ROM image of a cartridge
ogv LaserDisc image, Ogg Vorbis/Theora
omr openMSX replay
oms openMSX savestate
tcl Extra Tcl script to run at startup
user@brain:~$
なお、Illegal instructionエラーを調査する段階で、ソースからのコンパイルも試してみましたが同じエラーになりました。ちなみにBrainux上でのコンパイルには20時間以上かかりました(マジ)。
———-
openmsx 0.15 (SDL1.2版) インストール 2025/12/22追記


いろいろアプリケーションをインストールしてみた傾向から、やはりSDL2.0が重いのではないか、ということでSDL2.0移行前のSDL1.2を使っている最後のバージョンである「openMSX0.15」をソールからビルトインストールして上書きインストールしてみます。
$ sudo apt-get install openmsx openmsx-catapult openmsx-data cbios
$ cd
$ mkdir openmsx15
$ cd openmsx15
$ tar zxvf openmsx-0.15.0.tar.gz
$ cd openmsx-0.15.0
$ sudo apt install python-dev # openmsx 0.15での./configureの実行に必要
$ sudo apt install libasound2-dev
$ sudo apt install libglew-dev
$ sudo apt install libogg-dev
$ sudo apt install libtheora-dev
$ sudo apt install libvorbis-dev
$ sudo apt install libsdl2-dev
$ sudo apt install libsdl2-ttf-dev
$ sudo apt install tcl tcl8.6-dev
$ ./configure # ビルドに必要なライブラリをチェック。不足している場合は追加
user@brain:~/openmsx15/openmsx-0.15.0$ ./configure
Using Python: python
Probing target system...
Creating derived/arm-linux-opt/config/probed_defs.mk...
Creating derived/arm-linux-opt/config/systemfuncs.hh...
Found libraries:
ALSA: version 1.2.4
GLEW: version unknown
libogg: version unknown
libpng: version 1.6.37
libtheora: version unknown
libvorbis: version unknown
OpenGL: version 4.6
SDL: version 1.2.15
SDL_ttf: version 2.0.11
Tcl: version 8.6.11
zlib: version 1.2.11
Components overview:
Emulation core: yes
GL renderer: yes
Laserdisc: yes
ALSA MIDI: yes
Customisable options:
Install to /opt/openMSX
(you can edit these in build/custom.mk)
All required and optional components can be built.
If the detected libraries differ from what you think is installed on this system, please check the log file: derived/arm-linux-opt/config/probe.log
$ make #Brainの実機ビルトで約15時間
$ sudo make install
起動は、ターミナル上で、「openmsx &」 か、
一度aptでインストール済であれば、JWMメニューから、「games -> openMSX」で起動です
なお注意点として、インストール先が違うことです。
aptでインストールしたopenmsx(バージョンは16.0)のインストール先:
/usr/bin/openmsx
自ビルドしたopenmsx(0.15)のインストール先(シンボリックリンク):
/usr/local/bin/openmsx
Path優先順位は、/usr/local/bin/ -> /usr/bin/なので、自ビルドしたほうが優先順位が高いですが、openmsx-catapultでのopenmsxの場所を変えないと、aptでインストールしたopenmsx16.0が起動してしまう場合があるので、気を付けてください。
(不要であれば、/usr/bin/openmsx を削除でもいいと思います。)
起動押したら、カーソルを左上にもっていくと出てくる menuをクリックすると、
メニューが開いて、romの指定などができます。
おすすめは、
「misc Settings->Minimal Frameskip: 0」
「misc Settings->Maximal Frameskip: 30」
「Sound Settings->Resampler: fast (but low quality)」
あたりを設定しておくと、音ありでもそれなりの速度で動いてくれます。
なお、USBサウンドデバイスを付けてい場合は、別途pulseaudioを起動しておいてください。
なぜか安定して音が鳴ります。
pulseaudio –start
openmsx
pulseaudio -k
標準では、CBIOSで起動しますが、
必要に応じて、MSX実機から取得したのBIOSを
/opt/openMSX/share/systemromsにコピーすればBASICやDiskも使えるようになります。
(ファイルのチェックサムで識別しているようで、ファイル名は任意だそうです。)
コピーしたら、menu -> hardware -> change machine で抜き出した機種名を選んでください。
詳しい説明はこちら
https://openmsx.org/manual
2026/01/05追加
現在、CPU最適化オプションを付けて再ビルド中
結果は15時間後・・・
$ cd
$ cd openmsx15/openmsx-0.15.0
$ cd build
$ vi main.mk
CXXFLAGS:=
↓
CXXFLAGS:=-O3 -match=native
$ make clean
$ make
$ sudo make install
ビルドに16-17時間かかりました。
結果として、心持ち速度が上がった気がします。
———-
fMSX MSXエミュレータ(MSX1/2/2+)



OpenMSXではSDL2を使っているせいか、動作が遅かったのですが、
SDL2を使っていないMSXエミュレータを探したところ、fmsxを見つけました。
これならワンチャン!ということで試してみます。
インストールソールからのビルドになります。
必要に応じて、ライブラリの追加が必要がある場合があります。
$ cd
$ mkdir fmsx
$ cd fmsx
$ wget https://fms.komkon.org/fMSX/fMSX60.zip
$ unzip fMSX60.zip
$ cd fmsx
$ cd fMSX/Unix
$ sudo apt install g++ build-essential libpulse-dev
$ make
ただ、このままでは、build最後のリンク時に大量のエラーになります。/usr/bin/ld: ../../EMULib/Sound.o:(.bss+0x230): multiple definition of ARGV'; ../../EMULib/EMULib.o:(.bss+0x218): first defined here /usr/bin/ld: ../../EMULib/Sound.o:(.bss+0x234): multiple definition ofARGC'; ../../EMULib/EMULib.o:(.bss+0x21c): first defined here
~
このエラーは、簡単に言うと、”ARGC”,”ARGV”の変数が複数のソースで定義されており、
最後のリンク時に重複していてビルドできないといった感じの意味なります。
ソールをgrepで調べたところ、ARGC、RGCGは以下のファイルに存在していました。
user@brain:~/fmsx$ grep -r “ARG” *
EMULib/Unix/LibUnix.c: if(ARGC&&ARGV)
EMULib/Unix/LibUnix.c: P=strrchr(ARGV[0],’/’);
EMULib/Unix/LibUnix.c: ClassHint.res_name = P? P+1:ARGV[0];
EMULib/Unix/LibUnix.c: ClassHint.res_class = P? P+1:ARGV[0];
EMULib/Unix/LibUnix.c: XSetCommand(Dsp,Wnd,ARGV,ARGC);
EMULib/Unix/LibUnix.c: if(ARGC&&ARGV)
EMULib/Unix/LibUnix.h:extern int ARGC;
EMULib/Unix/LibUnix.h:extern char *ARGV;
fMSX/fMSX.c:int ARGC; /* argc/argv from main (#ifdef UNIX) */
fMSX/fMSX.c:char **ARGV;
fMSX/fMSX.c: ARGC = argc;
fMSX/fMSX.c: ARGV = argv;
これで定義部分を抽出すると・・・
EMULib/Unix/LibUnix.h:
int ARGC;
char *ARGV; grep: fMSX/Unix/fmsx: binary file matches
fMSX/fMSX.c:
extern int ARGC; /* argc/argv from main (#ifdef UNIX) */
extern char **ARGV;
これを見ると、
各ソースファイルにインクルードされるヘッダファイル(LibUnix.h)で変数を定義
メインとなるfMSX.cでは変数外部参照になっていました。
これでは、ヘッダファイル(LibUnix.h)をインクルードしている各ソースファイルごとに変数が定義されることになるので、以下のように定義と外部参照を逆に変更します。
EMULib/Unix/LibUnix.h:
extern int ARGC;
extern char *ARGV
fMSX/fMSX.c:
int ARGC; /* argc/argv from main (#ifdef UNIX) */
char **ARGV;
これで、再度コンパイルすると、ビルドできました。
$ make clean
$ make
出来た実行ファイルは、。~/fmsx/fMSX/Unix/fmsx です。
~/fmsx/fMSX/Unix/の下に、MSXのBIOSROMを保存します(別フォルダ指定する場合は)。
MSX.ROM MSX2.ROM MSX2EXT.ROM MSX2P.ROM MSX2PEXT.ROM
FMPAC.ROM DISK.ROM
これで、fmsxが起動します(ちょっと遅く感じたので-skip 50オプション追加)。
./fmsx -skip 50 game.rom
ビルド時にPlusaudioをリンクされていますが現状Pulseaudioの設定していないので音は出ないようですが、問題ないレベルの速度は出ているようです。
(PulseAudio有効にしましたが音なりませんでした。fMSX v5.1でPulseAudioに切り替えしているみたいなので、それより前のバージョンなら音が鳴るかもしれません。)
———–
dosbox グラフィックス、サウンド、DOS を備えた x86 エミュレータ(Brainでは厳しい)



公式サイト:https://www.dosbox.com/DOSBoxManual.html
DOSBoxは、Tandy/Hercules/CGA/EGA/VGA/SVGAグラフィック、サウンド、そしてDOSを搭載したx86エミュレータです。DOSをサポートしていないプラットフォームでも古いDOSゲームを実行できるように設計されています。
以下のレガシーサウンドデバイスがエミュレートされます:PCスピーカー、Creative CMS/Gameblaster、Tandy 3 voice、Adlib、Sound Blaster Pro/16、Disney Soundsource、Gravis Ultrasound。MPU-401はホストに転送されます。
Brainuxでx86のDOSをエミュレートします。
ただ、かなり遅いです。
フレームレートスキップ設定して、CPUサイクルを最大にして、音をなくして、
やっとアクションを伴わないパズルゲームなら、何とか動かせるかも・・・
といったレベルです(ソフトにもよりますが)。
なお、一度dosboxを起動すると、~/.dosbox/dosbox-0.74-3.conf が作成されますので、
このファイルを編集することでいろいろ定義できます。
例)
[render]
frameslip=30
[cpu]
cycles=max
[mixer]
nosounf=true
[autoexec]
mount c ~/dos
c:
[autoexec]にて、上記のように記載すると、
DOSBOX起動時にBranix上の~/dos ディレクトリを
Cドライブとしてマウントして、Cドライブへの移動まで実行してくれます。
インストールはApt経由で可能です。
sudo apt install dosbox
快適な実行は、通常のパソコンレベルのCPU性能がないと厳しいですね。
多分もっと軽くする設定があると思うけど今はこれが精いっぱい。
(参考)
https://www.dosgamesarchive.com/download/bob-and-his-amazing-journey-home
———–
Neko Project 2 kai PC9801/9821 エミュレータ



公式サイト:https://domisan.sakura.ne.jp/article/np2kai/np2kai.html
Neco Project をRaspberry Piに移植したものを0.86化していろいろ改善したバージョンとのことです。
このバージョンではSDL1.2を利用したX11ポートが利用できるので、こちらをビルドしてみました。
起動は、xnp2kai-sdl1です(PC9801エミュレート、X11ポートのSDL1バージョン)
結果として音無し設定あれば、i286 5-7Mhz前後の速度が出るようです。(Autoframe設定)
(Device->Sound option->Driverから無効にできます。)
(音ありだと速度が安定せずに全体的に遅くなるので無効推奨です。要pulseAudio)
BrainのCE版にもNP2がありますが、そちらのほうがBrainに特化した修正がされているようで動きもいいです。がこちらのX11版ではUSBキーボード、マウスが使えるのがメリットです。バーチャルキーボードもありますが、X11版にはカーソルキーをテンキーにする機能はないのでそこは残念。
インストールはソースからのビルドになります。
必要に応じて、ライブラリの追加が必要がある場合があります。
$ cd
$ mkdir np2
$ cd np2
$ git clone https://github.com/AZO234/NP2kai.git
$ cd NP2kai
$ sudo apt install git cmake ninja-build build-essential libx11-dev libglib2.0-dev libgtk2.0-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libusb-1.0-0-dev libfreetype-dev libfontconfig1-dev libssl-dev
$ mkdir build
$ cd build
$ cmake .. -D BUILD_X=ON -D USE_SDL2=OFF -D BUILD_I286=ON
$ make
$ sudo make install
これで、xnp2kai-sdl1 がビルドされます。
(この方法だと一緒にxnp21kai-sdl1も作成されるようです。)
cmakeのオプションについては、githubのページに詳細が書かれています。
xnp2kai-sdl1 pc9801エミュレータ(CPU i286)
xnp21kai-sdl1 pc9821エミュレータ(CPU i386以上)
Brain実機ビルドには全部で4-5時間かかりますのでご注意を。
xnp2kai-sdl1では、設定ファイルは、以下にあります。
xnp2kai_sdl1 ~/.config/xnp2kai/
xnp21kai_sdl1 ~/.config/xnp21kai/
フォルダがない場合は、一度xnp2kai-sdl1、xnp21kai-sdl1を起動すれば
作成されると思います。
このままだと、画面のフォントが文字化けするのでフォントの用意が必要です。
PC9801から吸い出したFONT.ROMを使ってもいいのですがない場合は、
Brainuxにインストールしたフォントからも生成できます。
cd ~/.config/xnp2kai/
sudo apt install fonts-ipafont
ln -s /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf default.ttf
rm font.tmp
これで、xnp2kai-sdl1を起動すると、最初にNP2用のフォントが生成されます。
なお、設定ファイルは、xnp2kaircになります。
(2026/01/04追記)
試しに、BrainのCPUに最適化したビルドをやってみます。
/home/user/np2/NP2kai/build/CMakeFiles/xnp2kai_sdl1.dir/flags.make
C_FLAGS = -Wno-incompatible-function-pointer-types -Wno-int-conversion -O2 -g -DNDEBUG
↓
C_FLAGS = -Wno-incompatible-function-pointer-types -Wno-int-conversion -O3 -march=native -DNDEBUG
CXX_FLAGS = -Og -g -Wall -DNDEBUG
↓
CXX_FLAGS = -O3 -march=native -Wall -DNDEBUG
この後、一度Build状況を初期化してmakeします(xnp2kai-sdl1だけで2.5時間くらい)
cd ~/np2/np2kai/build
make clean
make xnp2kai_sdl1
./xnp2kai-sdl1
結果として、ちょびっとだけCPUクロックが上がりました(0.1-0.5Mhzくらい?)
不具合が起こる可能性もあるので、もう少し触ってみます。
———-
px68k X68000エミュレータ



ソース入手先:GitHub – hissorii/px68k: Portable SHARP X68000 Emulator
起動: ./px68k
X68000エミュレータです。
速度はかなり遅いです。
Human68kを起動して、コマンド操作するくらいならかろうじて可能かなといったレベルです。(マウス操作が実装されていないっぽいので注意)
Human68kの起動+ドライバ組み込み完了までで、リセットから20秒弱といったところです。
あとBrainの画面解像度だと縦の解像度がちょっと足りません。
メモリ設定を2MB以上にすれば、Nemesis改デモの実行や、
TDQ1でのタイトル画面までは表示できました。
(NumlockがPX68Kでは、10キーのCLRに割り当たっているので、10キー付きのUSBキーボードか、スクリーンキーボードを使う必要があるかもしれません。)
メニューは、F12キーで開きます。
ここで、リセットや、FD,HDDの設定、FPS設定や、サウンド設定が可能です。
サウンド設定は無効化推奨です。
なお、標準ではメモリ1MBで稼働しますので、メモリ設定を変更するには、
Human68K3.0.2を起動して、switchコマンドで、MEMORYを1024->4096KBに変更できます。設定変更したら「終了」->Yで設定が保存されます。
上記について詳しくは、readme.txtに記載があります。
インストール:ソースを入手してインストール
(ビルド時に最適化オプションを追加しています。)
$ cd
$ mkdir px68k
$ cd px68k
$ git clone https://github.com/hissorii/px68k.git
$ cd px68k
$ sudo apt install git cmake ninja-build build-essential libx11-dev libglib2.0-dev libgtk2.0-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
$ vi Makefile
CDEBUGFLAGS = -g -O0 -fno-strict-aliasing
↓
CDEBUGFLAGS = -O3 -march=native -fno-strict-aliasing
ifeq ($(shell uname -m),armv6l)
MOPT=
else
MOPT= -m32
endif
↓
ifeq ($(shell uname -m),armv6l)
MOPT=
else
MOPT=
endif
$ make #実機ビルト約40分程度
起動前にX68000のBIOS ROM、フォントファイルを~/.keropi に 保存します。
・iplrom.dat - X68000 BIOS
・cgrom.dat - Font file (cgrom.tmpでも可)
biosROMについては、シャープから公開されたものがこちらから入手可能です。
(今回はX68000 EXPERT用のものをiplrom.datにリネームして使いました)
fontfileについては、実機から入手するか、疑似的に作成する必要があります。
(フォントファイルがない場合は PC 上で WinX68k 高速版を実行すると、
cgrom.tmp が生成されますので、それを使ってくださいとのことです。)
起動
$ ./px68k
———-
Views: 284