Large ROMs

v4.0.0

Experimental

Board revision 4 (RP2350B) can serve Kickstart and other ROM images larger than 512 KB, up to 1 MB, on the Amiga 500+ and the Amiga 600. This is an experimental feature of firmware v4.0.0, off on a new board. This page explains what it does, how to turn it on, how to prepare a 1 MB image and what to watch for.

Table of contents
  1. What it does
  2. Which Amigas
  3. Turn it on
  4. Prepare a 1 MB image
  5. Start a large image
  6. When a large image does not start

Experimental. Large ROMs work, but they have had far less testing than 512 KB images, and while a large image runs the board works faster than its chip is rated for. Keep the rescue switcher as your rescue image, and use it at your own risk. Tell us what works and what does not at support@gooddatalabs.com.

What it does

A Kickstart ROM chip holds 512 KB, and that is what the board serves by default: every image must be exactly 512 KB (ROM image size).

With large ROMs on, the board also serves images of up to 1 MB, as two halves of 512 KB:

  • The lower half is served from the board’s RAM, like any 512 KB image.
  • The upper half is served straight from a 512 KB slot in the board’s flash memory. The board fills that slot when it is connected to your computer, from the image named in DEFAULT.TXT.

While a large image runs, the board runs overclocked, faster than its chip is rated for. Every other image runs at the default speed.

Board revision 3 (RP2350A) never serves images larger than 512 KB, whatever its CONFIG.TXT says.

Which Amigas

ComputerLarge ROMs
Amiga 500+Yes, experimental
Amiga 600Yes, experimental
Amiga 500No: the Amiga reads the lower half only
Amiga 2000No: the Amiga reads the lower half only

The Amiga 500+ and the Amiga 600 have a 42-pin Kickstart ROM socket, made for 1 MB ROMs, and the carrier board fills all of it: its top left pin connects the Amiga’s A19 address line, the one that chooses between the two halves of a 1 MB ROM. The Amiga 500 and the Amiga 2000 have a 40-pin socket, where that pin stays outside, in the air (40-pin and 42-pin sockets): a large image would only ever show its lower half there, so use 512 KB images.

Turn it on

  1. Connect the board to your computer with the USB cable. The ROMEMUL drive appears.
  2. Open CONFIG.TXT in a plain text editor and set:

    LARGE_ROMS = 1
    

    If your CONFIG.TXT has no LARGE_ROMS line, for example one copied from an older board, add it.

  3. Save the file and eject the drive.

To check it, press C in the SWITCHER: the settings list LARGE_ROMS. Advanced Settings has the rest of CONFIG.TXT.

With LARGE_ROMS = 0, the default, an image larger than 512 KB is refused and the board starts the rescue image instead. An image larger than 1 MB is always refused.

Prepare a 1 MB image

A large image is 1 MB, 1048576 bytes, and holds the two halves in this order:

  1. The half the Amiga reads at $E00000.
  2. The half the Amiga reads at $F80000, where every Kickstart starts.

That is the reverse of the merged 1 MB ROM that Kickstart builders make for burning a 27C800 EPROM. To use one of those, swap its halves first. On macOS or Linux, in a terminal:

split -b 524288 merged.rom half_
cat half_ab half_aa > large.rom

On Windows, any hex editor or ROM tool that can split and join files does the same: put the second 512 KB of the merged ROM first, then the first 512 KB. Check that large.rom is exactly 1048576 bytes, then copy it to the ROMEMUL drive (Copying ROM images).

Start a large image

Choose the large image in DEFAULT.TXT, on your computer:

  1. With the board connected, write the image’s name in DEFAULT.TXT, exactly as the file is called, extension included (The default and the rescue image).
  2. Eject the drive. The board copies the upper half of the image to its flash slot.
  3. Fit the board in the Amiga, if it is not there yet, and switch the Amiga on.

Choose large images in DEFAULT.TXT, not in the SWITCHER. Only the board connected to a computer fills the flash slot. A large image chosen in the SWITCHER or the rescue switcher runs with whatever upper half the slot last held, from another image or from none, until the board is next connected to a computer. If you chose one in the SWITCHER, connect the board to your computer once, then eject the drive.

The SWITCHER lists large images with their size in MB, and can upload them like any other image (Upload a ROM image): connect the board to your computer once afterwards, for the same reason.

The rescue image is never a large one: the board does not accept an image larger than 512 KB as its rescue image, and uses the first image that fits instead. Keep the rescue switcher there.

When a large image does not start

  • The rescue image starts instead: the board refused the image. Check that LARGE_ROMS = 1 is in CONFIG.TXT and that the image is not larger than 1 MB.
  • The green LED blinks alone, nothing on screen: the image was refused and there is no usable rescue image either (The LEDs). Connect the board to your computer and check CONFIG.TXT, DEFAULT.TXT and RESCUE.TXT.
  • The Amiga starts, then crashes or shows garbage: the halves may be in the wrong order, or the flash slot may hold another image’s upper half. Check the order (Prepare a 1 MB image), name the image in DEFAULT.TXT, connect the board to your computer and eject the drive.
  • Only part of the ROM works on an Amiga 500 or 2000: those Amigas read the lower half only (Which Amigas).

Troubleshooting has more checks for any image.

As a kind reminder, ALWAYS eject the ROMEMUL drive after changing anything on it. This makes sure the changes are saved and the board uses them.