iljitsch.com

blog topics: BGP · IPv6 · more · my publications · my business: inet⁶ consult · contact: Twitter · LinkedIn · email

(Re)creating new Amigas for the 2020s and beyond (posted 2021-08-08)

Two forum posts made me think of what it would take to build an Amiga using modern parts, and what should remain the same and what should change about a new Amiga to remain useful in the next decades.

The first is on AmigaLove, a forum that I found recently and that I enjoy participating on: FPGA Custom Chips. The original post is about creating FPGA implementations of the Amiga's custom chips. That way, it's possible to replace the original chips when they fail, or build a new Amiga from scratch.

The other one is on the MiSTer FPGA Forum: Faster CPU for Minimig core?. (Minimig core = Amiga on the MiSTer.)

(An FPGA is a field programmable gate array, or basically a lot of small parts that perform functions used in all kinds of computer chips, and these parts can be connected in different ways so the FPGA can "become" lots of different chips.)

But what should be our goal?

Obviously, some of us, especially those who still have Amigas that we use from time to time, would love to retain access to something as close to an original Amiga as possible. However, then what about the peripherals?

Today, if you bring an Amiga into a home, there's a 99% change that you can't hook it up to a TV or monitor there, and a 99.9% chance you can't exchange any files between the new Amiga and anything else.

So I say: a new Amiga needs to be more like a THEC64 than an actual Commodore 64 (well, actual Amiga). That means: HDMI for video output and the ability to use USB peripherals.

And that's not impossible. I'm typing this on my Amiga 1200 right now, but I'm using an HDMI monitor thanks to the Indivision AGA MK3 adapter and a USB mouse thanks to the MouSTer adapter. And a USB keyboard thanks to the Rapid Road USB adapter, but I readily admit that that's just showing off. (Although the CTRL keyboard types a lot nicer than a 28-year-old Amiga 1200 keyboard.)

What this could look like is just like with the original Amiga generations, two versions: one integrated with the keyboard, and a "big box" model. I think for the integrated one, a case that holds the middle ground between the A600 and A1200 would make sense. Remove the numeric keypad but keep the cursor keys. This is something new, it doesn't have to look exactly like its predecessors. For the big box version I think something that looks like an A3000 but smaller would be great, or maybe even a smaller version of the Amiga 1000 case.

Chipset and floppies

Obviously to run old games, the chipset needs to recreate the A500/A1000/A2000 chips exactly, as seen by Amiga software. So USB peripherals such as mice, joysticks and keyboards must be remapped to recreated versions of the Amiga hardware. I think that also needs to apply to the floppy drive, as so many games and demos had their own floppy drive code. Perhaps the machines should optionally have an actual floppy drive. That way, access to the floppy-based Amiga legacy is guaranteed. But most of the time, an integrated Gotek-like floppy emulator would do the trick.

(And the middle ground: something that physically looks like a floppy drive and accepts floppies and floppy-shaped objects, but then only reads a barcode from the back to mount the right disk image. That would provide the authentic experience without all the issues with actual magnetic storage.)

Ports

On the one hand, it would be great to have all the original ports, but on the other hand, that is more difficult/expensive, for probably relatively little benefit. Let's have a look:

Mouse and joystick ports: it's easy to map USB mice/joysticks to the Amiga hardware. I'm doing that right now. Then again, the hardware is super simple, so perhaps the ability to use the real thing isn't too onerous.

Video: I'd say: just embrace HDMI and leave the past behind. Of course add good scaling and filters and especially handle PAL vs NTSC well. One of the cool things only the Amiga could do is switch video modes on the fly when cycling through screens.

Then again, the MiSTer FPGA platform does support analog video out currently. Could this be an option? But a complete Amiga video connector, genlock-capable and all? Too much to ask, in my opionion. If you really want that, use an original Amiga in good condition.

Audio: one of my complaints about the modern THEC64 is that it only outputs audio over HDMI. That's pretty limiting. Please give us line out for those sweet, sweet MOD files.

External floppy: not sure how difficult this is. But is it useful? For an internal floppy option, a PC floppy drive can be used (the differences are extremely minor and can be accommodated in a recreated chipset), but external Amiga floppy drives are more complex. And one physical floppy drive along with additional emulated ones seems more than adequate.

Serial: there are a few uses for the serial port that are still relevant, I'd say. So having the Amiga think it has a working serial port would be useful, but not sure if having the additional hardware is very necessary. The Amiga's serial port could be mapped to a USB serial port but also be mapped to a network service.

Parallel: well, parallel printers are dead. Not sure if there's any printers left with reasonable Amiga drivers. Intercepting the Amiga's print output and saving it to a file for later display, conversion and then printing to a modern printer makes more sense. But the parallel port was also used for all kinds of interesting stuff, such as the Digiview video digitizer. Not a priority, but on the other hand: just a bunch of GPIO (general purpose IO) pins seems workable.

A1200 hardware

So that's all the ports you'll find on an A500 / A1000 / A2000. But there is more. Next to the A500, the A1200 is the big gaming platform that you'll want to support to let people play AGA games. So:

Harddrive: lots of Amiga software needs a harddrive. And again, I think the right approach is to recreate something that looks like the original Amiga hardware from the software side, but then remaps to modern hardware. I'm thinking an SD card as the harddrive.

PCMCIA slot: used for all kinds of stuff, but mostly to exchange data with other systems on CF cards and for network cards. I would replace this with an (additional) SD card slot. As using CF cards in this slot required extra software anyway, it would be fine to have an extra AmigaOS driver to talk to this SD card slot.

68020: the A1200 uses the 68(EC)020 CPU. So in order to run software made for the A1200, it's necessary to support the 68020.

More advanced hardware

Retargetable graphics (RTG): most non-game software on later AmigaOS versions will happily run on screens powered by RTG graphics cards. These don't have the limitations of the Amiga's chipset. So RTG support that integrates well with the Amiga's native graphics capability would be extremely useful.

68030: the Amiga 3000 uses the Motorola 68030 CPU. The 68030 isn't very different from the 68020, except that is has an MMU. Not a feature that is used a lot by Amiga software, but still useful in some cases. So not a top priority, but nice to have. 68040 and 68060 were a lot faster, but also less compatible. It's probably more useful to make the 68020/68030 implementation faster than to recreate the 68040 or 68060.

FPU: the Amiga 3000 has a 68882 floating point unit, and Amiga 4000s with a 68040 CPU had a built-in FPU. I think in general Amiga software doesn't require an FPU, but there could be situations where not having an FPU creates issues, such as having to use a less capable version of some software.

And an FPU speeds up some software quite a lot. (I think some people doing MiSTer Minimig benchmarks aren't comparing their results to FPU-enabled results.)

Perhaps giving up some accuracy for speed makes sense here, for instance by emulating the FPU (or CPU+FPU) in software rather than use a cycle exact FPGA implementation to run this kind of software.

Last but not least: networking. No original Amiga came with a network card. So recreating old networking hardware doesn't make much sense. However, some way to implement networking functionality does. Not sure if a bsdsocket.library that simply punts network calls to the ARM CPU that runs a Linux variant makes sense, or perhaps something that looks to the Amiga like Ethernet hardware and is then bridged with Wi-Fi. That way, the Amiga can use "real" networking but doesn't have to keep up with changing Wi-Fi (security) standards.

Well, that's my vision of future Amigas. Now the only thing to figure out is what model number they should get. 1600? 5000?

by .


Archives: 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021