AMSpiriT, a new CPC emulator for Windows

Started by Dmanu78, 21:50, 23 April 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dmanu78

Hello,

I hesitated for a long time before posting in this forum, which seems to be THE reference forum in the CPC world with a high level of expertise.

I hope you will be understanding with my product. 

I started to develop 4 years ago a new emulator for Amstrad CPC (464, 664 and 6128). I have posted versions in some French forums but I think it is now time to officially present you AMSpiriT, a new CPC emulator for Windows (7+).

It's still a young emulator and it lacks a lot of features but it's starting to mature and I think it's worth to share it with you.

Just a short presentation. AmspiriT was developed from scratch, just from a blank page, a pen and official technical documentation. The source code is unique, without incorporating any external source. It was made entirely "by hand"...    Its design is deliberately very "light", uncluttered (raw?) with very few options and some explicit icons. Like a real CPC, I want an emulator that works simply.     
It is currently built for Windows (it uses DirectX and the X-Audio 2 API).
I should mention that this is my first project to write an emulator.

Some technical details:
- Fully written in c++ (Microsoft visual studio 2019)
- Accurate emulation of the Z80A: written in T-States. Passes the most famous z80 tests (Zexall, z80 fulltest from Raxsoft).   
- Accurate CRTC emulation (type 0/1 for the moment). Based on @Longshot's fabulous Compendium (LOGON SYSTEM), the CRTC emulation has been recently rewritten to include all the specifics written in this guide. It emulates the extreme breaks at R0 = 0 (1µs) as well as the "interlace" mode (register R8) with great accuracy. I spent a lot of time to stabilize this part which is the "core" of the CPC emulation.
- A precise emulation of the Gate Array with a pixel display speed of 16Mhz which allows a realistic behavior like the advance of a pixel in "Mode 2". 
- Emulation of the AY-3-8912 for sound generation.
- Partial emulation of the FDC. Amspirit only reads ".DSK" files (and some protected dsk files).
- Precise emulation of tape files with a counter and sound generation during playback, like a real 464 CPC. It reads *.CDT, and *. WAV FILES. 

Finally, it also has a native debugger that allows me to debug AmspiriT. I share it with you. It's not the most user-friendly on the market but it does the job for basic debugging.

Like many emulator authors, I tried to do my best from various documentations scattered on the web and tested many demos and games before presenting this version to you. 

Due to technical choices, AmspiriT needs a lot of CPU resources to run the emulation at full speed. At least a Core 2 Duo at 2 Ghz is required. At the moment it is not very optimized yet. 

You can find the download link below. It's in a French forum, don't worry. If you're curious, I've narrated the whole genesis of the creation of this emulator in this post from the beginning...to the latest developments now.   
https://forum.system-cfg.com/viewtopic.php?f=24&t=11535

Feel free to contact me if you have any problems and let me know what you think. :)

Have fun. 8)

Some copy screens below : ;)




 S&KOH demo.


Overflow Previews 1
 

Demo "Batman Forever"


PhX Demo


Monochrome screen emulation.


Mercenary loading tape screen.

grouik1er


Gryzor

Gonna try it after Easter, thanks for letting us know! Is there a list of features to be added in the future?

ComSoft6128

#3
Mmm,

When recording videos for YT I only use a 6128 or 6128 Plus never an emulator so this question is for the benefit of the wider CPC community - could your emulator record the CPC output as MP4 files in HD?

Cheers,

Peter

krusty_benediction

Congratulations, this is a very impressive knowledge acquisition and restitution.
Being a Linux user, I have not been really able to test (wine launch the emulator but does not seem to detect key events), however it seems that you do not handle snapshots. This is a very handy feature for people doing crossdev.

pelrun

Quote from: krusty_benediction on 09:09, 25 April 22it seems that you do not handle snapshots.
Gotta leave something for a future release :D

Dmanu78

Thank you for your interest. :)

Indeed, there are still many features missing (snapshot indeed and many other things) and evolutions will come later.

I don't have a precise roadmap on future evolutions but I'm currently focusing on the precision of the "Core" emulation (couple CRTC/Gate Array), which remains my priority. With the precious help of the compendium, my short term work will be to make the CRTC type 2 emulation (the unloved CRTC) as accurate as possible, as well as the CRTC type 4 (pre-ASIC emulated CRTC). This last emulation will help me later to prepare a future emulation of the CRTC type 3 within the "CPC plus" models.

I also have a strong demand to open AmspiriT to other environments (including linux). Currently, it uses Windows APIs and is not completely compatible with Wine indeed.  Similar issue has been reported to me. Thanks in advance for your patience... ;)

If you are interested, I will post regular updates on the progress of my work.. :)

Dmanu78

After a few weeks (months?) of silence, I am pleased to announce a new release of AMSpiriT in its version 0.677b.

So, what's new in this latest version?

Nothing very spectacular visually. In truth, I have spent a lot of time perfecting the quality of the Core emulation for CRTC 0 and 1, but the most important development is that AMSpiriT can now fully emulate the CRTC 2, in compliance with the new findings published in the Longshot's compendium.

Some improvements have been added to this version:
- disk and tape writing operations are now implemented. You will be able to make backups of your favourite creations. :)
- Slight improvement of the CTM emulation in order to manage "wave" effects
- Possibility to make screenshots via the F2 and F3 function keys

And a few fixes have been implemented :
- Various corrections in the emulation of CRTCs 0 and 1
- Small fixes in the FDC emulation (engine management).
 
In summary, most of the work was still focused on the accuracy of the emulation thanks to the technical assistance of CPC enthusiasts (and especially Longshot whom I would like to thank warmly for his precious advice)

As usual, this new version is available at the following address (for Windows x86 & x64 only) :
https://forum.system-cfg.com/viewtopic.php?f=24&t=11535

Feel free to contact me if you have any problems and let me know what you think. :)
Have fun. 8)

Gryzor

Ah nice, Tower Defense thinks it's an original CPC and not an emulator :) Thanks for letting us know!

Powered by SMFPacks Menu Editor Mod