逆向工程任天堂E-Reader的绘图API:堆栈中的秘密
2025-02-02

一位开发者在为任天堂E-Reader开发扫雷游戏时,意外发现其绘图API `DrawLine` 函数的运行时间取决于堆栈顶部的值。最初,他使用循环调用`DrawLine` 绘制迷你地图矩形,却发现线条绘制速度越来越快,最终发现绘制时间由循环计数器与另一个寄存器组合后压入堆栈的值决定。通过将0压入堆栈,他解决了这个问题,并揭开了这个绘图API隐藏的特性。这个案例生动地展现了逆向工程的魅力以及古老处理器架构的特殊性。
游戏
任天堂E-Reader