“The MAME story: From C to Modern C++"
summary
A 20‑year C codebase shifts toward modern C++ to improve readability, portability and performance while preserving 35,000+ games and about 150 MB source, with roughly 2,000 distinct hardware drivers. Work includes replacing globals, adding object interfaces, custom zero‑initializers, and faster callbacks via delegates and variadic templates. Tooling and libraries include clang/VS2015, ReSharper, PVS‑Studio, Genie build generator and graphics work with bgfx + shaders, Lua and rapidjson, and a powerful runtime debugger with breakpoints and CRT shader effects.
AI-written summary · about
chapters (13)
- 0:00Introduction and speaker background
- 5:35What is MAME and its goals
- 12:03Why software preservation matters
- 17:11MAME project statistics and growth
- 21:14Development tools and modernization tools
- 26:16Modern C++ migration journey
- 33:32Automating modernization with Clang-Tidy
- 38:57Future plans and legal constraints
- 43:37MAME architecture and delegates
- 46:08Third-party libraries in MAME
- 49:06Why contribute to open source
- 51:12Live demo and debugger showcase
- 57:00Q&A session
related talks
01h 03mA C++ journey from old to modern - Modernising ObjectiveFrame
01h 06mModern C and What We Can Learn From It
01h 25mWriting games in very modern C++
01h 05mChallenges and Benefits of Upgrading Sea of Thieves From C++14 to C++20
01h 31mC++20: C++ at 40
59mTeaching an Old Dog New Tricks - A Tale of Two Emulators
53mMaking C++ Fun, Safe, and Accessible
34mPractical C++20 Modules and the future of tooling around C++ Modules
