Skip to content

Commit

Permalink
minimig_mist-1_2
Browse files Browse the repository at this point in the history
  • Loading branch information
rkrajnc committed Feb 21, 2016
1 parent 52f1216 commit da69f6e
Show file tree
Hide file tree
Showing 36 changed files with 7,241 additions and 5,325 deletions.
17 changes: 17 additions & 0 deletions Changelog
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,25 @@ SB - Sascha Boing
AR - A.M. Robinson
TH - Till Harbaum
RK - Rok Krajnc
MJ - Mike Johnson


2016-02-20 - RK - MINIMIG - initial implementation of programmable display modes
2016-02-16 - RK - MINIMIG - OSD HRTmon enable / disable switch is working (ON - F11 acts as NMI and enters HRTmon, OFF - F11 is HELP key)
2016-02-15 - RK - MINIMIG - proper handling of CPU access to chipRAM & custom regs - CPU waits for free slot when turbo option is disabled
2016-02-15 - RK - DENISE - fixed playfield 2 color lut offset when playfield 2 has priority for OCS/ECS modes
2016-02-15 - MJ - BLITTER - some IRQ changes (unknown cause / effect)
2016-02-14 - RK - AGNUS - added support for undocumented Agnus behaviour when BPL=7 in ECS/OCS mode (fixes demos like SushiBoyz by Ghostown, Sliced&Diced by Dekadence, etc)
2016-02-14 - RK - DENISE - added support for undocumented Denise behaviour when BPL=7 in ECS/OCS mode (fixes demos like SushiBoyz by Ghostown, Sliced&Diced by Dekadence, etc)
2016-02-09 - RK - BLITTER - blitter line mode fixed (fixes demos like SushiBoyz & Sunglasses by Ghostown, Vectorize by RSi, etc)
2016-01-30 - TH - TG68 - bitfield instructions fixed, barrel shifter implemented
2016-01-30 - RK - DENISE - fixed colortable for sprites (bplxor) - fixes Alien Breed 3D (and probably many others)
2016-01-09 - RK - MIST - fixed keyboard rate
2016-01-09 - RK - MIST - kickstart ROM is also uploaded to mirror position (E0)
2015-10-24 - RK - MINIMIG - fixed reset problems & fastRAM disappearing
2015-09-21 - RK - TG68 - added CACR cache control, fixed reading CACR reg
2015-09-14 - RK - AMBER - added scanlines for non-doublescaned config
2015-09-14 - RK - AMBER - fixed dithering - both spatial & random dithering weren't working properly
2015-09-10 - RK - USERIO - disabled entering the OSD menu with DB9-connected joystick with UP+DOWN combination
2015-09-10 - RK - FIRMWARE - fixed loading of Cloanto AmigaForever encrypted ROMs
2015-09-10 - RK - TG68 - reduced the speed of the CPU core
Expand Down
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This is a port of the minimig core to the [MiST board](http://harbaum.org/till/m

[Amiga](http://en.wikipedia.org/wiki/Amiga_500) was - in my opinion - an amazing personal computer, announced around 1984, which - at the time - far surpassed any other personal computer on the market, with advanced graphic & sound capabilities, not to mention its great OS with preemptive multitasking capabilities.

The minimig-mist variant in this repository has been upgraded with [AGA chipset](http://en.wikipedia.org/wiki/Amiga_Advanced_Graphics_Architecture) capabilites, which allows it to emulate the latest Amiga models ([Amiga 1200](http://en.wikipedia.org/wiki/Amiga_1200), [Amiga 4000](http://en.wikipedia.org/wiki/Amiga_4000) and (partially) [Amiga CD32](http://en.wikipedia.org/wiki/Amiga_CD32)).
The minimig-mist variant in this repository has been upgraded with [AGA chipset](http://en.wikipedia.org/wiki/Amiga_Advanced_Graphics_Architecture) capabilites, which allows it to emulate the latest Amiga models ([Amiga 1200](http://en.wikipedia.org/wiki/Amiga_1200), [Amiga 4000](http://en.wikipedia.org/wiki/Amiga_4000) and (partially) [Amiga CD32](http://en.wikipedia.org/wiki/Amiga_CD32)). Ofcourse it also supports previous OCS/ECS Amigas like [Amiga 500](http://en.wikipedia.org/wiki/Amiga_500), [Amiga 600](http://en.wikipedia.org/wiki/Amiga_600) etc.


## Core features supported
Expand All @@ -16,7 +16,7 @@ The minimig-mist variant in this repository has been upgraded with [AGA chipset]
* slowRAM : 0.0MB - 1.5MB
* fastRAM : 0.0MB - 24MB
* CPU core : 68000, 68010, 68020
* kickstart : 1.2 - 3.1 (256kB and 512kB kickstart ROMs currently supported)
* kickstart : 1.2 - 3.1 (256kB, 512kB & 1MB kickstart ROMs currently supported)
* HRTmon with custom registers mirror
* floppy disks : 1-4 floppies (supports ADF floppy image format), with normal & turbo speeds
* hard disks : 1-2 hard disk images (supports whole disk images, partition images, using whole SD card and using SD card partition)
Expand All @@ -29,28 +29,29 @@ The minimig-mist variant in this repository has been upgraded with [AGA chipset]
## Usage

### Hardware
To use this minimig core on the MiST board, you will at the minimum need an SD/SDHC card, formatted with the FAT32 filesystem, an USB keyboard and a compatible monitor / TV. Joysticks & mouse can be emulated on the keyboard. You will probably want to attach a set of speakers of headphones, a real Amiga or USB mouse and a real Amiga joystick or an USB gamepad. The MiST board is needed, too, of course ;)
To use this minimig core on the MiST board, you will at the minimum need an SD/SDHC card, formatted with the FAT32 filesystem, an USB keyboard and a compatible monitor / TV. Joysticks & mouse can be emulated on the keyboard. You will probably want to attach a set of speakers of headphones, a real Amiga or USB mouse and a real Amiga joystick or an USB gamepad. The MiST board is needed too, of course ;)

### Software
FPGA core releases can be found [here](http://somuch.guru/minimig/minimig-mist/). The latest release available is *minimig-mist-1_0*. The zip file contains a minimig-mist-1_0.rbf file, which is the FPGA core, and a firmware.upg file, which can be used to upgrade the firmware on the ARM microcontroller (usually, there is no need to upgrade the firmware, unless it is specifically mentioned to do so). Both files should be placed on the root of your SD card. If you want this core to be the default, you need to rename it to *core.rbf*.
FPGA core releases can be found [here](http://somuch.guru/minimig/minimig-mist/). The latest release available is *minimig-mist-1_2*. The zip file contains a minimig-mist-1_2.rbf file, which is the FPGA core, and a firmware.upg file, which can be used to upgrade the firmware on the ARM microcontroller (usually, there is no need to upgrade the firmware, unless it is specifically mentioned to do so). Both files should be placed on the root of your SD card. If you want this core to be the default, you need to rename it to *core.rbf*.

To use the core, you will also need a Kickstart ROM image file, which you can obtain by copying Kickstart ROM IC from your actual Amiga, or by buying an [Amiga Forever](http://www.amigaforever.com/) software pack. The Kickstart image should be placed on the root of the SD card with the name KICK.ROM.
To use the core, you will also need a Kickstart ROM image file, which you can obtain by copying Kickstart ROM IC from your actual Amiga, or by buying an [Amiga Forever](http://www.amigaforever.com/) software pack. The Kickstart image should be placed on the root of the SD card with the name KICK.ROM. Minimig also supports the [AROS](http://aros.sourceforge.net/) kickstart ROM replacement.

The minimig can read any ADF floppy images you place on the SD card. I recommend at least Workbench 1.3 or 3.1 (AmigaOS), some of the Amigas great games (I recommend Ruff'n'Tumble) or some of the amazing demos from the vast Amiga demoscene (like State of the Art from Spaceballs).

The minimig can also use HDF harddisk images, which can be created with [WinUAE](http://www.winuae.net/).

### Recommended minimig config

* for ECS : CPU = 68000, Turbo=NONE, Chipset=ECS, chipRAM=0.5MB, slowRAM=0.5MB, Kickstart 1.3
* for AGA : CPU = 68020, Turbo=BOTH, Chipset=AGA, chipRAM=2MB, slowRAM=0MB, fastRAM=24MB, Kickstart 3.1
* for ECS games / demos : CPU = 68000, Turbo=NONE, Chipset=ECS, chipRAM=0.5MB, slowRAM=0.5MB, Kickstart 1.3
* for AGA games / demos : CPU = 68020, Turbo=NONE, Chipset=AGA, chipRAM=2MB, slowRAM=0MB, fastRAM=24MB, Kickstart 3.1
For Workbench usage, you can try turning TURBO=BOTH for a little speed increase.

### Controlling minimig

Keyboard special keys:

* F12 - OSD menu
* F11 - start monitor (HRTmon)
* F11 - start monitor (HRTmon) if HRTmon is enabled in OSD menu (otherwise F11 is the Amiga HELP key)
* ScrollLock - toggle keyoard only / mouse / joystick 1 / joystick 2 emulation on the keyboard (direction keys + LCTRL)


Expand Down Expand Up @@ -111,7 +112,7 @@ MiST board support & other cores on the [MiST Project Page](https://code.google.

## License

Copyright © 2011 - 2015 Rok Krajnc ([email protected])
Copyright © 2011 - 2016 Rok Krajnc ([email protected])

Copyright © 2005 - 2015 Dennis van Weeren, Jakub Bednarski, Sascha Boing, A.M. Robinson, Tobias Gubener, Till Harbaum

Expand Down
32 changes: 17 additions & 15 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
FIX FIRST
- support for 256kB, 1MB ROMs - DONE
- support for Cloanto AmigaForever encrypted ROMs - DONE
- fix keyboard / mouse issues - DONE
- add support for AROS ROM - DONE
- add support for AROS - ONGOING (IDE problems)
- implement audio volume control (full, half, quarter?)
- HELP key / HRTMON (NMI) button fix - DONE (OSD HRTmon disabled - F11 is HELP key)
- 512kB ROM mirror (just upload it twice) - DONE
- video dithering needs fixed - to be checked with C model - DONE
- fix reset problems, fastRAM problems - DONE
- try to fix clock/sdram issues - ONGOING
- add support for AROS - ONGOING (IDE problems)
- audio sigma-delta needs fixes - to be checked with C model
- video dithering needs fixed - to be checked with C model
- implement audio volume control (full, half, quarter?)
- mapping CTRL, ALT, ... keys in mist.ini
- IDE OSD settings sometimes don't get applied
- A8 kickstart ROM mirror - WONTFIX (memory block is partly occupied by HRTmon, besides it is very rarely used)


IMPORTANT - AGA CHIPSET stuff
Expand All @@ -24,24 +26,24 @@ IMPORTANT - AGA CHIPSET stuff
* Writing to BPLxPT when exactly next cycle has DMA to matching BPLxDAT: write goes nowhere. (Same happens with sprites and blitter registers too, I assume all DMA channels have similar internal 2 cycle pipeline)
* Another similar special feature is bitplane modulos, writing to BPLxMOD when exactly next cycle is matching BPLxDAT write and it also does modulo add, _old_ modulo value is used! (Write to BPLxMOD is still accepted, next time BPLxMOD value is needed it is used normally)
- sprites can be positioned on 35ns pixels - to add! - I think I did this - CHECK
- add CD32 gamepad emulation and / or real amiga cd32 gamepad support (http://gerdkautzmann.de/cd32gamepad/cd32gamepad.html)
- add CD32 gamepad emulation and / or real amiga cd32 gamepad support (http://gerdkautzmann.de/cd32gamepad/cd32gamepad.html) - ONGOING
- reimplement blitter - CONSIDERING


IMPORTANT - CPU stuff
- CPU : add PACK & UNPK instruction support - DONE by Till
- CPU compatibility fixes are a must!
- CPU fix cart compatibility problems (overlay detection should be moved to TG68K.vhd); big problems with turbo kickstart - CHECK
- CPU kickstart turbo - DONE, some problems remain - CHECK
- CPU chipRAM turbo - DONE, need to enable cache for chipRAM
- CPU chipRAM turbo - DONE, need to enable cache for chipRAM - CHECK
- CPU kickstart turbo - DONE, some problems remain - ONGOING
- CPU compatibility fixes are a must! - ONGOING (Till fixed most of the instructions, still need to check stack frames - see (http://lxr.free-electrons.com/source/include/asm-m68k/traps.h?v=2.2.26 ... http://ftp.dei.uc.pt/pub/linux/kernel/people/geert/uClinux-amiga-2.6.x-merging/008-frame.diff)
- CPU fix cart compatibility problems (overlay detection should be moved to TG68K.vhd); big problems with turbo kickstart - ONGOING


MEDIUM - mostly firmware stuff
- joystick autofire menu ?


LOW - waaay down the line
- ethernet - ONGOING
- turbo blitter
- ethernet - this needs to be done sooner
- RTG
- AHI audio - look into supporting this sooner
- AHI audio

Loading

0 comments on commit da69f6e

Please sign in to comment.