Skip to content
MiSTle-DevPublic

About

Amiga Minimig ported to the Tang Nano 20k FPGA

Resources

Stars

253 stars

Watchers

25 watching

Forks

Latest commit

 

History

519 Commits

Folders and files

Repository files navigation

NanoMig

NanoMig is a port of the Minimig Commodore Amiga FPGA implementation to the Tang Nano 20K, Tang Primer 25K, Tang Mega 138K Pro and Tang Console with Mega 60k / 138k module FPGA development boards.

NanoMig

This is based on the MiSTeryNano project and also relies on a 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 and runs all Amiga apps, games and demos.

Current state:

Network options:

  • Pi-Pico W and Pi-Pico 2 W
  • BL616 WIFI (M0S Dock / Console 60k/138k)
  • USB Ethernet LAN dongle (ASIX AX88772 & RTL8152)
  • ESP32-Key (USB WIFI Stick)

Planned features:

  • Drive Sounds for FDD & HDD (hardware addon / buzzer)
  • RTG - Retargetable Graphics
  • Toccata - Sound Card
  • virtual AT modem via MCU / FPGA-Companion (optional)
  • virtual SANA II network via MCU / FPGA-Companion (optional)

Videos

These youtube shorts mainly document the progress:

More ...

What's needed?

The necessary binaries can be found in the project releases.

TANG NANO 20K

  • nanomig.fs needs to be flashed to the FPGA's flash memory

    • openFPGALoader -f nanomig.fs
    • Currently supported are Tang Nano 20k with HDMI (nanomig.fs), Tang Nano 20k with RGB LCD (nanomig_lcd.fs), Tang Primer 25k (nanomig_tp25k.fs), Tang Mega 138k Pro (nanomig_tm128k.fs), Tang Console 60k (nanomig_tc60k.fs) and Tang Console 138k (nanomig_tc128k_bl616.fs)
  • On Nano 20k, Primer 25k and Console 60K 256kByte Kickstart 1.3 kick13.rom needs to be flashed to offset 0x400000 and 0x440000 (identical file). On 138k boards use addresses 0x600000 and 0x640000 instead.

    • openFPGALoader --external-flash -o 0x400000 kick31.rom or 0x600000 for 138k.
    • openFPGALoader --external-flash -o 0x700000 kick13.rom
    • openFPGALoader --external-flash -o 0x740000 kick13.rom
    • openFPGALoader --external-flash -o 0x780000 kick32.rom See here for checksums of known working Kickstart roms.
  • For IDE HDD support 512kB Kickstart 3.1 kick31.rom needs to be flashed at offset 0x400000 (138k: 0x600000) only.

    • openFPGALoader --external-flash -o 0x400000 kick31.rom

ICEPI-ZERO

Windows: Download and install OSS CAD SUITE (download) and Zadig (download)

1.) Connect your FPGA board with your computer via USB. We use the USB port next to the HDMI.
Open Zadig and select Options -> List All Devices in Zadig.
Choose your FPGA cable or interface from the drop-down menu.
Change the target driver to WinUSB and click Replace Driver (or Install Driver).
2.) flash the NanoMig to ICEPI
openFPGALoader -c ft231X --pins=7:3:5:6 -f nanomig_impl.bit
3.) flash Kickstart

openFPGALoader -c ft231X --pins=7:3:5:6 -f -o 0x400000 kick31.rom
openFPGALoader -c ft231X --pins=7:3:5:6 -f -o 0x700000 kick13.rom
openFPGALoader -c ft231X --pins=7:3:5:6 -f -o 0x740000 kick13.rom
openFPGALoader -c ft231X --pins=7:3:5:6 -f -o 0x780000 kick32.rom

4.) connect ICEPI & Carrier
5.) push button on Carrier and connect it via USB to your Computer to flash the FPGA-Companion (download)

FPGA-Companion

Tools

  • For preparation of HDF images the HST-Imager works best. HST-Imager
  • Professional Filesystem 3 (PFS3) is recommended for HDDs. PFS3
  • Use ADF-Opus to create and modify ADF images under Windows ADFOpus2025
  • With Disk Flashback you can mount ADF's & HDF's under Windows Disk Flashback

Rigid Disk Block Info

Please make sure to use RDB (Rigid Disk Block) images with a Start Offset 0.
If unallocated space is present before the RDB, the HDF image won't be recognized.

Build setting (Tang Nano 20K only!)

The core needs to be able to react on bl616 jtagsel Signal (all boards except tn20k).
Only for the TN20K: Use JTAG as regular IO must be unselected in Gowin EDA Configuration!

NanoMig

LED UI

LED function TN20K TP25K TM60K TM138K Pro Console60K/138k
0 POWER x x x x x
1 F.DISK x x x x x
2 H.DISK x - - x -
3 KICK READY x - - x -
4 SD-READ x - - x -
5 SD-WRITE x - - x -

Amiga specific key mappings

Amiga key NanoMig key
Left Amiga Left meta (Windows) key
Right Amiga Right meta / Page Down
Help End / Insert

Credits

The NanoMig contains code written by:

Till Harbaum
Alastair M. Robinson
Mateusz Nalewajski
Tobias Gubener
Rok Krajnc
Dennis van Weeren

Special thanks to Till Harbaum (harbaum) for the invention of the NanoMig!
Many thanks to Alastair M. Robinson (robinsonb5) for his contributions to the NanoMig, in particular Fastram and 68020 cpu!
Many thanks to Mateusz Nalewajski (m1nl) and djnice (djnice) for the implementation of the AGA chipset with Embedded Block Ram and many more contributions!

About

Amiga Minimig ported to the Tang Nano 20k FPGA

Resources

Stars

253 stars

Watchers

25 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages