https://github.com/harbaum/nanomig
Amiga Minimig ported to the Tang Nano 20k FPGA
https://github.com/harbaum/nanomig
Last synced: about 1 year ago
JSON representation
Amiga Minimig ported to the Tang Nano 20k FPGA
- Host: GitHub
- URL: https://github.com/harbaum/nanomig
- Owner: harbaum
- Created: 2024-05-26T14:27:21.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-07T16:16:31.000Z (over 1 year ago)
- Last Synced: 2025-01-16T03:26:17.282Z (over 1 year ago)
- Language: Verilog
- Size: 1.75 MB
- Stars: 106
- Watchers: 16
- Forks: 8
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NanoMig
NanoMig is a port of the [Minimig](https://en.wikipedia.org/wiki/Minimig) Commodore Amiga FPGA implementation to the [Tang Nano 20K](https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/nano-20k.html), [Tang Primer 25K](https://wiki.sipeed.com/hardware/en/tang/tang-primer-25k/primer-25k.html) and [Tang Mega 138K Pro](https://wiki.sipeed.com/hardware/en/tang/tang-mega-138k/mega-138k-pro.html) FPGA development boards.

This is based on the [MiSTeryNano project](https://github.com/harbaum/MiSTeryNano/) and also relies on a [FPGA companion](http://github.com/harbaum/FPGA-Companion) to be connected to the FPGA board for USB support and on-screen-display control.
This is still a work in progress. The current version is based on the [MiSTer Minimig AGA code](https://github.com/MiSTer-devel/Minimig-AGA_MiSTer) and runs many Amiga games and demos.
Current state:
* Minimig based on [MiSTer Minimig AGA](https://github.com/MiSTer-devel/Minimig-AGA_MiSTer)
* Kick ROM stored in flash ROM
* Up to 2MB chip and 1.5MB slow RAM
* OCS and ECS chipset (no AGA!)
* Up to four virtual floppy drives
* HDMI video and audio, PAL and NTSC
* Keyboard, Mouse and Joystick via USB
* Virtual IDE hard disk read an write support
* Runs on [Tang Nano 20k](https://wiki.sipeed.com/hardware/en/tang/tang-nano-20k/nano-20k.html), [Primer 25K](https://wiki.sipeed.com/hardware/en/tang/tang-primer-25k/primer-25k.html) and [Mega 138K Pro](https://wiki.sipeed.com/hardware/en/tang/tang-mega-138k/mega-138k-pro.html)
* [Fully simulated](sim)
Planned features:
* Floppy disk write support
* Accelerated 68020 support (may not fit)
* AGA support (may not fit)
## Videos
These youtube shorts mainly document the progress:
* [NanoMig #10: World of Commodore Amiga Demo on Tang Primer 25k](https://youtube.com/shorts/XdLlrg1wgko)
* [NanoMig #9: Amiga speedball 2 on Tang Mega 138k Pro](https://youtube.com/shorts/NHFjJwGAOZ0)
* [NanoMig #8: Booting from virtual Harddisk](https://youtube.com/shorts/9LJ0tsSZb60)
More ...
- NanoMig #7: Tiniest Amiga running Gods
- NanoMig #6: First signs of life with the 68ec020
- NanoMig #5: Cheap FPGA Amiga finally runs Planet Rocklobster Demo
- NanoMig #4: Running Amiga Pro tracker on the Tang Nano 20k
- NanoMig #3: Booting workbench for the first time on Tang Nano 20k
- NanoMig #2: USB keyboard and audio for the FPGA Amiga
- NanoMig #1: Amiga DiagROM booting on Tang Nano 20k
## What's needed?
The necessary binaries can be found in the [project releases](https://github.com/harbaum/NanoMig/releases).
* ```nanomig.fs``` needs to be flashed to the FPGA's flash memory
* ```openFPGALoader -fs nanomig.fs```
* Kickstart 1.3 ```kick13.rom``` needs to be flashed at offset 0x400000 _and_ 0x440000
* ```openFPGALoader --external-flash -o 0x400000 kick13.rom```
* ```openFPGALoader --external-flash -o 0x440000 kick13.rom```
* For IDE HDD support Kickstart 3.1 ```kick31.rom``` needs to be flashed at offset 0x400000 only
* ```openFPGALoader --external-flash -o 0x400000 kick31.rom```
* The [latest firmware](http://github.com/harbaum/FPGA-Companion) needs to be flashed to the support MCU
* Currenly supported are [M0S Dock (BL616)](https://github.com/harbaum/FPGA-Companion/tree/main/src/bl616), [Raspberry Pi Pico (RP2040)](https://github.com/harbaum/FPGA-Companion/tree/main/src/rp2040) and [ESP32-S2/S3](https://github.com/harbaum/FPGA-Companion/tree/main/src/esp32)
* A default ADF disk image named ```df0.adf``` should be placed on SD card (e.g. workbench 1.3)
* For the SD card to work [all components incl. the support MCU](https://github.com/harbaum/NanoMig/issues/5) have to work properly