CPCWiki forum

General Category => Emulators => Topic started by: Dmanu78 on 19:50, 23 April 22

Title: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 19:50, 23 April 22
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 (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 : ;)

(https://i.ibb.co/T4R4hK0/Amspirit-V0-590-2022-04-23-202802.jpg)

(https://i.ibb.co/9gqH34n/S-koh-30-03-2021-v312.jpg)
 S&KOH demo.

(https://i.ibb.co/gZj99mf/demo-preview-2-05-04-2021-v318.jpg)
Overflow Previews 1
 
(https://i.ibb.co/xSKVQkv/Batman-forever-10-07-2021-v380.jpg)
Demo "Batman Forever"

(https://i.ibb.co/VwPHWM2/phx-04-07-2021-v380-v2.jpg)
PhX Demo

(https://i.ibb.co/Brd2hjP/D-mo-Climax-G-Monochrome.jpg)
Monochrome screen emulation.

(https://i.ibb.co/NF2Tsc7/Mercenay-load-2022-04-23-204546.jpg)
Mercenary loading tape screen.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: grouik1er on 13:36, 24 April 22
Very nice, i'll test it

Well done.

Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Gryzor on 14:47, 24 April 22
Gonna try it after Easter, thanks for letting us know! Is there a list of features to be added in the future?
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: ComSoft6128 on 17:18, 24 April 22
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
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: krusty_benediction on 07:09, 25 April 22
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.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: pelrun on 13:43, 25 April 22
Quote from: krusty_benediction on 07:09, 25 April 22it seems that you do not handle snapshots.
Gotta leave something for a future release :D
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 22:40, 25 April 22
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.. :)
Title: AMSpiriT, a CPC emulator for Windows - NEW RELEASE v0.677b
Post by: Dmanu78 on 22:28, 16 August 22
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 (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. (https://www.cpcwiki.eu/forum/Smileys/SoLoSMiLeYS1/smiley.gif)
Have fun. (https://www.cpcwiki.eu/forum/Smileys/SoLoSMiLeYS1/cool.gif)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Gryzor on 12:41, 19 August 22
Ah nice, Tower Defense thinks it's an original CPC and not an emulator :) Thanks for letting us know!
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 19:58, 22 October 22
Hi :)

I would like to inform you that a new version of AMSpiriT v0.704b is now available for download on the usual link:
https://forum.system-cfg.com/viewtopic.php?f=24&t=11535 (https://forum.system-cfg.com/viewtopic.php?f=24&t=11535)

It is a "minor" version bringing mainly some fixes on the CRTC and Gate Array emulation and bringing some ergonomic improvements (menu in English).

The emulator core is now entirely based on the contents of @Longshot's "Compendium" which has just been released in its v1.3 version:
http://logonsystem.fr

This long and difficult task of rewriting the emulation engine was not useless.

As you now know, @Longshot has compiled in its "Shakerland" portal the results of its famous SHAKER "Acid test" software on several well-known emulators.
https://www.cpcwiki.eu/forum/emulators/shakerland-portal/ (https://www.cpcwiki.eu/forum/emulators/shakerland-portal/)

This software allows you to test hundreds of different combinations of "z80, Gate-Array and CRTC" operation.

The result of this huge synthesis work is available.
https://shaker.logonsystem.fr/

It is thus an honour for me to see AMSpiriT listed among the 4 emulators tested. The synthetic result of Shakerland goes far beyond I expected. It is a real pride to reach such a degree of accuracy in the world of CPC emulation which contains plenty of very good emulators.
Of course, this result is above all to the credit of @Longshot and his fabulous research work. Without these valuable results, AmspiriT could never have achieved such a high result.

Of course, there are still many improvements to be made, Amspirit is still a young emulator (it is "only" 4 years old) but I think its technical bases are now robust. The best is yet to come :)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Skunkfish on 20:34, 22 October 22
Wow, fantastic results - I'm yet to give this emulator a try but I think I will definitely have to!
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Joseman on 06:01, 24 October 22
Hi!

Great great work!!

I was trying to load (on tape) Wild Streets, but the emulator hangs as soon you load the file.

Here is the file: https://www.cpc-power.com/index.php?page=detail&onglet=dumps&num=1784

Keep up the good work!!
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Axelay on 08:43, 24 October 22
Hi

Nice work!

Looking at it for the first time, I see some interesting debugger features in the manual, but no mention of how to start it in developer mode?

Does the emulator support joystick fire button 3?  I haven't got something to test if it does right now, but the configuration popup for keyboard mapping of the joystick only lists the 2 fire buttons.

You mentioned in the manual wanting to hear other peoples 'cpu reserve' figures, I am getting around 25 on my Core i5 4460.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 21:18, 24 October 22
Hi

Thanks for your feedback. ;)

The accuracy of the AmspiriT emulation is no accident of course. The initial choice to emulate the z80 in T-states has its importance in some shaker tests. The decision to emulate the GA at 16 Mhz also had a significant impact on the visual tests on the appearance and duration of the Hsync signal, on the 1-pixel shift in mode 2 etc... This also explains why Amspirit is so resource-intensive. Emulation accuracy requires a lot of power.

@alexay : Thanks for the result. With a number of 25 Amspirit emulates the CPC at full speed. The smaller the number is, the harder it will be to stabilize the 4 Mhz frequency.
So, it seems that Amspirit needs at least a Core i3 to work properly.

I did a minimalistic development on the keyboard and joystick mapping, it's not my first priority yet, but I'll make some improvement later on of course.

@Joseman. Ah yes indeed. Thanks for information. It's a nice bug. My support for the CDT format is still partial. In this particular case, I'm not supporting block ID 15 "Direct Recording". This will be fixed in a next version.





Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: roudoudou on 08:39, 25 October 22
Quote from: Dmanu78 on 21:18, 24 October 22Hi
Thanks for your feedback. ;)
The accuracy of the AmspiriT emulation is no accident of course. The initial choice to emulate the z80 in T-states has its importance in some shaker tests. The decision to emulate the GA at 16 Mhz also had a significant impact on the visual tests on the appearance and duration of the Hsync signal, on the 1-pixel shift in mode 2 etc... This also explains why Amspirit is so resource-intensive. Emulation accuracy requires a lot of power.
about Gate Array, what did you assume with the memory he needs to read?
one byte every 2 millionth second? 
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: eto on 11:02, 25 October 22
Quote from: Axelay on 08:43, 24 October 22You mentioned in the manual wanting to hear other peoples 'cpu reserve' figures, I am getting around 25 on my Core i5 4460.
Will that be one core at 100% or 25% across all cores?
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Devlin on 11:46, 25 October 22
here's my CPU chart after a few minutes of having loaded and run Mercenary, and idling at the start with the spinning of the pyramid thing in view.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 22:24, 25 October 22
@roudoudou. Yes, each byte of the video memory is read every 1/2.000.000s by Gate Array. And even more, each bit of the video memory is managed every 1/16.000.000s (= 1 pixel Mode 2), like the real GA (I guess)

@eto: This number applies to a single CPU core. Every 1/16 Mhz the emulator executes the main loop (= simulates the operation of the Gate Array) and when the processing is finished, there is a pending loop until the next 1/16 Mhz signal later. Thus, the value displayed represents the number of times the processor loops through 2 time intervals of 1/16Mhz on itself before re-executing the main loop. The higher the number, the more stable the emulator will be.

@Devlin Thanks for sharing. In addition to the GUI part, Amspirit uses 2 distinct threads to emulate the Amstrad CPC. You can see on the CPU card the load of these 2 threads.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: McArti0 on 07:48, 26 October 22
In 0.590 version Register 8 and 4 CRTC, and NTSC 60Hz setting work fine, but in v0.704 not.  :'(
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: roudoudou on 08:00, 26 October 22
Quote from: Dmanu78 on 22:24, 25 October 22@roudoudou. Yes, each byte of the video memory is read every 1/2.000.000s by Gate Array. And even more, each bit of the video memory is managed every 1/16.000.000s (= 1 pixel Mode 2), like the real GA (I guess)
A priori (i asked some electronic engineer), GA reads two bytes consecutively (so not 2MHz but 4MHz). One byte is used while the other one is stored in a buffer, waiting to be used. In Z80 ticks, it's RRWW (read,read,wait*,wait*), not RWRW. This schem allow simplification because the Z80 will R/W memory before and after this 16bits word.

*wait => doing something else ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: roudoudou on 09:39, 26 October 22
DManu, if you wanna support "less than pixel vertical scroll", maybe not up to 1/64 pixel but for interlaced mode...

there is an old proof of concept of interlaced mode made by Grim in 2011 (and another screen in R-Type 2012)
https://www.cpc-power.com/index.php?page=detail&num=9564
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: CheshireCat on 10:15, 26 October 22
Quote from: roudoudou on 09:39, 26 October 22DManu, if you wanna support "less than pixel vertical scroll", maybe not up to 1/64 pixel but for interlaced mode...

there is an old proof of concept of interlaced mode made by Grim in 2011 (and another screen in R-Type 2012)
https://www.cpc-power.com/index.php?page=detail&num=9564
OMG, I really need to write that article explaining why Grim's "interlaced mode" is nothing more than a waggling due to a constant loss of vertical synchronization...
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 23:56, 26 October 22

@roudoudou I am surprised. I thought that the GA read the 2 bytes consecutively on 2 Mhz
I found this schematic reproducing the signals of a CPC 464, you can see that during the tWait* signal the Gate Array reads the video memory over a period of 2 Tstates, but maybe I am misinterpreting. 
(https://i.ibb.co/ZfWpDvt/Capture-d-cran-2022-10-27-003220.jpg)

In practice this remains the internal working of the GA and I think it has no impact on the video rendering displayed by the emulator but it's interesting anyway. 

@McArti0 yes indeed, I rewrote the CTM (Monitor) emulation this summer and forgot to support the 60 Hz mode. This will be fixed in a future version of course. Thanks for this feedback. 

Generally speaking, if Amspirit emulates rather well the z80, the Gate Array and the 3 CRTC, the emulation of the other components remains partial and especially the FDC (Floppy Disk) and the CTM. There is still a lot of work to do... ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: roudoudou on 07:00, 27 October 22
Quote from: Dmanu78 on 23:56, 26 October 22@roudoudou I am surprised. I thought that the GA read the 2 bytes consecutively on 2 Mhz
I found this schematic reproducing the signals of a CPC 464, you can see that during the tWait* signal the Gate Array reads the video memory over a period of 2 Tstates, but maybe I am misinterpreting. 
(https://i.ibb.co/ZfWpDvt/Capture-d-cran-2022-10-27-003220.jpg)

In practice this remains the internal working of the GA and I think it has no impact on the video rendering displayed by the emulator but it's interesting anyway. 

@McArti0 yes indeed, I rewrote the CTM (Monitor) emulation this summer and forgot to support the 60 Hz mode. This will be fixed in a future version of course. Thanks for this feedback.

Generally speaking, if Amspirit emulates rather well the z80, the Gate Array and the 3 CRTC, the emulation of the other components remains partial and especially the FDC (Floppy Disk) and the CTM. There is still a lot of work to do... ;)
your schem show the 4MHz clock, 1st and 2nd are right on 4MHz consecutive ticks :)
i wasn't talking about average time reading, which is 2 MHz!
maybe it's only rhetorical, we both say the same thing anyway => 2 video bytes video are read consecutively, that's the point, CPU cannot read between odd/even address!
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Axelay on 08:59, 27 October 22
Quote from: Dmanu78 on 21:18, 24 October 22I did a minimalistic development on the keyboard and joystick mapping, it's not my first priority yet, but I'll make some improvement later on of course.



Thanks, just thought I'd ask because I have a project that will support 3 fire buttons at some point.  Would be nice to have the option of a 3rd joystick fire button rather than having to bang space instead!

I was going to ask about the FDC emulation as well, because most of my games that have used Targhan's FDC routines didn't work very reliably or at all, even with standard DATA format, but it sounds like you still have work to do on that side.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: lmimmfn on 01:40, 18 November 22
Would it be possible to have a feature in the emulator to log to a file all addresses visited by the PC, count of how often visited and whether a read/write instruction was issues and if that was a previously visited PC address(self modifying code scenario).

This would make decompiling older games, distinguishing data vs code and seeing if any optimizations are possible a lot easier.

I don't have any plans, I just found it really cumbersome decompiling buggy boy, manually finding main loop, sound, gfx generating routines etc.

It has potential use cases of enriching decompiled games with labels, data vs code to allow them to be modified a lot easier than what exists today, adding routines/recalculating jmp addresses etc.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 23:35, 17 April 23
After long months of waiting, I am pleased to announce the official release of the new version of Amspirit 0.845b. :)

The big novelty of this new version is the addition of complete emulation of the CRTC 4 called "pre-ASIC" equipping the latest generations of CPC "old" before the arrival of the CPC+ range; It's a preview of CPC+ emulation that contains the same technical base.

Then for secondary news:
Amspirit now emulates almost perfectly the 4 types of CRTC present in the range of CPC "Old". This result would never have been possible without the precious assistance of @Longshot, his research work compiled in the compendium and his formidable test tools "Shaker" which allowed Amspirit to reach a very high level of precision.

Finally, last novelty, Amspirit now has its official website. For now it's quite minimalist but it's a start. I thank @Siko who agreed to create this dedicated portal :

https://amspirit.amstrad.info/ (https://amspirit.amstrad.info/)

From now on, the latest versions of AmspiriT will be directly downloadable from this site.

The next step in Amspirit's development will focus on the "CPC plus" and GX4000 range. Still a lot of work to come... ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: TotO on 03:01, 18 April 23
Just speak about CPC or GX/Plus and everybody will understand.
Adding "old" and "plus" to "cpc" is just useless and confusing. ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Joseman on 06:37, 18 April 23
Hi @Dmanu78

Great great work here!!

I don't know why when i try a new version of any emulator, the first thing that i do, crash the emulator :-[

This time was with Zap the balls, when the game tries to read the menu, it crash.

https://www.cpc-power.com/index.php?page=detail&onglet=dumps&num=1322

Keep the good work!!

P.S. I'm curious with the Debugger Icon, what plans do you have for that?
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Gryzor on 06:48, 18 April 23
Thanks for updating it, must definitely give it a try🙂
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: CheshireCat on 09:47, 18 April 23
Thanks for the great job, @Dmanu78 !
Amspirit already works under Linux thanks to Wine.

Your emulator is the only one which works with my BASIC program (two INPs only) to detect the CRTC type 😁

Again, tanks for the huge amount of time you spent, along with @Longshot, to release this emulator !
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Devlin on 12:33, 18 April 23
Since I'm here, I'm posting the cpu usage on my laptop's Core i7-6500U (iGPU Intel HD Graphics 520)

It runs perfectly :)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Gryzor on 12:36, 18 April 23
Quote from: Devlin on 12:33, 18 April 23Since I'm here, I'm posting the cpu usage on my laptop's Core i7-6500U (iGPU Intel HD Graphics 520)

It runs perfectly :)
Buuuut what about the process? 
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Devlin on 12:42, 18 April 23

Quote from: Gryzor on 12:36, 18 April 23
Quote from: Devlin on 12:33, 18 April 23Since I'm here, I'm posting the cpu usage on my laptop's Core i7-6500U (iGPU Intel HD Graphics 520)

It runs perfectly :)
Buuuut what about the process?
I didn't have the space on my screen! I'm not exactly rocking my usual desktop setup right now, so i'm limited to a single 1080p screen, and not my 4k/1080p dual setup
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 10:51, 19 April 23
@Joseman :
well done for "Zap the ball". I had a little bug in the FDC emulation (variable not initialized properly). >:(
More generally, the FDC emulation remains partial. I mainly concentrated my work on the video emulation (GA/CRTC)
I finish some tests and I will publish a new version with the fix. ;)

The Debugger Icon is for internal use only for now. It helps me to debug the emulator during my testing phases. The development of a more universal (multi OS) AmspiriT Core based debugger is planned with the help of developers. ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 10:52, 19 April 23
Quote from: Dmanu78 on 10:51, 19 April 23@Joseman :
well done for "Zap the ball". I had a little bug in the FDC emulation (variable not initialized properly). >:(
More generally, the FDC emulation remains partial. I mainly concentrated my work on the video emulation (GA/CRTC)
I finish some tests and I will publish a new version with the fix. ;)
The Debugger Icon is for internal use only for now. It helps me to debug the emulator during my testing phases. The development of a more universal debugger (multi OS) based on AmspiriT Core is planned with the help of developers. ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: McArti0 on 11:55, 21 April 23
Where is debuger?  ;D
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 20:21, 14 May 23
A new version of AmspiriT (v0.863b) has just been posted on the official portal :
https://amspirit.amstrad.info/

This version brings mainly corrections on various small bugs which were returned to me after the release of the previous version of AmspiriT.

Along with minor fixes in FDC, PSG  and CRTC emulation, improvements in External ROM management, this version introduces command line arguments to make it easier to start programs.

The corrections made to the FDC emulation allow, among other things, to pass the detection test in the game "Open Tower Defense" et to launch Zap the ball. ;)

(https://i.ibb.co/GxWKzds/AMSpiri-T-Screen-B-ta-v0-863-x64-20230513-235232.png)

With this new version of AmspiriT, you surely have the best emulation quality (visually considered) that has ever been produced on the CPC. Thanks to the huge technical support of @Longshot, all CRTC present in the "CPC" (except "plus/GX") are now emulated almost perfectly, (the results of the shaker acid-tests allow me to be fairly categorical about it), the accuracy of the signals timings managed at 1/16Mhz between Z80 <=> GA <=> CRTC is unrivalled, especially allowing to pass the original protection used for REVOLOG demo by @Longshot, that none of the other CPC emulators can execute at this time.(I have put the DSK for info - usable in CRTC 0).
[url="https://www.cpcwiki.eu/forum/index.php?action=dlattach;attach=39404;type=preview;file"]Revolog_FIRST-VERSION.zip[/url]

Of course there a huge amount of improvements to do, as usual on an emulator. I should rewrite the FDC management for more accuracy and the CTM644 emulation (Amstrad monitor) is far from perfect yet.

In parallel, last (good i hope) surprise, compilation tests of the Core AmspiriT under other systems than Windows (Linux in particular) are currently in progress with probing results. News on this subject should arrive soon :)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: andycadley on 21:26, 14 May 23
Very cool, really impressive work. I can only hope we get to the point where we can have similar accuracy for the Plus hardware some day.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: megachur on 06:05, 16 May 23
Quote from: Dmanu78 on 20:21, 14 May 23the accuracy of the signals timings managed at 1/16Mhz between Z80 <=> GA <=> CRTC is unrivalled, especially allowing to pass the original protection used for REVOLOG demo by @Longshot, that none of the other CPC emulators can execute at this time.(I have put the DSK for info - usable in CRTC 0).
Revolog_FIRST-VERSION.zip (https://www.cpcwiki.eu/forum/index.php?action=dlattach;attach=39404;type=preview;file)
Hello @Dmanu78 !

Don't be too pretentious... My emulator is also equally accurate in 16Mhz/4Mhz/1Mhz emulation of the various cpc components and runs longshot's first version of REVOLOG without problem....

I'm glad to see that your emulator is progressing well, and not only on the CRTC/CTM-LA7800 couple...

Good luck for the continuation of the programming of the emulation of the cpc and in particular the components like the ASIC which remains under documented (where is the COMPENDIUM of the ASIC ;-)?!?).

