User avatar
nonarkitten

Posted Fri Nov 20, 2020 12:13 pm

I have the schematics for Agnus (both original and AGA) and a copy of Frederic's own reverse-engineered Verilog code over on my github with the very start of adding some missing features that weren't added like quadrature decoding for the mouse and genlocking.

https://github.com/nonarkitten/amiga_re ... nt_project

User avatar
McTrinsic

Posted Sat Nov 21, 2020 1:44 am

That’s awesome.

Do you mind if share this on A1K.org?

User avatar
nonarkitten

Posted Sat Nov 21, 2020 11:26 am

McTrinsic wrote:
Sat Nov 21, 2020 1:44 am
That’s awesome.

Do you mind if share this on A1K.org?
Not at all.

User avatar
McTrinsic

Posted Sun Nov 22, 2020 11:04 am

Just posted it there.

You might want to scroll through this thread there:
https://www.a1k.org/forum/index.php?threads/73385/

There was another drop-in-replacement considered in a project.
Towards the end of the thread there might be useful links.

Here are some:
CSG8375R0 Metal vs. Poly
https://is.gd/7HRkOq

https://gitlab.com/RevEngineer/MOS6702

https://is.gd/GhQTLR

https://siliconpr0n.org/map/mos/8372r3/ ... 2r3_mz.jpg

https://is.gd/lZ4IZn

... some actually about other chips to be reverse-engineered.

User avatar
WSkinny

Posted Thu Aug 05, 2021 4:52 pm

Hi Grshaw,

Firstly, to anyone saying this is impossible I must simply reply: "Do your homework!".

What you propose is definitely possible and personally I wish it gets done ASAP.
Now, let's cover a couple obstacles you "seemingly" encountered.

Regarding the 5 volts and 3.3 volts, there are chips which are voltage level shifters that address specifically this issue, basically what you do is:

- Implement a voltage regulator for the required voltage for your FPGA

