Native32 Emulator

让尘封的芯片游戏重获新生

用 Rust 编写的 Native32 游戏模拟器,完整支持 Sunplus DVD 芯片上的 84 款经典游戏

Release License Downloads Quality Gate
向下滚动探索

什么是 Native32?

Native32 是 Sunplus 公司为 DVD 播放器和电视芯片(约 2005–2011 年)开发的游戏格式。游戏运行在芯片内置的栈式虚拟机上,使用类 ActionScript 的字节码,配合光栅图形和 MP3/MPEG-1 多媒体。

这些曾经只能在特定硬件上运行的游戏,如今通过 Native32Emu 在现代设备上重获新生。

Sunplus 芯片 DVD / TV SoC
.smf / .ssl Native32 游戏
Native32Emu Rust 模拟器
0
支持游戏
100% 兼容
0
VM 操作码
类 ActionScript 虚拟机
0
目标平台
Windows / macOS / Linux / Android
0
Rust 代码行数
零 C 依赖

核心特性

从字节码虚拟机到 MPEG-1 解码器,全栈 Rust 实现

Action 字节码虚拟机

36 个操作码的栈式虚拟机,覆盖算术、逻辑、字符串、控制流、精灵和 I/O,完整还原 Native32 游戏脚本引擎。

MPEG-1 解码器

纯 Rust 移植 PL_MPEG,零 C 依赖的 MPEG-1 视频 + MP2 音频解码器,流畅播放过场动画。

双前端架构

平台无关的核心引擎 + 独立的 Standalone 和 RetroArch 前端,共享 100% 模拟逻辑。

ZIP 包加载

直接加载 .zip 游戏包,自动解压并启动 FHUI 主菜单,还原原始的游戏浏览体验。

DES 解密

实现完整的 DES ECB 头部解密,还原 Sunplus 自定义加密的游戏文件头。

RetroArch 核心

完整的 libretro 核心,支持 RetroPad 映射、核心选项、着色器、网络对战等 RetroArch 生态功能。

技术架构

清晰的三层架构,平台无关的核心引擎

前端
native32emu Standalone 可执行文件
minifb 窗口
native32emu-libretro libretro cdylib
RetroArch 核心
核心引擎
native32emu-core 平台无关的库
Action VM Renderer Audio MPEG-1 Image Decoder File Loader Sprite System DES Decrypt
目标平台
Windows
macOS
Linux
Android

纯 Rust,零妥协

从 MPEG-1 解码到 DES 加密,全部用 Rust 从零实现

action_vm.rs
pub enum Action {
    // Arithmetic
    Add, Sub, Mul, Div, Modulo,
    // Comparison
    Less, Greater, Equal,
    // Control Flow
    Jump, JumpIf, Call, Return,
    // Sprite & Movie
    CreateSprite, CloneSprite,
    SetVisible, GotoFrame,
    // I/O
    PlaySound, PlayMusic,
    StopSound, StopMusic,
    // ... 36 opcodes total
}
mpeg/video.rs
// Pure-Rust MPEG-1 video decoder
// Ported from PL_MPEG — zero C dependencies

pub struct Mpeg1Decoder {
    buffer: BitBuffer,
    block: [i16; 64],
    dc_predictor: [i16; 3],
    quantizer_matrix: [[u8; 64]; 2],
}

impl Mpeg1Decoder {
    pub fn decode_frame(
        &mut self,
        frame: &mut [u8],
    ) -> Result<()> {
        // Full MPEG-1 I/B/P frame decode
        // IDCT, motion compensation, YUV→RGB
    }
}

快速开始

几行命令,即刻体验

🖥️

Standalone

1

下载最新版本

从 Releases 页面下载对应平台的二进制文件
2

运行游戏

native32-emu game.smf
3

或从 ZIP 加载

native32-emu games.zip
🎮

RetroArch

1

下载 libretro 核心

从 Releases 页面下载对应平台的核心文件
2

安装核心

复制到 RetroArch 的 cores/ 目录
3

加载核心并启动

Load Core → Native32 → Load Content
🔨

从源码编译

1

克隆仓库

git clone https://github.com/jiangxincode/Native32Emu.git
2

编译 Standalone

cargo build -p native32emu --release
3

或编译 RetroArch 核心

cargo build -p native32emu-libretro --release