Try it on Windows / MacOS / Raspberry Pi or Linux ;-) !

--> https://www.cpcwiki.eu/forum/emulators/cpcepower-v2105/ (https://www.cpcwiki.eu/forum/emulators/cpcepower-v2105/)

or on cpc-power : https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=73 (https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=73)

the story about the initial version is here (in french language) : https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=446 (https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=446)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: roudoudou on 08:24, 16 May 23
Quote from: megachur on 06:05, 16 May 23Don't be too pretentious... My emulator is also equally accurate in 16Mhz/4Mhz/1Mhz emulation of the various cpc components and runs longshot's first version of REVOLOG without problem....

(https://static.tvtropes.org/pmwiki/pub/images/defeat_catchphrase_8.jpg)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: CheshireCat on 13:44, 16 May 23
Quote from: megachur on 06:05, 16 May 23Don't be too pretentious... My emulator is also equally accurate in 16Mhz/4Mhz/1Mhz emulation of the various cpc components and runs longshot's first version of REVOLOG without problem....
Hey, nice !

Why don't you contact Longshot in order to add your emulator to Shakerland  (https://shaker.logonsystem.fr/)? It would be interesting to see a bit of competition among the 99% accurate emulators !

In the meantime I will test it on my Raspi. It should be better than the one I use for now.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: megachur on 14:45, 16 May 23
Quote from: CheshireCat on 13:44, 16 May 23Hey, nice !

Why don't you contact Longshot in order to add your emulator to Shakerland  (https://shaker.logonsystem.fr/)? It would be interesting to see a bit of competition among the 99% accurate emulators !

In the meantime I will test it on my Raspi. It should be better than the one I use for now.

Hey,

Just because I'ven't the time now to correct crtc (and CTM - SANYO LA7800 - HSYNC/VSYNC) emulation and do 400 screenshots and tests ;-) !
But maybe one day...Who knows ?

