# mamedev/mame

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mamedev-mame).**

9,929 stars · 2,311 forks · C++ · other

## Links

- GitHub: https://github.com/mamedev/mame
- Homepage: https://www.mamedev.org/
- awesome-repositories: https://awesome-repositories.com/repository/mamedev-mame.md

## Description

MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and consoles to run original software on modern devices. It functions as a retro gaming preservation framework for managing, verifying, and archiving ROM sets and disk images to ensure long-term software accessibility.

The project features a system debugging tool for inspecting emulated memory, CPU registers, and execution flow via breakpoints and disassembly. It also includes a Lua-based automation layer that exposes core system state and hardware controls for custom behavior and analysis, alongside a CRT display emulator that uses shaders to recreate the visual artifacts of vintage monitor hardware.

The platform covers a broad range of capabilities, including cycle-accurate bus simulation, hierarchical memory mapping, and a modular plugin architecture. It provides extensive tools for audio signal processing, input mapping for specialized peripherals, and comprehensive media management for compressed disk images and binary dumps.

The software supports cross-compilation for multiple operating systems and can be compiled into WebAssembly or JavaScript for execution in a web browser.

## Tags

### Game Development

- [Retro Gaming Frameworks](https://awesome-repositories.com/f/game-development/retro-gaming-frameworks.md) — Functions as a comprehensive framework for organizing ROM sets, managing disk images, and preserving legacy gaming hardware.
- [Emulation State Scripting](https://awesome-repositories.com/f/game-development/game-logic-scripting/emulation-state-scripting.md) — Allows custom logic and scripts via an interactive console to control the emulation session and system state. ([source](https://docs.mamedev.org/luascript/index.html))
- [Emulation State Management](https://awesome-repositories.com/f/game-development/emulation-state-management.md) — Creates and restores snapshots of the emulated machine state to and from disk. ([source](https://docs.mamedev.org/debugger/general.html))
- [Multiplayer Input Assignments](https://awesome-repositories.com/f/game-development/multiplayer-input-assignments.md) — Organizes hardware controls into distinct player positions to support simultaneous multi-user interaction. ([source](https://docs.mamedev.org/techspecs/inputsystem.html))

### Operating Systems & Systems Programming

- [Vintage Software Execution](https://awesome-repositories.com/f/operating-systems-systems-programming/vintage-software-execution.md) — Executes legacy software from arcade boards and computers using precise simulated hardware and media types. ([source](https://docs.mamedev.org/usingmame/usingmame.html))
- [Hardware Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators.md) — Simulates physical hardware components, including CPUs, MCUs, and SOCs, for full system emulation. ([source](https://docs.mamedev.org/techspecs/cpu_device.html))
- [Address Resolution Mapping](https://awesome-repositories.com/f/operating-systems-systems-programming/address-based-logic-emulation/address-resolution-mapping.md) — Implements mechanisms for translating logical addresses to physical hardware handlers in emulated systems. ([source](https://docs.mamedev.org/techspecs/device_memory_interface.html))
- [Virtual Bus Definitions](https://awesome-repositories.com/f/operating-systems-systems-programming/address-based-logic-emulation/address-resolution-mapping/virtual-bus-definitions.md) — Defines logical address and data buses that allow emulated hardware components to communicate. ([source](https://docs.mamedev.org/techspecs/device_memory_interface.html))
- [System Debugging](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/system-debugging.md) — Inspects memory, registers, and execution flow in real-time using breakpoints to analyze low-level software behavior. ([source](https://docs.mamedev.org/))
- [CPU Core Implementations](https://awesome-repositories.com/f/operating-systems-systems-programming/computer-architecture/instruction-execution-models/instruction-level-emulators/cpu-core-implementations.md) — Provides specific software implementations of processor architectures, including the 6502 family, ensuring timing accuracy. ([source](https://docs.mamedev.org/techspecs/m6502.html))
- [Cycle-Accurate Bus Timing](https://awesome-repositories.com/f/operating-systems-systems-programming/cycle-accurate-bus-timing.md) — Simulates hardware bus contention by introducing precise timing delays and wait states for cycle-accurate behavior.
- [Emulation Session Control](https://awesome-repositories.com/f/operating-systems-systems-programming/emulation-session-control.md) — Manages the lifecycle and execution state of the emulated hardware, including starting, pausing, resetting, and stopping. ([source](https://docs.mamedev.org/luascript/index.html))
- [Execution Flow Control](https://awesome-repositories.com/f/operating-systems-systems-programming/execution-flow-control.md) — MAME resumes processing until a specific condition is met, such as hitting a breakpoint or timer. ([source](https://docs.mamedev.org/debugger/execution.html))
- [Hardware Input Bindings](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-input-bindings.md) — Binds physical host device inputs directly to emulated hardware I/O ports using digital and analog mappings. ([source](https://docs.mamedev.org/techspecs/inputsystem.html))
- [Hierarchical Address Mapping](https://awesome-repositories.com/f/operating-systems-systems-programming/hierarchical-address-mapping.md) — Resolves logical addresses to physical devices through a hierarchical tree of memory zones and decoding handlers.
- [Memory Banking Implementation](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-banking-implementation.md) — Implements hardware memory banking to allow a single address range to map to multiple physical memory banks. ([source](https://docs.mamedev.org/techspecs/memory.html))
- [Memory Interface Modeling](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-interface-modeling.md) — Simulates the low-level hardware interface between the CPU and memory, distinguishing between opcode and data reads. ([source](https://docs.mamedev.org/techspecs/m6502.html))
- [ROM Asset Auditing](https://awesome-repositories.com/f/operating-systems-systems-programming/rom-asset-auditing.md) — Verifies ROM assets against checksums and specifications to ensure image correctness and compatibility. ([source](https://docs.mamedev.org/usingmame/commonissues.html))
- [ROM Data Access](https://awesome-repositories.com/f/operating-systems-systems-programming/rom-data-access.md) — Provides low-level mechanisms for reading data from emulated ROMs across various bit-widths. ([source](https://docs.mamedev.org/techspecs/device_rom_interface.html))
- [Mass Storage Emulation](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/floppy-disk-emulation/mass-storage-emulation.md) — Implements simulation of high-capacity storage devices using specialized compressed hunk formats. ([source](https://docs.mamedev.org/usingmame/aboutromsets.html))
- [Memory Range Mirroring](https://awesome-repositories.com/f/operating-systems-systems-programming/address-based-logic-emulation/memory-range-mirroring.md) — Duplicates a physical memory range across multiple logical addresses using bitmasks for hardware fidelity. ([source](https://docs.mamedev.org/techspecs/memory.html))
- [View Multiplexing](https://awesome-repositories.com/f/operating-systems-systems-programming/address-based-logic-emulation/memory-range-mirroring/view-multiplexing.md) — Allows dynamically switching between different submaps of a memory range at runtime. ([source](https://docs.mamedev.org/techspecs/memory.html))
- [Archive Media Loading](https://awesome-repositories.com/f/operating-systems-systems-programming/archive-media-loading.md) — Allows loading of ROM dumps and disk images directly from archives without manual extraction. ([source](https://docs.mamedev.org/usingmame/assetsearch.html))
- [Binary Disassembly](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-disassembly.md) — MAME translates binary opcodes from processor cores into human-readable assembly language and metadata. ([source](https://docs.mamedev.org/techspecs/device_disasm_interface.html))
- [Binary Dump Comparison](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-dump-comparison.md) — Verifies binary dump consistency using hash functions and checksums to ensure data integrity. ([source](https://docs.mamedev.org/tools/othertools.html))
- [Binary Memory Dumping](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-memory-dumping.md) — Exports specific ranges of emulated memory directly to binary files for external analysis. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Binary Memory Loading](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-memory-loading.md) — Writes the contents of binary files directly into specified emulated memory ranges or address spaces. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Intermediate Language Translation](https://awesome-repositories.com/f/operating-systems-systems-programming/computer-architecture/instruction-execution-models/instruction-level-emulators/cpu-core-implementations/intermediate-language-translation.md) — Converts guest CPU instructions into an intermediate language to generate host-executable machine code. ([source](https://docs.mamedev.org/techspecs/uml_instructions.html))
- [Instruction Interruption Support](https://awesome-repositories.com/f/operating-systems-systems-programming/computer-architecture/instruction-execution-models/instruction-level-emulators/instruction-interruption-support.md) — Allows pausing CPU instructions mid-execution to simulate precise hardware wait states and interrupts. ([source](https://docs.mamedev.org/techspecs/m6502.html))
- [Conditional Breakpoints](https://awesome-repositories.com/f/operating-systems-systems-programming/conditional-breakpoints.md) — Halts execution and activates the debugger when specific register expressions evaluate to true. ([source](https://docs.mamedev.org/debugger/registerpoints.html))
- [CPU Variant Implementations](https://awesome-repositories.com/f/operating-systems-systems-programming/cpu-variant-implementations.md) — Provides specialized software implementations of different processor versions and offshoots of a specific architecture. ([source](https://docs.mamedev.org/techspecs/m6502.html))
- [Disk Image Format Manipulation](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-image-format-manipulation.md) — Processes and converts compressed, cassette, and floppy image files into formats compatible with emulated hardware. ([source](https://docs.mamedev.org/))
- [Disk Image Sector Editing](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-image-sector-editing.md) — Provides low-level reading and writing of data to specific sectors of disk image files for hardware manipulation. ([source](https://docs.mamedev.org/tools/imgtool.html))
- [Emulation Speed Optimizations](https://awesome-repositories.com/f/operating-systems-systems-programming/emulation-speed-optimizations.md) — Adjusts frameskip, throttling, and CPU threading to maintain full speed or benchmark performance. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Emulation State Rewinding](https://awesome-repositories.com/f/operating-systems-systems-programming/emulation-state-rewinding.md) — Captures and restores sequential snapshots of emulated state to allow backward stepping in time. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Emulation Timing Control](https://awesome-repositories.com/f/operating-systems-systems-programming/emulation-timing-control.md) — Coordinates frame drawing and input processing with speed throttling to ensure accurate emulation timing. ([source](https://docs.mamedev.org/luascript/ref-core.html))
- [Execution Speed Controls](https://awesome-repositories.com/f/operating-systems-systems-programming/execution-speed-controls.md) — Controls frame skipping, clock throttling, and processor allocation to balance performance and accuracy. ([source](https://docs.mamedev.org/commandline/commandline-index.html))
- [Execution State Recording](https://awesome-repositories.com/f/operating-systems-systems-programming/execution-state-recording.md) — Records, plays back, and rewinds the system state to return to previous points in a session. ([source](https://docs.mamedev.org/commandline/commandline-index.html))
- [External Media Mounting](https://awesome-repositories.com/f/operating-systems-systems-programming/external-media-mounting.md) — Enables loading of specific files or archives as emulated media via direct paths. ([source](https://docs.mamedev.org/usingmame/assetsearch.html))
- [Hardware Dependency Resolution](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-dependency-resolution.md) — Links emulated hardware devices and memory regions based on unique tags to establish system connections. ([source](https://docs.mamedev.org/techspecs/object_finders.html))
- [Input Profile Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-profile-managers/input-profile-managers.md) — Allows saving and loading custom controller configuration profiles to quickly switch between input setups. ([source](https://docs.mamedev.org/advanced/ctrlr_config.html))
- [Hardware Resource Grouping](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-resource-grouping.md) — Organizes similar emulated hardware devices or ports into indexable arrays for bulk access. ([source](https://docs.mamedev.org/techspecs/object_finders.html))
- [Hardware Resource Validation](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-resource-validation.md) — Verifies required hardware components and dependencies during system initialization. ([source](https://docs.mamedev.org/techspecs/object_finders.html))
- [Hardware State Exposure](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-state-exposure.md) — Exposes emulated hardware state changes to external programs via named outputs and multi-dimensional arrays. ([source](https://docs.mamedev.org/techspecs/object_finders.html))
- [Host Function Interfacing](https://awesome-repositories.com/f/operating-systems-systems-programming/host-function-interfacing.md) — Triggers external functions, debugger breakpoints, and instruction hooks during the execution of emulated code. ([source](https://docs.mamedev.org/techspecs/uml_instructions.html))
- [Keyboard Input Modes](https://awesome-repositories.com/f/operating-systems-systems-programming/keyboard-input-modes.md) — Switches between natural typing translation and emulated digital input modes for system keyboards. ([source](https://docs.mamedev.org/usingmame/mamemenus.html))
- [Host-to-Guest Translation](https://awesome-repositories.com/f/operating-systems-systems-programming/keyboard-input-modes/host-to-guest-translation.md) — Manages emulated keyboard and keypad devices to translate host keystrokes into legacy hardware inputs. ([source](https://docs.mamedev.org/luascript/ref-input.html))
- [Media Asset Location](https://awesome-repositories.com/f/operating-systems-systems-programming/media-asset-location.md) — Searches directories and archives for required files using filename, CRC, or content digests. ([source](https://docs.mamedev.org/usingmame/assetsearch.html))
- [Memory Content Manipulation](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-content-manipulation.md) — Enables overwriting blocks of emulated memory with specified data sequences or strings for debugging. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Memory Map Exporting](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-map-exporting.md) — Records the current logical-to-physical memory mapping configuration of emulated devices to a log file. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Processor State Preservation](https://awesome-repositories.com/f/operating-systems-systems-programming/processor-state-preservation.md) — Saves and restores the full set of registers to and from a memory structure. ([source](https://docs.mamedev.org/techspecs/uml_instructions.html))
- [ROM Hardware Mapping](https://awesome-repositories.com/f/operating-systems-systems-programming/rom-hardware-mapping.md) — Associates read-only memory regions with specific hardware buses to simulate chip data retrieval. ([source](https://docs.mamedev.org/techspecs/device_rom_interface.html))
- [Shared Memory Management](https://awesome-repositories.com/f/operating-systems-systems-programming/shared-memory-management.md) — Allocates named memory zones that can be mapped into multiple virtual address spaces for hardware simulation. ([source](https://docs.mamedev.org/techspecs/memory.html))
- [Sound Hardware Interfacing](https://awesome-repositories.com/f/operating-systems-systems-programming/sound-hardware-interfacing.md) — Manages the input and output of audio data through low-level emulated sound hardware devices. ([source](https://docs.mamedev.org/luascript/ref-devices.html))
- [System Memory Inspection](https://awesome-repositories.com/f/operating-systems-systems-programming/system-memory-inspection.md) — Provides tools for enumerating and analyzing the organization of memory banks, shares, and regions in emulated hardware. ([source](https://docs.mamedev.org/luascript/ref-mem.html))
- [Device Property Querying](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/device-property-querying.md) — Provides programmatic interfaces for locating and retrieving properties of emulated hardware components. ([source](https://docs.mamedev.org/luascript/ref-devices.html))
- [Floppy Disk Emulation](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/floppy-disk-emulation.md) — Simulates the physical properties and controller logic of floppy disk drives, including magnetic surface states. ([source](https://docs.mamedev.org/techspecs/floppy.html))

### Part of an Awesome List

- [Automation And Scripting](https://awesome-repositories.com/f/awesome-lists/devtools/automation-and-scripting.md) — Interacts with emulated memory and input systems via scripting for custom automation and analysis. ([source](https://docs.mamedev.org/))
- [Disk Image](https://awesome-repositories.com/f/awesome-lists/devtools/compression/disk-image.md) — Compresses raw disk and media images into a standardized format to optimize storage for legacy archives. ([source](https://docs.mamedev.org/tools/index.html))
- [System Capability Extensions](https://awesome-repositories.com/f/awesome-lists/devtools/core-and-community-extensions/system-capability-extensions.md) — Integrates plugins that add new operational capabilities to the core system logic. ([source](https://docs.mamedev.org/plugins/index.html))
- [Delta Image Management](https://awesome-repositories.com/f/awesome-lists/devops/disk-image-management/delta-image-management.md) — Reduces storage requirements by using delta files that reference a parent disk image for shared content. ([source](https://docs.mamedev.org/usingmame/assetsearch.html))
- [SCSI Controller Implementation](https://awesome-repositories.com/f/awesome-lists/devtools/hardware-emulation/scsi-controller-implementation.md) — Provides cycle-accurate simulation of the physical control and data lines of SCSI controller chips. ([source](https://docs.mamedev.org/techspecs/nscsi.html))
- [Pixel-Level Image Manipulation](https://awesome-repositories.com/f/awesome-lists/media/pixel-level-image-manipulation.md) — Provides low-level manipulation of bitmaps, textures, and color palettes using ARGB formats. ([source](https://docs.mamedev.org/luascript/ref-render.html))
- [Visual Effects And Rendering](https://awesome-repositories.com/f/awesome-lists/media/visual-effects-and-rendering.md) — Employs shaders and effects engines to replicate the visual properties of original hardware displays. ([source](https://docs.mamedev.org/))

### Data & Databases

- [Game ROM Organization](https://awesome-repositories.com/f/data-databases/game-rom-organization.md) — Structures and loads software image files specifically for launching game titles. ([source](https://docs.mamedev.org/usingmame/index.html))
- [ROM Set Management](https://awesome-repositories.com/f/data-databases/game-rom-organization/rom-set-management.md) — Organizes game data using parent and clone sets to significantly reduce disk space. ([source](https://docs.mamedev.org/usingmame/aboutromsets.html))
- [Hunk-Based Storage](https://awesome-repositories.com/f/data-databases/storage-abstraction/delta-compressed-packfiles/hunk-based-storage.md) — Uses a standardized compressed hunk format to emulate large disk images without loading entire files into memory.
- [Compressed Hunk Compression](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-extraction-ingestion/data-extraction/compressed-hunk-compression.md) — Compresses raw media images and hard disks into a standardized compressed hunk format to optimize storage. ([source](https://docs.mamedev.org/tools/chdman.html))
- [Compressed Image Extraction](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-extraction-ingestion/data-extraction/compressed-image-extraction.md) — Decompresses data from compressed hunk (CHD) images back into original raw or disk formats. ([source](https://docs.mamedev.org/tools/chdman.html))
- [Emulated Memory Exports](https://awesome-repositories.com/f/data-databases/data-export/emulated-memory-exports.md) — Exports ranges of emulated memory to text files as formatted data or ASCII representations. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Disk Image Format Translation](https://awesome-repositories.com/f/data-databases/data-format-translators/disk-image-format-translation.md) — Translates between various on-disk image file formats and internal magnetic state representations. ([source](https://docs.mamedev.org/techspecs/floppy.html))

### Development Tools & Productivity

- [Debugging and Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools.md) — Provides interactive tools to inspect memory, registers, and execution flow using breakpoints and disassembly.
- [Hardware Catalogs](https://awesome-repositories.com/f/development-tools-productivity/tooling-catalogs/hardware-catalogs.md) — Provides a searchable and filterable catalog of hardware and software configurations for selecting emulation targets. ([source](https://docs.mamedev.org/usingmame/ui.html))
- [Breakpoint Managers](https://awesome-repositories.com/f/development-tools-productivity/breakpoint-managers.md) — Provides an interface to configure and manage breakpoints at specific memory addresses for CPU inspection. ([source](https://docs.mamedev.org/debugger/breakpoint.html))
- [Disassembly Annotations](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/advanced-code-inspection/reverse-engineering-tools/interactive-disassembly-environments/disassembly-annotations.md) — Attaches and manages custom text comments at specific memory addresses within the disassembly view. ([source](https://docs.mamedev.org/debugger/annotation.html))
- [Command Line Configuration](https://awesome-repositories.com/f/development-tools-productivity/command-line-configuration.md) — Provides tools for modifying video and sound configuration parameters via command-line arguments. ([source](https://docs.mamedev.org/usingmame/usingmame.html))
- [Configuration Search Paths](https://awesome-repositories.com/f/development-tools-productivity/configuration-search-paths.md) — Provides mechanisms for locating configuration files across different system directories using search path order. ([source](https://docs.mamedev.org/advanced/multiconfig.html))
- [Debugger Expression Parsers](https://awesome-repositories.com/f/development-tools-productivity/debugger-expression-parsers.md) — MAME parses and executes tokenized expressions using symbol tables to resolve named variables and addresses. ([source](https://docs.mamedev.org/luascript/ref-debugger.html))
- [Debugger Interfaces](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugger-interfaces.md) — MAME manages the overall execution and state of the debugger interface to monitor emulated hardware. ([source](https://docs.mamedev.org/luascript/ref-debugger.html))
- [Diagnostic Logging](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/diagnostic-logging.md) — MAME prints formatted messages or symbol values to the console, error log, or trace file. ([source](https://docs.mamedev.org/debugger/general.html))
- [Automated Test Execution](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/automated-test-execution.md) — Executes automated test suites to verify the accuracy and stability of emulated hardware. ([source](https://docs.mamedev.org/plugins/index.html))
- [Asset Dependency Diagnosis](https://awesome-repositories.com/f/development-tools-productivity/dependency-analysis-tools/code-dependency-analysis/missing-dependency-detection/asset-dependency-diagnosis.md) — MAME lists missing ROM dumps and disk images and displays the search paths attempted. ([source](https://docs.mamedev.org/usingmame/assetsearch.html))
- [Hardware Module Selection](https://awesome-repositories.com/f/development-tools-productivity/extension-compilers/extension-module-compilers/native-hardware-modules/hardware-module-selection.md) — Allows including or excluding specific video, audio, and network output modules to match the target environment. ([source](http://docs.mamedev.org/initialsetup/compilingmame.html))
- [Resource Resolution Hierarchies](https://awesome-repositories.com/f/development-tools-productivity/file-filtering-utilities/resource-resolution-hierarchies.md) — Uses prioritized search paths and directory hierarchies to locate required software and assets. ([source](https://docs.mamedev.org/advanced/paths.html))
- [Input Recording and Playback](https://awesome-repositories.com/f/development-tools-productivity/input-recording-and-playback.md) — Saves user input sequences to files and replays them to reproduce specific emulation sessions. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Instruction Stepping Tools](https://awesome-repositories.com/f/development-tools-productivity/instruction-stepping-tools.md) — MAME executes instructions one by one with options to step over calls or step out of functions. ([source](https://docs.mamedev.org/debugger/execution.html))
- [Memory Pattern Searching](https://awesome-repositories.com/f/development-tools-productivity/memory-pattern-searching.md) — Scans specified memory ranges for sequences of strings, numeric values, or wildcards to analyze software state. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Memory String Extraction](https://awesome-repositories.com/f/development-tools-productivity/memory-string-extraction.md) — Extracts NUL-terminated or custom-delimited strings from binary emulated memory and saves them to text files. ([source](https://docs.mamedev.org/debugger/memory.html))
- [Symbol Table Inspection](https://awesome-repositories.com/f/development-tools-productivity/symbol-table-inspection.md) — Implements utilities for querying and listing registered symbols and their current values within the emulated system. ([source](https://docs.mamedev.org/debugger/general.html))
- [System State Automation](https://awesome-repositories.com/f/development-tools-productivity/task-automation-scripts/embedded-scripting-engines/system-state-automation.md) — Provides an embedded Lua engine to expose core system state and hardware controls for custom behavior and analysis.

### Graphics & Multimedia

- [Vintage Display Simulation](https://awesome-repositories.com/f/graphics-multimedia/vintage-display-simulation.md) — Uses shaders and filters to recreate visual artifacts of vintage monitor hardware, such as CRT scanlines. ([source](https://docs.mamedev.org/))
- [Effects Processing](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-processing/effects-processing.md) — Modifies final audio output using an implementation of filters, compressors, reverb, and equalizers. ([source](https://docs.mamedev.org/usingmame/mamemenus.html))
- [Display Configuration Managers](https://awesome-repositories.com/f/graphics-multimedia/display-configuration-managers.md) — Adjusts display modes, aspect ratios, and scaling filters to match original hardware. ([source](https://docs.mamedev.org/commandline/commandline-index.html))
- [Multi-Screen Rendering Controllers](https://awesome-repositories.com/f/graphics-multimedia/display-configuration-managers/multi-screen-rendering-controllers.md) — Maps game screens to physical monitors using custom rendering chains to apply different filters. ([source](https://docs.mamedev.org/advanced/bgfx.html))
- [Display Visual Adjustments](https://awesome-repositories.com/f/graphics-multimedia/display-visual-adjustments.md) — Controls brightness, contrast, gamma, and visual overlays like scanlines for the display. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Display Hardware Interfacing](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines/scene-renderers/high-quality-scene-rendering/high-dynamic-range-rendering/video-renderers/display-hardware-interfacing.md) — Interacts with display systems, including raster screens, vector displays, and color palette translations. ([source](https://docs.mamedev.org/luascript/ref-devices.html))
- [Visual Effect Shaders](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-effect-shaders.md) — Implements custom GPU shaders to simulate specific display technologies and enhance visual fidelity. ([source](https://docs.mamedev.org/commandline/commandline-index.html))
- [Video Rendering Management](https://awesome-repositories.com/f/graphics-multimedia/video-rendering-management.md) — Selects the rendering backend and manages window size, resolution, and aspect ratio. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Vintage Acoustic Simulation](https://awesome-repositories.com/f/graphics-multimedia/vintage-acoustic-simulation.md) — Applies sonic filters and effects to audio streams to recreate the acoustic characteristics of vintage hardware. ([source](https://docs.mamedev.org/techspecs/index.html))
- [Vector Display Simulations](https://awesome-repositories.com/f/graphics-multimedia/vintage-display-simulation/vector-display-simulations.md) — Simulates the unique visual characteristics of original vector hardware, including beam intensity and flicker. ([source](https://docs.mamedev.org/commandline/commandline-all.html))

### Hardware & IoT

- [Emulated Input Mappings](https://awesome-repositories.com/f/hardware-iot/emulated-input-mappings.md) — Provides interfaces for routing physical host input devices to virtual hardware components in the emulation environment. ([source](https://docs.mamedev.org/luascript/ref-input.html))
- [Hardware Dependency Management](https://awesome-repositories.com/f/hardware-iot/hardware-dependency-management.md) — Manages essential binary assets like BIOS images required for hardware emulation. ([source](https://docs.mamedev.org/usingmame/aboutromsets.html))
- [Hardware Signal Emulation](https://awesome-repositories.com/f/hardware-iot/hardware-signal-emulation.md) — Translates physical controller inputs into the specific electrical or logical signals required by original software. ([source](https://docs.mamedev.org/techspecs/index.html))
- [Software List Launching](https://awesome-repositories.com/f/hardware-iot/software-list-launching.md) — Organizes and launches emulated systems and software using a graphical interface based on standardized software lists. ([source](https://docs.mamedev.org/usingmame/frontends.html))
- [Vintage Circuitry Emulation](https://awesome-repositories.com/f/hardware-iot/vintage-circuitry-emulation.md) — Recreates low-level physical electronic circuits from arcade games and home computers to run original software. ([source](https://docs.mamedev.org/))
- [Vintage Hardware Simulation](https://awesome-repositories.com/f/hardware-iot/vintage-hardware-simulation.md) — Reproduces the physical and electrical behavior of legacy computing components and peripherals for preservation. ([source](https://docs.mamedev.org/))
- [Controller Mappings](https://awesome-repositories.com/f/hardware-iot/controller-mappings.md) — Loads custom button and axis mappings from text files to ensure consistent game controller behavior. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Emulated I/O Port Management](https://awesome-repositories.com/f/hardware-iot/emulated-i-o-port-management.md) — Provides mechanisms for configuring and reading data from simulated vintage hardware input and output ports. ([source](https://docs.mamedev.org/luascript/ref-input.html))
- [Hardware Slot Configuration](https://awesome-repositories.com/f/hardware-iot/hardware-slot-configuration.md) — Defines and instantiates child hardware devices within specific slots to customize the emulated architecture. ([source](https://docs.mamedev.org/luascript/ref-devices.html))
- [Input Remapping](https://awesome-repositories.com/f/hardware-iot/input-behavior-configurators/input-configurators/input-remapping.md) — Implements capabilities for substituting one physical input key or button for another across the control configuration. ([source](https://docs.mamedev.org/advanced/ctrlr_config.html))
- [Input Control Assignment](https://awesome-repositories.com/f/hardware-iot/input-control-assignment.md) — Maps physical input devices to virtual system inputs using logical boolean combinations. ([source](https://docs.mamedev.org/usingmame/mamemenus.html))
- [Input Macros](https://awesome-repositories.com/f/hardware-iot/input-macros.md) — Simulates rapid repeated inputs for specific buttons using a plugin-based macro system. ([source](https://docs.mamedev.org/usingmame/commonissues.html))
- [Input Sequence Macros](https://awesome-repositories.com/f/hardware-iot/input-sequence-macros.md) — Triggers a customizable series of emulated hardware inputs using a single key or button combination. ([source](https://docs.mamedev.org/plugins/inputmacro.html))
- [Keyboard Key Mappings](https://awesome-repositories.com/f/hardware-iot/keyboard-key-mappings.md) — Associates physical keyboard inputs with specific emulated hardware functions using mapping files. ([source](https://docs.mamedev.org/commandline/sdlconfig.html))
- [Media Playback Simulation](https://awesome-repositories.com/f/hardware-iot/media-playback-simulation.md) — Simulates the physical transport mechanisms of legacy media, such as starting and stopping cassette tape drives. ([source](https://docs.mamedev.org/usingmame/defaultkeys.html))

### Programming Languages & Runtimes

- [Intermediate Representations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations.md) — Converts guest CPU instructions into a portable intermediate representation before generating host-executable machine code.
- [Interactive Scripting Environments](https://awesome-repositories.com/f/programming-languages-runtimes/interactive-scripting-environments.md) — Provides a real-time interactive Lua environment to execute commands and control system state. ([source](https://docs.mamedev.org/plugins/console.html))
- [Lua APIs](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/scriptable-application/lua-apis.md) — Exposes core system state and hardware controls to an embedded Lua scripting engine for custom behavior.
- [Instruction Flow Control](https://awesome-repositories.com/f/programming-languages-runtimes/instruction-flow-control.md) — Manages low-level program traversal using labels, jumps, and subroutine calls within emulated code. ([source](https://docs.mamedev.org/techspecs/uml_instructions.html))

### Software Engineering & Architecture

- [Program Counter Tracking](https://awesome-repositories.com/f/software-engineering-architecture/execution-flow-analyzers/program-counter-tracking.md) — MAME records visited program counter addresses and highlights them in disassembly views to analyze paths. ([source](https://docs.mamedev.org/debugger/general.html))
- [Emulated Memory Access](https://awesome-repositories.com/f/software-engineering-architecture/integer-arithmetic/pointer-arithmetic/emulated-memory-access.md) — Provides capabilities to read and write values to emulated device address spaces. ([source](https://docs.mamedev.org/techspecs/uml_instructions.html))
- [Modular Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/modular-plugin-architectures.md) — Employs an architectural framework designed for extensibility via a modular plugin system. ([source](https://docs.mamedev.org/))
- [Plugin-Based Logic Extensions](https://awesome-repositories.com/f/software-engineering-architecture/plugin-based-logic-extensions.md) — Loads external plugins to execute custom logic for modifying input, data handling, and system presence. ([source](https://docs.mamedev.org/))
- [Lua-Based Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures/lua-based-plugin-architectures.md) — Implements a Lua-based plugin architecture to automate tasks and extend functionality after system boot. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [Automation Layers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures/lua-based-plugin-architectures/automation-layers.md) — Provides an embedded Lua engine to expose core system state and hardware controls for custom automation and analysis.
- [Hierarchical Configuration Systems](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/hierarchical-configuration-systems.md) — Uses a configuration system that organizes settings into parent-child relationships for per-game and per-system inheritance. ([source](https://docs.mamedev.org/advanced/multiconfig.html))
- [State Snapshots](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/persistence-and-serialization/state-serialization/state-snapshots.md) — Captures and restores the complete set of processor registers and memory regions to disk or RAM.
- [Application Parameter Configurators](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/execution-parameter-configurations/application-parameter-configurators.md) — Provides command-line arguments to define internal application behavior and operational parameters. ([source](https://docs.mamedev.org/commandline/index.html))
- [Exception Breakpoints](https://awesome-repositories.com/f/software-engineering-architecture/exception-raising-mechanisms/exception-breakpoints.md) — Triggers debugger breakpoints specifically when a processor raises a designated exception number. ([source](https://docs.mamedev.org/debugger/exceptionpoint.html))
- [Memory Access Interception](https://awesome-repositories.com/f/software-engineering-architecture/integer-arithmetic/pointer-arithmetic/emulated-memory-access/memory-access-interception.md) — Provides mechanisms to install taps on emulated address ranges to monitor or modify data during CPU access. ([source](https://docs.mamedev.org/luascript/ref-mem.html))
- [Runtime Parameter Tuning](https://awesome-repositories.com/f/software-engineering-architecture/runtime-parameter-tuning.md) — Adjusts software and hardware behavior parameters via built-in menus and configuration files during execution. ([source](https://docs.mamedev.org/usingmame/index.html))
- [Memory Access Breakpoints](https://awesome-repositories.com/f/software-engineering-architecture/shared-memory-management/memory-access-breakpoints.md) — Halts execution and activates the debugger when a processor accesses a specified memory range. ([source](https://docs.mamedev.org/debugger/watchpoint.html))
- [Memory Access Tracing](https://awesome-repositories.com/f/software-engineering-architecture/shared-memory-management/memory-access-tracing.md) — Provides detailed logging of program counters during writes to specific memory locations for data-flow analysis. ([source](https://docs.mamedev.org/debugger/general.html))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Integrates external logic and custom functionality via a modular architecture for specialized hardware or interfaces.

### System Administration & Monitoring

- [Instruction Tracing](https://awesome-repositories.com/f/system-administration-monitoring/execution-logs/instruction-tracing.md) — MAME logs processor instructions to a file with options to skip subroutines or include data. ([source](https://docs.mamedev.org/debugger/execution.html))
- [Emulated Time Tracking](https://awesome-repositories.com/f/system-administration-monitoring/emulated-time-tracking.md) — Monitors and reports the total elapsed time within the emulated environment relative to the host clock. ([source](https://docs.mamedev.org/debugger/general.html))
- [Reverse Execution Simulation](https://awesome-repositories.com/f/system-administration-monitoring/execution-history-auditors/reverse-execution-simulation.md) — MAME displays recently visited addresses and restores previous RAM states to simulate reverse execution. ([source](https://docs.mamedev.org/debugger/general.html))
- [System Usage Monitors](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/system-usage-monitoring/system-usage-monitors.md) — Reports real-time device metrics including uptime, coin counters, and detailed hardware information. ([source](https://docs.mamedev.org/usingmame/mamemenus.html))
- [System Event Monitors](https://awesome-repositories.com/f/system-administration-monitoring/system-event-monitors.md) — Registers callbacks to trigger specific logic when the emulated system is reset, stopped, paused, or resumed. ([source](https://docs.mamedev.org/luascript/ref-common.html))

### DevOps & Infrastructure

- [Boot Sequence Automation](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/automation-frameworks/action-execution/script-sequences/boot-sequence-automation.md) — Runs scripts and plugins during the boot sequence to automate system setup and configuration. ([source](https://docs.mamedev.org/commandline/commandline-index.html))
- [Hardware State Inspection](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/state-inspection-tools/hardware-state-inspection.md) — Enumerates the device tree and allows reading or writing to processor registers and memory for real-time monitoring. ([source](https://docs.mamedev.org/luascript/index.html))
- [Configuration File Loading](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading.md) — Implements mechanisms for scanning and parsing structured configuration files to determine runtime behavior. ([source](https://docs.mamedev.org/advanced/index.html))
- [Disk Image Integrity Validation](https://awesome-repositories.com/f/devops-infrastructure/container-images/image-integrity-verification/disk-image-integrity-validation.md) — Performs CRC checking and identification to verify the correctness and format of disk images. ([source](https://docs.mamedev.org/tools/imgtool.html))

### Testing & Quality Assurance

- [SCSI Bus Emulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation/device-emulators/scsi-bus-emulation.md) — Simulates the SCSI bus architecture, including device ID assignment and bus synchronization. ([source](https://docs.mamedev.org/techspecs/nscsi.html))
- [SCSI Device Emulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation/device-emulators/scsi-device-emulation.md) — Implements SCSI target devices, such as disks and scanners, by handling SCSI command buffers. ([source](https://docs.mamedev.org/techspecs/nscsi.html))
- [Execution Profilers](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-diagnostics/execution-profilers.md) — Tracks the stack depth of operations to analyze and debug software performance through runtime analysis. ([source](https://docs.mamedev.org/commandline/windowsconfig.html))

### User Interface & Experience

- [Refresh Rate Synchronization](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/animation-lifecycle-hooks/animation-frame-monitors/refresh-rate-synchronization.md) — Integrates with adaptive sync technologies to match the monitor's refresh rate to the software's output. ([source](https://docs.mamedev.org/usingmame/commonissues.html))
- [Peripheral Hardware Simulation](https://awesome-repositories.com/f/user-interface-experience/input-controls/peripheral-input-drivers/peripheral-hardware-simulation.md) — Simulates non-standard external hardware interactions such as barcode scanners and cassette tape mechanisms. ([source](https://docs.mamedev.org/usingmame/mamemenus.html))
- [Layout Logic Scripting](https://awesome-repositories.com/f/user-interface-experience/layout-logic-scripting.md) — Embeds scripts into layout files to implement complex logic and animate visual parameters. ([source](https://docs.mamedev.org/techspecs/layout_script.html))
- [Screen Orientation Management](https://awesome-repositories.com/f/user-interface-experience/screen-orientation-detection/screen-orientation-management.md) — Rotates or flips the display to match original hardware orientation or fit a modern monitor. ([source](https://docs.mamedev.org/commandline/commandline-all.html))
- [UI Input Interfaces](https://awesome-repositories.com/f/user-interface-experience/ui-input-interfaces.md) — Processes high-level input signals specifically designed for interacting with system menus and user interfaces. ([source](https://docs.mamedev.org/luascript/ref-input.html))
- [XML Layout Definitions](https://awesome-repositories.com/f/user-interface-experience/xml-layout-definitions.md) — Uses XML files to define the structural arrangement and positioning of emulated screens and artwork. ([source](https://docs.mamedev.org/luascript/ref-render.html))
