News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Arnaud

CPCEC a new emulator from cngsoft

Started by Arnaud, 08:14, 16 March 19

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

tjohnson

Quote from: reidrac on 17:49, 17 February 20
I would assume that any project made as part of the university course could be property of the university, or shared, or something like that.

Same as when you work on something paid by your employer; you don't own it (unless your contract says do).


In the UK University now costs a small arm and leg and unless using code provided and owned by the university I would expect to be the owner of anything produced.  Work is a different story where they are paying you, but this in the UK is the other way round you are paying them now.

cngsoft

#51
Well, it's done. CPCEC 20200229 is out, with Amstrad Plus emulation, source files within the package, everything.

The license problems were more of a big misunderstanding than anything else. I was actually quite dumb and I should have asked the questions much sooner :-( Besides, some titles gave me trouble until very few days ago.



The less I say about demos the better, too...



Still, CPCEC and ZXSEC are coming closer towards the goal of "dogfooding": organisations ought to use their own products, don't they?

EDIT: the original upload had a mistake because of a dumb oversight (saving changes AFTER compiling the files!); I replaced the package two hours later.
(if you can't see the banner right now my server is currently offline)

roudoudou

Quote from: cngsoft on 00:03, 01 March 20
The less I say about demos the better, too...
Hi CNG, it looks (obviously) like a timing issue on SPLT register and SSRon a Plus, the soft scroll register had almost immediate effect (on the next screen "word")the split register adress is loaded in the Asic-CRTC at the end of the displayed screenfor the "face+vector balls" part, the CRTC is set to 256 bytes long so i guess your emulation do not reset to next adress until it's fully displayed (but this cannot be displayed)i guess that because the rubber bar use almost the same split routine -> with different CRTC settings but the split is triggered the same way, very conventionnal for a Plus++
My pronouns are RASM and ACE

norecess464

#53
Excellent work @cngsoft , adding Amstrad Plus abilities + distributing source-code = major win for me.

On top of what @roudoudou just said, I'm wondering if you could also focus for next release on supporting Eerie Forest by Logon System (https://www.pouet.net/prod.php?which=72271). There are many issues with the horizontal scrollers. I believe that once you will get this demo 100% fixed, many other productions will be able to run smoothly.
My personal website: https://norecess.cpcscene.net
My current project is Sonic GX, a remake of Sonic the Hedgehog for the awesome Amstrad GX-4000 game console!

cngsoft

#54
I haven't been able to work too much on CPCEC, but I just released a bugfix avoiding a hang in  'globbing()', extending the compatibility of snapshots (WinAPE and ACE don't handle CPC+ blocks the same way) and moving some OS-independent code from CPCEC-OS.H to CPCEC-RT.H.



@roudoudou, @norecess, I can't wait to find why "CRTC 3" and "Eerie Forest" are acting up, though at least the damages are relatively limited: no crashes, no broken timings, just screen offsets not getting calculated and updated as intended.
(if you can't see the banner right now my server is currently offline)

roudoudou

did you try my ACID test split cartridge in the ACID topic ?
all CRTC3 is doing the same split technic, very + compliant (i'm not mixing CRTC split + SSR register)
so the basics are:
set SPLIT LINE + SPLITADR before the end of the displayed line THEN...       ...out of the visible screen, modifying the SSR (or SSCR) because it has immediate effect
the SSR allow to "choose the block" then you have to substract the block value from the current block value to get the block you want because the BLOCK value is in fact a block shifting :)
My pronouns are RASM and ACE

cngsoft

Quote from: roudoudou on 12:48, 07 March 20
did you try my ACID test split cartridge in the ACID topic ?
all CRTC3 is doing the same split technic, very + compliant (i'm not mixing CRTC split + SSR register)
so the basics are:
set SPLIT LINE + SPLITADR before the end of the displayed line THEN...       ...out of the visible screen, modifying the SSR (or SSCR) because it has immediate effect
the SSR allow to "choose the block" then you have to substract the block value from the current block value to get the block you want because the BLOCK value is in fact a block shifting :)
Your statement about the "immediate effect" is leading me somewhere:




It's not right yet but it's beginning to take shape, we're on the right track.
(if you can't see the banner right now my server is currently offline)

cngsoft

It's the first anniversary of CPCEC.



Possibly not the best reason for posting a new release, but this minor patch solved several issues in "Eerie Forest" and "CRTC3", so I thought I could publish the new files.
(if you can't see the banner right now my server is currently offline)

cngsoft

New release of CPCEC just in time for the April showers (let's hope the rain washes the virus away) albeit a minor one focusing on Amstrad Plus special effect bugfixes:





I really need to write stereo sound into the next release, and to understand why the Gate Array's scanline counters used to trigger IRQs sometimes run faster than intended.

I published a new version of CHIPNSFX too, with some tweaks and several new songs, and I should clean UZ80 up and release a new package as well.
(if you can't see the banner right now my server is currently offline)

norecess464

This is getting better and better. Keep up the good work !  ;)
My personal website: https://norecess.cpcscene.net
My current project is Sonic GX, a remake of Sonic the Hedgehog for the awesome Amstrad GX-4000 game console!

GUNHED

Cool how quick this one does evolve!  :) :) :)


Are you going to support more hardware expansions? Well, I mean the easy stuff.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

cngsoft

#61
New version 20200404: thanks to @norecess for helping me find the DMA bug that required a million ASIC PLUS kludges... they're mainly gone now with the exception of "Black Sabbath" that somehow expects IRQs to happen one scanline too soon.




Quote from: GUNHED on 16:00, 02 April 20Cool how quick this one does evolve!  :) :) :)

