3 ms·
> Retrobot simplifies control by auto-forwarding through idle parts of games, such as conversations or battle animations. How is this possible? Isn't this the
by hyperhopper 4y ago
> Retrobot simplifies control by auto-forwarding through idle parts of games, such as conversations or battle animations.
How is this possible? Isn't this the halting problem?
- soulofmischief 4y agoI assume memory hacking, most of these memory tables for popular old games are well known.
- hyperhopper 4y ago"popular" isn't what the site claims. It claims this is at the emulation level, not game level. If I can't make my own rom and have it work, what it advertised is a lie.
- soulofmischief 4y agoIt's an open source project, they aren't selling you anything. If you find it doesn't work as intended for a given ROM, you roll up your sleeves and fix it, ensuring the intended feature remains complete. Or I guess one could just complain and nitpick on Hacker News.
- kevincox 4y agoMaybe it tries to emulate extra frames with different buttons pressed and if it doesn't make a difference it plays those frames for you? Of course detecting "doesn't make a difference" is very difficult because most games will keep at least the current and last frame of input in memory somewhere. So you would need to be careful enough to ignore that.
- g_hn_liaison 4y agoLooks to me like that's exactly what it does. This line seems to check for a divergence of possibilities: https://github.com/rossimo/retrobot/blob/master/src/emulate.ts#L119 https://github.com/rossimo/retrobot/blob/master/src/emulate....
- ross-squires 4y ago@kevincox and @g_hn_liaison have it right. There's a set of parallel workers that test different button inputs. The "output" is the last frame rendered to the screen after extra few frames to let the game respond. Those button outputs are compared with an "idle" output to determine if pressing any input could change the output. If not, then continue to autoplay until an input matters.