19 ms·
Homebrew Amiga Graphics Card (FPGA, Open Source) Finished [video]
- mntmn 10y agoSources & Background https://github.com/mntmn/amiga2000-gfxcard https://github.com/mntmn/amiga2000-gfxcard
- mbrookes 10y agoThis one should be the main link. Amazing work!
- Keyframe 10y agoEnjoyable read, especially so because it's Amiga related.
- djsumdog 10y ago> "The Amiga is probably the last 32-bit personal computer that is fully understood, documented and hackable. Both its hardware and software contain many gems of engineering and design. I hope that one day, we can have a simple but powerful modern computer that is at the same time as hackable and friendly as the Amiga was." Kinda sad. Our current x86 hardware is filled with closed binaries and firmware that can't be easily replaced. That seems to be why so many _open_ laptops are using ARM.
- mntmn 10y agoYup. For a new project I'm going with Freescale i.MX6, but I'm really waiting for the first 1+GHz RISC-V chips.
- digi_owl 10y agoApparently what was once Freescale will be part of Qualcomm soon, if the market regulators approve...
- ekianjo 10y agoARM cores have tons of blobs too. Especially DSPs and GPU parts.
- D_Guidi 10y agoAmiga 2000 wasn't a 16bit system?
- myrandomcomment 10y agoThe Amiga 2000 shipped with a 7.16 (NTSC), 7.09 (PAL) Motorola 68000 CPU which was 32 bit internally with 16 external data bus.
- mikepavone 10y agoTo be a bit pedantic, the 68000 was a mostly 16-bit implementation of a 32-bit ISA. The ALU is 16-bit (though it can be ganged together with an additional 16-bit shift register for 32-bit shifts) and most of the data paths are 16-bit as well. It's a really smart design. Combines a forward-looking architecture with a realistic implementation for the time. It's a shame it died out while x86 survived.
- tech2 10y agoIt took too long to go superscalar, pipelining was a bit of an afterthought, they _should_ have done more with the Apple contract. Because they didn't this meant Apple moved on to PowerPC and the bottom fell out of the 68k market. It's sad overall really. The Amiga was a great machine with a fun and easy-to-use/manipulate operating system. Memory protection (beyond weirdnesses like Mungwall etc.) would have been nice. For such a small team though they did very well. Commodore were desperate for a slice of that DOS/Windows PC pie though and that further drained the coffers :(
- cmrdporcupine 10y agoMotorola just never learned how to sit still and continue to support and extend their platform. They got early to market with the 68000 (late 70s! way ahead of its time!) but it was a totally separate ISA and platform from the (quite awesome) 6809 8-bit chip. No continuity between them. As soon as the 68k looked a bit long in the tooth they started pushing the 88k, which was a total failure. Again with no continuity. Then they jumped to PowerPC, but they never even fully committed to that either. If they'd done what Intel did and continued to develop on the same platform, maybe they'd still exist and we've have more diversity in platforms today. The 68000 was so much nicer to develop for than x86.
- imtringued 10y agoThe lack of open drivers is the primary reason why there are so few chromebooks with ARM processors. I don't see why so ma ny people think ARM is more open.
- digi_owl 10y agoThe thing that made Amiga so hackable, was also its downfall. It, like the C64 (and the rest of the 8-bit gen) that preceded it, had know, fixed, hardware. The PC, and to some degree the ARM SoCs, have a layer of software abstraction sitting on top of mutable hardware. The fixed nature of the hardware allowed people to poke, prod, and time actions down to the clock cycle. But all this also meant that even the smallest hardware change would break existing software.
- vidarh 10y agoThe AmigaOS also did provide a layer of software abstraction. While a lot of games and demos poked the hardware directly, a lot of system friendly Amiga software written in the 80's can be recompiled and run just fine on e.g AROS just fine with few to minor changes (most of the changes tend to relate to differences between AROS and AmigaOS) on anything from m68k original Amigas, throuh PPC, ARM or x86 "native" or hosted on a variety of OSs.
- digi_owl 10y agoBut those very games and demos (the latter in particular) is what is being lamented in the quote.
- vidarh 10y agoThat may be so, but the point was that it was not really the cause of the Amiga's downfall. The Amiga hardware changed substantially over the years, and e.g. with AGA (the chipset in the A1200 and A4000) and when we started installing graphics cards, a huge proportion of the software simply ran unmodified and most applications were immediately able to take advantage of it. There was nothing like that in the PC world for the first few years of the Amiga's life cycle, and for games there continued to be nothing like that until years after Commodore went bankrupt. While most Amiga games certainly did hammer the hardware, unlike on the PC where games of the era also hammered the hardware, the small portion Amiga games that were in fact system friendly from the start was far greater on the Amiga in the early years than on the PC (e.g. some notable titles included Cinemaware's King of Chicago, as well as Ports of Call, and a number of Sierra On-Line games). The bigger problem apart from the ludicrous mismanagement at Commodore was that Commodore was too successful at marketing the low end Amiga's. The A500/500+ and then the A600/A1200 were the big sellers, not the higher end machines. These were price-sensitive buyers unwilling to spend money on graphics cards, because until first person shooters hit they had largely very little reason to. This made graphics card a far more niche expansion on the Amiga, where they were a luxury, than on the PC where you increasingly had to buy one to run what you wanted. It was first when first-person shooters hit that the planar graphics that had been a tremendous advantage with 2D games became a limitation overnight, that the Amiga suddenly was playing catch-up. The problem wasn't inability to update the platform, but it was exacerbated strongly by a chronic culture of underivestment in R&D which had been a hallmark for Commodore all the way back to their calculator days that certainly made the updates happen far slower than engineering wanted. Commodore survived as long as it did because their engineers, and those of the companies they bought along the road, pulled off crazy feats when their back was to the wall, but they were frequently unable to get even minor funding to complete projects even during the periods were the company was pretty much printing money - Commodore went on death-marches when they were facing existential threats and were cash-strapped instead, and eventually it caught up with them.
- ktta 10y agoThere was a discussion when he first came out with a successful card: https://news.ycombinator.com/item?id=11511626 https://news.ycombinator.com/item?id=11511626
- awfgylbcxhrey 10y agoI have a basic question: what exactly is it? As a former Amiga user, I'm familiar with the Amiga's graphics co-processor(s). I actually forget now how many, I remember Copper and Blitter, but don't recall if those were chips, or functions on a single chip. So, is this a sort of video adapter that converts the native Amiga video output to HDMI compatible signals, or is it full graphics card that brings Amiga graphics (32/64/4096 color, with acceleration) to modern output resolutions?
- mntmn 10y agoIt is a graphics card in the sense of the "ReTargetable Graphics" (RTG) system. I ship drivers for the Picasso96 API (which also emulates the competing CyberGraphX API). All OS friendly Workbench/Intuition GUIs can then be used on a high resolution (up to 1280x720@60hz, 1920x1080@30hz) and color depths of 8 (Palette), 16 or 32 bit. A bunch of open source games like Doom, Abuse, ScummVM have been ported as system friendly applications, too, so these run fine. Old games that bang the hardware still go through the custom chipset of the Amiga and are output through the 15khz RGB connector, not via my card. But I'm currently working on an expansion that scan-doubles and upscales the classic video output, too. (Edit:) On the hardware side, I implemented the Zorro bus protocol in the FPGA (in Verilog) and hooked it up to a SDRAM controller/arbitrator and DVI/HDMI encoder. There is also a simple blitter in the code.
- awfgylbcxhrey 10y agoThanks for the comprehensive answer!
- jagger11 10y agoAre you maybe thinking about adding more things on this one card? Ethernet, USB, memory (e.g. 1GB by default)... Maybe even emulation of a faster CPU in FPGA (a'la the Vampire for A600).. though, it'd probably use the CPU slot instead of Z2/Z3. Also, is it possible to hijack the function of the OCS/ECS/AGA directly via the Zorro slots (proxying the native output gfx output, e.g. with games), or maybe it'd require some kind of hardware bridge between the gfx chipset and your card?
- lvoudour 10y agoBrilliant. Never owned an Amiga back in the day (constantly jealous of the superior graphics/sound) so I'm not familiar with the architecture, but it's impressive what you can do with even a low tier FPGA
- mntmn 10y agoThanks! Yes, this was my first real FPGA project (good for learning!), I'm still exploring all the possibilities. For example, only around 25% of the LUTs of the FPGA are currently used, so there is even room to put a simple CPU in there, or simple shaders.
- rosege 10y agoHow did you get started learning about FPGA?
- mntmn 10y agoI bought a cheap-ish "Papilio Pro" FPGA board one day and wanted to do see if I could get it to output VGA directly (I did that with Atmel MCUs before for fun). So I installed Xilinx WebPack ISE and looked at various docs online. Other people's code (for example Mike Field's) was extremely helpful, too. I still feel I'd like to read a good book on Verilog design to close the gaps, if anyone is a pro I'm happy about recommendations.
- eschaton 10y agoI still hope to design a NuBus equivalent. Your work is inspiring. :)
- tcdent 10y agoI'm hopelessly inexperienced, but I want to do this as well. Getting USB (even for just keyboard and mouse emulation) and networking, in addition to high resolution video seems like it could be possible using one of the more powerful SoC's.
- eschaton 10y agoI don't see what the point of USB or networking would be; a NuBus Mac can use an Ethernet card perfectly well, and why would you want to use a USB keyboard or mouse with a classic Mac. Really the big interfacing issue with a classic Mac is video, because many modern displays can no longer handle their sync frequencies. Either you need an older CRT (and to maintain it) or an older CFL-backed LCD (and to maintain it) that can hopefully show an image at a non-native size without upscaling. With a custom digital video card and DVI/HDMI output you can actually hook up a modern display, just as with the card the OP created for Amiga. But unlike with Amiga, the classic Mac always used a straightforward framebuffer, so there's no software support issue.
- rvense 10y agoIsn't Nubus a great deal more complicated than Zorro, though?
- eschaton 10y agoNot much; Zorro is basically the 68000 bus protocol, while NuBus is more general. But it's just a multiplexed address/data bus with a selectable 8/16/32-bit l word size for data transfers, it can be implemented with a simple state machine. All you really need are the level shifting buffers just as with the Zorro interface, and enough I/O for the 50-some NuBus signals. That breaks down to 32 address/data lines, a few NuBus control lines, and some lines to control the level shifting buffers.
- deleted 10y ago[deleted]
- mntmn 10y agoBTW toolchain to build drivers https://github.com/cahirwpz/amigaos-cross-toolchain https://github.com/cahirwpz/amigaos-cross-toolchain
- pawadu 10y agoI wish he had used the open source FPGA tools [1] instead of Xilinx ISE... --- [1] http://www.clifford.at/icestorm/ http://www.clifford.at/icestorm/
- mntmn 10y agoI find the open toolchains for Lattice a great development, but I don't have any experience with the ice40 devices yet. Do the Lattice targets have SERDES outputs, clock synthesizers? Edit: I highly doubt that this project would be doable in an ice40 part (no SERDES, relatively small number of LUTs), but maybe an interesting challenge for the reader ;) Maybe with an extra transceiver IC and single bit depth, single zorro protocol...
- pawadu 10y agoNo idea, but I don't think the FOSS tools would support them at this stage anyway. They also support Xilinx Spartan 6 which looks like what this board uses.
- kelvin0 10y agoI just love the Amiga. Used to have a Amiga 500 and sold it a long time ago. I think I'll try to get my hands on one again.
- baldfat 10y agoI was cleaning my house and my 500 and 2000 were just dust collectors in the basement and I got rid of them. :(
- deleted 10y ago[deleted]