Welcome, Guest. Please login or register.

Author Topic: Using C64 Core on MiniMig boards.  (Read 20356 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« on: January 12, 2009, 02:27:54 PM »
I have thought about previously, I am pleased with my efforts, no progress has been made. The ROM's and the C64 Core should fit in the 400K gate Spartan3, but the alignment of the Minimig board and the PIC are somewhat complex.

Generally, any matching system on the Minimig to be set up. The limits are really only in the existing wiring and the space in the FPGA.
An Atari ST and C64 are (in my opinion) much simpler and "smaller" than the Amiga chipset.

Perhaps Jakub or anyone else find a solution :-)

(raw translation by google...)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #1 on: January 13, 2009, 01:25:28 PM »
Could we please stay a bit on the ground?
Jakub's ARM board is not even released or finished and we are planing ahead of the not even known hardware.

Sure the Minimig board is able to run different core like FPGA64 or Atari-ST. The current PIC (or ARM board) should be able to handle different core files and the extension of disk files (i.e. .adf, .d64, .st etc.). Its also possible to rename all files in .adf as long as the sector size is still 512 byte per block. That would not require different PIC version or bit changes in its firmware, since there is no much space left.

For any new Minimig hardware releases or board revisions, the designer should be open for other core and programming ways. Right now the Minimig is an open Amiga replacement with some more options.
Don't plan ahead too much, all step by step :-)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #2 on: January 14, 2009, 09:07:45 PM »
Some little update...
Im on it and with some help from "Dirk" it could work soon. Right now the FPGA64 core only print its register dump on a total blank screen, but it indicate some working action.

There may be some timing problem in the way of sram access (sram chips get a bit warm), but I have a good faith that the FPGA64 core will work fine on Minimig V1.1 board.
But just the core, Im not able to reprogram the PIC to be a C1541 floppy or something. The 3 available spare i/o jumper connector could be a real IEC bus to connect a real C1541 floppy drive.

I'll keep you up to date :-)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #3 on: January 14, 2009, 10:01:23 PM »
Additional update:

FPGA64 on minimig V1.1 board: IT WORKS!!
pictures will be uploaded soon.
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #4 on: January 14, 2009, 10:27:00 PM »
To be fair I MUST say Dirk did 99% of the work and I tested the core on the a minimig board. Additional fixup made it possible!
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #5 on: January 15, 2009, 12:00:09 PM »
Quote

alexh wrote:
I am not 100% familiar with Yaqube's PIC updates but originally the FPGA image file must be named "MINIMIG1.BIN" and the file to be preloaded into SRAM must be "KICK.ROM" and I think it had to be padded to 512Kbytes but I'm not too sure about that.


You are right, the core file has to be named "minimig1.bin" no matter whats inside (Amiga or C64 etc.) to be loaded from PIC into the FPGA.
After that its up to the core how to handle surrounding hardware like io-pins and PIC communication. Right now the FPGA64 core dont know anything about PIC nor SPI bus at all. Its just a native C64 with ps/2 keyboard (and mouse) support. No joystick ports are implementet yet, but thats an relative easy think to do.

To have some 1541 floppy simmulation via PIC, its firmware has to be altered and reflashed! Also the C64 core has to be adapted in order to use some OSD and .d64 etc. file support.
I think that may be the next-next(-next?) step ;-) Currently Dirk and I are fixing some problems in unconnected fpga pin what causes random C64 system crash.
Next step could be: Adding IEC bus to spare-i/o pin and joystick support.

ps: Minimig board is in my point ov view an excellent testing env. it provide all necessare i/o ports and the core is simple to load in the fpga (via sd card, not via some maybe self made jtag interface).
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #6 on: January 15, 2009, 12:58:43 PM »
That may be but think about this: C64 is more famous and  provide (afaik) a bigger palette of games and demos. Also much more ppl got a C64 in the past then CPC.

I also like the CPC and have got an Amstard 6128 with color monitor (using on minimig ;-)) here. But I dont have much floppy disk and even less useable games. Also its a bit mor complex to get the disk-file on real floppy to make it use on real CPC.

Perhaps in the future the CPC core will be ported to the minimig board as well. It would certainly be an interesting project and result :-)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #7 on: January 15, 2009, 01:41:03 PM »
First of all the core has to be fixed due to some reset and bootup freeze. Then Dirk and I can take care of adding IEC support. Keyboard is already working and provide switching between PAL and NTSC by pressing F12 key.

How compatible the FPGA64 core is to a real C64 I can not say because right now I can't load any game or demo.
The core is using one sram chip of minimig pcb and provide full 64KB of ram! No need to use another fpga blockram. Currently all 3 C64 rom images are stored using blockram, so there are still some space left for some other invention/expansion.
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #8 on: January 15, 2009, 02:26:01 PM »
Yes to use another kernal the whole core has to be recompiled. Currently the only "external" thing in use is IC7 (sram0) to provide 64KB of memory. everything else like cartridge has to find its place inside the FPGA. This space is very limited as Jakub already said and there is already 13 of 16 blockram in use.

