From d1d35682e7b7e3eab441c98b2c73a074a69e346e Mon Sep 17 00:00:00 2001 From: Aloys Date: Tue, 29 Sep 2026 22:21:20 +0800 Subject: [PATCH] Add HyperScanEmu core documentation --- docs/development/licenses.md | 1 + docs/guides/core-list.md | 1 + docs/library/bios.md | 1 + docs/library/hyperscanemu.md | 118 +++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 5 files changed, 122 insertions(+) create mode 100644 docs/library/hyperscanemu.md diff --git a/docs/development/licenses.md b/docs/development/licenses.md index d5df888001..67e3d2ed61 100644 --- a/docs/development/licenses.md +++ b/docs/development/licenses.md @@ -143,6 +143,7 @@ See below for a summary of the licenses behind RetroArch and its cores: | [Handy](../library/handy.md) | [zlib](https://github.com/libretro/libretro-handy/blob/master/lynx/license.txt) | | | [Holani](../library/holani.md) | [GPLv3](https://github.com/LLeny/holani-retro/blob/main/LICENSE) | | | [Hatari](../library/hatari.md) | [GPLv2](https://github.com/libretro/hatari/blob/master/readme.txt) | | +| [HyperScanEmu](../library/hyperscanemu.md) | [BSD-3-Clause](https://github.com/AloysHF/HyperScanEmu/blob/master/LICENSE) | | | [hatariB](../library/hatarib.md) | [GPLv2](https://github.com/bbbradsmith/hatariB/blob/main/LICENSE) | | | [higan Accuracy](../library/higan_accuracy.md) | [GPLv3](https://gitlab.com/higan/higan/blob/master/LICENSE.txt) | | | [Imageviewer](../library/imageviewer.md) | [MIT](https://github.com/libretro/RetroArch/blob/master/cores/libretro-imageviewer/LICENSE) | | diff --git a/docs/guides/core-list.md b/docs/guides/core-list.md index c5cbcc48df..2de8752c49 100644 --- a/docs/guides/core-list.md +++ b/docs/guides/core-list.md @@ -113,6 +113,7 @@ | HBMAME | Arcade/Console/various | HBMAME (HomeBrew MAME) is a derivative of MAME, and contains various hacks and homebrews | | [higan Accuracy](../library/higan_accuracy.md) | Nintendo SNES/SFC/Game Boy/Color | | | [Holani](../library/holani.md) | Atari Lynx | | +| [HyperScanEmu](../library/hyperscanemu.md) | Mattel HyperScan | An emulator for the Mattel HyperScan console (Sunplus SPG290) | | Imageviewer | Imageviewer | A basic core for viewing still images in a libretro frontend | | Ishiiruka | Nintendo GameCube/Wii | | | JAXE | CHIP-8/S-CHIP/XO-CHIP | | diff --git a/docs/library/bios.md b/docs/library/bios.md index 4b02c40239..c116f656c7 100644 --- a/docs/library/bios.md +++ b/docs/library/bios.md @@ -66,6 +66,7 @@ GameBoy Advance | gpSP | [BIOS information](gpsp.md# GameBoy Advance | mGBA | [BIOS information](mgba.md#bios) GameBoy Advance | VBA Next | [BIOS information](vba_next.md#bios) Gamecube/Wii | Dolphin | [BIOS information](dolphin.md#bios) +HyperScan | HyperScanEmu | [BIOS information](hyperscanemu.md#requirements) Intellivision | FreeIntv | [BIOS information](freeintv.md#bios) Lynx | Beetle Lynx | [BIOS information](beetle_lynx.md#bios) Lynx | Handy | [BIOS information](handy.md#bios) diff --git a/docs/library/hyperscanemu.md b/docs/library/hyperscanemu.md new file mode 100644 index 0000000000..e12103c022 --- /dev/null +++ b/docs/library/hyperscanemu.md @@ -0,0 +1,118 @@ +# HyperScan (HyperScanEmu) + +## Background + +The HyperScan is a 2006 Mattel home console built around the Sunplus SPG290 SoC (S+Core 7 CPU). Games ship on CD with optional RFID save cards. HyperScanEmu is an evidence-driven, clean-room emulator for this platform written in Rust, with a libretro core front-end. + +The HyperScanEmu core has been authored by: + +- Aloys + +The HyperScanEmu core is licensed under: + +- [BSD-3-Clause](https://github.com/AloysHF/HyperScanEmu/blob/master/LICENSE) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Requirements + +[Required firmware files](https://docs.libretro.com/library/bios/) go in the frontend's system directory: + +| Filename | Description | md5sum | +|:-----------------:|:------------------------------------------:|:------:| +| spg290.bin | SPG290 internal ROM (32768 bytes) - Required | | +| hyperscan.bin | HyperScan BIOS (1048576 bytes) - Required | | + +Firmware and game media are never distributed with the core. Obtain and dump them legally from hardware and media you own. + +## Extensions + +Content that can be loaded by the HyperScanEmu core have the following file extensions: + +- .bin +- .cue +- .zip + +RetroArch database(s) that are associated with the HyperScanEmu core: + +- HyperScan + +## Features + +Frontend-level settings or features that the HyperScanEmu core respects: + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✕ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](../guides/softpatching.md) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +## Directories + +The HyperScanEmu core's library name is 'HyperScan (HyperScanEmu)' + +## Geometry and timing + +- The HyperScanEmu core's core provided FPS is NTSC (60) +- The HyperScanEmu core's core provided sample rate is 48000 Hz +- The HyperScanEmu core's base width is 640 +- The HyperScanEmu core's base height is 480 + +## Usage + +The HyperScanEmu core requires the full path to content (it loads complete BIN/CUE/ZIP disc packages), so content is loaded directly from disk rather than from memory. + +Video is output in the XRGB8888 pixel format. Audio uses the DAC ring-buffer path (16-bit PCM); the hardware synthesizer is not yet implemented. + +Boot progress currently reaches retail game loading screens. Title/menu and gameplay have not been validated yet. See the [Game Compatibility](https://github.com/AloysHF/HyperScanEmu/blob/master/docs/Game-Compatibility.md) matrix for recorded results. + +## User 1 device types + +The HyperScanEmu core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): + +- **RetroPad** - Gamepad + +## Joypad + +Two controllers are supported. Each pad maps to the HyperScan dual I²C controller: + +| RetroPad Inputs | User 1/2 input descriptors | +|----------------------------------------|----------------------------| +| ![](../image/retropad/retro_b.png) | Red | +| ![](../image/retropad/retro_y.png) | Yellow | +| ![](../image/retropad/retro_x.png) | Blue | +| ![](../image/retropad/retro_a.png) | Green | +| ![](../image/retropad/retro_start.png) | Start | +| ![](../image/retropad/retro_select.png)| Select | +| ![](../image/retropad/retro_l1.png) | Left shoulder | +| ![](../image/retropad/retro_r1.png) | Right shoulder | +| ![](../image/retropad/retro_l2.png) | Left trigger | +| ![](../image/retropad/retro_r2.png) | Right trigger | +| ![](../image/retropad/retro_left_stick.png) X | Analog stick X | +| ![](../image/retropad/retro_left_stick.png) Y | Analog stick Y | + +## External links + +- [HyperScanEmu Repository](https://github.com/AloysHF/HyperScanEmu) +- [Libretro HyperScanEmu Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/hyperscanemu_libretro.info) +- [Report Libretro HyperScanEmu Core Issues Here](https://github.com/AloysHF/HyperScanEmu/issues) diff --git a/mkdocs.yml b/mkdocs.yml index dc3aa3fd67..c02bcb3c87 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -174,6 +174,7 @@ nav: - 'Magnavox Emulation': - 'Magnavox - Odyssey2 / Philips Videopac+ (O2EM)': 'library/o2em.md' - 'Mattel Emulation': + - 'Mattel - HyperScan (HyperScanEmu)': 'library/hyperscanemu.md' - 'Mattel - Intellivision (FreeIntv)': 'library/freeintv.md' - 'Microsoft Emulation': - 'Microsoft - MSX (fMSX)': 'library/fmsx.md'