From 0b3c0e2a2e347db8af3f29d4dc8c86797981bc85 Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 6 May 2016 11:37:46 +0100 Subject: Added documentation for SNES output driver. --- doc/casm.html | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/doc/casm.html b/doc/casm.html index 469456a..07b2c91 100644 --- a/doc/casm.html +++ b/doc/casm.html @@ -919,6 +919,13 @@ A Commodore 64 T64 tape file. A Nintendo Gameboy ROM file. + +snes + + +A SNES ROM file. + + @@ -1115,6 +1122,84 @@ installed with just a reti instruction. +

SNES ROM File Output Format

+ +

+Generates a ROM file for a SNES emulator or hardware. Note that large ROM +sizes have not been extensively checked and verified. +

+ +

If a single bank was used during the assembly then a simple 32K ROM is +assumed, and an error will be shown if the addresses used fall outside the range +0x150 to 0x7fff.

+ +

Similarly if multiple banks are used then it is assumed that the first bank +is only used in the range 0x150 to 0x3fff, and subsequent banks in the range +0x4000 to 0x7fff. This is to fit in with the method the Gameboy uses to page +memory banks into the upper 16K portion of the normal 32K ROM address space. +

+ +

By default the output driver will try and fill in the ROM size and type in +the header properly, but these can be overridden using settings.

+ +

SNES ROM Output Format options

+ +

The SNES output driver supports the following settings that can be set via +an option command. +

+ + + + + + + + + + + + + + + + + + + + + +
OptionDescription
+option snes-name, name + +Sets the name of the cartridge. Defaults to "NONAME" if not set. +
+option snes-rom-type, <lorom|hirom|lorom-fast|hirom-fast> + +Defines the memory mapping used for this cartridge. A detailed explanation +is beyond this document, but note that when lorom is used then just the upper +32K of each bank is used to generate the ROM. This is to make life easier, +as the real physical mapping would make the lower 32K of a ROM bank +mapped into the upper 32K address space. This way no hoops have to be jumped +through. +
+option snes-irq, irq, address + +Specifies an address where an IRQ routine is stored, and sets the appropriate +vectors in emulation and native mode. irq can either by vbl for +the vertical blanking interrupt and irq which is used for the scan-line +interrupt. Note that an error is generated if a vbl routine is not +supplied. +
+option snes-ram-size, size + +Sets the RAM size in the ROM header. +
+option snes-rom-size, size + +Sets the ROM size in the ROM header, overriding the calculated value the output +driver would generate. +
+

Listing

-- cgit v1.2.3