Are you going to support more hardware expansions? Well, I mean the easy stuff.  :)

I'm afraid I already struggle too much with the base hardware; expansions will have to wait until CPCEC is more solid. That being said, it already emulates up to 576k RAM (X-MEM, demo "Postscriptum") and 512k ROM (PLUS cartridges, either real or custom-made by gluing multiple 16k ROM files together)
(if you can't see the banner right now my server is currently offline)

roudoudou

Quote from: cngsoft on 10:52, 05 April 20
I'm afraid I already struggle too much with the base hardware; expansions will have to wait until CPCEC is more solid. That being said, it already emulates up to 576k RAM (X-MEM, demo "Postscriptum") and 512k ROM (PLUS cartridges, either real or custom-made by gluing multiple 16k ROM files together)
As the CPC can manage 256 Roms, please allow a super extension with 256 ROM and not a tiny amount of 16 or 32 like most of emulators ;)
My pronouns are RASM and ACE

cngsoft

#63
Super minor update restoring the missing top left sprites of "Synergy 4" after I realised that a temporary buffer (in this case the sprite coordinates) enables monitoring softwares racing the beam to achieve this kind of visual effect.



EDIT: made a new package because of an oversight.
(if you can't see the banner right now my server is currently offline)

GUNHED

Quote from: roudoudou on 11:51, 05 April 20
As the CPC can manage 256 Roms, please allow a super extension with 256 ROM and not a tiny amount of 16 or 32 like most of emulators ;)
Actually 64 would be enough (IMHO), that's a X-MEM + Y-MEM. Only one of my CPCs has an (internal) 2,5 MB of ROM - which I still not use completely. :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Ast

Quote from: cngsoft on 09:57, 06 April 20
Super minor update restoring the missing top left sprites of "Synergy 4" after I realised that a temporary buffer (in this case the sprite coordinates) enables monitoring softwares racing the beam to achieve this kind of visual effect.




it's a good thing to see my old Synergy demo working.
_____________________

Ast/iMP4CT. "By the power of Grayskull, i've the power"

http://amstradplus.forumforever.com/index.php
http://impdos.wikidot.com/
http://impdraw.wikidot.com/

All friends are welcome !

roudoudou

Quote from: GUNHED on 11:09, 06 April 20
Actually 64 would be enough (IMHO), that's a X-MEM + Y-MEM. Only one of my CPCs has an (internal) 2,5 MB of ROM - which I still not use completely. :)
Please, we must avoid the race to the bottom... The CPC can manage 256 ROM, let the emulator manage 256 ROM...

My pronouns are RASM and ACE

GUNHED

Quote from: roudoudou on 12:19, 06 April 20
Please, we must avoid the race to the bottom... The CPC can manage 256 ROM, let the emulator manage 256 ROM...
Oh, I'm totally at your side.  ;D
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

cngsoft

#68
More bugs bite the dust and more demos are supported!



