Native32 是 Sunplus 公司为 DVD 播放器和电视芯片(约 2005–2011 年)开发的游戏格式。游戏运行在芯片内置的栈式虚拟机上,使用类 ActionScript 的字节码,配合光栅图形和 MP3/MPEG-1 多媒体。
这些曾经只能在特定硬件上运行的游戏,如今通过 Native32Emu 在现代设备上重获新生。
从字节码虚拟机到 MPEG-1 解码器,全栈 Rust 实现
36 个操作码的栈式虚拟机,覆盖算术、逻辑、字符串、控制流、精灵和 I/O,完整还原 Native32 游戏脚本引擎。
纯 Rust 移植 PL_MPEG,零 C 依赖的 MPEG-1 视频 + MP2 音频解码器,流畅播放过场动画。
平台无关的核心引擎 + 独立的 Standalone 和 RetroArch 前端,共享 100% 模拟逻辑。
直接加载 .zip 游戏包,自动解压并启动 FHUI 主菜单,还原原始的游戏浏览体验。
实现完整的 DES ECB 头部解密,还原 Sunplus 自定义加密的游戏文件头。
完整的 libretro 核心,支持 RetroPad 映射、核心选项、着色器、网络对战等 RetroArch 生态功能。
84 款游戏,7 大分类,全部通过测试
清晰的三层架构,平台无关的核心引擎
从 MPEG-1 解码到 DES 加密,全部用 Rust 从零实现
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
}
// 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
}
}
几行命令,即刻体验
下载最新版本
从 Releases 页面下载对应平台的二进制文件
运行游戏
native32-emu game.smf
或从 ZIP 加载
native32-emu games.zip
下载 libretro 核心
从 Releases 页面下载对应平台的核心文件
安装核心
复制到 RetroArch 的 cores/ 目录
加载核心并启动
Load Core → Native32 → Load Content
克隆仓库
git clone https://github.com/jiangxincode/Native32Emu.git
编译 Standalone
cargo build -p native32emu --release
或编译 RetroArch 核心
cargo build -p native32emu-libretro --release