@CheshireCat :
--> Don't hesitate to give me feedback on the Raspberry Pi version... Knowing that the CPU of a Pi4 is a bit tight to run the emulation of the Plus... In some cases such as intensive use of hardware sprites ...
The current version already works almost everything from the cpc games and demos library ;-) !
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: SyX on 12:11, 17 May 23
Quote from: Dmanu78 on 20:21, 14 May 23A new version of AmspiriT (v0.863b) has just been posted on the official portal :
https://amspirit.amstrad.info/

This version brings mainly corrections on various small bugs which were returned to me after the release of the previous version of AmspiriT.

Along with minor fixes in FDC, PSG  and CRTC emulation, improvements in External ROM management, this version introduces command line arguments to make it easier to start programs.

The corrections made to the FDC emulation allow, among other things, to pass the detection test in the game "Open Tower Defense" et to launch Zap the ball. ;)

.
.
.

Of course there a huge amount of improvements to do, as usual on an emulator. I should rewrite the FDC management for more accuracy and the CTM644 emulation (Amstrad monitor) is far from perfect yet.

In parallel, last (good i hope) surprise, compilation tests of the Core AmspiriT under other systems than Windows (Linux in particular) are currently in progress with probing results. News on this subject should arrive soon :)
Congratulations! :) :) :)

