![]() ![]() Usually that is enough for many games, especially if one considers the fact that in the beginning the SNES was not supposed to render a lot of later games. LoROM and HiROM were designed to store 4 MB in a ROM and map it into the 24 bit address space of the SNES (which can, in case you have forgotten it, address up to 16 Megabytes). Smaller ROMs use this model to prevent wasted space in banks $00–$3F. LoROM basically means that the address line A15 is ignored by the cartridge, so the cartridge doesn't distinguish between $0000-$7FFF and $8000-$FFFF in any bank. (were overridden by WRAM in the $80 is done at 3.58 MHz (120 ns) if the value at address $420D (hardware register) is set to 1. This is done by loading the entire ROM only in higher pages and in 32 Kilobyte chunks. (were overridden by WRAM in the 7) are actually used. SA-1 and SDD-1 in particular are MMC chips, which means they can do bank switching to change which parts of the ROM are accessed for a given bank.ĭSP, SuperFX, hardware registers (are there any documents regarding this page? I couldn't find any source) Note that expansion chips like the SuperFX have their own memory map, which is not covered here. To detect it one would typically just check if the game is a regular LoROM then check the ROM file size. As the table shows, there are two LoROM and two HiROM mappings which have a different markup byte than the name suggests.ĮxLoROM is an unofficial map, so it does not have its own type value. Keep in mind that some people sometimes use "Mode 20" to refer to the LoROM mapping model, and "Mode 21" to refer to HiROM, although it's technically wrong. D = 0 means LoROM (+ $0), D = 1 means HiROM (+ $1), is used with B and C in case of extended ROMs. A = 0 means SlowROM (+ $0), A = 1 means FastROM (+ $10). The bitmask to use is 001A0BCD, the basic value is $20: In byte $15 in the SNES header (see below for more details), the ROM makeup byte is stored. ExLoROM, ExHiROM and some expansion chips like SA-1 and SDD-1 are said to be able to store up to 8 Megabytes (64 Megabits). One bank holds 256 ($100) pages, so the SNES has $100 (banks) * $100 (pages) = $10000 (65536) pages available.īoth LoROM and HiROM are capable of storing up to 4 Megabytes (32 Megabits) of ROM data. The SNES relies heavily on mapping - for example, without mapping it wouldn't be possible to give all banks of $00 – $3F two pages of WRAM directly at the beginning of the bank. Range does not end with $FF - this is because $FF is the last address of a page, and after this byte a new page begins. ![]() You will notice that in the tables below there is no entry in which a certain memory A page is the smallest mappable unit of a Pages are also used for normal PCs (x86/x86-64 architectures) and are hence not exclusive for the SNES. If that's how the machine is supposed to work). Pages are used whenever the machine has to perform mapping tasks (for example, ensuring that address $AABBCC and address $DDBBCC point to the exactly same data, Therefore the SNES has $100 or 256 Banks (start at $00, end at $FF). With three bytes of address space the SNES can address up to 16 Megabytes (2^24 or 1<<24 or 16777216 Bytes = 16384 Kilobytes = 16 Megabytes).īeware that just because the SNES can address 16 Megabytes does not mean it also HAS 16 MB of RAM (here so-called WRAM) - it will be explained in detail later. The bank of the address $AABBCC is $AA (170). Addresses are often shown as hexadecimal values.īank: 64 Kilobytes (65536 or $10000 bytes), basically the most significant byte of the 3 byte address the CPU understands. $ or 0x prefix: the following number is hexadecimal. Before explaining LoROM and HiROM though, we should define some keywords here: There are two main types of SNES cartridges, the SNES community refers to them as LoROM and HiROM cartridges. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |