Benutzer-Werkzeuge

    ~~ RM: keiner ~~ UI: ---start--- ~~ IP:3.236.98.81~~

Webseiten-Werkzeuge


Minimig

Minimig 1.1

Zitat: → http://en.wikipedia.org/wiki/Minimig
„Minimig (kurz für 'Mini Amiga') ist eine Open Source Reimplementation eines Amiga 500 in einem FPGA.
Minimig wurde im Januar 2005 im Geheimen als Proof of Concept des niederländischen Elektroingenieurs Dennis van Weeren begonnen. Er sah Minimig als Antwort auf die anhaltenden Diskussionen innerhalb der Amiga-Community über die Implementierung des Amiga Custom Chipsatzes mit einem FPGA. Der Quellcode und die Schaltpläne des Projektes wurden am 25. Juli 2007 unter Version 3 der GNU General Public Licence veröffentlicht.“ (aus dem Englischen)

Original Prototyp

Der ursprüngliche Minimig Prototyp basiert auf dem Xilinx Spartan-3 Starter Kit. Der Original Amiga Chipsatz wird im FPGA synthetisiert. Zwei Leiterplatten werden über die Erweiterungsports des FPGA-Kits angeschlossen. Die erste beinhaltet eine 3,3V Motorola 68000 Typ CPU. Die Zweite hat einen MultiMediaCard-Steckplatz mit einem kleinen PIC-Mikrocontroller als Disk-Controller, der das FAT16-Dateisystem unterstützt und die On-the-Fly-AMIGA Disk File (ADF)-Dekodierung durchführt.

     VGA-+-PS2 (Joystick etc.)
         |
CPU <-> FPGA <-> Mikrocontroller <-> Flashspeicher
         |
        RAM

Der Prototyp wurde bei einem Amiga-Treffen gezeigt und die meisten Amiga-Programme wurden geladen, obwohl es Bugs gab. Die persönlichen Vorlieben Van Weerens führten dazu, dass Verilog anstelle von VHDL auf einem PC mit Xilinx Webpack Software zur Codeentwicklung eingesetzt wurde.

Lose-Blatt-Sammlung

Noch'n Text: FIXME
(Ausschnitt aus: http://de.wikipedia.org/wiki/Amiga)
Auf der Basis von frei reprogrammierbaren FPGAs gibt es auch immer wieder Versuche von Hobbyprogrammierern, Amiga-Rechner weitestgehend in Hardware nachzubilden. Ein Ableger dieser Versuche ist z. B. der Minimig von Dennis van Weeren, der heute für ca. 150 € angeboten wird. Dabei handelt es sich um einen mit 7,09 MHz (via OSD umschaltbar auf 49,63 MHz) getakteten MC68SEC000 mit 2 MB oder optional 4 MB S-RAM, wobei alle Zusatzchips des Amiga 500 in einem 400 Kgate Spartan-3 (XC3S400)-FPGA nachgebildet wurden. Als Laufwerk dient ein MMC-/SD-Flash-Kartenleser. Zusätzlich verfügt der Minimig über einen nachprogrammierten Scandoubler (Amber-Chip aus dem Amiga 3000) und ist somit wahlweise tauglich für VGA 31 kHz und PAL 15 kHz. Die meisten TFT-Bildschirme können das 31-kHz-Signal sauber anzeigen.

In Verbindung mit einem ARM-Miniboard-Upgrade unterstützt der Minimig mittlerweile auch bis zu vier virtuelle Laufwerke, die optional mit mehrfacher Geschwindigkeit betrieben werden können, einen Turbo-Modus mit 4 kB CPU Cache und beschleunigtem Blitter sowie maximal 2 MB Chip- und 1,5 MB Slow-RAM. Die Kompatibilität wurde bei jeder neuen open-source Release verbessert, es wird auch aktuell weiter entwickelt. Die aktuelle Minimig-Firmware bietet dazu eine Unterstützung von Hard Drive Files (HDF) und der ECS-Agnus + Denise.

Was ist ein Minimig?

Der Minimig ist weder ein Emulator noch ein 100% Nachbau. Emulatoren sind reine Software-Gebilde, die auf eine Host-Hardware angewiesen sind, so wie jeder UAE.

Der Minimig ist ein Simulator und stellt selber seine eigene Hardware-Basis (im FPGA und mit dem 68SEC000) dar. Es wird keine „Über-CPU“ oder „Grafikkarte“ gebraucht, alles wird selber erzeugt.

Ein 100% Nachbau wäre er dann, wenn man die gleichen Chips und das gleiche Mainboard verwenden würde. Im Minimig sind die Customchips und CIAs so genau wie möglich nachgebildet worden, damit die Software (Spiele, Demos usw.) möglichst genau so funktionieren kann, wie auf der realen Amiga Hardware mit all ihren Eigenheiten (OCS/ECS).

„Minimig“ ist, wie bei Linux, nur der Core/Kern(el). Also das Grundgerüst von Chipset, Signalen/Timings und den Bussen. Die V1.1 Ur-Platine bietet die Basis, wenn man vom Minimig spricht. Alle anderen Portierungen haben unterschiede, weil sie auf unterschiedlicher Hardware laufen und einen CPU Softcore verwenden. Eine generelle Kompatibilität kann man also nicht so leicht benennen. Ich beziehe mich immer auf die V1.1 Platine von Dennis van Weeren, weil darauf die meisste Entwicklung betrieben wurde und meiner Meinung auch die höchste Kompatibilität besteht.

Das FPGA Replay Board bietet dazu noch AGA Fähigkeiten und in Zukunft auch einen realen 68060 Prozessor, der sich dann genau wie im echten Amiga verhält. Dazu noch reichlich Fastram, USB und einen Netzwerkchip.

Die Portierung auf dem MCC216 ist dagegen grottenschlecht! Da laufen tatsächlich nur 50% oder maximal 60% aller Spiele und Demos. Wenn ich nur diese Hardware als „Minimig“ kennen würde, wäre meine Meinung dazu entsprechend gering, weil es einfach enttäuschend ist, wenn die meissten Sachen nicht funktionieren.

Auf dem V1.1 Board laufen mit aktuellem Core und PIC/ARM Firmware nahezu alle Spiele und Demos. Einzig das DSKBYTR Register ist nicht eingepflegt und 2 oder 3 Spiele laden deswegen nicht weiter. Doch das kann man mit WHDLoad abfangen und das Spiel selbst läuft dann ganz normal.


Fakt ist: Der Minimig von ACube ist vollwertig und einsatzbereit. Den PIC muss man bestimmt auf die neuste Version updaten, dann kann es mit viel Spielspass los gehen

Wenn man das volle Programm haben möchte, braucht man den ARM Controller. Ggf. auch das RAM Upgrade, aber dies sind nur optionale Erweiterungen, kein „muss“.

Ebenso Fakt: „Der Minimig“ als open source Reimplementation wächst ständig. Man kann dieses Projekt nur als variable Umsetzung betrachten, die noch nicht 100% fehlerfrei ist. Daher sollte man Spass und Freude an der Sache „Minimig“ haben und sich nicht über diverse Eigenheiten ärgern. Das Produkt ist im ständigen Wandel und wird sich ganz bestimmt weiter verändern und wachsen.

Bild-Auflösungen

Baustelle

Der Minimig Core kann aktuell über VGA nur 50/60Hz mit 31KHz ausgeben. Es können generell keine erweiterten ECS-Screenmodi genutzt werden. Bei TFTs sieht das Bild durch die interne Interpolation oft unschön aus. Deswegen nutze ich immer CRTs oder beim TFT die manuelle Einstellung von 908 pixel/line. Damit erhält man zumindest ein ungestauchtes Bild ohne dunkle Streifen. Mehr kann man nicht machen, weil das Minimig-Bild keinen VESA-Standard abdeckt, so wie inetwa ein Amiga-Bild an einem Scandoubler.
boing4000 im http://www.a1k.org/forum/showpost.php?p=574896&postcount=1540

VGA-Scart-Kabel: -> hier

Technische Daten

Die von ACube hergestellte Platine basiert 1:1 auf den freigelegten Schematics von Dennis van Weeren.
Damit erhält man das Grundgerüst:

  • 400K Gate Xilinx FPGA
  • 68SEC000 CPU
  • 2MB S-RAM (1.5MB Usernutzbar)
  • 12Bit VGA (4096 Farben 15KHz PAL/NTSC oder 31KHz 50/60Hz)
  • PIC Controller
  • 2x Joystick Ports

Damit ist der Minimig grundlegend und generell einsatzfähig. Zusätzlich braucht man eine SD-Karte, ein KICK.ROM Abbild und ein 5V Netzteil. Das Kickstart Image muss 256KB oder 512KB gross sein und belegt immer 0.5MB vom S-RAM.

Mit der aktullen Release laufen sehr viele Spiele und Demos. Man hat insgesamt folgende Feature (PGL100818):

  • SD, SDHC und MMC Karten Nutzung mit FAT32 (lange Dateinamen + Unterverzeichnisse) bis 16GB+
  • HDD Support für 2 Festplatten von je bis zu 4GB
  • 4 Floppys (DF0: - DF3: )
  • 1x/2x Floppy Speed
  • CPU Speed Normal (7.09MHz) und Turbo (49.63MHz +4KB Cache)
  • OCS/ECS Umschaltung
  • Speicherauswahl in 0.5MB Schritten
  • WHDload und .ISO.HDF CD-Image Support als Slave-Festplatte ist möglich
  • Horizontale und vertikale Bildinterpolation im 31KHz VGA Mode
  • Scanline effect im 31KHz Mode

Wenn man den Minimig ans obere Limit versetzen möchte, braucht man den ARM Controller als PIC Ersatz. Ebenso die zusätzlichen S-RAMs um maximal 3.5MB nutzbaren Speicher zu erlangen. Der ARM Controller liegt preislich bei ca. 45,- Euro und kann ohne Lötarbeiten eingesetzt werden. Die zusätzlichen beiden S-RAMs müssen SMT mässig huckepack aufgelötet werden! Dies ist keine „mal eben so“ Sache und man sollte Übung im SMD löten haben! Das alles ist nur optional und nicht zwingend erforderlich.

Mit dem ARM Controller hat man diese zusätzlichen Feature (YQ100818):

  • ARM Chip Update über SD-Karte oder USB
  • optional high-speed Datentransport beim Überbrücken von 2 Widerständen.
  • Höhere Datenleserate von Floppy und HDF (bis zu 2.3MB/s ist möglich)
  • Scrolling langer Dateinamen über die OSD Breite hinaus (v-synchron).
  • Fullzize OSD Text
  • Anzeige von multi-disk Image x/y mit den Zeichen „(x of y)“ im Dateinamen.

aktuell

boing4000 up-to-date Sammelseite im a1k:

ältere Versionen(?):

  • PIC: PGL100818
  • ARM: AYQ100818
  • FPGA: FSB120420 (basierend auf dem Original FYQ100818)

liegt alles im minimig.net

Updates 17.03.2013:


Andere

Der direkte Nachfolger zum MinimigV1x ist das FPGA Arcade Replay Board, auch „Minimig-AGA“ genannt, weil ein AGA fähiger Core darauf portiert wurde. (noch nicht in Auslieferung).

Das Chameleon 64 bietet auch einen Minimig Core und ist in der Lage Stand-Alone ohne einen C64 zu arbeiten.


Kontroller

Der HDF Speed hängt von vielen Faktoren ab.

Als wichtigster Teil ist natürlich der verwendete Controller. Der original verbaute PIC ist ziemlich langsam und besonders bei HDF Zugriffen absolut am Ende seiner Leistung. Der ARM Controller, eine Platine als Ersatz für den PIC, ist generell schon wesentlich schneller und intern leistungsfähiger.

Dann hängt der Datendurchsatz noch von der verwendeten SD Karte (Typ, Größe und Class) ab. Ebenso, ob man beim ARM den „SPI Speedup Hack“ vorgenommen und Fast-SPI im OSD aktiviert hat.

Bei günstigster Kombination kommt man auf ca. 1.9 bis 2.1MB/s Datendurchsatz im Turbo Modus.

Nähere Infos → Minimig Arm Controller


Fehler und Co.

weiteres dazu im extra Minimig-Service-Artikel


 unglaublich, aber wahr: keine deutsche Minimig-Wikipedia-Seite :-(
Translator und Autor gesucht

www.amigawiki.de

Links

Zuletzt geändert: 2017/10/17 22:57