The fact that one person can manage this (which would back in the day have taken god knows how many man years of dev time) gives me hope in terms of humanity's capability to somehow deal with the ever increasing technological environment we're enmeshing ourselves into. Thumbs up for a mega cool project!
I made one before :-) <a href="http://amiga.resource.cx/exp/harlequin" rel="nofollow">http://amiga.resource.cx/exp/harlequin</a> though my prototypes were much less pretty than yours! <a href="http://imgur.com/Y7OOg2i" rel="nofollow">http://imgur.com/Y7OOg2i</a>
> I checked eBay for the "big" Amigas I never had, expecting them to be cheap, but found out that these boxes had turned into valuable collector's items.<p>Story of my life. I had an Amiga, got rid of it. Had an H-11, got rid of it. Had a Digicomp I and II, mom got rid of them. All worth a big pile now.<p>My basement is full of old computers I stuck down their as I upgraded. All worthless :-)<p>I have an unerring ability to get it backwards what will be a collectors' item and what won't.
This is pretty great. I especially like the poor man's ChipScope that shows up on the display itself.<p>I'm sometimes surprised by lack of options for a small, cheap GPU that could be readily integrated into a design like this. There's seemingly a big gap between the classic VDP chips like the TMS9918 and its successors (which AFAIK have all been out of production for ~20 years) and modern GPUs that come in monster BGA packages, call for super-fast external RAM and dedicated power supply circuitry on 6+-layer boards, and can't be bought through mortal-friendly channels anyhow. FTDI has the FT800 series, and I'm sure there are still suppliers of S-PPU (the SNES graphics hardware) clones if you know who to talk to in China, but other than that it seems like the options are:<p>1) Roll your own in an FPGA, like this project<p>2) Get a fast, preferably multicore microcontroller with suitable I/O and program it to do rendering in software (maybe a Propeller, GA144, or some XMOS chip?)<p>3) Buy your GPU attached to an ARM core (i.e. Allwinner, Rockchip, Freescale i.MX, TI OMAP/Sitara, etc.) and program it to speak some GPU-oriented protocol (which probably adds a considerable amount of latency, since you'd realistically need to use the Linux drivers)
How does one learn how to do this stuff? Low level programming interests me immensely but I can never find a good resource for how to learn. I know C, C++, Java, Javascript, Python, Objective-C, Swift, but the only reason I have been able to learn these languages and their technologies is because of the resources available. Can anyone point me in the right direction to become acquainted with low-level technologies/understanding?
Cool stuff! On the read problem:<p><pre><code> I found host read timing to be significantly harder to
get right, and it's still not perfect. Host reads can't
be put in a queue and have to be processed immediately.
This interrupts the fetching process; if the host needs
to read from a totally different memory location then
the display engine is fetching, the SDRAM has to close,
refresh and reopen rows, which is a time consuming
process. So far, reads from the host cause temporary
distortions (glitches) in the display output. I plan to
mitigate these problems using either burst mode reads
and fast switching and/or inserting CPU wait states via
the XRDY signal.
</code></pre>
... why not just maintain two copies of the frame buffer, one onscreen and one off? Your hardware FSM then has a much simpler job: make the real VRAM contents match the shadow buffer.<p>In other words, instead of tackling the problem with 1988-era engineering, take advantage of the free parallelism and essentially infinite (from a 1988 perspective) memory that you get with an FPGA board today.<p>Hell, there's probably enough BRAM on that Spartan6 to implement an Amiga frame buffer.
To my eyes, this looks insane. Very impressive, the kind of post that makes me feel both jealous and inspired! It looks like it could have taken up more than just some 'free time', was it truly contained after hours?<p>I'd love to hear what tricks you (author), or anyone else, has for making free time to explore side projects. I'm finding it harder and harder to contain work coding; it seems to consume all available time!
>> "The Amiga is probably the last 32-bit personal computer that is fully understood, documented and hackable."<p>So, compare to the Pi, what information is present, anyone know?
Suddenly there's a spike in demand for Amiga 2000s on ebay...or maybe it's just me, I immediately opened a new tab and started searching for one to buy.
Wow, I'm really jealous of this. I never even had a 2000, I had a 500 with a side expansion that could use an a2000 card, for extra ram, since there was no HD.<p>I always wanted to do hardware work back then, but never quite had the right opportunity going through school.<p>So cool to see this, that a500 was how I learned so, so, much about computers that I love that it's still a tool for people to learn with.
This is highly relevant to my interests, as I'm currently home-brewing a 68K-based system in need of a video card.<p>Thanks for sharing your work! This is awesome.
Saw his page and thought it looked familiar. This is the same guy who coded Conway's Game of Life in Brainfuck: <a href="http://www.linusakesson.net/programming/brainfuck/" rel="nofollow">http://www.linusakesson.net/programming/brainfuck/</a>
If you liked this project you might enjoy this blog <a href="http://amigaprj.blogspot.com" rel="nofollow">http://amigaprj.blogspot.com</a><p>Whole journej from building simm based 74 logic driven ram expansion to 50MHz turbo card:<p><a href="http://amigaprj.blogspot.com/2013/05/amiga-fast-ram-expander-with-simm.html" rel="nofollow">http://amigaprj.blogspot.com/2013/05/amiga-fast-ram-expander...</a><p><a href="http://amigaprj.blogspot.com/2013/06/amiga-500-ide-controller.html" rel="nofollow">http://amigaprj.blogspot.com/2013/06/amiga-500-ide-controlle...</a><p><a href="http://amigaprj.blogspot.com/2014/09/8-mb-fast-ram-expander-cpld-version.html" rel="nofollow">http://amigaprj.blogspot.com/2014/09/8-mb-fast-ram-expander-...</a><p><a href="http://amigaprj.blogspot.com/2015/04/scandoubler-ecs-for-a500-a2000.html" rel="nofollow">http://amigaprj.blogspot.com/2015/04/scandoubler-ecs-for-a50...</a><p><a href="http://amigaprj.blogspot.com/2015/06/amiga-500-68hc000-14-mhz-accelerator.html" rel="nofollow">http://amigaprj.blogspot.com/2015/06/amiga-500-68hc000-14-mh...</a><p><a href="http://amigaprj.blogspot.com/2015/06/amiga-500-14-mhz-accelerator-with-dram.html" rel="nofollow">http://amigaprj.blogspot.com/2015/06/amiga-500-14-mhz-accele...</a><p><a href="http://amigaprj.blogspot.com/2015/07/amiga-500-28-mhz-accelerator-with-dram.html" rel="nofollow">http://amigaprj.blogspot.com/2015/07/amiga-500-28-mhz-accele...</a><p><a href="http://amigaprj.blogspot.com/2015/07/amiga-500-accelerator-card-with-68hc000.html" rel="nofollow">http://amigaprj.blogspot.com/2015/07/amiga-500-accelerator-c...</a><p><a href="http://amigaprj.blogspot.com/2015/09/hc508-amiga-500-68000-50-mhz.html" rel="nofollow">http://amigaprj.blogspot.com/2015/09/hc508-amiga-500-68000-5...</a>
Far be it from me to question other people's choice of their side-projects, but I sometimes wonder what these geniuses
would be capable of if they applied their talents to problems whose relevancy is more ... agreed upon ...