Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06061 Graphics Minor Always Nov 2, 2015, 00:17 Nov 6, 2015, 03:28
Tester demotester View Status Public Platform MESS (Unofficial Binary)
Assigned To Resolution Open OS Windows XP
Status [?] Acknowledged Driver amstrad.cpp
Version 0.167 Fixed in Version Build Normal
Summary MESS-specific 06061: cpc6128: Results after testing some demos
Description Amstard CPC demos acc. popularity -> http://www.pouet.net/prodlist.php?platform%5B0%5D=Amstrad+CPC&page=1&order=thumbup

Results of first 10 demos tested in MESSUI167 with "cpc6128" driver:

1) Batman Forever -> http://www.pouet.net/prod.php?which=56761

  the 3 disc version:
  ------------------------
    RUN"DISC ... after pressing the SPACE and after a while it crashes the emu!

                              (in Arnold and WinAPE20A18 when set to CRTC2 it reports: CRTC type 2 is not supported)


  the one disc version: (attached as 3.5" drive B: because it will crash emu if attached to 3" drive A:)
  ----------------------------
    (in the emu first type command "|B:" (without "") to change active drive from A: to B:)

    RUN"DISC ... works but it glitches on "chip" part at screen lower half,
                              next on text scroll part it glitches on lower screen,
                              on next part ise problem with screen has been moved up,
                              and it just stops on "green "part!

                              (in Arnold and WinAPE20A18 when set to CRTC2 it reports: CRTC type 2 is not supported)


2) Still Rising -> http://www.pouet.net/prod.php?which=61177

    RUN"-RISING ... hmm, it starts the demo with purple colour instead of black colour,
                                  and than it starts with the "PULPO" demo instaed of the "RISING" demo!

                                  (it behaves the same in Arnold when set to CRTC2)

    RUN"-PULPO ... this one seems works!


3) From Scratch -> http://www.pouet.net/prod.php?which=53596

    RUN"-SCRATCH ... it runs with text: CRTC1 NEEDED (it reports the same in Arnold when set to CRTC2)


4) Phortem -> http://www.pouet.net/prod.php?which=61465

   (attached as 3.5" drive B: because it will crash emu if attached to 3" drive A:)
   (in the emu first type command "|B:" (without "") to change active drive from A: to B:)

   RUN"PHORTEM ... when ask to center the screen it possible only up-down and not left-right!
                                      and screen needs to be centered a little to left...
                                      otherwise, the demo seems to work fine!

                                      (and in Arnold when set to CRTC2 is possible to adjust screen left-right)

5) Wolfenstrad -> http://www.pouet.net/prod.php?which=58887

   RUN"´-WOLF ... seems fine!


6) DTC -> http://www.pouet.net/prod.php?which=20226

   RUN"-DTC ... it runs with text: CRTC2 DETECTED SORRY NO DEMO (it reports the same in Arnold when set to CRTC2)

                            (uh, and if you did not know, CRTC2 is the worst of all CPC CRTC types for running demos)
                            (and to run most or all CPC demos it is desireable to have at least CRTC0 or better CRTC1)


7) Yet Another Plasma! -> http://www.pouet.net/prod.php?which=60660

   RUN"-YAP! ... seems fine!


8) Wake Up! -> http://www.pouet.net/prod.php?which=59073

   the FINAL version:

   RUN"Wake-UP!.BND ... in MESS got message: "Emu dettected. Time to shutdown your computer and power on your CPC!"

                                               in Arnold with CRTC2 got message: "Why are you trying to see demos on your shit"!
                                               in Arnold with CRTC1 got message: "Emu dettected. Time to shutdown your computer and power on your CPC!"
                                               in Arnold with CRTC0 got message: "CRTC0 detected."


9) Breaking Baud -> http://www.pouet.net/prod.php?which=62934
   
   (attached as Cassette)
   (in the emu first type command "|tape" (without "") to change from disk to tape drive)

   RUN" (and press play on tape - in mess Alt+F2) ... it seems fine! (except in mess is not possible to turn off the tape loading sound to here the music playing in the background)


10) Pheelone -> http://www.pouet.net/prod.php?which=53498

   RUN"PHEELONE ... seems fine!