- 2 add voltage level shifters to your design using the 5v on the motherboard side and the same 3.3v you have just created for the FPGA for the FPGA side of the shifter
`
And bang, job done, you can now use a different voltage IC on a older motherboard design ran on a different voltage.

Regarding size constrains, the C64 Sid re-implementation on FPGA is a pretty good example of what can be done nowadays and does prove that size is not a problem to the re-implementation of the custom ICs

Now we come to the part where I mostly disagree with you, this being once we have fully compatible FPGAs we build real ASICS (basically static chips) to sell as replacements for broken parts or to be used in new Amiga computers.

I do agree that it may be better cost wise to do so for repairs, but with this said I completely disagree that is what we should do, let me explain.

In my opinion, we should (at the start at least but once we have a 100% correct design) implement the replacements in FPGA using a cost effective FPGA to ensure that not only development is not too costly but also that Amiga users do not have to pay astronomical prices for their replacements.
Now, once that goal is achieved we should move to what I call "phoenix stage" (the name should be a dead give away). In this stage of the development we would move firstly to within the same replacement chip size constrains use the largest possible FPGA in order to have as much spare resources in the FPGA as possible and at the same time implement on all the FPGA replacements a common upgrade/communications BUS controlled by a secondary micro-controller whose purpose is to enable the system to issue updates on the fly (with the system running) to our now "morphing" enabled chip-set enabling us to add, change or remove functionalities on the go depending on what the system is doing.

Imagine if you will that you are running a text editor with the base normal functionality, nothing fancy here, but then you wish to also be decoding some newfangled video format watching some streaming service, this format was released recently and you do not have a hardware decoder to accelerate it and it would bog down your system to decode it on CPU or even GPU with the system as is, luckily the developers of the format released an opensource decoder which someone had the brilliant idea to make a hardware implementation design on a FPGA, your OS instead of using the conventional decoding process, requests the FPGA management system to change or add the required logic to your FPGA based GPU (or even your network card, decoding the stream as it arrives and passing it via DMA to the GPU frame-buffer), therefore freeing the remaining of your system resources to do what they need to for your specific task.

This is but a sample of what can be achieved with a morphing enabled architecture. One already existing Amiga OS feature that will definitely help with this kind of thing is something even modern operating systems have yet to implement, I speak of course of DataTypes! This feature can be extended to enable the OS to handle DataTypes in Hardware wherever possible. (Honestly I am amazed how that particular feature has not been implemented in any shape or form comparable to what Amiga Workbench has done decoupling file formats from the applications in such an efficient and user friendly and beneficial way).

Now, moving on with another thing that FPGAs can enable in a dramatically improved way, self-improving AI. This would enable an AI to "physically" change its neural network while also enabling the functions processed within the network to be highly optimized. If you only use an adder on this layer you need not have any other function. You can get such a system to achieve a level of optimization so far unseen on common hardware. The kind of AI research such an architecture would enable is mind blowing. We could implement a totally new OS completely based on a morphing AI.

Getting back to normal usage and to finalize.
Ignoring the AI (which can be a reason to sell a lot of hardware to Universities and research facilities), achieving a 100% compatible replacement set would be definitely great and good to every Amiga user, but instead of stopping there afterwards continuing the development as I have proposed and expanding the FPGA resources and capacities would allow us to design a new Amiga Architecture more than faithful to the original concept (distributed custom compute architecture) and build on it bringing Amiga's to a completely new high absolutely unlike any other normal computing system ever to reach the consumers.
Assuming the team will also work to upgrade Amiga OS to take advantage properly of the features and hopefully gather enough supporters and momentum to reach development steps fast enough (which I believe the existing software stack allows and has advantages over trying this on top of something like Windows, Linux or MacOS due to the astronomical size and complexity of their source code comparatively), Amiga would have a change at truly being reborn in the new Century (assuming Hyperion and buddies do not repeat the mistakes of the past like not investing in Business applications or proper Research and Development, they should even create a new OpenSource Model specifically for this use case).

Pursuing FPGA re-implementations of the Amiga chip-set has the possibility of becoming the most important and fundamental evolution the Amiga has ever seen since it's birth!

(By the way, considering Accelerator boards like PPC cards, the OS should also evolve to be not only Multi-threaded but also smartly run on diverse cores dynamically, a totally new type of multi-core compute approach enabling the OS to use the best architecture for any task)

Keeping Amiga alive is not enough! We can bring it back from the ashes to a brand new and much higher glory than it ever had!

Let's get the people teamed together!

User avatar
nonarkitten

Posted Thu Aug 05, 2021 9:38 pm

WSkinny wrote:
Thu Aug 05, 2021 4:52 pm
Hi Grshaw,

Firstly, to anyone saying this is impossible I must simply reply: "Do your homework!".

What you propose is definitely possible and personally I wish it gets done ASAP.
Now, let's cover a couple obstacles you "seemingly" encountered.

Regarding the 5 volts and 3.3 volts, there are chips which are voltage level shifters that address specifically this issue, basically what you do is:

- Implement a voltage regulator for the required voltage for your FPGA

- 2 add voltage level shifters to your design using the 5v on the motherboard side and the same 3.3v you have just created for the FPGA for the FPGA side of the shifter
`
And bang, job done, you can now use a different voltage IC on a older motherboard design ran on a different voltage.

Regarding size constrains, the C64 Sid re-implementation on FPGA is a pretty good example of what can be done nowadays and does prove that size is not a problem to the re-implementation of the custom ICs

Now we come to the part where I mostly disagree with you, this being once we have fully compatible FPGAs we build real ASICS (basically static chips) to sell as replacements for broken parts or to be used in new Amiga computers.

I do agree that it may be better cost wise to do so for repairs, but with this said I completely disagree that is what we should do, let me explain.

In my opinion, we should (at the start at least but once we have a 100% correct design) implement the replacements in FPGA using a cost effective FPGA to ensure that not only development is not too costly but also that Amiga users do not have to pay astronomical prices for their replacements.
Now, once that goal is achieved we should move to what I call "phoenix stage" (the name should be a dead give away). In this stage of the development we would move firstly to within the same replacement chip size constrains use the largest possible FPGA in order to have as much spare resources in the FPGA as possible and at the same time implement on all the FPGA replacements a common upgrade/communications BUS controlled by a secondary micro-controller whose purpose is to enable the system to issue updates on the fly (with the system running) to our now "morphing" enabled chip-set enabling us to add, change or remove functionalities on the go depending on what the system is doing.