Loading anything else (additional rom image) into sram would require the PIC and a matching file handling. This is too much for me! Im not an expert in FPGA coding, so pls dont expect too much in too little time.
Right now Im very happy to see a working C64 core on minimig. An IEC bus would make this think good enough for me :-)

Lets see what can be done in the future.
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #9 on: January 15, 2009, 08:32:59 PM »
Currently the core is based on 31KHz at 50/60Hz switchable via F12. to have the same feature as Minimig to select between 15/31KHz by jumper, it has to be adapted into the core. A scandoubler is already there and could maybe be switched on/off. But unlike Minimig the whole system is based on the already doubled frequence, so its not that easy to adapt. Perhaps Dirk and Peter are able to so.
I also would like to see FPGA64 at 15KHz PAL (or NTSC) :-)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #10 on: January 17, 2009, 12:12:02 AM »
Quote

Palm wrote:

I was wondering, do you know how to make a jtag cable or is there a resource on the web to which I can make one ?

BTW: Above, you write ".bit file produced". Do you mean ".bin file" (as in, the file I can rename to minimig1.bin and boot up at the minimig) ?


If you build a .bin file no jtag cable will be required. Just rename the "something_project.bin" after compiling into "minimig1.bin" and store it in root of your (testing) sd-card. Minimig's PIC will upload this file to the fpga and don't care about its contents. Im doing this all the time in testing new fpga64 and minimig core file.

Jtag is a bit faster and no sd-card changing will be necessary. But the cable and fitting software has to be there. Jtag connection will require a .bit file to program the fpga.
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #11 on: January 17, 2009, 07:17:40 PM »
Update: IEC bus is working now. Loading via a (selfmade) cable and 1541-II is possible. Games tested so far: Giana Sisters, Airwolf and Arkanoid. All working fine, but scene demo "Deus Ex - Machina" crash while loading the next part. I think is has to do with some kind of speedloader and not yet 100% accurate core timing. Could be fixed in the near future.
Pictures and german information here: click me (If unwanted, I will remove the external link.)

I found it very exciting to do some code + hardwiring and suddenly an external floppy drive is working :-)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #12 on: January 17, 2009, 11:34:13 PM »
@Hojo_Norem
edge of disgrace is certainly one of the very best C64 demo I've ever seen! I will try this as soon as I got it on real floppy disk.
May be the multiloader will fail as in "Deus ex machina" but a few hours ago I found the right timing setting. Now fpga64 shows a 49Hz 30.8KHz PAL screen! Its possible that now all loader will work, but I have to sleep a bit before testing (it's almost 01:00 o'clock in europe :-)).

@alexh
To release a binary or source, I have to remove the ROM images or replace its content with "$00" ro keep up existing copyrights. Currently the fpga core itself comprised the ROM images and I can not make this public, sorry.
To keep copyright up the core should load the image from sd-card, like minimig is doing. But this would require PIC reprogramming or some other solution.
If anyone has a better idea or request, please send PM to me!
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #13 on: January 18, 2009, 05:56:09 PM »
Quote

Hojo_Norem wrote:
49Hz sounds a little slow.  I thought the PAL C64 refreshed at 50.12Hz?


Yep it should be at least 50Hz @ 30-31KHz but the timing settings are a bit difficult to adjust. First it was 56Hz and everything was running too fast. Perhaps I may be able to create a 2nd dcm clock generator to gain a better adjustment.

Until now also PAL and NTSC 15KHz screen is available. Currently just static but also in the future selectable via existing 15/31KHz jumper. Im working on it...

I found out that multiloader are very sensible programming stuff. Right now no scene demo is able to load the next part. It may caused by the core (source) itself but I can not reproduce that theory. If possible someone else could test the following demos on another FPGA64 porting:
- Deus Ex - Machina
- Oxyron - Natural Wonders
- Execute - Overdrive

@Belial6
I will inform me about that issue. If there are public/free ROM image available, I could implement them in the core. But first I'll have to make sure.

Thx :-)
 

Offline boing4000

  • Full Member
  • ***
  • Join Date: Apr 2006
  • Posts: 222
    • Show all replies
    • http://www.amigademo.de
Re: Using C64 Core on MiniMig boards.
« Reply #14 on: January 21, 2009, 01:01:42 PM »
I dont know the full rights-system of emulators including rom images on the internet. But if one will share this files without permission it could cost a huge amount of money. Even if this rom copyrights are very old like the C64 one.

The idea of having some kind of flashrom to store necessary rom images is a good one! Using PIC to upload (different) rom files in the current state, will require an intelligence how to handle Amiga-kick.rom and anything-else.rom to the just uploaded core file.
Handshaking is a difficult thing to do, especially in complex (working) core files like a native C64 that dont have any clue of SPI bus system or "whats a PIC...?".

Perhaps in the future it will be possible, but it would require a lot of work and knowledge about the ported system structure. Still it is possible, like we see on Minimig Amiga Chipset and its PIC communication (floppy simmulation) :-)