搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

Darhkfox/SuperMarioAllStars

游戏

面向 PC 与 Android 的 SNES《超级马力欧全明星》原生移植,支持宽屏、双人合作与成就,需自备 ROM。

186
5
C++
NOASSERTION
创建于 1 天前

项目介绍

这是一个用 C++ 编写的《超级马力欧全明星》(SNES)原生移植,面向 Windows 10/11 与 Android。它在模拟 SNES 硬件的基础上加入移植特性:最高 21:9 的真实宽屏与重新锚定的 HUD、SMB1、The Lost Levels 和 SMB3 的同屏双人合作、82 项成就、CRT 滤镜与 RetroArch slang 着色器、即时存档、倒带、作弊、关卡选择、声音测试和音乐播放器。仓库不含游戏数据,需自备 Super Mario All-Stars (USA).sfc ROM(CRC32 925637C7),否则启动器卡片显示 ROM not found。

宽屏是主要技术投入:src/game/ 中的逐游戏逻辑负责延伸瓦片地图、重建流式视差背景、让边缘敌人保持活动,并把状态栏拆分到屏幕两侧,README 按游戏和关卡类型详细记录了处理方式。

Windows 构建

需要 Windows 10/11、Visual Studio 2022(C++ 工作负载)和 CMake 3.20 以上。无需其他库,Direct3D 11、Direct2D、XAudio2、XInput 和 DirectInput 随 Windows 提供。

build.bat

程序输出到 build\Release\SuperMarioAllStars.exe。构建说明

Android 构建

安装 Android SDK 中的 NDK 28.2、CMake 3.31.6,以及 JDK 17 或更高版本。SDL2 源码需放在 third_party/SDL2-2.32.10-src,android/fetch_sdl.ps1 会下载并校验。然后在 android 目录执行:

cd android
gradlew assembleDebug

APK 生成在 android/app/build/outputs/apk/debug/,面向 64 位 ARM 设备(Android 6.0+)和 x86_64 模拟器。若 android/keystore.properties 提供 keystore,则可构建签名发布版。Android 构建说明

运行游戏

把 ROM 放在可执行文件旁、其旁的 roms 文件夹,或向上最多三级的任意父目录中,路径会记入 rompath.txt。Android 上点击显示 ROM-not-found 的卡片,在系统文件选择器中选中文件,或复制到 Android/data/com.darhkfox.allstars/files。

启动后先进入启动器,卡片可启动整张合集或单个游戏。跳过启动器:

SuperMarioAllStars.exe --game smb1

可用值为 allstars、smb1、smbll、smb2、smb3。存档写入 saves\smas.srm,即时存档和截图分别写入各自目录,设置写入 smas_port.ini。运行细节

操作与双人合作

键盘默认方向键对应十字键,Z/X/A/S 对应 B/A/Y/X,Q/W 对应 L/R,Enter 为 Start,Esc 或右 Shift 打开菜单;F5/F8 存档读档,Tab 快进,Backspace 倒带约最近一分钟。支持 Xbox 布局手柄、PlayStation、Switch Pro 及 USB/SNES 手柄,按键可在 Menu → Controls 中为两名玩家分别重绑。

双人合作会在每帧再运行一次游戏自身的玩家代码,让 2P 手柄控制路易吉;SMB1 和 The Lost Levels 中两兄弟各自保留物理差异。在 Options → Multiplayer 中开启,SMB1、The Lost Levels 和 SMB3 的标题画面也会出现 CO-OP GAME 选项。开启合作后模拟 CPU 以双倍速度运行,以保持复杂场景的帧率。按键表

成就与公平模式

82 项成就分布于四个游戏,另有两项合集成就,在 Menu → Achievements 中按游戏列出并显示进度,保存在 achievements.ini。成就开启期间,作弊、关卡选择、快进和倒带均不可用;关闭成就后恢复。即时存档记录其存档是否计入成就,因此读取用作弊的存档无法获得成就。成就列表

使用约束

  • 支持 Windows 10/11 与 Android 6.0+;Android 发布签名需按上文配置 keystore 属性。
  • 必须自备美版 ROM。其他版本或 dump 也能运行,但宽屏、作弊和关卡选择是针对美版调校的。
  • 部分显示功能仅限 Windows,包括窗口设置、垂直同步、黑帧插入、高帧率和 slang 着色器。
  • slang 着色器需要可执行文件旁有 librashader.dll 和存放预设的 shaders 文件夹;部分预设按 4:3 设计,宽屏下可能拉伸或取景异常。
  • 仓库许可证元数据为 NOASSERTION;内置第三方代码与着色器预设各有许可(SDL2 为 zlib,librashader 为 MPL-2.0,多个 CRT 预设为 GPL),再分发前需查看各组件许可文件。

HotRepo 点评

该项目出现在 HotRepo 新项目榜 2026-11-06 的记录中:约 11 小时窗口内新增 102 Star、2 Fork,暂无 GitHub 全语言日榜名次。这只是一次快照,说明它在 C++ 与复古游戏圈获得了早期关注,而非趋势判断。支撑它的是 README 中深入记录的宽屏渲染和逐游戏合作实现,而不只是给现成模拟器套壳;在决定是否满足 ROM 与硬件要求前,宽屏工作原理那部分最值得先读。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。