Open main menu

Future TODOs

General:

  • C++11 by default
    • type aliases templating
    • move semantics
  • UBSan common code
  • Treat Android platform like first-class citizen
    • Fix low-resolution GUI
    • Get rid of redundant Android & Android-SDL builds
    • Support display rotation
    • Proper GUI support for touchpad emulation vs touchscreen (currently this is hacked into a totally unrelated MIDI checkbox)
    • MIDI hardware support?
  • SharedPtr deleter -> template
  • Prune dead ports code
  • Centralise documentation and remove redundancies between wiki/readme/web site/etc.
  • New rules for ports
  • Help docs for devs on memory management?
  • Stop caching save file listings on systems that have OS-level caching

GUI:

  • Fix bad GUI on retina display & in SurfaceSdl mode
    • For this to be fixed in SurfaceSdl, its design needs to be changed so that the final rendering surface is always the resolution of the window, the game surface must be blitted to this surface using some interpolated scaling, and then the overlay width/height will need to be changed to be always the window dimensions instead of the game dimensions. And then it will work just like the OpenGL one. Since SDL2’s scaling blitter is apparently busted on 2.0.4ish versions, I am unsure how this could be done without ugliness, but since the SDL2 API is designed to be GPU composited I _have_ to imagine there is a way to do this without terribly much hassle (or maybe we finally drop the SurfaceSdl renderer once and for all and use only OpenGL, which would also finally enable those GPU shaders!).
  • Unicode already (the e.g. Chinese translations are forced to use pinyin, not acceptable to me in 2017!)

Infra:

  • Finish Buildbot upgrades
  • Containerise other web services
    • bug tracker
    • translations
    • main web
    • wiki
  • Automated release builds
    • Improve packaging step to generate N packages from a single build using proper packaging utilities (nsis, deb, rpm, etc.)
  • User-driven compatibility database to replace the manual XML+Smarty-based system used currently (think WineDB)
  • Get monitoring on the servers for disk space, etc.

Engines:

Upstream libs:

  • MAME OPL update
  • Munt update
  • Investigate DOSBox OPL update