A little update on the minimig core

Quite some time has passed from the last minimig release, so I thought I’d write a short update on what’s going on.

The work on minimig-mist aga v1.2 is progressing, albeit slowly, since I don’t have much free time right now. Here are some of the fixes already implemented and in testing:

  • video dithering (both random and spatial) have been fixed – the dithering didn’t work at all before
  • scanlines can now be enabled in non-scandoubled mode
  • CPU cache control with the CACR register implemented
  • fixed reset problems and fast RAM disappearing
  • kickstart ROM is also uploaded to kickstart mirror position (E0)

Two chipset bugs were also discovered and fixed. The first one was a sprite colortable lookup problem, which was sometimes apparent as a missing sprite line, or wrong sprite color (see here for an example: https://www.youtube.com/watch?v=HD5znZGIvP4). This one was very hard to track down – it required single stepping through the frame with WinUAE debugger, but very easy to fix. The other one was a blitter line mode problem (see http://www.a1k.org/forum/showpost.php?p=904090&postcount=54), that was just the opposite – very easy to track down, and harder to fix.

Till Harbaum has made some updates to the CPU bitfield instructions, that fixes *a lot* of games and demos. There are still some stability problems with the CPU, I’m working on ways to fix that.

Besides that, a few other changes are still planned for the 1.2 release:

  • programmable display modes (Productivity, DblPAL/DblNTSC, Euro36/Euro72)
  • HELP button fix
  • ethernet support (hopefully!)

I think I still need a week or two before the release will be ready. I’ll keep you updated!

minimig AGA v1.1 for the MiST board released

There is a new release of minimig-AGA for the MiST board available, grab your fresh copy on the minimig-mist page!

Here are the updates made in this release:

  • fixed mouse issues (fixes games Like Ishar 1, 2, 3, Robinson’s Requiem, and many cracktros)
  • fixed keyboard issues (fixes game Walker and probably many others)
  • changes to FPGA clock handling, hopefully this will make a more stable minimig core
  • entering the OSD menu using UP+DOWN buttons on a DB-9 connected joystick has been disabled
  • 1MB kickstart ROM support added (enables you to run AROS ROM or your custom kickstart ROM)
  • firmware now again supports using 256kB kickstart ROMs
  • firmware now again supports using Cloanto AmigaForever encrypted kickstart ROMs

Enjoy!

minimig AGA v1.0 for the MiST board released

There is a new release of minimig-AGA for the MiST board available, grab your fresh copy on the minimig-mist page!

It certainly took a while, but I think I can safely say that the AGA chipset is implemented correctly and in full now, but of course with lots of corner cases not handled properly. There are still quite some problems on the CPU side though, those will hopefully be fixed in time.

There are some issues worth mentioning – one is that the turbo kickstart is not working properly in all cases, so for now this feature is experimental, and it is recommended to only enable it if you don’t have any problems with it. The other issue is that currently, the HRTmon monitor doesn’t work OK when the VBR is moved to fastRAM, so either don’t use utilities like VBRMove, or don’t use HRTmon.

In the zip file, there is a firmware.upg added. There is no need to update the firmware of the MiST board if your firmware is newer than 16th of June 2015. If it is older, it is recommended to update your firmware.

Here are the updates made in this release:

  • fixed AGA color table issues
  • fixed erroneous detection of HAM, HAM8 & EHB modes in AGA
  • fixed AGA BPLXOR implementation
  • implemented AGA bitplane scandoubling
  • implemented AGA sprite scandoubling & SSCAN2 SH10 coincidence detection
  • implemented proper AGA bitplane scroller with quarter pixel scrolling precision
  • fixed AGA BPLCON4 values delay
  • playfield CLUT offsets fixed
  • ECS sprite attach enabled for both odd and even attach bit
  • turbo options for chipRAM & kickstart
  • new 8kB two-way, write-through, look-through CPU cache with separate instruction & data caches
  • CPU PACK & UNPK instruction fixes by Till Harbaum
  • updated very fast CPU by Alastair M. Robinson (in the newcpu build)
  • CIA TOD bug fixed
  • HRTmon with custom registers mirror
  • chipset config applied only on reset
  • config display added on boot screen

Enjoy!

EDIT:

a video showing the speed of the new CPU on this release:

Amiga Anniversary

2015 – The Year of Amiga Anniversaries

On this day 10 years ago, Dennis van Weeren made the first recorded commit on his then new project, Minimig (see Changelog here), so this makes today the 10th anniversary of Minimig.

The project started as a sort of proof-of-concept, showing that it is possible to re-create Amiga custom chipset in an FPGA. In around three years, Dennis made a fairly complete implementation of the OCS chipset. Amiga community – with history of disappointments behind it  – met the project with much disbelief at first, a lot of people didn’t believe it could be done until first public demonstrations of the minimig design were made. Unfortunately, Dennis stopped working on minimig and it seems he left the Amiga community, but he did publish the sources of his project under the GPL license, which allowed others to continue where he left off.

One of those developers was Jakub Bednarski (yaqube), who upgraded the minimig design, added missing features, basically bringing minimig to almost 100% compatibility with OCS/ECS Amigas. He too, so it seems, isn’t involved in the Amiga scene or minimig development anymore. He did make the first AGA chipset upgrade of the minimig with RTG graphics, AHI sound etc, but the project was never published.

I got involved in the minimig project somewhere at the end of 2011, trying to upgrade the minimig port to the DE1 board from where Tobias Gubener (tobiflexx) left it, hopefully adding some nice additions to the design. At that time, I already heard of work being done on AGA minimig, so I patiently waited for the design to be published. Unfortunately, that didn’t happen, so I decided to try and implement AGA for the minimig myself. Currently, most of the AGA chipset seems to be implemented correctly, with some missing features and probably a lot of corner cases working incorrectly. Hopefully, I’ll find some time soon to finish it!

The minimig project has grown from its beginnings on the original minimig board to quite a few other boards, like MiST, Terasic DE1/DE2, Terasic DE2-70, Chameleon64, C-ONE, FPGA Arcade Replay board, etc …

It certainly seems the project is alive and well, and will continue to thrive even after me and other current ‘generation’ developers leave the project. So here’s to (at least!) another ten great years for the minimig project!

Incidentally, this year also marks the 30th anniversary of Amiga! It is so long ago that I first played with mine I can barely remember, but I sure do remember the fun I had and awe I felt towards it.

Happy birthday old gal!

(obligatory Only Amiga song ;))