Skip to content

aweigit/ruffle-miyooflip

Repository files navigation

Ruffle - Flash Player 模拟器 (掌机版本)

English

基于 Ruffle 的 Flash Player 模拟器,专门为掌机设备(Trimui Brick、Miyoo Flip)和桌面 Linux 优化的 SDL2 前端版本。

项目特性

  • 基于 SDL2 + OpenGLESv2 渲染
  • 支持手柄控制和自定义按键映射
  • 针对 ARM64 掌机设备优化

构建指南

前置依赖

  • Java
  • SDL2
  • OpenGLESv2
  • 交叉编译工具链 (用于 ARM64 目标)

构建目标

1. x64 Ubuntu 20 (桌面版本)

cargo build --release -p sdl2test-u

2. Trimui Brick (ARM64)

export 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-tb

3. Miyoo Flip (ARM64)

export 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=K

支持的按钮名

  • A, B, X, Y
  • L, R
  • L2, R2
  • L3, R3
  • Start, 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 项目开发。


English

Ruffle - Flash Player Emulator (Handheld Version)

An Flash Player emulator based on Ruffle, specifically optimized SDL2 frontend for handheld devices (Trimui Brick, Miyoo Flip) and desktop Linux.

Features

  • SDL2 + OpenGLESv2 rendering
  • Gamepad control with customizable key mapping
  • Optimized for ARM64 handheld devices

Build Guide

Prerequisites

  • Java
  • SDL2
  • OpenGLESv2
  • Cross-compilation toolchain (for ARM64 targets)

Build Targets

1. x64 Ubuntu 20 (Desktop Version)

cargo build --release -p sdl2test-u

2. Trimui Brick (ARM64)

export 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-tb

3. Miyoo Flip (ARM64)

export 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 Mapping

Default Mapping

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 Keys

Combo Key Function
Select + Y Toggle mouse mode (X key as confirm)
Select + Start Toggle D-pad to WASD mode

Mouse Mode

In mouse mode:

  • D-pad controls mouse movement
  • X key acts as left mouse click

Custom Button Mapping

Mapping File Location

Mapping files are saved in the keymap folder in the current directory, named after the SWF game name:

keymap/
├── game1.cfg
├── game2.cfg
└── ...

Mapping File Format

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=K

Supported Button Names

  • A, B, X, Y
  • L, R
  • L2, R2
  • L3, R3
  • Start, Select

Supported Key Names

  • 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

Usage Example

# W*H is the screen resolution, Q is the render quality(low/medium/high)
./sdl2test-u game.swf -W 640 -H 480 -Q low

License

This 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.

Acknowledgments

Based on the Ruffle project.

About

An Adobe Flash Player emulator based on Ruffle, specifically optimized SDL2 frontend for handheld devices (Trimui Brick, Miyoo Flip) and desktop Linux.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors