English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   Amiga scene (http://eab.abime.net/forumdisplay.php?f=2)
-   -   Best AGA implementation on FPGA? (http://eab.abime.net/showthread.php?t=77679)

eXeler0 31 March 2015 02:50

Best AGA implementation on FPGA?
 
Ok, so I've been following the FPGA Replay project for a while, and it looks fairly promising, although the AGA core still needs some love.
Ive seen other people play AGA games on the MIST and even the core thats in the Chameleon? (MIST / Minimig?)

Now.. To me it seems somewhat... pointless... to re-invent the wheel several times. Why isn't there just one project thats perfecting the AGA core (after all, its reverse engineering and the goal is clear and the same for everyone: to behave exactly like the original). :nuts
Then others could focus on more interesting projects such as the "Super AGA" as once described by the Natami team. :D

So, which AGA core is the most compatible out there? (Im guessing none of them is "perfect" yet). :confused

matthey 31 March 2015 03:39

Quote:

Originally Posted by eXeler0 (Post 1012660)
So, which AGA core is the most compatible out there? (Im guessing none of them is "perfect" yet). :confused

I believe the AGA core of the FPGA Arcade and Mist are both based on the MiniMig AGA HDL source code. The code is GPL or similar open source which requires release to others but the FPGA Arcade may not need to release until it is selling production units (grey area). I have heard there has been some cooperation between these guys but I don't know if the Mist AGA is missing some of the updates in the FPGA Arcade version of AGA. There is some variation in emulation even when the code is the same due to hardware, timing and CPU differences. I expect the FPGA Arcade AGA implementation is the most mature as it has been in testing for the longest. The Natami SAGA is probably the most technically advanced (including some RTG and chunky support) but has had little in the way of testing. I have heard rumours of cooperation between Thomas Hirsch and Gunnar of the Apollo/Phoenix project so some variation of SAGA could reappear hear as well as with a revived Natami project. The non-open source licence for SAGA may be preferable for a commercial project.

eXeler0 31 March 2015 08:59

Thanx for explaining @matthey

IanP 31 March 2015 15:48

I was having a look on Google Code the other day to see what Amiga and related projects are hosted there since it's closing and found both minimig https://code.google.com/p/minimig/ and MiST https://code.google.com/p/mist-board/ projects there. The MiSt project Amiga core page links to a minimig-mist Github https://github.com/rkrajnc/minimig-mist. A wider search found a Github for minimig on the Altera-DE1 https://github.com/rkrajnc/minimig-de1. There is also minimig for the TurboChameleon64 on Github https://github.com/cnvogelg/minimig_tc64 and https://github.com/robinsonb5/minimig_tc64. The code base for minimig seems to be spread all over the place with probably other variations not (yet) made public.

alexh 31 March 2015 16:53

Quote:

Originally Posted by matthey (Post 1012667)
I believe the AGA core of the FPGA Arcade and Mist are both based on the MiniMig AGA HDL source code.

I don't think that is true is it?

AFAIK

MiST/DE-1 AGA core

Coded from scratch (probably based on MiniMig ECS) by Rok Krajnc (Chaos) and enhanced by Alastair M. Robinson and is open source.

https://github.com/rkrajnc/minimig-mist

FPGA Arcade AGA core

Written by Jakub Bednarski (Yaqube) who took over MiniMig core development and probably some input from MikeJ. AFAIK it is legally required to be open source as binaries including MiniMig GPL code have been released but so far I've seen no HDL.

Quote:

Originally Posted by matthey (Post 1012667)
I don't know if the Mist AGA is missing some of the updates in the FPGA Arcade version of AGA.

I am 95% sure they are different code bases.

IanP 31 March 2015 18:00

Binary FPGA Arcade Replay Amiga AGA cores can be found on their forum in the thread http://www.fpgaarcade.com/punbb/viewtopic.php?id=356

mikej wrote
Quote:

I have an SVN developer server set up now. You may see developer chat on these forums about the code and environment, and I understand it is frustrating if you do not have access.
This is a small server and accesses is limited to those actively working on projects and have a board.
Two reasons this is limited for now :
- Things are shifting a lot in the libraries and I need to get something stable.
- I don't have time to support much at the moment.
I am prioritizing shipment to people who want to work on porting or writing a core. Mail me if you want to get early access.
As we near code release I will start pushing out snapshots to the main website.
Everybody is welcome to add their own projects and contribute to existing ones at this point.
If I can figure out how to do it I can add a live repository browse as well.
Thanks for the understanding and patience.
MikeJ
link

alexh 31 March 2015 18:38

Interesting. I wonder why they are not using GITHUB or another good public server.

Anyone been downloading the HDL?

matthey 31 March 2015 21:55

Quote:

Originally Posted by alexh (Post 1012745)
AFAIK

MiST/DE-1 AGA core

Coded from scratch (probably based on MiniMig ECS) by Rok Krajnc (Chaos) and enhanced by Alastair M. Robinson and is open source.

I have no insider knowledge on this so everything I said is hearsay based on what I have read. The Mist AGA core became available and usable very quickly considering there is limited hardware information about AGA (no AGA Hardware Reference Manual like for ECS). Look at the effort to reverse engineer and document the Amiga chipset with Clone-A and even hooking a 1200 up to analysers currently for the FPGA Arcade. Granted, there have been stealth projects like the AGA MiniMig and Natami which did a lot of work under the radar before surprising us with how far they had progressed. Either someone really knew what they were doing with Mist AGA or they had more than a peak at some version of the MiniMig AGA core.

Quote:

Originally Posted by alexh (Post 1012745)
FPGA Arcade AGA core

Written by Jakub Bednarski (Yaqube) who took over MiniMig core development and probably some input from MikeJ. AFAIK it is legally required to be open source as binaries including MiniMig GPL code have been released but so far I've seen no HDL.

I am 95% sure they are different code bases.

They are almost certainly different code bases now ;).

robinsonb5 31 March 2015 23:51

Quote:

Originally Posted by alexh (Post 1012745)
MiST/DE-1 AGA core

Coded from scratch (probably based on MiniMig ECS) by Rok Krajnc (Chaos) and enhanced by Alastair M. Robinson and is open source.

My enhancements were prior to Rok adding AGA support (thought I did tinker briefly with adding AGA palette support a year or two back), and were mainly to the menu system and hard disk / sd card support, but otherwise yes, that's right.

matthey 01 April 2015 03:15

Quote:

Originally Posted by robinsonb5 (Post 1012807)
My enhancements were prior to Rok adding AGA support (thought I did tinker briefly with adding AGA palette support a year or two back), and were mainly to the menu system and hard disk / sd card support, but otherwise yes, that's right.

Thanks for clarifying. Is the Mist AGA core missing any AGA support or are there any known AGA incompatibilities? Is the AGA core run at original clock speed or can it be run at a faster speed?

alexh 01 April 2015 06:46

Quote:

Originally Posted by matthey (Post 1012793)
The Mist AGA core became available and usable very quickly considering there is limited hardware information about AGA (no AGA Hardware Reference Manual like for ECS).

Minimig was released a long time ago. This guy Rok could have been playing with the source for many years before his release. WinUAE is an open source recreation of AGA. Quite well commented. Some ASIC engineers turn software models into hardware as their jobs.

Quote:

Originally Posted by matthey (Post 1012793)
Look at the effort to reverse engineer and document the Amiga chipset with Clone-A

No one really knows what was done or how successful that project was as it was closed source

Quote:

Originally Posted by matthey (Post 1012793)
Granted, there have been stealth projects like the AGA MiniMig and Natami which did a lot of work under the radar before surprising us with how far they had progressed.

The original Minimig came from nowhere, developed by someone unknown to the Amiga community or the FPGA community. Yaqube came from nowhere and did all the Minimig ECS fixes, developed the ARM board and Minimig AGA? Or JimDrew, while he didn't exactly come from nowhere the SuperCard Pro was a surprise alternative to Kryoflux released and functional in a very short time?

Quote:

Originally Posted by matthey (Post 1012793)
Either someone really knew what they were doing with Mist AGA or they had more than a peak at some version of the MiniMig AGA core.

A bit of synical conclusion don't you think?

This guy Rok is writing synthesiseable HDL and targeting multiple FPGA platforms not just MiST, which are from different FPGA vendors, using different FPGA tools. Chances are he's pretty smart. I give him the benefit of the doubt but I don't know. I imagine you'd be able to tell if you had the two source codes side by side.

As the source for Minimig AGA hasn't been openly released so we'll have to wait to find out.

chaos 01 April 2015 12:37

Quote:

Originally Posted by matthey (Post 1012793)
I have no insider knowledge on this so everything I said is hearsay based on what I have read. The Mist AGA core became available and usable very quickly considering there is limited hardware information about AGA (no AGA Hardware Reference Manual like for ECS). Look at the effort to reverse engineer and document the Amiga chipset with Clone-A and even hooking a 1200 up to analysers currently for the FPGA Arcade. Granted, there have been stealth projects like the AGA MiniMig and Natami which did a lot of work under the radar before surprising us with how far they had progressed. Either someone really knew what they were doing with Mist AGA or they had more than a peak at some version of the MiniMig AGA core.

Hi,

I'm the person working on the minimig AGA core for the mist board.

There seems to be a lot of speculation about this, so a few words from the horse's mouth, as they say ;)

- You can find all the work I've done on the minimig core for the DE1 board and later on the MIST on github, starting on 3. Dec 2011:
https://github.com/rkrajnc/minimig-m...master?page=15
As you can see, I'm not exactly new at minimig ;)

- There has been (almost) NO code sharing between either the FPGAArcade team or the yaqube's new minimig AGA core and me. Mike did send an updated TG68K CPU core with some changes to Till Harbaum, who forwarded it to me, but that is it.

- Yes, my minimig AGA core was written pretty fast, the majority in a week of sick leave actually ;) You'd be surprised how little changes AGA requires on top of ECS. It is of course based on minimig ECS, which thanks to everyone working on it, especially yaqube, is a great place to start ;) There is also the AGA guide document, which describes all the added / changed custom registers of the AGA chipset. You can implement around 75% of AGA on top of ECS and still be completely ECS compatible, which makes testing it (With small ASM-one few-liner programs) very easy. Of course, once you switch Lisa ID, all hell breaks loose ;) Here is the approximate sequence how I did it:
* convert the minimig core to a single 28MHz clock (not absolutely neccessary, but I didn't know that at the time)
* check if SDRAM controller implementation is good enough for 64-bit DMA fetches (it was) and add 64bit data paths for sprite and bitplane data
* implement AGA color LUTs, converting the LUT to blockrams, fix HAM6, HAM8 & EHB modes
* implement dither for video output, as the MIST only supports 18-bit output
* implement new bitplane DMA sequencer, bitplane modulos etc - I spent most of the time on this
* add / fix 64-bit serializer regs for bitplane data and fix sprite serializer implementation
* than you can start incrementally adding bits from new AGA registers and testing as you go, like border sprites, color table XOR, color table offsets, ...
* keep in mind that the most complex parts of the chipset - the blitter and copper - aren't changed AT ALL!

Most of this can be done with the help of the existing minimig ECS codebase, the AGA guide document, and common sense, especially thinking about how they upgraded the ECS chipset with minimal changes and in a compatible way. And, of course, with A LOT of guessing ;)
And, if you are wondering, yes, I am (well, was) a professional ASIC designer, so you could say I have some idea what I'm doing. I also had some help from Toni Wilen, who nudged me in the right direction.

The AGA core is also not complete, not by far. There are some missing features waiting to be implemented, like bitplane / sprite scandoubling, programmable display modes are missing (they are missing from minimig ECS also), the bitplane scroll is wrong for some modes, border sprites are not always correct, the CPU only has a 16-bit bus, ... And of course, the hardest part - finding a million corner cases which are currently not handled properly.

Yes, I'd prefer if yaqube's AGA updates were made available, I was waiting for that for how many years now since it was first annnounced? At some point, I just decided to do it myself ...

eXeler0 01 April 2015 20:21

Rok, have you talked to MikeJ @ FPGA Arcade? The tiny 68k Amiga world that is left could use some co-operation ;-)

matthey 02 April 2015 02:40

Quote:

Originally Posted by alexh (Post 1012849)
A bit of synical conclusion don't you think?

It's the truth even if it sounds cynical.

Quote:

Originally Posted by chaos (Post 1012880)
Hi,

I'm the person working on the minimig AGA core for the mist board.

There seems to be a lot of speculation about this, so a few words from the horse's mouth, as they say ;)

- You can find all the work I've done on the minimig core for the DE1 board and later on the MIST on github, starting on 3. Dec 2011:
https://github.com/rkrajnc/minimig-m...master?page=15
As you can see, I'm not exactly new at minimig ;)

That's a lot of commits. You have obviously done a lot of work and you know what you are doing. I am always impressed when I find experts in jobs I didn't know existed a few years ago. I wish Amiga software development progressed as quickly ;).

Quote:

Originally Posted by chaos (Post 1012880)
- Yes, my minimig AGA core was written pretty fast, the majority in a week of sick leave actually ;) You'd be surprised how little changes AGA requires on top of ECS. It is of course based on minimig ECS, which thanks to everyone working on it, especially yaqube, is a great place to start ;) There is also the AGA guide document, which describes all the added / changed custom registers of the AGA chipset. You can implement around 75% of AGA on top of ECS and still be completely ECS compatible, which makes testing it (With small ASM-one few-liner programs) very easy. Of course, once you switch Lisa ID, all hell breaks loose ;) Here is the approximate sequence how I did it:
* convert the minimig core to a single 28MHz clock (not absolutely neccessary, but I didn't know that at the time)
* check if SDRAM controller implementation is good enough for 64-bit DMA fetches (it was) and add 64bit data paths for sprite and bitplane data
* implement AGA color LUTs, converting the LUT to blockrams, fix HAM6, HAM8 & EHB modes
* implement dither for video output, as the MIST only supports 18-bit output
* implement new bitplane DMA sequencer, bitplane modulos etc - I spent most of the time on this
* add / fix 64-bit serializer regs for bitplane data and fix sprite serializer implementation
* than you can start incrementally adding bits from new AGA registers and testing as you go, like border sprites, color table XOR, color table offsets, ...
* keep in mind that the most complex parts of the chipset - the blitter and copper - aren't changed AT ALL!

Interesting. You make it sound easy. I take it you were already familiar with the Amiga and 68k which probably helped.

Quote:

Originally Posted by chaos (Post 1012880)
Most of this can be done with the help of the existing minimig ECS codebase, the AGA guide document, and common sense, especially thinking about how they upgraded the ECS chipset with minimal changes and in a compatible way. And, of course, with A LOT of guessing ;)
And, if you are wondering, yes, I am (well, was) a professional ASIC designer, so you could say I have some idea what I'm doing. I also had some help from Toni Wilen, who nudged me in the right direction.

I have the AGA guide but I never got into programming the Amiga custom chips despite being a 68k assembler programmer. Toni knows more than any book. He should write an AGA hardware guide.

Quote:

Originally Posted by chaos (Post 1012880)
The AGA core is also not complete, not by far. There are some missing features waiting to be implemented, like bitplane / sprite scandoubling, programmable display modes are missing (they are missing from minimig ECS also), the bitplane scroll is wrong for some modes, border sprites are not always correct, the CPU only has a 16-bit bus, ... And of course, the hardest part - finding a million corner cases which are currently not handled properly.

Yes, I'd prefer if yaqube's AGA updates were made available, I was waiting for that for how many years now since it was first announced? At some point, I just decided to do it myself ...

I think the FPGA Arcade updates will be released if the FPGA Arcade comes out before it's outdated. Having the HDL code for both AGA cores available should accelerate development.

Quote:

Originally Posted by eXeler0 (Post 1012929)
Rok, have you talked to MikeJ @ FPGA Arcade? The tiny 68k Amiga world that is left could use some co-operation ;-)

The Mist guys seem to be more open. Maybe the FPGA Arcade guys are just too busy :rolleyes.

It would be good to have some cooperation on an enhanced AGA+RTG (with Chunky) and RTA standard. Unfortunately, the guys in charge of the Mist and FPGA Arcade projects only seem to want legacy compatibility with minimal bolt-ons. Gunnar of the Apollo/Phoenix project doesn't care about an enhanced Amiga chip set standard either unless they are optimized for his implementation and he can define them (maybe Marcel "Veda" Verdassdonk and Thomas Hirsch would be more open). I tried to create an enhanced standard 68k ISA but Gunnar made his own which I don't think any 68k FPGA CPU would or easily could follow. More division and chaos in the Amiga community seems to be par :sad.

IanP 02 April 2015 03:09

It would be great if the various FPGA teams could agree common standards for Amiga enhancements. However MiST and FPGA Arcade were both started as Atari ST enthusiast projects IIRC. Both are building on the Minimig legacy but they are not as Amiga focused as the Natami team was and the Apollo Phoenix team is. Thomas Hirsch has been quiet for some time unless I missed something and I've no idea what plans Marcel has for an end product.

I know you put a lot of work in on your enhanced 68k ISA Matt and it must be frustrating that others have chosen a different path however I think it's a good thing that some enhancements will finally be available soon.

matthey 02 April 2015 06:09

Quote:

Originally Posted by IanP (Post 1012987)
It would be great if the various FPGA teams could agree common standards for Amiga enhancements. However MiST and FPGA Arcade were both started as Atari ST enthusiast projects IIRC. Both are building on the Minimig legacy but they are not as Amiga focused as the Natami team was and the Apollo Phoenix team is. Thomas Hirsch has been quiet for some time unless I missed something and I've no idea what plans Marcel has for an end product.

The Mist and FPGA Arcade projects seem to realize the importance of the Amiga but only as a retro gaming market. Gunnar (Apollo project) is targeting accelerators where the custom chip set is not important, he is likely to use SAGA which is proprietary and he is likely to create his own standard which he believes will antiquate everything else. IMO, there is not much chance of working with him unless you are working for him. Thomas Hirsch has been quiet but I have reason to believe that he hasn't given up on the Natami (or whatever he chooses to call it). I doubt ThomasH would open source SAGA but he may be open to a standard if he was close to releasing something and had good reason to communicate (he supposedly still communicates with some Amiga people). I wouldn't want to bet on a Natami reappearance though. I'm pretty sure Marcel would like to work on and release a standard based on what he has done so far. I don't know if he is ready to work with a group but he should. His current documentation and work needs AGA compatibility and review.

Quote:

Originally Posted by IanP (Post 1012987)
I know you put a lot of work in on your enhanced 68k ISA Matt and it must be frustrating that others have chosen a different path however I think it's a good thing that some enhancements will finally be available soon.

I am the first to acknowledge that we need higher performance 68k processors which wouldn't exist without Gunnar. He is quite a character with some great personality traits and some major personality flaws. As high as his expectations are, his superscalar CPU might actually meet them this time. The 68k has serious potential which was never explored and developed. If memory could be dual ported to allow 2 reads/cycle, I believe the 3 integer pipe superscalar design would be outperforming some *much* faster clocked hard processors. The core is very compact for the performance which is great for embedded applications also. Gunnar's ISA is too radical and lacks compatibility for retro and embedded markets though. I can't see compilers taking advantage of his extra non-orthogonal integer registers and trying will take a long time to mature if ever. It is FPGA so it would be possible to go back but a reputation for incompatibility and bugs is more difficult to roll back and Gunnar is as stubborn as he is arrogant. I doubt part of his ISA would be adopted and used as a standard either. A more conservative ISA standard could have had TG68 and UAE adopting it once there was compiler support and software available. A standard enhanced 68k CPU would have made a custom chipset standard easier. Another missed opportunity for the Amiga. At least we will have 68020+AGA as a base which isn't bad for retro use but a more modern Amiga to play with and develop for would have been more fun.

Megol 02 April 2015 12:29

Any idea how the extra integer registers are encoded? I've asked Gunnar however never got any relevant answer. :/

jbenam 02 April 2015 13:13

IMHO the first target should be 100% (or at least 98%) compatibility with old hardware.

Creating a new ISA/Enhanced Architecture (even if it's fast as heck) will just fragment even more the market and only a small fraction of the users out there would end up using it.

If the Minimig required stuff especially compiled for it, you can bet whatever you want that it'd have bombed massively.

No one is going to spend money and time to support something only a niche of a niche would use.

alexh 02 April 2015 14:06

Quote:

Originally Posted by matthey (Post 1012986)
It's the truth even if it sounds cynical.

Should you not have given Chaos the benefit of the doubt?

I imagine people who used to borrow their smarter friends homework when things got tough imagine that everyone does the same?

Megol 02 April 2015 15:03

Quote:

Originally Posted by alexh (Post 1013031)
Should you not have given Chaos the benefit of the doubt?

Didn't he?
Quote:

Originally Posted by matthey
Either someone really knew what they were doing with Mist AGA or ...

Quote:

I imagine people who used to borrow their smarter friends homework when things got tough imagine that everyone does the same?
... Classy.


All times are GMT +2. The time now is 07:51.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.

Page generated in 0.05232 seconds with 11 queries