Virtualc64: "Krestage 3" Demo by Crest 50 Hangs

Created on 11 Aug 2018  路  21Comments  路  Source: dirkwhoffmann/virtualc64

"Krestage 3" Demo by Crest does not work, from a message about the impossibility of using Vic Tricks.
On the web I found this:
_The VIC emulation as been enhanced to include a 4 pixel delay before responding to
changes to the sprite multicolor register. Stray pixels have been removed from the
"Krestage 3" Demo by Crest 50 pixel sprite upper border._
KRESTAGE3.D64.zip

VirtualC64:
schermata 2018-08-11 alle 10 02 45

Vice:
schermata 2018-08-11 alle 10 04 48

bug

All 21 comments

A 50 pixel sprite? Really? 馃槼 That's ultra cool and needs to be supported!!! Now, as the Goonies rest in peace, a new milestone is born.

But before digging deeper into this demo, we need to go through all sprite related tests in the VICE test suite and set up a list of tests that currently pass and currently fail.

50 pixels x-stretched sprites, 9 sprites in a row: great demo!
But is there a 50 pixel wide sprite or a 25 expanded ?

Don't know the details, yet. I tested V2.4 and V2.5 with the Darwin demo from

https://csdb.dk/release/?id=12732

which also uses a lot of sprite effects. They seem to work well, so the CREST problem is not necessarily due to the handling of sprites.

I noticed that the Darwin demo flickers when showing the black text screens. It also flickers in VICE 3.1. I did not test it with VICE 3.2 yet, nor did I test it with Hoxs64.

It'll be great to have a small program that tests if a real or a faked VICII is present (like the CREST demo does). The smaller the program the better. Perhaps, the CREST testing code is available somewhere as a stand alone program . If we can isolate the trick for testing for a real VICII, we can more easily track down the problem.

Is there any link to the applied code change? This would give us a valuable hint where the current incompatibility of VirtualC64 comes from.

This version of Krestage3 works fine on VirtualC64, probably the problem is another, not the sprites...

krestage3-emufix.prg.zip

schermata 2018-08-15 alle 09 27 11

Thank you, that's good to know. So I guess, we simply fail the VICII test at the beginning of the demo.

What kind of VIC-check is done?
Does VirtualC64 manage to pass the test?

No, it does not pass yet. Seems like they check for emulators explicitly which means that they most likely did all they can to make it difficult to track down the root cause. I simply don't understand these guys. What is the purpose of stealing other people's time? Anyway, it will just be a matter of time when this demo will run, too.

I have seen that VIC-detection (of this demo) works in HOSX and VICESC, could someone tell us wich kind of detection is this ?

Maybe a Vic Timing check.
But looking at the (EMU)fixed version and the integral version: can you not see what kind of control has been eliminated ?

I do not think it's a VIC / Timing problem but it could be some cheating related to the famous EMUFUXXOR (https://csdb.dk/release/?id=55745).
I would still like to see it resolved and know what it was.

No, that is not EMUFUXX0R, that is a VIC/CHECK !
I would be resolved it too!
Does someone har tryied it on HOXS ? Does it fully works on HOXS ?

VICE.exe: DOES NOT WORK - HOSX WORKS
untitled 2

VICESC.exe and HOSX work but they have the same defect (number 3 out of the screen)
untitled 6

It's good to see that it works in vicesc. VICE has an excellent debugger, so it's possible to debug it the hard way:

  1. Run VirtualC64 until the "No VIC inside" screen appears.
  2. Hit "Rewind" and "Pause" immediately afterwards.
  3. Open the debugger and see which address the CPU is at.
  4. Start VICE and set a breakpoint to this address.
  5. Step through the code in VirtualC64 and VICE in parallel until there is a difference.

It's pretty boring though 鈽癸笍.

BTW, forget about vice.exe, always use vicesc.exe.

"(EMU)fixed version and the integral version"

What's the (EMU)fixed version? And what in the integral version? 馃

Hi,
this is the original version with the VIC CHECK:
krestage3-Integral.zip

This is the "fixed" version for the emulators to which they have removed the initial "vic check":
krestage3-emufix.zip

I tried with the debugger but I can not understand anything.
I'm sorry, I hope that someone is more lucky or better than me to find the cause...

Woohoo 馃槑. With the ss-hires-mc-exp.prg bug fixed, VirtualC64 passes the VICII check:

bildschirmfoto 2018-10-15 um 13 18 48

The VICII check is really mean (馃槚), because it relies on a very special interplay between the multicolor flipflop and the expansion flipflop when the mc bit changes in the middle of sprite drawing. Fortunately, the VICE team already figured this out. Still, understanding the VICE code is pretty tough in its own.

Interestingly, VirtualC64 does omit displaying the "3" completely (I expected the output to be similar to VICE, because I adapted the VICE sprite sequencer logic). Pretty strange.

bildschirmfoto 2018-10-15 um 13 18 56

Great!!!

The number 3, after few minutes, will be shown on the right, but it will be shown partially cutted.
This happens on VICESC and on HOXS !
VICE and HOSX:
46734920-e42a3e80-cc94-11e8-8032-9a82d1e0c65d

You can close the issue ! Thanks

"The number 3, after few minutes". Oh, thanks, I simply didn't run it long enough. Indeed, the "3" appears, and as expected, the graphics glitch is the same as in VICE (the grey dots are missing, because I used a 65x VICII (no grey dot bug)).

bildschirmfoto 2018-10-15 um 13 57 08

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rossimariolee picture rossimariolee  路  4Comments

Somuchfun picture Somuchfun  路  3Comments

PakkunKinoppi picture PakkunKinoppi  路  4Comments

dirkwhoffmann picture dirkwhoffmann  路  4Comments

mortinus picture mortinus  路  6Comments