"Black Sabbath", "Imperial Mahjong", "Onescreen Colonies" and "Scroll Factory" were fighting each other (i.e. I wasn't able to make them all work at once, whenever one ran well another one failed) until I realised that the two-line IRQ reset counter starts when the VSYNC begins UNLESS the HSYNC ends at the same time AND we're on a classical CPC rather than an ASIC-powered one; in that case the counter starts one scanline later.



"Tire au Flan" behaves differently on a Plus, but CPCEC didn't understand its detection method: setting the PIO port A on write mode, then reading from it, should return zero on non-Plus hardware.

I have yet to come up with OS-independent stereo sound and hardware+ROM profiles. Meanwhile I've already begun reading the X11 and ALSA specs, the most standard window and audio interfaces for Linux that I'm aware of.
(if you can't see the banner right now my server is currently offline)

cngsoft

#69
After spotting and fixing a dangerous bug in the ZIP archive handler, I decided that the current changes were sufficient for a new public release, albeit a minor patch, available from http://cngsoft.no-ip.org/cpcec.htm as usual:



- 20200418 -- minor patch with improvements in the interrupt counter (it starts with the first HSYNC fall after the VSYNC rise -"Onescreen Colonies"- unless on PLUS where it can start when the VSYNC rise happens together with the HSYNC fall: "Black Sabbath"), the PIO Port A (it returns zero when reading it in write mode unless on PLUS where it returns 255: "Tire au Flan") and the debugger: disassembly parameters are vertically aligned and the hardware information panel is aligned to the ASCII memory dump. Fixed a bug in the ZIP archive header seeker.
(if you can't see the banner right now my server is currently offline)

cngsoft

#70
I rebuilt the package after noticing yesterday night that I had left two things unfinished and undocumented:



- 20200418 -- minor patch with improvements in the interrupt counter (it starts with the first HSYNC fall after the VSYNC rise -"Onescreen Colonies"- unless on PLUS where it can start when the VSYNC rise happens together with the HSYNC fall: "Black Sabbath"), the hardware ports (PIO port A returns zero when reading it in write mode unless on PLUS where it returns 255 -"Tire au Flan"-, PIO port B must set VSYNC in the middle of the screen when the CRTC requests it -"Chany Dream End Megademo"- and the Gate Array's 0-191 byte range requires a more rigid port logic -"Overflow Preview 3"-) and the debugger: disassembly parameters are vertically aligned and the hardware information panel is aligned to the ASCII memory dump. Fixed a bug in the ZIP archive header seeker, too.
(if you can't see the banner right now my server is currently offline)

cngsoft

CPCEC and ZXSEC are getting a SDL2 port, but it's going to take longer than expected because I must write the new GUI from scratch as the SDL functions don't provide any widgets.



It already runs well on a couple of Linux systems (Slitaz and Ubuntu) and it's also useable on Windows even if that wasn't the point of making the SDL2 port to begin with.
(if you can't see the banner right now my server is currently offline)

Aeliss

Hello, do you think it will be possible to use the sdl menu with a joypad ?
It will be easier to use it from a couch without using the keyboard.

cngsoft

#73
It's official, the 16th public release of CPCEC is out: SDL2 support (complete with precompiled GNU/Linux 32-bit files, custom user interface -press F10 to show the menu- and other cross-platform adaptations), Z80 fixes that reduce the mistakes of the RAXOFT test suite (Z80CCF goes down from 70 to 5 mistakes out of 152, Z80FULL drops from 10 mistakes to 8, and Z80MEMPTR drops to 4 to 0 mistakes) and the new extended ROM profile system based on simple INI files, for example:

lowest=fw315en.rom
high02=sym-roma.rom
high03=sym-romb.rom
high04=sym-romc.rom
high05=sym-romd.rom


Whose only hard requirement is that the ROM files must be in the same folder where the INI file is.




Quote from: Aeliss on 17:51, 24 April 20Hello, do you think it will be possible to use the sdl menu with a joypad ?
It will be easier to use it from a couch without using the keyboard.
You're as bound to use the keyboard sooner or later as with a real CPC, but alright, I'll consider your suggestion for future releases.
(if you can't see the banner right now my server is currently offline)

GUNHED

Here are some tests you can do to see if the emulation is accurate:


- Install XDDOS 2.10 ROM and see if the system starts u
- Install FutureOS and copy from disc to disc (disc or file, check both)
- "" Use OS-Infos Tool to see if the expansion RAM can be detected

http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Powered by SMFPacks Menu Editor Mod