Amstrad CPC 6128

Post Reply
millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Amstrad CPC 6128

Post by millim »

Hello Community!

At the time the Amstrad CPC came out in the 80th, I was fascinated what lies within the creativity of computer games. It was my first computer where me and my brothers spent days and nights playing games. What a perfect time looking back from now. It was also the time I got fascinated by how a computer works, I have started to learn digital science and computer programming, finding hacks and game cheats in first place. Well, there is always a way to start with :-)

Now, sever centuries later, I came in touch with the Odroid GO by searching for ESP32 programming and evaluation board references. I liked already the ESP8266 for doing some nice IOT projects on my own for home automation purpose. Then, after purchasing an Odroid GO, I have started to upload some nice EMUs checking some games.

Well, then I was looking for a Amstrad CPC EMU for the Odroid GO. As far as I know, there is no public version available. I was caught by the idea playing my favorite games I was addicted to in my youth 30 years later on this tiny ESP32. How could such a big machine fit to half a square inch of space?

Then I started with the end of mind. Searching for a simulator platform saving me some development time capable to develop the wrapper on a decent PC. On the Amstrad CPC, I searched for a good starting point to develope from. I decided to go for the Caprice Palm OS version. It was the most flexible and most decent version of the original Caprice32 version. Still a mystery to me how to develop an EMU. Well done Ulrich Doewich and Frederic Coste! Every thing else is history.

Here we go, a first pre-release of the ESP32, Odroid GO version of the Caprice CPC engine is made available here:
https://github.com/grantrismo/CapriceESP32

You will find additional notes and a user manual inside the repository.

Have Fun!
millim
Last edited by millim on Fri Dec 04, 2020 6:22 am, edited 1 time in total.
These users thanked the author millim for the post (total 4):
alektronic (Tue Nov 17, 2020 4:27 am) • jafox (Tue Nov 17, 2020 5:04 am) • odroid (Tue Nov 17, 2020 2:27 pm) • amstradcpc (Mon Nov 30, 2020 9:46 pm)

User avatar
mad_ady
Posts: 9702
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: Amstrad CPC 6128

Post by mad_ady »

It's never too later for a new emulator!
These users thanked the author mad_ady for the post:
millim (Thu Nov 19, 2020 2:09 am)

amstradcpc
Posts: 8
Joined: Mon Sep 10, 2018 7:54 pm
languages_spoken: english
ODROIDs: Odroid-GO
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by amstradcpc »

Listening to the vocal synthesis of Throne Legacy and Orphée on my Odroid Go, nice !

I will be able to play more to the last games of the CPCRetroDev 2020 in the train going to work now thanks to you.

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

Thank you amstradcpc to make it more popular! 8-)

Well, all in all, my gaming skills did not improve since then, so I decided to add a cheat interface to the emulator. :twisted:
It is based on peeks and pokes. You can find more details inside the repository. In case you need help on the scrips or on the cheat data base, simply PE.

And one thing more, I have added a simple Sound MUTE function to the context menu. So you can play without disturbing others. ;)

So, on the sound, OG is lacking a simple headphone jack. The device is not cheap, I question why a proper external stereo 16-DAC was not added to it? However, I have still some memory left and also 80% power on core 0, I will try to get wireless earbuds working. This will be my next mission.

Keep you posted on updates!
Millim

amstradcpc
Posts: 8
Joined: Mon Sep 10, 2018 7:54 pm
languages_spoken: english
ODROIDs: Odroid-GO
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by amstradcpc »

New version is installed, when flashing it shows v0.7.0, though of course it shows 0.71 in file selection/option menu.

I also use Caprice on a Palm Tungsten, as it's much easier for adventure games. It's also by default a qwerty keyboard.

Would it be possible to be able to add a menu to choose a model/rom language ? 6128 Fr mode, 6128 Uk mode, etc... ? To be able also to use other ROMs like ParaDOS or SymbOS !

But for using SymbOS, RAM expansion would be needed and I dont know if there is enough RAM available ?

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

amstradcpc wrote:
Tue Dec 08, 2020 6:18 pm
New version is installed, when flashing it shows v0.7.0, though of course it shows 0.71 in file selection/option menu.

I also use Caprice on a Palm Tungsten, as it's much easier for adventure games. It's also by default a qwerty keyboard.

Would it be possible to be able to add a menu to choose a model/rom language ? 6128 Fr mode, 6128 Uk mode, etc... ? To be able also to use other ROMs like ParaDOS or SymbOS !

