Skip to content

Latest commit

 

History

472 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 many Amiga games and demos.

Current state:

  • Minimig based on MiSTer Minimig AGA
  • Amiga 500, 1000 and Amiga 1200 modes
  • Kick ROM stored in flash ROM
  • 2MB chip, 4MB fast and 1.5MB slow RAM on Tang Nano
  • 2MB chip, 28MB fast and 1.5MB slow RAM on ICEPI-ZERO
  • Accelerated 68020 support + CPU cache
  • OCS, ECS, AGA chipset
  • ROM loader (Kickstart 1.3 / 3.1 / 3.2 / DiagRom)
  • Up to four virtual floppy drives
  • Floppy disk write support
  • HDMI video and audio, PAL and NTSC
  • Keyboard and mouse via USB
  • Joysticks via USB or DB9 ports
  • Up to two virtual IDE hard disks, read and write support
  • Runs on Tang Nano 20k, Primer 25K, Mega 138K Pro and [Tang Console with Mega 60k / 138k module],(https://wiki.sipeed.com/hardware/en/tang/tang-console/mega-console.html), ICEPI-ZERO (25K) and ICEPI-ZERO XL (45K)
  • Fully simulated

Planned features:

  • Drive Sounds for FDD & HDD (hardware addon / buzzer)
  • RTG - Retargetable Graphics
  • Toccata - Sound Card
  • WIFI support

Videos

These youtube shorts mainly document the progress:

More ...

What's needed?

The necessary binaries can be found in the project releases.

  • 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.
    Note: 512kB Kickstart 1.3 ROMs at offset 0x400000 respectively 0x600000 for 138k.
  • 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
  • The latest FPGA Companion firmware needs to be flashed to the support MCU
  • 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 have to work properly
  • 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

ICEPI-ZERO

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

1.) Plug your FPGA board into your computer via USB.
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 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
4.) connect ICEPI & Carrier
5.) push button on Carrier and connect it via USB to your Computer to flash FPGA-Companion (download)

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.

Credits

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!

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

About

Amiga Minimig ported to the Tang Nano 20k FPGA

Resources

Stars

212 stars

Watchers

23 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages