StoicGoose is a work-in-progress Bandai WonderSwan and WonderSwan Color emulator. It is written in C# via Visual Studio Community 2022 under Windows 10 Pro 21H2, and uses .NET 6.0 along with the following NuGet packages:
- OpenTK 4.8.0 (for OpenGL rendering, OpenAL sound, etc.)
- OpenTK.WinForms 4.0.0-pre.6 (for WinForms OpenGL control)
- OpenAL-Soft.Win 1.2.0 (for OpenAL Soft runtime)
- Newtonsoft.Json 13.0.3 (for configuration, cheats and breakpoint storage)
- GitInfo 2.3.0 (for versioning information)
- ImGui.NET 1.89.7.1 (for debugger UI)
- Iced 1.20.0 (for x86 disassembly)
- Microsoft.CodeAnalysis.CSharp.Scripting 4.5.0 (for breakpoint support)
- Serilog 3.0.1, Serilog.Sinks.File 5.0.0 and Serilog.Sinks.Console 4.1.0 (for error and general message logging)
Two flavors of StoicGoose are available:
- StoicGoose is the Windows Forms-based interface, meant for playing games. This build supports shaders, XInput controllers, etc.
- StoicGoose.GLWindow is the Dear ImGui-based interface, meant solely for debugging and disassembling games.
- .NET 6.0 Desktop Runtime
- A GPU supporting OpenGL 4.0 (ex. Nvidia GeForce 400 series or later, Radeon HD 5000 series or later, Intel Ivy Bridge iGPUs or later) and appropriate drivers
- Optionally, copies of the WonderSwan and WonderSwan Color bootstrap ROMs (supported but not required); correct MD5 hashes are as follows
- 54b915694731cc22e07d3fb8a00ee2db (WonderSwan)
- 880893bd5a7d53fff826bd76a83d566e (WonderSwan Color)
- d3eff34719a363e586e12b700501ed91 (SwanCrystal)
- Download Visual Studio Community 2022
- Clone the StoicGoose repository
- Build and run the emulator
- This has only been tested through Ubuntu 20.04.3 LTS via Windows Subsystem for Linux (WSL) so far, not yet on a standalone Linux installation.
- Please check Microsoft's instructions for installing .NET on Linux and ensure your distribution is supported.
- The Windows Forms-based interface will not work on Linux, only the Dear ImGui-based debugger.
To clone the StoicGoose repository:
$ git clone https://github.com/xdanieldzd/StoicGoose.git
To create and run a Debug build:
$ cd StoicGoose/StoicGoose.GLWindow/
$ dotnet build
$ dotnet bin/Debug/net6.0/StoicGoose.GLWindow.dll
To create and run a Release build:
$ cd StoicGoose/StoicGoose.GLWindow/
$ dotnet build -c Release
$ dotnet bin/Release/net6.0/StoicGoose.GLWindow.dll
WonderSwan and WonderSwan Color Bootstraps, using Dot-Matrix and Dot-Matrix Color shaders:
Various WonderSwan games, using Dot-Matrix shader:
Various WonderSwan Color games, using Dot-Matrix Color shader:
Debugger UI showing various tool windows:
- The XML data files in
StoicGoose.WinForms\Assets\No-Intro
were created by the No-Intro project; see the DAT-o-MATIC website for official downloads. - The TTF file
JF-Dot-K14-2004.ttf
inStoicGoose.GLWindow\Assets
contains the font "K14-2004" by Hiroshi Tachibana and Toshiyuki Imamura, used as public domain, available as part of the 自家製ドットフォントシリーズ from 自家製フォント工房. - The file
WS-Icon.ico
inStoicGoose.WinForms
is derived from "WonderSwan-Black-Left.jpg" on Wikipedia, in revision from 25 May 2014 by Evan-Amos, used as public domain. - My personal thanks and gratitude to the late Near, who has always been encouraging and inspiring on my amateur emulator developer journey. They are sorely missed.