But for using SymbOS, RAM expansion would be needed and I dont know if there is enough RAM available ?
Hello amstradcpc,

yes right, it shows still v0.7.0 on the flash. I need to automate version control by scripting.

I also like adventure games and I have also a reference running on my Palm Tungsten T5. Still, on the T5, one can use the pen to navigate the keyboard, this, I think is not possible on the OG. And I am also not confortable with an external keyboard on the OG, what is naturally bulky. On the OG, navigation will be slow, and one may lose fun with the keyboard navigation to get text into it, what is necessary for adventure games. A keyboard is needed to start some games, that's why I have added it. But, this is just my view.

However, I have on my list to make it possible to select the models, roms and keyboard layouts, I just need to enable it and but some glue around it. I keep the same architecture, should be easy.
SymbOS, should be possible, because everything, except some special structures and the display memory, runs from the PSRAM already today. PSRAM can hold up to 4MB.

Still, first I want to close on the overall architecture. As mentioned, I want to get Bluetooth working. At the moment, I was able to fit the BT Classic Stack in parallel to the emu, can connect to a A2DP sink and stream sound across it. It shows acceptable time lag. Working nicely :) . Now, everything is on the edge on internal memory and processing power. However, the details need to be implemented now:
- Discovering and connecting to BT A2DP devices close by in a comfortable way.
- Seamless switch form internal Speaker to BT.
- Volume control, remote control
- Fine tune sampling rate, and buffer manager, and need to fix some bugs in the esp_idf to get it work.

This will keep me busy the next weeks. After that, I will work in the other features.

millim

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

Dear all,

had a bit of spare time during the Christmas break. I have committed a new release Ver 0.79 to the repository. I have added:
- Key mapping file support, identical to the C64/Schumi structure
- Volume control for the internal speaker. By pressing VOL button together with one key ( left, right, up, or down) will increase/decrease by 1 or 10.
- Bluetooth Audio support. Now you can stream the emulator sound in Stereo to Speaker or Headphone, wirelessly.
- Added a simple 8bit style OSD aka 1986
- Improved SD card access by adding SPI Mutex access control

Again, I recommend reading the user manual part of the repository.

Next, I think it will then Ver. 1.0. (the final release planned), I plan to add:
- snapshot save/restore,
- different CPC module support,
- different ROM support,
- different keyboard layout,
- green monitor emulation, and night color mode.

millim.
These users thanked the author millim for the post:
odroid (Thu Jan 07, 2021 9:55 am)

alektronic
Posts: 14
Joined: Fri Sep 14, 2018 2:08 am
languages_spoken: english
ODROIDs: ODROID-GO
Has thanked: 17 times
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by alektronic »

millim wrote:
Thu Jan 07, 2021 6:37 am
I have committed a new release Ver 0.79 to the repository.
I had a bit of time to try this tonight and it's working really nicely, thanks for your efforts! :mrgreen:

amstradcpc
Posts: 8
Joined: Mon Sep 10, 2018 7:54 pm
languages_spoken: english
ODROIDs: Odroid-GO
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by amstradcpc »

Nice, I will try the bluetooth tonight.

Would you be interested in key mapping files for your github ?

C4pil4m
Posts: 2
Joined: Thu Jan 28, 2021 5:49 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by C4pil4m »

Hello! first, thanks a lot to millim for developing an Odroid Go emulator of my favorite computer ever, the Amstrad CPC! I've bought an Odroid Go just in order to enjoy a portable Amstrad machine, just after reading about this emulator in CPCwiki. Again, thanks a lot!

Having said this, I must confess I am completely new to the Odroid Platform. I'm trying to install the emulator, with no success! First, I've read the manual and documentacion. I've succesfully updated the Odroid Go firmware from Debian Linux following the Odroid wiki. It worked ok, and my firmware is 20181001. Then, I put the caprice-esp32.fw file in the proper folder (odroid/firmware) of the SD card, together with other .fw files (Go Play and MicroPython). After that, I turn my Odroid Go with "B" button pressed, I enter the firmware menu, I try to install caprice-esp32: the process begins, it begins to write, and then stops and the screen turns black! Apparently I can install other .fw files (I can reinstall Go Play without any problem), and it is just the caprice-esp32.fw release that doesn't work for me. I've tried other .fw emulator like the frodo Commodore 64 emulator and it works! I am appalled by this :(

What am I doing bad? Any suggestions will be welcome, thanks a lot!

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

Hi C4pil4m,

thank you for your comments and I am happy to see that you also like the Amstrad CPC. Sad to hear that you have problems installing the applet to the Odroid Go. I can just recommend to
installed the latest odroid-go-firmware available. Still, in case the flashing of the caprice-esp32 does not stop with an error, it should be fine. On the caprice-esp32 emulator, I recommend reading the user-manual from the repository. In case the directory structure is not setup correctly, it will not start.

In case you have the esp_idf toolchain installed, you can log the emulator output with "make monitor" command. I think it should also work with any other serial monitor.
This would give me more insight what goes on. You can drop me a private email on the debug output.

millim

C4pil4m
Posts: 2
Joined: Thu Jan 28, 2021 5:49 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by C4pil4m »

Hello millim, thanks a lot for your advice! I've updated the Odroid Go to the latest firmware without any problem following the Odroid Wiki. Then I formatted the microSD card in FAT32, I created the directories according to the manual. I start the process of installing caprice-ESP32 by pressing the B button before starting the device, then I select the caprice-ESP32 file, and the process starts as it should, but when it ends I don't get any error: the screen simply remains blank.

I installed the esp_idf toolchain following the wiki and can connect to the Odroid Go by serial, but I don't have enought knowledge to make use of the monitor. https://docs.espressif.com/projects/esp ... nitor.html

I am pretty sure the failure lays on my side and not on the software's though. Following the manual, I created the a /cpc/ folder in the root of the SD card, and inside /cpc/ I created the folders: dsk, cps, scr, cmf, kmf. Then I put some .dsk files in the /cpc/dsk folder, and left the other folders empty.

Is this correct? Should the folders be placed in a different way?

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

C4pil4m wrote:
Sat Jan 30, 2021 6:14 am
Is this correct? Should the folders be placed in a different way?
Yes, this is correct. Meanwhile, I have worked a bit on an update (v.84) available on github according my first post.
- EMU boots even without SD card, reports "NO SDCARD!?" in case there is a mounting issue with the SD card
- Added display brightness control <M> + L,R,U,D for +/- 1/10
- Added Session Save and Restore feature
- Some minor fixes

millim

amstradcpc
Posts: 8
Joined: Mon Sep 10, 2018 7:54 pm
languages_spoken: english
ODROIDs: Odroid-GO
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by amstradcpc »

What are the news about the v0.84 version ?

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

amstradcpc wrote:
Tue Feb 16, 2021 5:12 am
What are the news about the v0.84 version ?
Hi, meanwhile I was able to update the user manual and the readme. Basically, I have enabled session save and restore feature to stop play and continue later.

millim

alektronic
Posts: 14
Joined: Fri Sep 14, 2018 2:08 am
languages_spoken: english
ODROIDs: ODROID-GO
Has thanked: 17 times
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by alektronic »

millim wrote:
Tue Feb 16, 2021 5:07 am
Meanwhile, I have worked a bit on an update (v.84) available on github according my first post.
I'm afraid to report that I only get a black screen when booting 0.84, using the .fw from github.

I was able to downgrade to 0.79 and this works fine, so I'm confident it's not my device or the setup of folders.

Any ideas?

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

alektronic wrote:
Sat Feb 20, 2021 1:03 am
I'm afraid to report that I only get a black screen when booting 0.84, using the .fw from github.
Any ideas?
Hi,

I have experienced the same thing when booting/flashing the .fw file from SDcard.
Install process completes and also getting a black screen. But, when I cycle power button, the EMU boots normally.

Have you tired a power cycle? Just to confirm, please let me know.
I think it is an SPI issue. I have changed from HSPI_HOST to VSPI_HOST for some display tests. I think, I need to revert that.

Should be fixed now. Committed a new update to github.

millim

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

Hi millim

Latest release say no SD card inserted previous release working fine.

Would it be possible to make two improvements, please?

- Exit emu to multiboot menu
- I2S DAC support

Thank you very much for your amazing work.

Kamil

alektronic
Posts: 14
Joined: Fri Sep 14, 2018 2:08 am
languages_spoken: english
ODROIDs: ODROID-GO
Has thanked: 17 times
Been thanked: 0
Contact:

Re: Amstrad CPC 6128

Post by alektronic »

