Note that nothing here is a promise. This all just represents ideas in my head. Who knows if I'll get to it all!


  • (done) convert sound cores into devices
  • (in progress) make scheduling a device thing instead of a CPU thing, allowing any device to participate
  • integrate proper localization (work with MAMEPlus!)
  • compile with UNICODE=1 for all builds (will deprecate Windows 9x support)
  • define & implement more general pipe-like interface for external communication
  • change OSD sound interface so it creates sound "targets" much like render targets
  • allow setting of realtime clock to fixed value from command line for regression testing


  • write x86 DRC front-end, unifying all x86/NEC variants
  • investigate and fix TMS32031 calculation bug


  • add timer window
  • add CHD viewer window
  • make workable in a fully command-line fashion
  • convert to using pipes
  • separate debugger from core application


  • Add texture management to poly.c
    • Accepts array of 8 32-bit parameters
    • Hashes those parameters and performs lookups
    • Automatically manages via LRU
  • Pre-compute textures in voodoo at upload time and remove on-the-fly format conversion for a bit more speed


  • render crosshairs in UI layer not in game containers
  • game-specific crosshair bitmaps and sizes
    • user selectable?
  • fix crosshair rendering to understand scale and offset factors
  • font improvements:
    • start with built-in font, then load others
    • standardize on BDC as the font format, provide BDF2BDC converter
    • find a good unicode font
    • user-selectable at runtime via menu?


  • convert output system to use pipes
  • add ability to get XML description of current game


  • write tests to figure out 3dfx mipmapping algorithm
  • remove use of MDRV_VBLANK_INT(count) where count > 1
  • cliffhgr.c:
    • add proper latching/buffering to ensure no dropouts
    • fix 9928a emulation to match screenshot (broken link)
  • 3DO-based systems


  • write debugger documentation
    • Debugger basics (covers the main window, the keyboard shortcuts, and a couple of very basic commands)
    • Viewing memory (covers disasm/dump, memory and disassembly windows)
    • Breakpoints and watchpoints (covers basic breakpoints and watchpoint usage)
    • Expressions (covers using expressions to change values and the whole expression syntax)
    • Advanced breakpoints and watchpoints (covers conditionals, actions, etc)
    • Other techniques (covers tracing and other things)
  • write description for how to compute crosshair parameters

Other Stuff

  • look into inpout32.dll for hooking up ZVG to WinMAME