Imagine if you will that you are running a text editor with the base normal functionality, nothing fancy here, but then you wish to also be decoding some newfangled video format watching some streaming service, this format was released recently and you do not have a hardware decoder to accelerate it and it would bog down your system to decode it on CPU or even GPU with the system as is, luckily the developers of the format released an opensource decoder which someone had the brilliant idea to make a hardware implementation design on a FPGA, your OS instead of using the conventional decoding process, requests the FPGA management system to change or add the required logic to your FPGA based GPU (or even your network card, decoding the stream as it arrives and passing it via DMA to the GPU frame-buffer), therefore freeing the remaining of your system resources to do what they need to for your specific task.

This is but a sample of what can be achieved with a morphing enabled architecture. One already existing Amiga OS feature that will definitely help with this kind of thing is something even modern operating systems have yet to implement, I speak of course of DataTypes! This feature can be extended to enable the OS to handle DataTypes in Hardware wherever possible. (Honestly I am amazed how that particular feature has not been implemented in any shape or form comparable to what Amiga Workbench has done decoupling file formats from the applications in such an efficient and user friendly and beneficial way).

Now, moving on with another thing that FPGAs can enable in a dramatically improved way, self-improving AI. This would enable an AI to "physically" change its neural network while also enabling the functions processed within the network to be highly optimized. If you only use an adder on this layer you need not have any other function. You can get such a system to achieve a level of optimization so far unseen on common hardware. The kind of AI research such an architecture would enable is mind blowing. We could implement a totally new OS completely based on a morphing AI.

Getting back to normal usage and to finalize.
Ignoring the AI (which can be a reason to sell a lot of hardware to Universities and research facilities), achieving a 100% compatible replacement set would be definitely great and good to every Amiga user, but instead of stopping there afterwards continuing the development as I have proposed and expanding the FPGA resources and capacities would allow us to design a new Amiga Architecture more than faithful to the original concept (distributed custom compute architecture) and build on it bringing Amiga's to a completely new high absolutely unlike any other normal computing system ever to reach the consumers.
Assuming the team will also work to upgrade Amiga OS to take advantage properly of the features and hopefully gather enough supporters and momentum to reach development steps fast enough (which I believe the existing software stack allows and has advantages over trying this on top of something like Windows, Linux or MacOS due to the astronomical size and complexity of their source code comparatively), Amiga would have a change at truly being reborn in the new Century (assuming Hyperion and buddies do not repeat the mistakes of the past like not investing in Business applications or proper Research and Development, they should even create a new OpenSource Model specifically for this use case).

Pursuing FPGA re-implementations of the Amiga chip-set has the possibility of becoming the most important and fundamental evolution the Amiga has ever seen since it's birth!

(By the way, considering Accelerator boards like PPC cards, the OS should also evolve to be not only Multi-threaded but also smartly run on diverse cores dynamically, a totally new type of multi-core compute approach enabling the OS to use the best architecture for any task)

Keeping Amiga alive is not enough! We can bring it back from the ashes to a brand new and much higher glory than it ever had!

Let's get the people teamed together!
Explain how this is different than what A-Eon tried and failed to do or what the Apollo Team are trying and failing to do? Every attempt to "evolve" it fails because the Amiga is a dead (as in Latin) platform.

User avatar
iljitsch

Posted Fri Aug 06, 2021 12:02 am

grshaw wrote:
Sat Oct 19, 2019 6:28 am
Seems to me that one potential solution available to us hobbyists would be to use FPGAs to implement the custom chips. To be clear, I am not thinking along the lines of The Vampire here. They are using one FPGA to implement much of the Amiga. I’m thinking of a pin for pin compatible replacement for each custom chip. One for Paula, one for Denise...
While it would be extremely useful to be able to replace these chips as they fail and get harder and harder to find, I don't think this is the right solution to keep the Amiga alive the next decades.

Eventually replacing every chip means you're just left with the original circuitboard... is that the part of the Amiga we want to keep alive?

