m
Line 3: Line 3:
 
'''Global'''
 
'''Global'''
 
* Use modern C++ to replace macros and platform-specific code wherever possible
 
* Use modern C++ to replace macros and platform-specific code wherever possible
 +
* Eliminate remaining static variables in drivers and devices
  
  

Revision as of 20:05, 7 January 2017

Return to the main Frequently Asked Questions page.

What are the current technical goals of the MAME project?

Global

  • Use modern C++ to replace macros and platform-specific code wherever possible
  • Eliminate remaining static variables in drivers and devices


Drivers

  • Remove deprecated direct_update_handler functions from the remaining drivers that have one. This will facilitate speeding up the memory system, which in turn will improve all drivers
  • Rewrite older drivers to modern standards
  • Rewrite the 2 or 3 drivers still outstanding from the license change


Slots

  • Come up with a clean way to allow devices to have multiple slot connectors


UI

  • Continue to modernize and untangle the UI code so that the business logic is separate from the presentation


Rendering

Note: in order to make the rest of these points feasible, the BGFX rendering path is the preferred implementation. The existing D3D9 and OpenGL renderers and the HLSL and GLSL features are deprecated and should not be the target of any new features unless those features also target the BGFX path.

  • Drivers / the core need a way to tell the renderer to run a specific shader pass or passes (such as NTSC or PAL filtering, YUV conversion for laserdisc, etc) on each submitted bitmap
  • Drivers / the core need some way to do GPU rasterization. This will involve drivers needing to submit polygons, textures and texture atlases, and custom shaders to the renderer.