FairLight TV #80, Stable rasters - the base of demo coding

Поделиться
HTML-код
  • Опубликовано: 29 июн 2023
  • Released 30/06/2023
    Intro video: Zo0lon
    Video Edit: Zo0lon
    Intro Music: Lukhash
    Usefull links:
    #General description + double IRQ
    codebase64.org/doku.php?id=ba...
    codebase64.org/doku.php?id=ba...
    DMA: Sprites method
    codebase64.org/doku.php?id=ma...
    bumbershootsoft.wordpress.com...
    DMA: VSP
    codebase64.org/doku.php?id=ba...
    Lightpen method
    codebase64.org/doku.php?id=ba...
    github.com/Zibri/C64_Stable_R...
    CIA Method
    codebase64.org/doku.php?id=ba...
    Clock slide
    codebase64.org/doku.php?id=ba...
  • ИгрыИгры

Комментарии • 35

  • @jmp01a24
    @jmp01a24 Месяц назад

    Great topic. You explained it fine imo. Kudos for including links to codebase.
    Safe VSP (Variable Screen Position) by LFT (iirc) explains how to avoid the random crashes that happens on some C64 versions (likely due to unstable DMA chip data- fetch that is a part of the VIC2 chip) on which addresses code is written to. One should avoid certain IRQ memory locations in a page that execute commands (a page being every 255 byte segment from $00 - $FF). Like the zero page is from $0000--to-->$0100. These locations should have a NOP and not any other code, as it can corrupt data to the VICII IRQ's and data fetching, which must be totally stable and precise. Mastery of the raster interrupt is essential in order to unleash the VIC-II's capabilities, as it's known. If it doesn't crash the C64 it can make a mess out of the bitmap data (weird visual bugs) as the VICII chip fetches garbage in stead of what's supposed to be there.
    From LFT's "SAFE VSP" scrolltext:
    "memory locations ending in "7" or "F" is fragile. sometimes when VSP is performed, several fragile memory cells are randomly corrupted according to the following rule: each bit in a fragile memory cell might be changed into the corresponding bit of another fragile cell within the same page"
    I suspect the Rowlands also found out a safe VSP method before they made Mayhem in Monsterland, which from my experience wasn't plagued with random crashes when using VSP to scroll the bitmap screens, or corrupt the data fetching of the bitmap data. It wouldn't be the classic it is if it was bugged on a lot of machines?
    To make a smooth VSP scroller of a larger bitmap screen, you need to push in data, every frame, to the bitmap memory on either side (depending on the direction of scroll) and/or delete the data on the other side. Else the screen just wraps around. Sure VSP saves rastertime when moving a whole bitmap screen 8 chars left or right, but the data deletion and buffering will take a lot of rastertime on its own Also it needs to add the correct $D016 values (which moves the horizontal bitmap screen by pixels - while VSP moves the vertical offset of a bitmap screen in chunks of 8 pixels (horizontal) for each new VSP value.

    • @FairLight1337
      @FairLight1337  Месяц назад +1

      Agree. You use VSP as a method to scroll full characters. No need to move all memory - just populate the edges as you correctly state.

  • @VelAntuManthureie
    @VelAntuManthureie Год назад +1

    Thank you for this lesson!

    • @FairLight1337
      @FairLight1337  Год назад

      You are most welcome. Please support by sharing with others who might be interested.

  • @OlivierSimpleLife
    @OlivierSimpleLife Год назад

    Many thanks for the video and this very extensive list of references !

    • @FairLight1337
      @FairLight1337  Год назад +1

      Thanks. Took some time to research this, and still a lot of the facts are only in the links

  • @nickvivid
    @nickvivid Год назад

    thank you! another great episode. enjoy your summer.

    • @FairLight1337
      @FairLight1337  Год назад

      Humble thanks. To be honest it was a rather quick one but hopefully fruitful for a number of people never the less.

  • @TheStuffMade
    @TheStuffMade 6 месяцев назад

    Nice, always good to have more C64 tutorials 👍 I think it was Ecan of Wizax who taught me how to do stable rasters on PAL back in the mid 80s, using 8,8,8,8,8,8,8,1 tables to deal with bad lines/VIC II doing it's thing. And of course that you're screwed if you move sprites over the lines.

  • @TheREALDJFruitLoops
    @TheREALDJFruitLoops 8 месяцев назад

    watching this one now, so far really good stuff

  • @RalfBeckers
    @RalfBeckers 11 месяцев назад

    Thanks for the in depth explanations! Just in time to support me in getting started with C64 coding!

    • @FairLight1337
      @FairLight1337  10 месяцев назад

      Great and welcome to the kluster of nerds :)

  • @z1ph0n3
    @z1ph0n3 Год назад +1

    Just two things: 1) the "fiddling" with the data direction registers is the same as a user pressing the lightpen button. 2) after getting the X position, there is a clock slide to correct the jitter. That's all. And yes, pressing SPACE or FIRE on the joystick will trigger the lightpen and gloriously fu*kup this routine... which obviously is not suitable for games. :D

  • @marcteufel8348
    @marcteufel8348 Год назад +2

    Another great and informative one. Thanks alot for all your effort!. What about a second part with some coding on the concepts you described here ? Enjoy the summer :-)

    • @FairLight1337
      @FairLight1337  Год назад

      The information had links to the Codebase articles on the subject. There you have actual code examples.

  • @carlobiondini4906
    @carlobiondini4906 Год назад

    Very interesting, glad to see you are recovering well from X!

    • @FairLight1337
      @FairLight1337  Год назад

      I was very light on the alcohol on the actual party (in Amsterdam before the party, not so much ;). So I recovered really fast!

  • @Demoscene0x0801
    @Demoscene0x0801 Год назад

    Very interesting information 🧐Have a nice holiday. ✌

  • @joecincotta5805
    @joecincotta5805 Год назад

    This was cool! I used to use nmi to get stable rasters in the days, but I never knew about the CIA timer trick. Very cool.

    • @FairLight1337
      @FairLight1337  Год назад +1

      Yeah. Ninjas method? I skipped that one...

  •  Год назад

    very kool episode!

  • @z1ph0n3
    @z1ph0n3 Год назад

    I am not a demo coder either :D but it's fun to find methods...

  • @LarsHHoog
    @LarsHHoog Год назад

    Njut sommaren!

  • @skybuck2000
    @skybuck2000 10 дней назад

    Oh my god, don't do that, call people hackers, Biden might jail you lol.

    • @FairLight1337
      @FairLight1337  8 дней назад

      Not worried the least. Biden is also one of the good guys.

  • @JoachimLjunggren
    @JoachimLjunggren Год назад

    Never forget SEI. Important for super stable code!

    • @FairLight1337
      @FairLight1337  Год назад

      Ha ha ha. Internal joke for those who found that comment confusing.

    • @TheStuffMade
      @TheStuffMade 6 месяцев назад

      Arduino coders are confused by this... lol