Virtual Memory Domains
Last updated
Last updated
Virtual Memory Domains, also called VMDs, are virtual representations of areas from one or multiple real Memory Domains. The VMD Generator uses address instructions to make VMD Prototypes which can be used to generate/regenerate VMDs. These prototypes are very lightweight, save/load from a file and can also be created from a Corruption in the Glitch Harvester.
The Virtual Memory Domain Pool is your main interaction window for loading and working with already loaded VMDs.
Load VMD From File
Allows you to load VMDs that were previously saved to a file.
Save Selected VMD to File
Allows you to save a generated VMD to a file which can be loaded later.
Rename Selected VMD
Allows you to rename a VMD.
Unload Selected VMD
Unloads the selected VMD from the RTC so it no longer appears in the Domain list and the VMD Pool.
VMD Size
Displays the size of the currently selected VMD in bytes.
Real Domain
Displays the memory domain that the VMD is built to target.
An in-depth VMD Generator Guide is also available
Load Domains
Loads the Memory Domains of the currently active emulation core into the VMD Generator.
Memory Domain
This Selector Box allows you to chose a target Domain.
Domain Size
The size of the selected Memory Domain in bytes
Word Size
The size of a word for the currently selected memory domain
Endian Type
The endian type for the currently selected memory domain
Set pointer every X addresses
Generates a VMD pointer every X addresses of the range input into the generator.
VMD Name
The name of the VMD being generated.
Generate VMD
Generates the VMD.
Remove/Add Addresses
The addresses that will be used in generation of your VMD. This box can take input in various forms. A single line is treated as a single command. You can use multiple commands in generation of the same VMD.
You are able to:
Add an address range
Example: 50-100
Add a single address
Example: 55
Remove an address range
Example: -60-110
Remove a single address
Example: -66
If the user doesn't add a value or range, the default range will be the entire selected memory domain. You are able to remove a value from this default range using one of the various remove methods. For example, if you only input "-55" into the box, you'd get a VMD which has every address in the real memory domain excluding -55.
Additional notes:
By default, all addresses are treated as decimal
If you add "0x" before an address, it will be treated as hexadecimal rather than decimal.
Single added addresses will bypass the removal range.
Single added addresses aren't affected by the pointer spacer parameter.
Ranges are exclusive, which means that the last address will be excluded from the range.