I have seen that CRTC 2 emulation has improved since the previous version and now my code works exactly like in real CPCs with this kind of CRTC.

In this moment my main complains are the FDC emulation (although that pesky Basun works fine, Puffy's Saga doesn't load at all); the monitor emulation, my interlace fx (making one scanline half width every 2 frames) doesn't work like in the real monitor; and of course, the debugger, for me the debugger is a vital feature ;)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Longshot on 20:48, 17 May 23
Quote from: megachur on 06:05, 16 May 23My emulator is also equally accurate in 16Mhz/4Mhz/1Mhz emulation of the various cpc components and runs longshot's first version of REVOLOG without problem....
It's a pity that you didn't continue the development because few emulators are based on the fastest frequency.
Without having read the history for which you gave the link, it was difficult to see that the emulator works on the basis of 16 Mhz.

I did some tests when I looked at how to detect it (see http://logonsystem.fr/down/shaker_addon.dsk). ::)

Unfortunately, it does not currently seem to benefit from this 16Mhz emulation precision on several subjects.
For example the pixel offset of mode 2 compared to other graphics modes, or the positioning and length of a split performed via an out(nn),a.

The interaction between the GA, the Z80A and the CRTC also poses problems.
For example, ram write instructions are not synchronized with the display.

Small detail concerning the protection of Revolog. It does not work on a real CRTC 1 (only CRTC 0 and 2).
Conversely, the game "007 The Living Daylights" should run without a Vsync in the center of the screen in CRTC 1.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: CheshireCat on 21:12, 17 May 23
"Small detail concerning the protection of Revolog. It does not work on a real CRTC 1 (only CRTC 0 and 2)."

OMG ! The almighty powers of the Best Quality CRTC Of All Times might be all... Fake ?
I knew it !  8)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: megachur on 04:56, 18 May 23
Quote from: Longshot on 20:48, 17 May 23
Quote from: megachur on 06:05, 16 May 23My emulator is also equally accurate in 16Mhz/4Mhz/1Mhz emulation of the various cpc components and runs longshot's first version of REVOLOG without problem....
It's a pity that you didn't continue the development because few emulators are based on the fastest frequency.
Without having read the history for which you gave the link, it was difficult to see that the emulator works on the basis of 16 Mhz.
I did some tests when I looked at how to detect it (see http://logonsystem.fr/down/shaker_addon.dsk). ::)
Unfortunately, it does not currently seem to benefit from this 16Mhz emulation precision on several subjects.
For example the pixel offset of mode 2 compared to other graphics modes, or the positioning and length of a split performed via an out(nn),a.
The interaction between the GA, the Z80A and the CRTC also poses problems.
For example, ram write instructions are not synchronized with the display.
Small detail concerning the protection of Revolog. It does not work on a real CRTC 1 (only CRTC 0 and 2).
Conversely, the game "007 The Living Daylights" should run without a Vsync in the center of the screen in CRTC 1.
I didn't say that I stopped development... :o

Thanks for the feedback... :D

I spent many hours to code it... and in particular to read the technical documentation of the hardware components of the cpc... The goal was to start from scratch as close as possible to the 'real' hardware! It's the same spirit that I sense in the AMSpirit coder! ;)

It's very good to have made now new test programs like the Shaker by you or FatMag by Roudoudou ( for the FDC) which will make it possible to go beyond these technical documents which are not always complete!

There are plenty of other subjects and not just CPC that also require my energy.
And in my daily use, and for the entire cpc software library, it works very well ;D !

But hey, for sure, I shouldn't be content with it and move on! Maximum motivation!!!
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 09:08, 18 May 23
Hi,
@megachur, sorry if I offended you, my wording was clumsy. I'm pleased to learn that you use the same technical base on your emulator as on Amspirit (Tstate for z80/16Mhz frequency). Like me, I think you are looking for an emulation without any compromise. :)
The development of an emulator is a long, long work of patience and meticulousness and I respect a lot the work of their author because I know how much it represents in time and energy. 
Every emulator has its strengths and weaknesses and the perfect emulator will never exist. But we are working to reach this impossible goal. Good luck for your further developments. :)
Indeed, the longshot compendium is a real benediction for emulators and developers. In my opinion, in terms of knowledge and understanding of the inner workings of CPC, Longshot has done more for the CPC community in 3 years than has been done in the last 30 years. He discovered new rupture techniques, completely solved the mystery of interlacing, developed with CheschireCat the horizontal and vertical (sub)pixel hardware scroll, discovered that CRTC 2 had a great potential but was unfairly denigrated...  I hope further demos will take advantage of his latest discoveries.
I didn't invent anything, Amspirit's visual rendering is just the direct application of the compendium's content, nothing more, nothing less.

@SyX : Thanks for your encouragement. Glad to know that CRTc 2 is properly emulated. I've mainly focused on CRTCs for the last 2 years. I know my FDC emulation is far from perfect. I have done minimal work on it, but I will have to restart from scratch. Lone gave me some valuable advice on the subject. I will also look at Roudoudou's work. The FDC is very interesting to study. 
A debugger is well planned. I don't have a specific date to announce but I'll keep it in mind.

@andycadley : yes the development of an Amspirit "plus" is planned, I don't know when, but it is planned... Be patient... the development of an emulator is a very long way... :)

Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: SyX on 12:54, 19 May 23
Quote from: Dmanu78 on 09:08, 18 May 23@SyX : Thanks for your encouragement. Glad to know that CRTc 2 is properly emulated. I've mainly focused on CRTCs for the last 2 years. I know my FDC emulation is far from perfect. I have done minimal work on it, but I will have to restart from scratch. Lone gave me some valuable advice on the subject. I will also look at Roudoudou's work. The FDC is very interesting to study. 
A debugger is well planned. I don't have a specific date to announce but I'll keep it in mind.
And of course, I need to say that I love the status line in the emulator, where I can see in any moment the frequency of VBL/HBL/INT and how many scanlines the CRTC is generating. I am bored of patching old and specially new games with broken ruptures or bad use of R5 that put the CRT frequency out of the PAL range.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 22:02, 25 October 23
Hello,

After a (relatively) long wait since the last official release, a new release of Amspirit is now available (number 0.953b).

No Killer feature for this release, it's an iteration of the previous version with a few bug fixes, improved support for the e-dsk format (protected games should now run better) and above all the addition of a number of missing ergonomic features.

You'll find details of the changes below:
- Snapshot file management (.SNA)
- Script (.CSL) and text (.txt) file management
- Miscellaneous fixes (CTM, FDC, PSG and CRTC 0/1 emulation)
- Enhanced e-dsk support
- Improved management of Additional Roms
- CPU load optimization: single or multi-thread option
- Drag & drop functionality for fast file loading.

Thanks again for your encouragement. I'm really enjoying developing this emulator. It's a real intellectual challenge and very stimulating. Above all, it's a personal project that I'm sharing with you. Amspirit is still very young, and obviously there's still a lot of work to be done. Lots of great things are planned for the future, but you'll just have to be patient. As most emulator authors will tell you, an emulator is built patiently, not in a hurry...

Full details on the new website : https://www.amspirit.fr/release-0-953/ (https://www.amspirit.fr/release-0-953/)
Have fun :)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Devlin on 12:04, 26 October 23
Quote from: Dmanu78 on 22:02, 25 October 23Hello,

After a (relatively) long wait since the last official release, a new release of Amspirit is now available (number 0.953b).

