-
Notifications
You must be signed in to change notification settings - Fork 1
Resources
lifning edited this page Aug 4, 2012
·
5 revisions
- Python implementation of algorithms from Russell and Norvig's "Artificial Intelligence: A Modern Approach." http://aima-python.googlecode.com/svn/trunk/search.py
- Has a similar problem-solver structure to what Optiness uses.
- "Beautiful Debugging" by Andreas Zeller. Chapter 28 of http://beautifulcode.oreillynet.com
- Discussion of delta debugging and input minification might help us take an existing TAS and shorten it.
- snes9x-rr, a modified rerecording version of snes9x used by the TAS community http://code.google.com/p/snes9x-rr
- bsnes, a modern, very hardware-accurate SNES emulator http://byuu.org/bsnes/
- lsnes, a rerecording emulator based on bsnes http://tasvideos.org/forum/viewtopic.php?t=12325
- libretro, a library that abstracts implementation details of emulated systems. https://github.com/libretro/
- python bindings for libretro: https://github.com/lifning/python-retro/
- We might have NES, SNES, Genesis, GBC, GBA, etc. support by targeting libretro: https://github.com/libretro/libretro-super
- Cores must implement 'serialize', 'unserialize', and retrieving the system RAM.
- SMV, a format for storing SNES "speedruns" as snapshot- or reset-anchored input strings: http://code.google.com/p/snes9x-rr/wiki/SMV151
- Timing and synchronization issues with these files due to the hackish nature of the old snes9x versions used to record them. Very difficult to reproduce these without going way out of scope for this project, though perhaps a libretro port of the older snes9x 1.43 (which might happen) would help.
- BSV, a format similar to SMV used in previous versions of bsnes: http://gitorious.org/bsnes/pages/BsnesMovieFormat
- Supported by RetroArch (formerly SSNES) and older versions of bsnes-qt.
- There don't seem to be many published "runs" in this format on the internet.
- TASVideos runs for Super Mario World:
- http://tasvideos.org/1944M.html (SMV143) Keeping state between levels makes it difficult for us to divide the run computation into individual levels--we would have to compute a different run for each possible set of power-ups with which Mario can start the level.
- http://tasvideos.org/1945M.html (SMV143) "Credits early" RAM manipulation glitch. These non-intuitive endings should be easy to find as long as we use things like breadth/depth-first search, but might be overlooked as soon as we involve heuristics.
- Map of RAM values in Super Mario World: http://www.smwcentral.net/?p=map&type=ram
- http://alcaro.tk/ram.html seems to be dead.
- The TASVideos record for Tetris apparently employed a brute force search: http://tasvideos.org/2786S.html