--------------
Summary:
--------------
So after testing of 10 popular CPC demos got 6 problematic: 1), 2), 3), 4), 6) and 8):

1) Batman Forever - in Arnold (and in WinAPE20A18), when set to CRTC2, got message: "CRTC type 2 is not supported"!

   If MESS CPC driver supports only CRTC type 2 (acc. to demo DTC) it should report the same message as in Arnold, but in MESS the demo runs!?

2) Still Rising - in Arnold, when set to CRTC2, behaves same as in MESS! (and it works in Arnold if CRTC type set to 0 or 1)

3) From Scratch - in Arnold, when set to CRTC2, got same report as in MESS: "CRTC1 NEEDED"! (and it works in Arnold if CRTC type set to 1)

4) Phortem - in Arnold, when set to CRTC2, is possible to adjust screen left-right! (in MESS works only up-down)

6) DTC - in Arnold, when set to CRTC2, got message: "CRTC2 DETECTED SORRY NO DEMO"! (the same as in MESS)
                in Arnold, when set to CRTC1, got message: "CRTC1 DETECTED GOOD CHOICE"!
                in Arnold, when set to CRTC0, got message: "CRTC0 DETECTED NICE ONE"!

8) Wake Up! - in Arnold, when set to CRTC2, got message: "Why are you trying to see demos on your shit!" (seems the demo needs CRTC type 0 to work properly)

                         in MESS got message: "Emu dettected. Time to shutdown your computer and power on your CPC!" (hmm, got the same in Arnold only when set to CRTC1)


Thus, according to demos 1) and 8), if MESS emu supports CRTC type 2 then it should report same messages as Arnold emu with setting to CRTC type 2, right!?
(Wrong, it does not, so maybe it would be also good to make an test on a real CPC with CRTC type 2 to be sure.)

Otherwise, other demos that works seems fine in MESS CPC emulation!

But it would be much better if there exists an option that allow to choose CRTC type,
because it would be possible to run all available demos and thus better test the accuracy of CPC emulation. (MESS strive for accuracy, right?) ;)

CRTC versions -> http://www.cpcwiki.eu/index.php/CRTC (usable infos for existing MT05713)

Steps To Reproduce See above in description!

Additional Information Other emu used for comparison: Arnold Aeliss Edition (set as CPC6128 with CRTC2)

(used because DTC demo did not recognized CRTC type 2 in WinAPE20A18 same as in MESS and Arnold)
Flags
Regression Version
Affected Sets / Systems cpc6128
Attached Files
 
Relationships
There are no relationsihp linked to this issue.
Notes
10
User avatar
No.12109
mahlemiut
Developer
Nov 3, 2015, 21:37
edited on: Nov 3, 2015, 21:39
Yes, MAME uses the MC6845 (which is the original 6845 chip, and what any other 6845 device is based on). CRTC Type 2 is correct.

It could be changed to use the HD6845, but I'm not sure that would make any real difference.

User avatar
No.12110
demotester
Tester
Nov 3, 2015, 22:01
edited on: Nov 3, 2015, 22:15
Okay, but currently the problem is that CRTC Type 2 is not properly recognized by some demos (as discussed above for the demo 1) and 8) which is not really designed for Type 2, and so gain an impression there might be a problem with emulation!

So, for start, it is necessary to improve the recognition of CRTC Type 2 in MESS emulation!

But of course, if is possible to implement the HD6845 (Type 0) in CPC emulation, it would be much better choice!

And if HD6845 (Type 0) is properly emulated, this will for sure make a difference! (specially when running demos that need it - like demo 1) Batman Forever f.ex.)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Also, there exist BASIC tool that detect CRTC types 0-1-2 (by Elmar Krieger) -> http://www.cpcwiki.eu/imgs/9/99/Elmar_Krieger-SPECIAL_EFFECTS.dsk

to test what CRTC type is in (for example MESS cpc6128 driver) type:

 run"LISTING2.BAS ... and in MESS is recognized as CRTC 6845=Typ 2 !!! (what confirms that MESS uses Type 2 for CRTC)

                                         in Arnold are correctly recognized all tested types 0,1,2! (but in WinAPE found to not correctly recognize type 2!)