Obviously, the most important thing is to preserve a way to keep the old Amiga software running. I think there's also value in keeping the Amiga alive as an example of a late 1980s to mid 1990s platform. Paradoxically, the fact that it died means it can more easily stay alive in this capacity. The Mac of those days, for instance, has been swept away by the tide of later, more capable Macs. Even more so for PCs. But the Amiga is mostly a time capsule of the state of computing of its era, with just enough new stuff that keeps arriving to make it more than just a museum piece.

And I think in addition to that, it's cool to (optionally) show the authentic experience. So whirring hard drives with 130 ms seek times. (Not actual spinning drives, of course, but the activity LED, the sound and the speed of one.) And floppies! It's great that I can run Hybris with its amazing Paul van der Valk soundtrack off of my CF card with WHDLoad, but nothing beats inserting the floppy and hear the custom track loader do its thing.

Tangent:

Gotek floppy emulators are great. Some even try to emulate the floppy sounds. However, the user interface where you have to push buttons or turn a knob to select a disk image is of course lightyears away from the experience of using floppies.

What if we solve this like my coffee maker, which reads a barcode on the pads you insert so it knows how much water to use to brew the coffee you inserted correctly.

So a floppy drive that still takes physical floppies, but the data is actually read from a USB drive or SD card hidden somewhere. A barcode on the back of the floppy makes the floppy emulator select the correct disk image. So you could do this with old original floppies and no longer have to worry about them wearing out. Or with a (3D-printed?) piece of plastic in the shape of a floppy, just as long as it has the right barcode on the back.

Ok, back to FPGAs.

Even today, the Amiga is basically no longer compatible with any current peripherals. The most difficult part is the display. VGA, SCART and composite inputs are pretty much gone from current monitors and TVs. So we're already in the situation where you need a special monitor to be able to use an Amiga. This will be an increasing barrier to Amiga use as time goes on.

Now really back to FPGAs: so I think an approach like the MiSTer, where pretty much the entire machine is implemented in a single FPGA, along with glue that makes it possible to use modern monitors, mice, keyboards, storage and networking, makes a lot of sense.

I don't know too much about FPGAs, but I'm pretty sure that a single bigger one that implements everything is going to be cheaper than a bunch of smaller ones that all need to be electrically compatible with decades old circuitboards.

I'm sure that at some point someone will make something like a "THEAMIGA" similar to the "THEC64". I.e., a pretty authentic looking case but the electronics are a modern recreation. (Although the THEC64 uses an un-Amiga-like approach where you can't downgrade firmware, it's extremely hard to change between 50 and 60 Hz and it won't recognize perfectly compatible USB joysticks because they're not "whitelisted" in the firmware.)

What I wonder about: as far as I can tell, the MiSTer doesn't implement any of the Amiga's original ports. While I don't think that is a must-have, it would be cool to be able to use original Amiga hardware with a modern recreation of the platform.

User avatar
intric8
Seattle, WA, USA

Posted Fri Aug 06, 2021 10:50 am

The Mac of those days, for instance, has been swept away by the tide of later, more capable Macs.
This is a really big deal if you're into old Macintoshes like I am. One of my favorite machines is a gorgeous Quadra 700. Those machines have the ability to take expansion cards like fully-operational MS-DOS/Windows cards, video cards, accelerators, ethernet...

But in 2021 if I want a USB port for it? There simply isn't a solution out there. Why? Because it's way too easy to get a slightly newer different machine that has a USB solution already built-in. Thus people start to get extra "bridge" machines to help solve problems they can't solve with a single machine.

My bridge is a Powerbook Pismo. Another popular one is the Powerbook Lombard.

As a result hardware and software innovation for older machines typically doesn't happen. When it does, it's quite rare (and that stuff sells like hotcakes because there are so few sources). For example, the Floppy Emu by Big Mess o' Wires, which at least gives us the ability to load digital disk files we download on the internet as if they were floppy disks.

Want a better video solution beyond the video cards of the time? There will never be one made for an older machine (well, never say never I guess) with nuBus ports because it's simply way too easy to grab a different machine off the shelf and go for it.

So those machines, for the most part, are frozen in time. But in some regards it almost makes it better.

It forces folks to use the computers as they were at the time, rather than constantly chase the next customized hot rod dream. Need a newer OS with more this or that? Well, lucky for you there is one.

That means there is also a virtual moratorium on new software, too, however.

