CPCEC a new emulator from cngsoft

Started by Arnaud, 09:14, 16 March 19

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

cngsoft

Quote from: The_Mole_UK on 12:10, 12 August 19
Can it use ParaDOS v1.2? / Remap keyboard?

Yes, all you have to do is to swap the default ROM files (AMSDOS and the original English-keyboard firmware) with your own ones. CPCEC will accept them as long as they're compatible, i.e. firmware is a 32k file where the first 16k is the BIOS and the last 16k is the BASIC, and the DOS ROM is 16k and includes a valid high ROM ID.
(if you can't see the banner right now my server is currently offline)

cngsoft

After posting a minor bugfix several days ago I'm already preparing the next major releases. On one hand, image interpolation is now based on three independent shaders whose effects pile up on the image.



On the other hand, extended memory (up to 32 ROM 16k banks and 8 RAM 64k banks) is the first step towards Amstrad Plus support. A very early step, but I can already see some screens and hear music...



When these features are ready, I'll get back to improving the overall compatibility of both CPCEC and ZXSEC, hoping to get the CRTC and FDC quirks and the ULA contention right sooner or later.

(if you can't see the banner right now my server is currently offline)

cngsoft

#27
The past weekend's release was a rushed one, fixing the ZIP archive "read-then-write" bug and adding 576 kB RAM support but disabling the still minimal PLUS ASIC emulation.



Video filters can now be configured independently, together with the scanline and interlace modes, sometimes leading to interesting effects. I like X-Masking and Double Interlace on my laptop, but I prefer Y-Masking and Whole Scanlines on my desktop.



Plans for the near future include PLUS ASIC emulation for CPCEC, as stated in past messages, and memory contention for ZXSEC, where I'm rewriting the Z80 engine so it relies on macros that provide either "coarse" CPC timings (always aligned to 4 clock ticks and very predictable in their duration) or "fine" Spectrum timings (aligned to nothing and very volatile because of the address bus collisions) thus allowing both emulators to rely on the same Z80 files.
(if you can't see the banner right now my server is currently offline)

cngsoft

#28
Before I get too busy with the CPC Retrodev compo, I updated CHIPNSFX, UZ80 and CPCEC with few news and many fixes:



* 20191004 -- Twelfth public release. Precise (albeit not perfect yet) memory contention and ULA noise ("snow") on Spectrum: "48K Timing Tests" passes all tests but 36 and 37, and "128K Timing Tests" fails on just six tests. "Mask 3: Venom Strikes Back" draws the attribute and border effects on their precise locations on all platforms (48K, 128K/Plus2, Plus3) and Software Creations' "Black Lamp", "LED Storm" and "Sly Spy" behave well on 128K machines. Improvements in the debugger: fixed disassembly panel invalid cursor locations, added optional tall characters, avoided debug+pause clashing, new key M toggles memory dump ROM+RAM and RAM-only modes. Improved ZIP handling (ZIP archives are no longer locked, files within archives are filtered by extension), user interface fixes.
* 20191004 -- Minor patch making the debugger options set with V and M stick between sessions.



I'd have liked to fix the CRTC bug that makes the recently released and spectacularly smooth "Pinball Dreams" unplayable but the deadline looms :-(
(if you can't see the banner right now my server is currently offline)

cngsoft

I just released a new version of CPCEC and its little sibling ZXSEC, mainly because I had to support "Pinball Dreams" in one way or another!




Instead of trying to develop all CRTC types at once I focused on CRTC 1. "Mission Genocide", "Warhawk", "Dynamic Duo", "Prehistorik 2", "From Scratch", "Batman Forever", "Imperial Mahjong", "Octopus Pocus" and many more work flawlessly now, instead of the fragile balance where some tweaks fixed some titles and broke others. Sadly, the fragile balance has now shifted to CRTC 1 against all the other types... so there's still a lot of work to do.




New options include a basic V-Hold control (now the original "Thunder Blade" release works) and a flexible H-sync mode that allows fine-tuning Gigascreen effects such as the "Batman/Spawn" screen in "Batman Forever" together with the already extant interlaced mode options.

ZXSEC also benefits from increased precision in memory contention timings, especially on 48K. There's no longer conflict between "Starion", "Dark Star", "Black Lamp" and others that were drawing special effects on the border and the attribute map at once.
(if you can't see the banner right now my server is currently offline)

cngsoft

#30


Emulating the CRTC type 1 was the first step towards full "Pinball Dreams" support. CRTC 0 is now half done and some demos that either worked in early versions of CPCEC thanks to kludges ("Nayad" part of "5KB Demo 3") or didn't work at all ("Tantrum" part of "Face Hugger's Ultimate Megademo") are now fully operational. "Pinball Dreams" itself still resists, though.

(if you can't see the banner right now my server is currently offline)

Ast

Hi César,


To complete your crtc 1 emulation, try to make runable Scroll Factory.


It would be a good challenge for you and a good way to make your cpcec better.


Have a good fun.

_____________________

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 !

cngsoft

#32
Quote from: Ast on 23:03, 24 November 19
Hi César,

To complete your crtc 1 emulation, try to make runable Scroll Factory.

It would be a good challenge for you and a good way to make your cpcec better.

Have a good fun.

Good suggestion. This is how it looks like right now:





CPCEC simulates a 2 NOP delay on MCR changes (Imperial Mahjong needs either 2 or 3 NOPS to behave properly); if I set the delay to 0 or 1, the title of Scroll Factory improves:



I'm going to have to ask so many questions about the internal delays that happen between the Z80, the Gate Array and the CRTC. I better start writing them down already.
(if you can't see the banner right now my server is currently offline)

cngsoft

I released yesterday morning a new version of CPCEC, but it's a minor patch fixing bugs such as bad window rendering when the screen isn't tall enough (for example my current laptop), recording the wrong value in the bytes/second field of WAV files, or failing to keep OUT &0088,&88 from going to the Gate Array ("Knight Rider"). The FDC can now format tracks, a feature that I had dummied out until I was advised to enable it.



"Still Rising" (CRTC 0 and 1) and "Octopus Pocus" (CRTC 1) join the list of CPC demos that work. "PhX" temporarily loses sync in two different parts depending of the CRTC type. "Pinball Dreams" doesn't run on CRTC 0 or 2 yet, but it works well on CRTC 3 and 4, although only because the game expects them to behave like CRTC 1 regarding the "buffered" CRTC registers 4, 5 and 9. This goes against Shinra's document "Differences between CRTC types" stating that CRTC types 3 and 4 are like CRTC 0 and 2 in this aspect. Who's right?



(if you can't see the banner right now my server is currently offline)

Ast

Hi @cngsoft


I've just tested CPCEC right now. There's still some work to do on Scroll Factory's intro.


Your emulator begins better and better each day. Do you plan adding Amstrad Plus emulation ?

_____________________

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 !

cngsoft

#35
A change in the behavior of REG1 finally makes the level start SFX of "Zap't'Balls advanced edition" work properly and improves "Onescreen Colonies":


Quote from: Ast on 23:38, 02 December 19Hi @cngsoft

I've just tested CPCEC right now. There's still some work to do on Scroll Factory's intro.

Your emulator begins better and better each day. Do you plan adding Amstrad Plus emulation ?
Scroll Factory is indeed still incomplete, as I showed in the past screenshots. Either the mode change happens too late or the video rendering happens too soon. I know that there's a delay between what the Z80 does and what the screen shows, but I don't know its nature and its length, or whether it's just one delay or several types of it.

Amstrad Plus is in the queue too, and in a past message I posted a screenshot of "Burnin' Rubber" running on incomplete ASIC emulation.
(if you can't see the banner right now my server is currently offline)

cngsoft

I hope everyone had a merry Christmas. Mine was certainly productive:

1.- The emulation of delays in the Gate Array both to update the bitdepth and to render the pixels solves all the glitches in "Scroll Factory":
 

2.- These delays also enable the handling of the slightly different case of mid-char ink changes:
 

3.- OUT &BC00,8: OUT &BD00,1 makes the screen shake:


4.- Last but not least, "Pinball Dreams" is now fully supported on all CRTC types: the BG Games intro, the Gigascreen titles, the staff scroller and the game itself behave and show as expected.


Shall I post the current files online?
(if you can't see the banner right now my server is currently offline)

remax

Brain Radioactivity

cngsoft

#38
Quote from: remax on 17:48, 27 December 19
Hoffe Kourçe
Yes of course :-) Alright then, CPCEC-20191227 is available from my website as usual.




20191227 -- fourteenth public release. Visual improvements: the green screen palette is closer to the original, the vertical filters ("Y-Masking") are compatible with the interlaced modes, mixing X-Masking and Y-Masking together shows a checkered patter. Internal improvements: the new traits of the CRTC registers 3 and 9 and the delays between the Gate Array, the Z80 and the CRTC finally can emulate "Pinball Dreams" as a whole for all the CRTC types and solve the problems in several demos ("Scroll Factory", "Still Rising", parts of "The Demo"...) and games ("Action Fighter", "Storm Warrior", "Usagi Yojimbo"), although some titles still need particular CRTCs ("PhX" CRTC0, "Onescreen Colonies" CRTC1, etc.) to work correctly.



I also released "Epimetheus +", an improved edition of my CPC Retrodev 2019 submission, with medals to pick up, smoke trails to spice the visuals up, and a softer difficulty curve for the first 20 levels.
(if you can't see the banner right now my server is currently offline)

cngsoft

Just in time for the very last three hours of the year...



20191231 -- minor patch fixing a bug in the FDC (bit 6 of SENSE DRIVE STATUS must react when the user changes discs: "Fugitif") and a regression in CRTC0 (detect REG6<REG4 rather than REG6<=REG4: "5KB Megademo 3: Nayad"). Happy new year 2020!

Thanks to Dlfrsilver for bringing "Fugitif" back to my attention! Happy New Year, everyone!
(if you can't see the banner right now my server is currently offline)

robcfg

Great work!


Wish you a Happy New Year!

cngsoft

#41
The New Year's Eve update broke "Scroll Factory" and others :-( Never rush an update without testing it properly! So yesterday evening I had to make a second minor patch solving the issues caused by the first one:




20200101 -- minor patch fixing a regression in CRTC0 caused by the previous patch ("Scroll Factory", intro of "Pinball Dreams", "Overflow Preview: Part 1") and improving its heuristics ("Overflow Preview: Part 3").
(if you can't see the banner right now my server is currently offline)

cngsoft

I'm busy and I cannot spend enough time on CPCEC, but I've been fixing bugs in the FDC TRACK FORMAT command, improving the disc timings, supporting more copy protections ... and slowly, very slowly, adding Plus hardware support.



Hardware sprites are half baked; soft scroll, DMA channels and vector interrupts aren't emulated yet; but several cartridges are already playable, beginning with the very first one: "Burnin' Rubber".
(if you can't see the banner right now my server is currently offline)

cngsoft

Current state of affairs: the sixteen original cartridges I'm aware of are working correctly.




I've already tested several non-commercial titles and demos and they work, too:


However, "Fluff" is playable but the horizontal scroll is glitchy, and "Prehistorik 2" is missing the hard sprites and crashes on vertical scrolling.


I'm sticking to http://www.cpcwiki.eu/index.php/Arnold_V_Specs_Revised but some details are more obscure than others.
(if you can't see the banner right now my server is currently offline)

cngsoft

#44
After lots of problems, "Fluff" and "Prehistorik 2" for Plus work well at last!




PH2+ took forever, there were errors in the DMA emulation (used here as a timer) and in the algebra that locates sprites within the visible screen.




The next release will have to wait until I solve CPCEC's license issues with the university (remember, it was my master's degree final project). In hindsight, all the past releases should have stayed as private alphas :-(
(if you can't see the banner right now my server is currently offline)

tjohnson

Sounds great.  License issues with a university project!  I hope you get that resolved soon, would never have thought that could happen.

Gryzor

I wouldn't expect something like this having licensing issues outside the USA to be frank but what do I know... in any case, awesome series of updates!

reidrac

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).
Released The Return of Traxtor, Golden Tail, Magica, The Dawn of Kernel, Kitsune`s Curse and Brick Rick for the CPC.

If you like my games and want to show some appreciation, you can always buy me a coffee.

Gryzor

The discussion is much more nuanced though; if it's a public University an argument can be made for public domain.

reidrac

#49
Actually, I thought the code was GPL. So it couldn't be clearer, unless there's any copyright not covered by that.

Anyway, we're guessing and derailing a bit the thread. Apologies.

It is an excellent emulator and it gets better and better. I hope the issue gets sorted and we can all enjoy it legally.
Released The Return of Traxtor, Golden Tail, Magica, The Dawn of Kernel, Kitsune`s Curse and Brick Rick for the CPC.

If you like my games and want to show some appreciation, you can always buy me a coffee.

Powered by SMFPacks Menu Editor Mod