And in addition on the same disc exist several tests (from 1-9):

Just found that MESS has a problem running tests: LISTING8.BAS and LISTING9.BAS!!! (Arnold has problem with LISTING8.BAS, but WinAPE seems fine in both)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

User avatar
No.12111
demotester
Tester
Nov 3, 2015, 22:43
edited on: Nov 3, 2015, 22:46
And if we visually check what CRTC Type on CPC model motherboards were most present -> http://www.cpcwiki.eu/index.php/Mainboard_Versions

We got something like this:

CPC464 version 1 (original) -> HD6845SP
CPC464 version 2 (new gate array) -> MC6845P, HD6845SP, UM6845
CPC464 version 3 (medium-sized) -> UM6845R
CPC464 version 4 (cost-down) -> 40226

CPC472 -> HD6845SP

CPC664 -> HD6845SP

CPC6128 version 1 -> HD6845SP
CPC6128 version 2 -> HD6845SP, MC6845P, UM6845, UM6845R
CPC6128 version 3 (cost-down) -> 40226

--------------------------
CRTC Type
--------------------------
HD6845S...........0
UM6845............. 0
UM6845R...........1
MC6845..............2
AMS40489..........3
40226..................4
-------------------------

So its obvious that CRTC Type 0 might be the best choice for CPC emulation! ;)

User avatar
No.12112
mahlemiut
Developer
Nov 4, 2015, 01:54
I've pushed a quick change to help with detection, but will likely confuse type 0 and type 2 still. If you set m_supports_disp_start_r to false in mc6845_device::device_start(), then type 2 detection should work.

I've used this bit of ASM to check CRTC type - http://cpcrulez.fr/coding_amslive16-CRTC_detection.htm (warning - is in French)

Here it is assembled on a disk image - http://mahlemiut.marpirc.net/crtctest.dsk
Just LOAD"CRTCTEST" and CALL &A000
Prints CRTC type, or '5' if it thinks it's an emulator (we don't want that).
User avatar
No.12117
mahlemiut
Developer
Nov 5, 2015, 08:27
edited on: Nov 5, 2015, 08:28
Pushed another fix correcting the reading of the CRTC Display Start Address for the HD6845 and MC6845 (both were wrong). This should now fix up CRTC detection.

You can try it out with the HD6845 by using changing line 914 in src/mame/drivers/amstrad.c to:
MCFG_MC6845_ADD("mc6845", HD6845, NULL, XTAL_16MHz / 16)

Eventually I'll change it to that permanently, but I've got another project I'm working on in the driver first. Will also look at creating a proper AMS40489, derived from the MC6845 device, for the Plus systems, too.

User avatar
No.12119
demotester
Tester
Nov 5, 2015, 12:27
Great news thx!

But I have never compile a mess, so will have to wait for bleeding-edge release ( or official) unfortunately!
User avatar
No.12130
mahlemiut
Developer
Nov 6, 2015, 00:28
The crash in Batman Forever seems to be floppy related. Will have a look at the other demos in time.
User avatar
No.12132
mahlemiut
Developer
Nov 6, 2015, 00:50
Checked DTC, correctly detects CRTC - works with HD6845 (if a touch flickery), not with MC6845 (correct behaviour)
User avatar
No.12135
mahlemiut
Developer
Nov 6, 2015, 01:40
Wake Up! detects CRTC correctly now, but it doesn't get much further.

For Breaking Baud, you can reduce the volume of the Wave device (in Slider Controls) so that the tape noise is less annoying.
User avatar
No.12138
demotester
Tester
Nov 6, 2015, 03:28
edited on: Nov 6, 2015, 03:49
Regarding the Batman Forever demo crash, there are two versions: 3 disc and 1 disc version!

1 disc version need to be attached on B drive (3.5") - as explained in 1) (under descriptions above - It will crash if attached on 3" drive A).

I tested Batman Forever demo on "bleeding-edge" release and got a message: CRTC Type 2 is not supported! (so the detection seems works now)

Also, on Wake-UP demo got a message: "Why are you trying to see demos on your shit"! :) (so it confirms the detection work fine now)

BTW. thanks for the tip for Breaking Baud!