For example, you're not going to get a new update for an audio player for Mac OS 7.5.5 any time soon, folks (meanwhile, I can tell you an update to HippoPlayer for OS 1.3 is right around the corner...). But, at the end of the day the fact Apple stayed alive means you simply make do and focus on beefed up period correct time capsules, or move forward to a newer machine/newer OS. I mean, I can use a SCSI2SD, new quiet fan, floppy emu, but then the rest is going to be old period correct hardware off Ebay - and that's it.

So in some ways, the Cult of Amiga is here today and is this cool, weird scene partly because Commodore died. If Amiga had continued forward none of this would remotely look like it does today. All of the innovation would by and large not be necessary.

We're left with a constant tension between preserving the past and an engineer's curiosity to see if it's possible if she can shoehorn a rocket engine into a VW Bug. And if it brings joy to some, regardless of which way you fall, why not?

User avatar
WSkinny

Posted Fri Nov 05, 2021 3:11 am

I totally agree!

Replacing the custom chips with FPGA based re-implementations on pin-compatible adapter boards that would fit in the sockets is ideal. We can use older chips like the Cyclone II at the start as long as we ensure they have more resources than actually required for the chip they'll be reimplementing. (More on why later) This is to cut costs and make a dream possible in a way having a single chip wont do. I'm aiming to even have Zorro III re-implemented (Maybe a Zorro X)

Furthermore, once all the chipset and CPU (The Apollo Core would be nice) are replaced we could do further work to improve on the design by speeding it up and adding features that were not present in the original system (maintaining compatibility).

I have an idea based on having this work done and working (replacing the chipset/cpu with FPGAs) which would involve a secondary bus linking the FPGA's to a microcontroller (A Parallax Propeller due to its many cores) which would be responsible for loading the FPGA cores simultaneously to all FPGAs.
The chipset for Audio, Graphics and DMA would be tweaked/improved to have a simm/dimm slot for the CHIP RAM enabling the Amiga to have proper amounts of RAM available to GFX/Audio bringing it more in line with current GPU's. Pursuing this goal the Chipset would support SAGA and further work would have to be done to extend it.

This wouldn't be exactly cheap but the idea requires larger FPGAs than needed for to get everything running in native fully standard mode, the idea here is to leave space to add hardware functions later on when 100% compatibility is proven. Along these lines I would want that this system would be able to "morph" itself on the fly, basically having the capability to add, change or remove additional features while running without the need for a system restart. Let's say some application needs to have a video decoder or some sort to do what it needs to, the system would implement on the fly the needed codecs in hardware then when not needed release the resources for other purposes. This is just a very basic example of what this can achieve.

Another thing that could be achieved here, and this one worth every penny, would be to based on this "self morphing" architecture implement an AI based OS that would take advantage of this feature in particular to learn and optimize itself by changing it's AI logic not in software but in hardware directly, which no only would be faster to run but also provide immense flexibility and possibilities for such a system.

This last part is a bit of a nut cracker, though possible and worth mentioning. Point in check, once we have all the chipset re-implemented in FPGA cores and working physical adapters to slot them on the original hardware *or remade boards* we could start to think about designing a NEW Amiga based around these "upgrades", meant from scratch to be using the FPGA's and include the needed support hardware like the microcontroller to manage the cores uploading as well as the boot process.

Basically this would (even if we do not pursue an AI objective but still implement the system with larger than needed FPGA's) be the rebirth of the Amiga, and keeping faithful to it's origins, once again come alive with a revolutionary architecture and design. This would be worthy of it's heritage!

Please help make the Amiga come back to life like the phoenix reborn from ashes!

WSkinny :boing: :boing: :boing:

User avatar
nullsleep

Posted Sun Nov 07, 2021 4:34 pm

nonarkitten wrote:
Fri Nov 20, 2020 12:13 pm
I have the schematics for Agnus (both original and AGA) and a copy of Frederic's own reverse-engineered Verilog code over on my github with the very start of adding some missing features that weren't added like quadrature decoding for the mouse and genlocking.

https://github.com/nonarkitten/amiga_re ... nt_project
Sad it's not OSHW.

I don't get it. Why not solve the preservation problem forever, for real?





Return to “Hardware”