ReflashKick


You put flash memory in your Amiga?! It's not period-correct! Blah blah blah!!! Going to hunt you down and murder you.

Seems that if you look at the A1200 schematics, Commodore were thinking of shipping the bugger with flash memory. So it is period-correct! I guess they couldn't get the major bugs out of Kickstart in time, so were planning to ship it broken.

Doesn't that sound familiar nowadays...

Download software here

Short:        Reflash kickstart into flash ROMs in-system. H/W + S/W
Author:       FloppyFox (www.floppyfox.com)
Uploader:     FloppyFox (www.floppyfox.com)
Type:         util/misc
Version:      1.0
Architecture: m68k-amigaos >= 1.2
Name:         ReflashKick

February 2023

Install flash memory chips in your Amiga in place of the kickstart ROMs, and
reflash whatever ROM files you want onto them in-system.

Disclaimer: Absolutely no warranty is provided! If you bugger anything up or
murder your Amiga, it's your own bloody fault!


Why would you do this?
======================

Because manhandling my Amiga brings me joy. Also it lets me switch between
different kickstarts, try out new ones, hack them, pirate them like a filthy
pirate etc. (you didn't hear that...)

All on the Amiga, without having to pull ROMs out to reprogram them.


What Amigas does it work with?
==============================

The bloody lot of them! Except appliances like the CDTV and Commodore
dishwashers. I tested with the A1200. Other models are untested but should
work barring bugs in the software.

You'll need some RAM. About 256KB plus the same amount as you have in flash.
i.e. have 512KB of flash? You need 768KB of RAM. Fast or chip, doesn't
matter.


So how do you do it?
====================

Hardware and software, my friends.

The included program reflashes the flash memory. It runs on your Amiga and
takes a kickstart image to blast onto the flash. The kickstart file(s) should
be the same format you'd feed an emulator.

If your kickstart is over 512KB, then it should be split up into two 512KB
parts. If it's over 1MB then it should be in three parts (512K + 512K + 1MB).
Just like you'd do with the UAE emulator.

Follow the instructions carefully!!!


The Hardware
============

You can get little flash adapters on dodgy foreign Internet auction sites that
go into your Kickstart ROM socket(s). They have a flash memory chip on-board.
Normally you're supposed to program these outside the system using an EPROM
programmer.

If you're going to make your own adapter, use a 16-bit-wide flash memory chip.
Not two 8 bit chips. The software can't work with two 8 bit chips.
If your Amiga has two ROMs, make or buy two 16-bit adapters.

The chips to use are the 29F800 or 29F160. Others may work too.

You need to molest your Amiga unfortunately, because there is no /WRITE signal
on the kickstart ROM sockets. Without this signal the Amiga has no way to
write to the flash memory chips.

Most of these adapter boards have a dedicated pin header or pad for the /WRITE
signal. So all you need do is run a wire from there to somewhere on the Amiga
which has this signal.

On the Amiga 1200, the /WRITE signal is on pin 17 of IC U43 (one of the small
ICs next to the PCMCIA slot). You can also find it on pin 8 of Gayle.

For other Amiga models, you need to find it yourself!

I recommend using a chip twice as large as you need. Connect the spare address
line to a toggle switch on the back of the Amiga. It should be connected to a
+5V supply when in the up position, and ground in the down position. Then you
can switch between two kickstart ROMs. Even if you don't need a kickstart
switcher, it makes it idiot-proof. What are you going to do if you program
your flash memory chip with a bad kickstart? Well just flip over to the other
(good) bank and boot it up. The programming software gives you time to flip
over to the other bank so you can reprogram the bad one without touching the
good one.

You can use the included program testwrite.exe to probe for the /WRITE signal
with an oscilloscope.


Initial Programming
===================

Of course you need a kickstart image on the flash memory to begin with.
Otherwise your Amiga won't boot and you won't be able to run the reflash
program. Catch-22.

Sometimes you can get these adapter boards pre-programmed with kickstart.
Make sure they're programmed with the right kickstart for your Amiga model,
because there are differences! Also check the seller has a loicence to sell
Kickstart. Otherwise you can expect a knock at the door from the Amiga Mafia!

If you can't find one pre-programmed for your Amiga, you're gonna to have to
stick it in an EPROM programmer just the once. Find someone who has one, and
use chloroform to put them out of action for the duration of the programming.

Technically it is possible to hot-swap the Commodore kickstart ROMs with the
flash memory at the right point in the programming process. It's dangerous and
I only had it work once. You can murder your Amiga by doing it!! Don't do it
please!! But you can if you really need to.

Let's say you can find one pre-programmed for the Amiga 500 but not the 1200.
What do you do then? If you have both an A500 and an A1200, you're in luck.
Boot the A500 from the pre-programmed flash, then re-flash it with the low
words of your new A1200 kickstart image. The A500 won't boot any more from
that ROM, but who cares *. Repeat the process with the second adapter but
with the high words. Then transplant both into the A1200.

This will mean splitting the kickstart image into low and high words, consult
the World Wide Web for more information. I believe Remus can do it for you.

* You DID use a flash memory chip twice as large as needed, didn't you?
  No problem, just switch over to the other bank and you can boot your A500
  again and try the flash again if needed. Oh you didn't? I hope your
  programming was successful. You won't get a second shot at it with only one
  bank!


Using the Software
==================

Step 1: Prepare your ROM files
------------------------------

If your ROM file(s) are already usable with UAE, then you're good to go.
You can also use Remus to produce custom kickstarts.

For kickstarts 512KB or less, you will have one file. For 1MB kickstarts you
will have two files - normal and extended. For 2MB kickstarts you will have
three files.

Do not do any weird stuff like byte swapping or odd/even splitting. Those
tricks are only for standalone EPROM programmers. No need for that here.

Step 2: Disable Your Accelerator
--------------------------------

Some accelerators have MMUs or MapROM functions in hardware, both of which
will bugger up your programming attempt. If you don't want to disable your
accelerator, at least figure out how to turn off the MMU and MapROM features.
Tip: MuFastROM off from a shell window might be enough. Read the accelerator
manual to be sure! The ACA accelerators have a MapROM feature you need to
disable separately.

If disabling or removing your accelerator leaves you with only chip RAM, then
you will be limited to programming smaller kickstarts. 1MB kickstarts if you
have 2MB of chip RAM, 512K kickstarts if you have 1MB of chip RAM, 256K
kickstarts if you have a pathetic 512K of chip RAM. Better to figure out how
to disable the MapROM and MMU in that case!

Step 3: Open a Shell Window
---------------------------

Change to the drawer (directory) containing the program. Type the command
something like this:

reflashkick num_chips flash_total_kbytes kick512k.bin

The value of num_chips and flash_total_kbytes should match what you installed,
but never more than the limits for the machine you're installing into:

         Number of chips   Max total flash KB (both chips combined)
A500/+   1                 1024
A600     1                 2048
A1200    2                 2048
A1500    1                 1024
A2000    1                 1024
A2500    1                 1024
A3000    2                 512
A4000/T  2                 512
CD32     1                 2048

You can install more flash if you like, but it won't be used. It can be used
with a bank select switch instead.

If you have a bank select switch, the Amiga will only see half of the flash.
Tell the software the actual size is half what it really is.

If you installed more flash than your Amiga model supports, tell the software
the limit for your machine. Don't tell the software the actual amount you
installed!

Step 4: Follow the Instructions
-------------------------------

The software will walk you through the process. Be patient! Follow it like an
obedient unquestioning citizen. Just the kind the last few years of global
totalitarianism have trained the populace to be. DO NOT DEVIATE!!!

Flashing a multi-part Kickstart
-------------------------------

If your kickstart is over 512KB, it will come in two or three parts.
To flash these, simply do this:

For a two-part Kickstart:

reflashkick num_chips flash_total_kbytes kick_std.bin kick_ext.bin


For a three-part Kickstart:

reflashkick num_chips flash_total_kbytes kick_std.bin kick_ext.bin kick_2mb_ext.bin


Enjoy your (probably) pirated kickstarts you filthy bugger!


Back to Home