N-EMU · 复古游戏模拟器v0.9.13支持开发者
开发故事发布于 Thor's Workshopv0.9.13

写错的一个数字

世嘉创世纪的游戏在 Android 上完全无法运行。原因是一个数字:画面高度被记录得比实际少十六行。层层检查都没能发现,持续了数月。

发布前开发记录

N-EMU 支持十一种机型。每种机型的画面尺寸都不同,因此这些数字集中放在一处,由 iOS 和 Android 共同读取。写一次就不会两边不一致——当初是这么想的。

世嘉创世纪那一栏写的是 320x224,而内核实际给出的画面是 320x240,多出十六行。

Android 会依据那个数字创建存放画面的容器。容器少了两万字节,画面放不进去,只留下「Native engine error 7」。世嘉创世纪的游戏一帧也没有画出来。

iOS 没有问题。它不会把画面复制进容器,而是直接在画面所在的位置绘制,所以即使尺寸记错也伤不到它。

没能发现的原因就在这里。iOS 的检查早就知道世嘉创世纪会输出 224 行或 240 行,并且写成两者都接受。知道真相的一方不会受伤,会受伤的一方却没有检查。两边的检查都是绿灯。

发现它靠的不是运气而是顺序。清点实机上究竟运行过什么之后,发现有六种机型一次也没有启动过。为了在没有游戏的情况下也能验证,制作了测试卡带,在平板上逐个运行,轮到世嘉创世纪时出现了错误。

数字已改为 320x240。游戏即使选择 224 行模式也能容纳其中,画面比例也恢复为与实机相同的 4:3。此外还新增了一项检查,确认每种机型实际输出的画面不超过所记录的尺寸——加进去的那一刻就抓出了这个问题。

  1. 开发故事v0.9.11

    与任天堂 DS 相似的折叠屏

    折叠屏展开后可以把屏幕分成两块使用,任天堂 DS 同样有两块屏幕。利用这一相似结构,在展开的屏幕上像掌机本体那样把上屏放大,并把触摸屏放在方向键与按键之间。

  2. 开发故事v0.2.0

    把多个机种放进一个应用

    连接多个模拟器核心,让不同机种的游戏也能在同一个游戏库中选择和管理存档。

返回列表支持的机型与功能

支持 N-EMU 开发

欢迎支持 N-EMU 的开发。支持款项将用于开发者账号、测试设备,以及持续改进应用。是否支持不会影响可用功能。