Monday, June 13, 2022

Exploring the Mega 65

 Over the past two weeks I have been continuing to explore the Mega 65 computer after recently getting it, now looking at the updated Basic features, and alternative cores like the C64 Core and Gameboy Core.

As the Mega65 computer uses FPGA at its heart, it is able to support multiple Cores, which provide the system with different base functionality. As delivered, it comes with a Mega65 Factory Core.

The system supports up to 8 cores, selectable at boot time by holding down the NoScroll key on power on.


You can launch the cores from the screen above by typing the number of the Core you want to use. This then loads the Core into the FPGA and you get a different system!


The process of importing cores is by downloading Cores, then loading the .cor files onto an external MicroSD and then Editing a slot number to load that cor into the Mega65. Note that for the newer Mega65 Cores, you should also download the latest Mega65.ROM (using the code you got with your Mega65) and update that file on your SD Card also.

I started by loading the updated Mega 65 core into slot 1. The Mega65 won't let you overwrite the factory core in Slot 0, to prevent bricking the system and making it unbootable.

It checks the core is ok, and that it for the correct hardware, the Mega65 R3. It then loads the core into the slot selected.

This is a relatively quick process, but does take a few minutes.

Eventually the core import process completes successfully.


Now I have an updated Mega65 core ready to use in Slot 1. I also downloaded the C64 Core and loaded that in also, using Slot 2, as per below.

The Mega65 is setup that if you have a Core loaded into Slot 1, it assumes that this is the latest Mega65 core and will boot from that with a higher priority than the factory core in Slot 0.

So now the Mega 65 boots straight into the updated Mega 65 core (V920355) in Slot 1 on power on every time.


The Core is being updated almost daily at the moment, so keeping up with the changes is challenging, but I am glad to see such active development ongoing to improve the functionality of the Mega65 core and fix bugs.

In addition to this core, as mentioned I also load the C64 Core. This turns the Mega65 into a C64, with none of Mega65 extra BASIC functionality, Freeze menu virtual drive mounting, etc.


So why would you do this?

Well, the Mega65 core does have a C64 mode, a bit like the Commodore 128 used to have. Type GO64 at the READY prompt to enter it. 

C64 mode works ok, but it is limited to using 1581/1565 3.5" disk images. It can't use the more common 1541 D64 disk images. It does work with real 1541 floppy drives, and some cartridges too (not images of cartridges though), as I touched on in my last blog post.

There are ways to convert D64 images to D81 to use on the Mega65, but who wants to do that!

The C64 Core on the Mega65 fully support D64 floppy images, and allows changing between the older 6581 and newer 8580 SID chips via a menu activated with the HELP key with the C64 core running:


You can mount floppy disk images using the Mount Drive option in the HELP menu, and then select the image you want to use.


You can then close the menu, and load "*",8,1 and off you go. Demo time:


Disclaimer about scrollers - love it.


Never ceases to amaze me how fantastic C64 scene demos are - really pushing the boundaries of what I thought a C64 could do - mostly working well on the C64 Core on the Mega65:



I found some C64 demo floppy disk images were not the size the C64 core was expecting, and it refused to mount them. Hopefully this will be fixed in a newer version. That said, most of the demos I tested worked just fine:



I also took the opportunity while using the C64 core to load one of the games I played a lot as a young child in the early 1980's, an Australian game from Mountain Valley Games called Oasis of Shalimar.


Back in the day I played this for hours, trying to find all the 10 treasures and solving puzzles to find more. It counts how many moves you take to do it also, but I never finished the game to find out, as I couldn't find the final treasure. I only ever found 9 of them!

Today though, I decided it was time to find it.


And here it was, the final treasure - I missed finding the Nugget, which certainly was a strange place to find it.


I stored the treasure and then picked up the remaining ones I already knew how to find.


Job done, after 40 years I finally finished this game! Sorry for the detour, but I was very happy to do this finally, and on the Mega65 as well!


Getting back to the cores now, from what i understand, the Mega65 is using the Mister framework for new cores. 

That is very exciting as there are a lot of classic computers implemented using this framework. Even consoles and portable systems too, like the Gameboy Core.

Let's take a look at that! As with the C64 Core, I downloaded the Gameboy Core from my Mac, put it on the MicroSD card. 


I then booted the Mega 65 into the Core management area using the NoScroll key on power on. I could then load the new Core into a free slot.


That done, it is now ready to use:


I created a GBC folder on the MicroSD card as per the instructions, and put the gameboy rom from the site included in the instructions into the right place and renamed the file as per the instructions. It can detect it on the Core launch and use it, as below:



I then select the Gameboy or Gameboy colour software to run. I have taken the opportunity to download the many awesome Gameboy demoscene demos available to try out, alongside some other favourite games I legally own.




Voila, one Gameboy/Gameboy Colour system, running on the Mega 65!


As with the C64 Core, you can use the HELP key while the Core is running to customise the Gameboy system options such as using Colour or original Gameboy classic, joystick mappings for compatibility with games that use multiple buttons on the gameboy, and more:


Games run well, as expected:



It is strange playing gameboy games on a Mega 65 computer, but impressive that it works so well:




As mentioned you can adjust the colour output to look a bit better than the original system, which took the screen it was displayed on into account for colours, which meant they can look a bit odd on a normal screen - so there is Fully matured and LCD emulation options here, and below is how the two options compare on the same game screen:



It is fair to say I got somewhat distracted playing the next game, the first one I ever got for the original Gameboy classic (it was included with it):



The Gameboy colour colourisation works well too for the older carts, as shown below:



For me though, my largest interest in the Gameboy core was running the demoscene productions for it (classic and colour) - so impressive:





I never knew the Gameboy could even do some of the effects I saw in these demos:


I enjoyed the music disks (?carts?) as well:






Moving on now, I loaded into the Mega65 core again to explore BASIC a bit more.

Turns out with the Mega 65 you can do DIR directory listing commands and specify which device to use, for example U8 for Unit 8 (Virtual/real), U12 (external MicroSD card).

So typing in DIR U12 gives me a listing of the current folder. and I can use CHDIR to enter into sub directories! You can then use CHDIR "..",U12 to go back up a folder. Amazing, something I have never seen before on the C64.


You can also use DLOAD"PROGNAME.PRG",U12 to load a program direct from the SD Card, without mounting a floppy disk image.

I heard from some other people that apparently some of this functionality was on the C128, but much harder to use. 

It is so interesting to learn about these new functions, realising how much better the Basic implementation is on the Mega65, extending the original Commodore 65 Basic and adding in modern features and functions to make life easier.

I decided to write a Basic program (very simple - don't shoot me), to try out the Mega 65 basic. First thing I read in the Basic 65 reference manual (download it from the files.meag65.org) is you can use ? in place of PRINT when entering BASIC code on the Mega 65, which makes it a bit quicker to do.


When you list the Basic listing, you see that the ? is replaced with PRINT automatically.

I tried running my program - a bit bland, and formatting is wrong, but it worked:


I read next about the BORDER and BACKGROUND commands, to easily set the colours of the border and background. I added in some new code at the top to set the colours.


Looking a bit nicer:



Next I played around with adding the PETSCII characters to make the title look a bit nicer.


Whilst a bit tedious to work out the exact sizing needed for the borders, the result is worth it:


I then did an old C64 trick I still remember (!) to clear the screen using PRINT CHR$(147)


Now it look pretty nice:





Anyway, I am hardly going to win any prizes for my crappy Basic coding skills! I should work on it more though - it was quite satisfying to do this.

Some of the demo programs on the included Mega 65 Intro disk are of course way more impressive.


I tried out Manche, a MOD (Amiga module) music player for the Mega 65. It still has a long way to go, the interface is not the easiest to use either, but it can play back a few sample modules included with it. I will follow developments on it with interest.



I am hoping to see a SID replayer program for the Mega 65 soon. I am following the official discord channel for Mega 65 as the development work is very active right now.

I also took the Mega65 to the Adelaide Retro Computing Group meeting on the evening of 10th June 2022, and it got plenty of interest from the attendees that night! 


I used to help run this group for a few years before I stopped after some health problems. These days I am just an occasional attendee when work commitments allow. 

It is good to see that the group continues to flourish, and plenty of interesting hardware to see - some more Retro than others:



A Sega SC3000H was on display:


A black & white Hanimex gaming system running Pong was also there, along with a Silicon graphics O2 and plenty of other hardware too:


An Amstrad NC100 and later Tandy 102 - the keyboard on the Tandy is much nicer and screen has more lines. I remember wanting the Amstrad NC100 back in the day - never did get one though. 

The lucky guy who now owns this one bought it from another member of the group for $20 on the night! I was very jealous and would have loved to have picked it up if I had known it was for sale!


Getting back to the Mega 65...during the evening, I used the 1541 floppy drive and cartridge port on the Mega 65 to show people how well it supports Commodore 64 peripherals. People were genuinely surprised by this, and also the GEOS65 and quality of the keyboard and case.


I made sure as many people as possible could actually physically touch and use the machine, not just stare at it. Hopefully there will be some more orders for the Mega 65 computer next batch! The more people the better.

I hope to receive the first Commercial game for the Mega 65 soon (it is on order) so I can try it out!

I am very excited by the Mega 65 computer and it's possibilities! I will continue to explore the system and learn even more about it!

3 comments:

  1. Is it possible to run the various arcade cores available that run on the Mister?

    ReplyDelete
    Replies
    1. Yes, there have been some arcade cores ported lately (Burning Rubber, Xevious, Bombjack). Check them out in the file host section of the mega65 webpage.

      Delete
  2. I just noticed, that the first post in your blog has been exactly 10 years and 1 day before this post. Happy 10th anniversary!

    ReplyDelete