
2025/12/28 15:39
**Uxn32** *Windows および Wine 向けの Uxn エミュレーター*
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約
Uxn32 は、Windows 95〜11 本格実装および Wine 上で動作する軽量かつクロスプラットフォームの Uxn 仮想マシン用グラフィカルエミュレータです。
「Uxn32 Essentials Pack」は、インストーラーや外部ライブラリを必要とせず、事前にビルドされた ROM を組み込んだ単一の
Uxn32.exe を提供します。
主な特徴は次の通りです:
- サンドボックス化されたファイルシステムアクセス とフルデバッガ(ステップ実行、逆アセンブル、メモリ/スタック表示・編集)
- High‑DPI サポート、高速イベント処理、および無限ループを停止してシステムのフリーズを防止するプリエンプティブ実行モデル
- キーボードショートカット:F1 でズーム、F5 でデバッガ切替、F2 でウィンドウ複製、F7/F8 でステップ実行、F3 でコンソール表示/非表示、F4 で ROM のリセット/再読み込み、F9 でエミュレーションの一時停止/再開
- ゲームパッドマッピング:Control, Alt, Shift, Home キーを A, B, Select, Start ボタンにエミュレート
このエミュレータは、Visual C++ 6.0 から Visual Studio 2026、Clang/clang‑cl、Winelib 経由の GCC、MinGW(Clang/GCC)、または Pelles C など、多種多様なコンパイラでコンパイル可能です。
ビルド手順はプラットフォームにより異なります:
- VC6 は
プロジェクトを使用uxn32.dsp - 新しい Visual Studio と MinGW のビルドは
を利用し、CLion、Qt Creator、VS Code などの IDE が使えますCMakeLists.txt - Linux 上で Winelib または MinGW を用いてビルドすると、Wine 下で動作する ELF 実行ファイルが生成されます
ソースコードは三つのファイル(
uxn32.c, uxn_lz.c, uxn_core.c)とリソースファイル(uxn32.rc)から構成され、リンクには標準 Windows ライブラリ(user32.lib, gdi32.lib, shell32.lib 等)が必要です。
将来のリリースでは、ドラッグ&ドロップで ROM を読み込む機能、ピクセルスケーリング、オーディオ出力、コンソール I/O、メニューバー、設定項目、グラフィカルデバッガ、サンドボックスディレクトリ設定、およびパフォーマンス指標などのユーザーフレンドリーな機能が追加予定です。
ライセンス:
uxn32.c は全権利保留、uxn_core.c/h と uxn_lz.c は MIT ライセンスに準拠しています。本文
Uxn32 – Windows および Wine 用 Uxn エミュレーター
Uxn32 は、Uxn 仮想マシンのためのグラフィカルエミュレーターです。
ダウンロード
⬇️📦 最新の Uxn32 Essentials Pack をダウンロード
(
Uxn32.exe とプレビルド済み ROM のコレクションが入っています)
特徴
- 対応環境:Windows 95、98、NT4、2000、XP、Vista、7、8、8.1、10、11 および Wine(Linux など)
32bit と 64bit の両方で動作します。 - Linux やその他 OS 上で Wine により実行できるように設計されています。
- 小型・シンプル – 単一の
、インストーラー不要、依存関係なし。.exe - Uxn プログラム ROM 用にサンドボックス化されたファイルシステムアクセス。
- デバッガ:ステップ実行、逆アセンブル表示/編集、メモリビュー、スタックビュー/編集。
- 高 DPI およびモニタ毎の DPI サポート。
- Uxn プログラムはフルスピードでイベントを受信し、即座に再描画します。
(240 Hz のディスプレイがあれば、その速度を活かせます) - プレエンプティブ実行 – 無限ループや長時間処理中でも凍結しません。
- コンパイル環境:Visual C++ 6.0 (VC6 1998) から Visual Studio 2026、Clang、clang‑cl、GCC(Winelib 経由)、MinGW Clang、MinGW GCC、Pelles C。
使い方
- Uxn32 Essentials Pack をダウンロードします。
- 新しいディレクトリに解凍します。
を実行します。Uxn32.exe
ショートカット & コントロール
| キー | アクション |
|---|---|
| F1 | 1× / 2× ズーム切替 |
| F5 | デバッガ表示 |
| F2 | ウィンドウと状態を複製 |
| F7 | デバッガを 100 命令ずつステップ |
| F3 | コンソールの表示/非表示 |
| F8 | デバッガを 1 命令ずつステップ |
| F4 | ROM ファイルをリセットして再読み込み |
| F9 | エミュレーションの一時停止/再開 |
ゲームパッド ↔ キーボードマッピング
- Control → ゲームパッド「A」
- Alt → ゲームパッド「B」
- Shift → ゲームパッド「Select」
- Home → ゲームパッド「Start」
ビルド方法
Windows
| ツール | 手順 |
|---|---|
| VC6 / 旧 Microsoft IDE | を開き Build を実行。 |
| 最新 VS / MinGW | を使用。CLion + MSVC、CLion + MinGW Clang、Qt Creator + MSVC/Clang、VS Code + C/C++ 拡張機能、Ninja/NMake でテスト済み。 |
注意: VC6 は軽量な
.exe を生成し、DLL や大きなランタイムをバンドルせずに古い Windows バージョンでも動作します。
Linux & その他 UNIX
- Wine と
またはgcc
をインストール。clang - Winelib でコンパイル:出力は ELF 実行ファイルになり、Linux 上の Wine で使用可能。
で実行。wine Uxn32.exe- デバッグ時は
とgdb
を併用。winedbg Uxn32.exe
オプション: clang + winegcc + lld を使えば、PE 実行ファイルを生成できる(
--wine32 必須)。ただし ucrtbase.dll のリンクにより Windows 7+ でのみ動作する可能性があります。
その他のシステム
ソースは
uxn32.c, uxn_lz.c, uxn_core.c の 3 ファイルとリソースファイル uxn32.rc のみ。リンクライブラリ:
user32.lib gdi32.lib shell32.lib shlwapi.lib comdlg32.lib comctl32.lib winmm.lib。
TODO
- ROM のドラッグ&ドロップ読み込み。
- ピクセル倍増 / スケーリング。
- オーディオ出力と音量制御。
- コンソールの入出力。
- ファイル/表示メニュー、メニューバーの切替。
- 設定ダイアログ。
- グラフィカルデバッガ。
- 「About」ダイアログ(現在未使用)。
- ファイルシステムサンドボックスディレクトリ設定と読み書き制限。
- 型別名 (
,DWORD
など) の整理。ULONG
修飾子の追加漏れ修正。static- 外部から汚染された仮想画面周辺の再描画バグ修正。
- タイミングとディスプレイ同期方式の改善(合成デスクトップ対応)。
- GCC の MinGW での C89 問題テスト/修正。
- デバイス関連コードの整理。
- リソース使用量・パフォーマンスインジケーターパネル。
ライセンス
| ファイル | ライセンス |
|---|---|
| All rights reserved |
, , | MIT |