VICE 3.6.1 has been released

Es gibt 29 Antworten in diesem Thema, welches 6.572 mal aufgerufen wurde. Der letzte Beitrag (9. Februar 2022 um 14:09) ist von angryking.

  • Hello,

    since i'm using Vice from Version 3.6x i got problems displaying sprites:
    Same example program:

    using C64debugger V0.64.58.6 -> display is ok!

    using Vice 3.6.0 -> display is not ok!

    using Vice 3.6.1 -> display is not ok!

    using Vice 3.2 -> display is ok!

    :?::?::?:

    Bitte melde dich an, um diesen Anhang zu sehen.       Bitte melde dich an, um diesen Anhang zu sehen.

  • using C64debugger V0.64.58.6 -> display is ok!

    using Vice 3.6.0 -> display is not ok!

    using Vice 3.6.1 -> display is not ok!

    using Vice 3.2 -> display is ok!

    You put the "not" in the wrong lines.

    using C64debugger V0.64.58.6 -> display is not ok

    using Vice 3.6.0 -> display is ok

    using Vice 3.6.1 -> display is ok

    using Vice 3.2 -> display is not ok

    reference image from real C64:

    Bitte melde dich an, um diesen Anhang zu sehen.

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Since i don't have a real c64, it seems
    C64Debugger and Vice 3.2 are buggy??

    They may be. There is also the possibility that your program relies on behaviour that is not fully deterministic and happens to work on one C64 (which happens to match these emulators) but not another (e.g. mine). The most common situation where is pops up is access to uninitialized memory. Did you set the sprite pointers?

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Unseen is right!
    in this piece of exampleCode the Spritepointer was just defined over a Constant in namespace in Kickassembler.

    .const VIC2 = $d000
    .namespace sprites {
      .label positions = VIC2
      .label position_x_high_bits = VIC2 + 16
      .label enable_bits = VIC2 + 21
      .label colors = VIC2 + 39
      .label pointers = screen_memory + 1024 - 8
      .label vertical_stretch_bits = VIC2 + 23
      .label horizontal_stretch_bits = VIC2 + 29
    }

    so i checked code for the pointers -> not written!
    by added the pointers in init!

    .for (var i = 0; i < 8; i++) {
    lda #$ff
    sta sprites.pointers+i
    }

    Now it works in Vice 3.6.2 correctly.
    perhaps Unseen could test on real hardware?

    Thanks in advance!


    Bitte melde dich an, um diesen Anhang zu sehen.

  • Your new version of the program should run correctly on all machines. I guess that on real hardware, the old Version of your programm will work normal on some machines and on some, it also will have these graphic-problems. Depending on the respective RAM patterns and they seem to have something to do, with respective board-versions. A similar behaviour on real machines, can be seen in intros like

    Bitte melde dich an, um diesen Link zu sehen.

    and

    Bitte melde dich an, um diesen Link zu sehen.

    These also work normal on some machines and on others not, depending how the RAM patterns are set. In the RAM menue of VICE, like "angryking" already wrote, the user can switch and make them all workable.