基于 Ruffle 的 Flash Player 模拟器,专门为掌机设备(Trimui Brick、Miyoo Flip)和桌面 Linux 优化的 SDL2 前端版本。
- 基于 SDL2 + OpenGLESv2 渲染
- 支持手柄控制和自定义按键映射
- 针对 ARM64 掌机设备优化
- Java
- SDL2
- OpenGLESv2
- 交叉编译工具链 (用于 ARM64 目标)
cargo build --release -p sdl2test-uexport PKG_CONFIG_SYSROOT_DIR="/lib-trimui"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-none-linux-gnu-gcc
export RUSTFLAGS="-C link-arg=-L/lib-trimui -C link-arg=-Wl,-rpath-link=/lib-trimui"
cargo build --release --target aarch64-unknown-linux-gnu -p sdl2test-tbexport PKG_CONFIG_SYSROOT_DIR="/lib-flip"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-none-linux-gnu-gcc
export RUSTFLAGS="-C link-arg=-L/lib-flip -C link-arg=-Wl,-rpath-link=/lib-flip"
cargo build --release --target aarch64-unknown-linux-gnu -p sdl2test-flip| 手柄按键 | 键盘按键 |
|---|---|
| A | S |
| B | A |
| X | J |
| Y | U |
| L | A |
| R | D |
| L2 | W |
| R2 | S |
| L3 | O |
| R3 | L |
| Start | I |
| Select | K |
| 组合键 | 功能 |
|---|---|
| Select + Y | 切换鼠标模式 (X 键作为确认键) |
| Select + Start | 切换十字方向键为 WASD 模式 |
在鼠标模式下:
- 十字方向键控制鼠标移动
- X 键作为鼠标左键点击
映射文件保存在当前目录的 keymap 文件夹下,以 SWF 游戏名称命名:
keymap/
├── game1.cfg
├── game2.cfg
└── ...
每行一条映射,格式为 按钮名=键名,# 开头为注释:
# 这是注释
A=S
B=A
X=J
Y=U
L=A
R=D
L2=W
R2=S
L3=O
R3=L
Start=I
Select=KA,B,X,YL,RL2,R2L3,R3Start,Select
- 字母:
A-Z - 数字:
Num0-Num9 - 方向键:
Up,Down,Left,Right - 功能键:
F1-F12 - 特殊键:
Space,Return,Escape,Tab,Backspace,Delete,Insert,Home,End,PageUp,PageDown
# W*H为屏幕分辨率 Q为渲染质量(low/medium/high,默认是high)
./sdl2test-u game.swf -W 640 -H 480 -Q low本项目基于 Ruffle,采用以下许可证之一:
- Apache License, Version 2.0
- MIT License
详见 LICENSE.md
基于 Ruffle 项目开发。
An Flash Player emulator based on Ruffle, specifically optimized SDL2 frontend for handheld devices (Trimui Brick, Miyoo Flip) and desktop Linux.
- SDL2 + OpenGLESv2 rendering
- Gamepad control with customizable key mapping
- Optimized for ARM64 handheld devices
- Java
- SDL2
- OpenGLESv2
- Cross-compilation toolchain (for ARM64 targets)
cargo build --release -p sdl2test-uexport PKG_CONFIG_SYSROOT_DIR="/lib-trimui"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-none-linux-gnu-gcc
export RUSTFLAGS="-C link-arg=-L/lib-trimui -C link-arg=-Wl,-rpath-link=/lib-trimui"
cargo build --release --target aarch64-unknown-linux-gnu -p sdl2test-tbexport PKG_CONFIG_SYSROOT_DIR="/lib-flip"
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-none-linux-gnu-gcc
export RUSTFLAGS="-C link-arg=-L/lib-flip -C link-arg=-Wl,-rpath-link=/lib-flip"
cargo build --release --target aarch64-unknown-linux-gnu -p sdl2test-flip| Gamepad Button | Keyboard Key |
|---|---|
| A | S |
| B | A |
| X | J |
| Y | U |
| L | A |
| R | D |
| L2 | W |
| R2 | S |
| L3 | O |
| R3 | L |
| Start | I |
| Select | K |
| Combo Key | Function |
|---|---|
| Select + Y | Toggle mouse mode (X key as confirm) |
| Select + Start | Toggle D-pad to WASD mode |
In mouse mode:
- D-pad controls mouse movement
- X key acts as left mouse click
Mapping files are saved in the keymap folder in the current directory, named after the SWF game name:
keymap/
├── game1.cfg
├── game2.cfg
└── ...
Each line is one mapping in the format ButtonName=KeyName, lines starting with # are comments:
# This is a comment
A=S
B=A
X=J
Y=U
L=A
R=D
L2=W
R2=S
L3=O
R3=L
Start=I
Select=KA,B,X,YL,RL2,R2L3,R3Start,Select
- Letters:
A-Z - Numbers:
Num0-Num9 - Arrow keys:
Up,Down,Left,Right - Function keys:
F1-F12 - Special keys:
Space,Return,Escape,Tab,Backspace,Delete,Insert,Home,End,PageUp,PageDown
# W*H is the screen resolution, Q is the render quality(low/medium/high)
./sdl2test-u game.swf -W 640 -H 480 -Q lowThis project is based on Ruffle and is licensed under one of the following:
- Apache License, Version 2.0
- MIT License
See LICENSE.md for details.
Based on the Ruffle project.