Help:Ram Map

From Data Crystal
Jump to: navigation, search

Below are the general guidelines and recommendations for RAM maps. These conventions should be followed when possible, but there is no one-size-fits-all solution. Use your best judgement.

Content

RAM maps are intended to identify the purpose of individual memory locations. A brief description may also be provided for specific regions of memory. Detailed explanations of the memory usage, data structures, and any other explanatory text should be kept to a bare minimum. This additional content can go into a separate article.

RAM maps may include system RAM, VRAM, OAM, cartrige RAM, etc., but the content of the RAM map should be game-specific.

Format and Layout

  • Place the {{rammap|game=name of game}} template at the top of every RAM map page.
  • Avoid using tables for large listings. These can be cumbersome to edit and don't copy and paste well. Pre-formatted text can be used instead. Either use the HTML <pre></pre> tags, or precede each line in the listing with at least one space.
    • <pre></pre> tags can not contain links or wiki markup.
    • Pre-formatted text using a space before each line may include wiki markup and links.
  • The RAM map should be organized into neat columns, with addresses on the left and descriptions on the right. Additional columns can be included in-between to specify data-block sizes or data types. Use column headings.
  • Addresses should be specified in hexadecimal. Including prefixes such as "$" or "0x" is not necessary.
  • Data sizes should generally be shown in hexadecimal. In any case, it is best to explicitly state the format and convention used.
Example RAM Map
 
Address Size    Description
------- ----    -----------
   00   2       Temp variable - ptr
   02   2       Temp variable - ptr
   12   1       Player X
   13   1       Player Y
   17   1       Player Health
   30   2       PPU data destination
   32   1E      PPU data bytes
  100   100     Stack
  200   100     OAM Mirror
  300   10      Enemy 1 data (see Enemy Data explanation)
  310   10      Enemy 2 data
  ...

Organization

RAM maps should be listed by memory address in ascending order. This allows others to easily look up a specific address. If there is a compelling reason to do so, a secondary listing may be added, organized by function. (For example, a listing of memory locations that contain the player's properties and stats may be appropriate if the data is unorganized and spread out in RAM.)

RAM maps can be divided by bank/page/segment if the listing is extremely long.