No Killer feature for this release, it's an iteration of the previous version with a few bug fixes, improved support for the e-dsk format (protected games should now run better) and above all the addition of a number of missing ergonomic features.

You'll find details of the changes below:
- Snapshot file management (.SNA)
- Script (.CSL) and text (.txt) file management
- Miscellaneous fixes (CTM, FDC, PSG and CRTC 0/1 emulation)
- Enhanced e-dsk support
- Improved management of Additional Roms
- CPU load optimization: single or multi-thread option
- Drag & drop functionality for fast file loading.

Thanks again for your encouragement. I'm really enjoying developing this emulator. It's a real intellectual challenge and very stimulating. Above all, it's a personal project that I'm sharing with you. Amspirit is still very young, and obviously there's still a lot of work to be done. Lots of great things are planned for the future, but you'll just have to be patient. As most emulator authors will tell you, an emulator is built patiently, not in a hurry...

Full details on the new website : https://www.amspirit.fr/release-0-953/ (https://www.amspirit.fr/release-0-953/)
Have fun :)

Ooh, an update!

I have a slight problem though, the page will not load here, apparently the SSL certificate is broken?

QuoteThis site can't provide a secure connection
www.amspirit.fr sent an invalid response.

  • Try running Windows Network Diagnostics.
ERR_SSL_PROTOCOL_ERROR
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: SerErris on 17:23, 03 November 23
@Dmanu78 

You want someone to help with translation? 

BTW: the debug button is grey and does not work in release .953b or does it require any running code? I am running in Basic right now (just the Ready prompt), but the debug button is grey and does not do anything.
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Dmanu78 on 21:55, 03 April 24
Hi, after 6 years of hard work, starting as one-man-project, AMSpiriT has grown in a way that was completely unexpected for me. Almost 3 years after the first official release, I am now very happy, and proud to announce it's no longer in beta version. This project would not have been possible without the support of many people in the CPC community. Thank you!

Road to 2.0
The next major release of AMSpiriT is going to be a giant leap: it will consist of the complete and accurate emulation of the CPC+ series (including GX4000). I know many people have asked for this, and i want to take the time to make it properly.
In between, me and AMSpiriT team, we'll have a few surprises for you, especially for developers, and other platforms/operating systems users.

Quick Change Log
Amspirit is available for download here: [/list]
https://www.amspirit.fr/ (https://www.amspirit.fr/)

Have fun :)
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: gurneyh on 23:01, 03 April 24
An enormous amount of work, starting from no existing base, it's impressive.
Well done, and I can't wait for the rest
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: andycadley on 10:04, 04 April 24
Very excited for accurate Plus and GX support. 
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: McArti0 on 21:28, 04 April 24
Where is my best debuger?  ??? ::) :-[ :'(
Title: Re: AMSpiriT, a new CPC emulator for Windows
Post by: Arnaud on 10:40, 07 April 24
Hi,
currently using to play Hyperdroid, but i have big slowdown with the emulator on the intro, the CPC speed moves from 2mHz to 7,9mHz.
I have VRR activated on my PC.

My pad is detected, but not worked.

Arnaud





Powered by SMFPacks Menu Editor Mod