millim wrote:
Sat Feb 20, 2021 4:40 am
Have you tired a power cycle? Just to confirm, please let me know.
I think it is an SPI issue. I have changed from HSPI_HOST to VSPI_HOST for some display tests. I think, I need to revert that.
After flashing the .fw the display did not seem to come on at all (no backlight). After a power cycle the backlight came on but still a black screen.
millim wrote:
Sat Feb 20, 2021 4:40 am
Should be fixed now. Committed a new update to github.
The new version now starts up and displays correctly - thanks for fixing this. However, like JLS1 (I think), I get the message 'NO SDCARD?!' when the emulator starts up and files can't be browsed.

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

alektronic wrote:
Sat Feb 20, 2021 7:54 pm
The new version now starts up and displays correctly - thanks for fixing this. However, like JLS1 (I think), I get the message 'NO SDCARD?!' when the emulator starts up and files can't be browsed.
Should be fixed now. Please let me know if this error still exists. I have reworked how Display and SDcard are initialized.
Strange that it worked on my side but not on yours. I use a Kingston 2GB SDcard from 2010.

millim

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

SD problem fixed many thanks :-)

is possible add browse roms menu to pages (left/right arrows) for quick listing ?

thanks Kamil

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

Thanks for confirming of the SDcard fix. On the features:
JLS1 wrote:
Sat Feb 20, 2021 7:19 pm
- Exit emu to multiboot menu
- I2S DAC support
- possible add browse roms menu to pages (left/right arrows)
Will consider exit to multiboot and roms page browsing for the next update. Thought about that already.
On the I2S DAC support, I am not sure because I can't test it. I have changed the audio interface a bit to work in common with the Bluetooth A2DP source. I will check what I can do without testing.

millim

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

JLS1 wrote:
Sat Feb 20, 2021 7:19 pm
- Exit emu to multiboot menu
- I2S DAC support
- possible add browse roms menu to pages (left/right arrows)
Features are implemented and committed.
- Exit to multiboot is in the Preferences panel: "Boot to: Firmware" by pressing <A> when selected.
- External DAC can be enabled with "Driver: Line" in the Preferences panel (default is "Driver: Speaker") toggle by pressing <A> when selected. Can work, I can't test.
- Browse disks menu to pages (left/right arrows). Left is page_up, right is page_down.

millim

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

Hi millim

Thank you very much for the quick improvement.

Exit to multiboot works perfectly and browsing pages as well.

I2SDAC doesn't work but I think it's just that GPIO is not set. (IO12=LCK, IO15=DIN, IO4=BCK)

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

Oh, I'm sorry, but in audio.c you have the GPIO set up correctly. So unfortunately I don't know why it doesn't work.

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

Huraaa when I start retro-go I2s and then I exit and start cpc again the sound works great. So it looks like the bug will be somewhere in the initialization of i2s :-)

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

JLS1 wrote:
Thu Feb 25, 2021 1:57 am
I2SDAC doesn't work but I think it's just that GPIO is not set. (IO12=LCK, IO15=DIN, IO4=BCK)
should be fixed now. Had a logic analyzer at hand to trace the signals.

millim

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

I2S DAC now working fine many thanks :-)

Is possible some improvements ?

- volume setting in I2S DAC
- remember last possition on menu
- save like default setting at start emulator (i2S DAC, menu possition etc.)

millim
Posts: 75
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 44 times
Contact:

Re: Amstrad CPC 6128

Post by millim »

JLS1 wrote:
Fri Feb 26, 2021 2:53 am
I2S DAC now working fine many thanks :-)

Is possible some improvements ?

- volume setting in I2S DAC
- remember last possition on menu
- save like default setting at start emulator (i2S DAC, menu possition etc.)
Ok, volume setting in I2S DAC and default setting requests are clear, I will try to include these.
One the "remember last position on menu" I am not clear what does this mean? Is it on the ROM selected last, or start with session restore, or something different?

millim

JLS1
Posts: 13
Joined: Sat Feb 20, 2021 7:00 pm
languages_spoken: english
ODROIDs: Odroid-Go
Has thanked: 0
Been thanked: 1 time
Contact:

Re: Amstrad CPC 6128

Post by JLS1 »

Every time I return to the ROM menu, I'm at the beginning of the menu, which means remembering the last position for easier browsing when there is a lot of ROM in the directory.

I'm sorry for my bad english :-)

Post Reply

Return to “Game Emulators”

Who is online

Users browsing this forum: millim, Thoko and 0 guests