-
Notifications
You must be signed in to change notification settings - Fork 9
Systems Memory Mapping
This page details how the memory of each supported system is mapped.
Memory banks as registered in the RA emulators are defined here.
Reference: https://wiki.nesdev.com/w/index.php/CPU_memory_map
Bank | Offset | Length | Description |
---|---|---|---|
0 | 0x0000 | 0x0800 | 2KB internal RAM |
1 | 0x0800 | 0x0800 | Mirror of $0000-$07FF |
2 | 0x1000 | 0x0800 | Mirror of $0000-$07FF |
3 | 0x1800 | 0x0800 | Mirror of $0000-$07FF |
4 | 0x2000 | 0x0008 | PPU registers |
5 | 0x2008 | 0x1FF8 | Mirrors of $2000-$2008 |
6 | 0x4000 | 0x0018 | APU and I/O registers |
7 | 0x4018 | 0x0008 | APU and I/O test registers |
8 | 0x4020 | 0x1FE0 | Cartridge data |
9 | 0x6000 | 0x2000 | Cartridge RAM |
10 | 0x8000 | 0x8000 | Cartridge ROM |
https://en.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_map
https://raw.githubusercontent.com/mikeryan/n64dev/master/docs/n64ops/n64ops%23h.txt
Reference: http://gameboy.mongenel.com/dmg
The memory map reflects the CPU memory space.
The memory map is identical to the Game Boy's, with the exception of banked work RAM. The first bank is mapped to its usual location in CPU space, while banks 2-7 are appended to the end of the memory map, in the 0x10000-0x15FFF region.
https://www.coranac.com/tonc/text/hardware.htm#sec-memory
Reference: http://www.codeslinger.co.uk/pages/projects/mastersystem/memory.html
TODO: find a more reliable source.
Offset | Length | Description |
---|---|---|
0x0C000 | 0x02000 | RAM |
https://en.wikibooks.org/wiki/Genesis_Programming
https://wiki.megadrive.org/index.php?title=Main_68k_memory_map
see also Jamiras comment here: https://github.com/RetroAchievements/RALibretro/issues/47#issuecomment-455374796
Reference: http://www.randomterrain.com/atari-2600-memories-tutorial-andrew-davie-05.html#summary
Offset | Length | Description |
---|---|---|
0x080 | 0x080 | RAM |
Reference: http://www.maroon.dti.ne.jp/youkan/pc88/memmap.html
The memory map is based on the PC-8801 layout, but excludes graphics VRAM and extended RAM.
Bank | Offset | Length | Description |
---|---|---|---|
0 | 0x00000 | 0x10000 | Main RAM |
1 | 0x10000 | 0x1000 | Text VRAM |
Text VRAM is also known as high-speed RAM, and is used as a main RAM area in some titles.
Reference: http://www.cyross.com/pc8801wiki
The entire memory space is mapped in the PC-8801 main RAM bank, but only RAM is exposed, so most of the mapped space will remain uninitialized.
Offset | Length | Description |
---|---|---|
0x08000 | 0x08000 | RAM |
Reference: http://apple2.guidero.us/doku.php/mg_notes/general/mem_map
The memory map consists of both main and auxiliary RAM banks. Rather than mapping the CPU-accessible memory space, which can flicker at high frequencies, the RAM banks are mapped consecutively.
Auxiliary RAM is only available on systems with 128KB of RAM (Apple IIe and up), so it will remain uninitialized on 64KB systems or when running titles that are not designed to make use of auxiliary RAM.
Bank | Offset | Length | Description |
---|---|---|---|
0 | 0x00000 | 0x10000 | Main RAM |
1 | 0x10000 | 0x10000 | Auxiliary RAM |
- User Guidelines
- Developer Guidelines
- Content Guidelines
- FAQ
- Setup Guide
- Emulator Support and Issues
- Ways to Contribute
- RABot, the RA Discord Robot
- Events
- Overlay Themes
- Useful Links
- Contributing with the docs
- About Us
- Tutorials
- Developer Docs
- How to Become an Achievement Developer
- Getting Started as an Achievement Developer
- Game Identification
- Achievement Design
- Achievement Scoring
- Difficulty Scale and Balance
- Progression and Win Condition Typing
- Badge and Icon Creation
- Achievement Development Overview
- Flags
- BitCount Size
- Alt Groups
- Hit Counts
- Delta Values
- Prior Values
- Value Definition
- Condition Syntax
- Minimum Required Versions for Logic Features
- Memory Inspector
- Real Examples
- Set Development Roadmap
- Achievement Templates
- Tips and Tricks
- Leaderboards
- Rich Presence
- RATools
- Console Specific Tips
- Emulator Hotkeys for Developers
- libretro core support
- Docs To Do List
- WIP User Code of Conduct
- WIP CoC FAQ
- WIP Content Guidelines
- WIP-Jr
- WIP---Dev-Tips---Code-Notes-En-Masse
- WIP-‐-Reauthorship-Policy
- Manifesto RetroAchievements
- Código de Conduta do Usuário
- FAQ - Perguntas Frequentes
- Como contribuir se você não é um desenvolvedor
- Tutorial para Jogos Multi-Discos
- Introdução
- Primeiros Passos como um Desenvolvedor de Conquistas
- Recursos de Lógica para Achievements
- Exemplos Reais
- Dicas e Truques
- Dicas Específicas de Console
- Modelos de Achievement
- Escala de Dificuldade e Equilíbrio
- Roteiro de Desenvolvimento de um Set de Conquistas
- Criação de Ícones e Emblemas
- Leaderboards
- Rich Presence
- Design de Conquistas
- Manifesto RetroAchievements
- Código de Conducta del Usuario
- FAQ - Preguntas Frecuentes
- Tablas Globales y Reglas para la Casería de Logros
- Mi juego no esta cargando los logros
- Como contribuir si no eres un desarrollador
- Por que no deberías utilizar la función de cargar estado
- Contribuyendo con los documentos
- Como funciona la Documentación de RA
- Descargas
- Intro
- Código de Conducta del Desarrollador
- Como convertirme en un Desarrollador de Logros
- Primeros pasos como un Desarrollador de Logros
- Un vistazo al Inspector de Memoria
- Características en la Logica de un Logro
- Ejemplos Reales
- Intro
- Utilizando Hit Counts como un Temporizador
- Utilizando Valores Delta y Hit Counts para Detectar un Incremento
- Un Ejemplo Simple en como evitar el Abuso de Estados de Guardado
- Evitar el Problema de que un Contador se Incremente Dos Veces en el Mismo Frame
- Creando un Temporizador con un ResetIf Hits basándote en la Velocidad de un Juego
- Plantillas para Logros
- Tips y Trucos
- Escala de Dificultad y Balance
- Diseño de Logros
- Mapa de Desarrollo de Set
- Revisiones en Set de Logros
- Creación de Iconos y Badges
- Tablas de Clasificación
- Rich Presence
- Trabajando con el ROM apropiado
- Identificación del Juego
- Guía para Sets Bonus
- Logros para ROM hacks
- Tips Específicos por Consola