C128‘s VDC vs IBM XT‘s CGA: 16 Color Graphics using the 30 year old VDC-Basic extension

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

ความคิดเห็น • 42

  • @retrobitstv
    @retrobitstv ปีที่แล้ว +4

    Very interesting look at the difference between CGA and VDC capabilities! The VDC doesn't get much love so thanks for putting this together :D

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      You’re right. And the more I learn about the VDC, the less I understand why.
      Thanks for your feedback! Also, I value your content very much, thanks!

  • @joshhiner729
    @joshhiner729 ปีที่แล้ว +2

    Awesome video. We need more VDC videos. Thanks a ton and I hope you create more.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      I agree, we need more :-)
      I have a couple more in the queue.
      Thanks for your feedback!

  • @CommodoreGreg
    @CommodoreGreg ปีที่แล้ว +2

    Excellent video! Great step by step explanation. I appreciated the use of the vcd basic as a teaching aide.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Thank you!
      Right, VDC Basic makes it much easier to grasp in my opinion.

  • @Stingray64er
    @Stingray64er ปีที่แล้ว +1

    Nice video 👍 Subscribed.
    Looking forward to watching your EGA on the C128 video next.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Glad you like it!
      Thanks for letting me know :-)

  • @loganjorgensen
    @loganjorgensen ปีที่แล้ว +2

    About halfway through I was thinking this was a really complicated way to display 160x100x16 on a C128 lol, but being able to use the actual DOS content files on a Commodore is invaluable with connecting both platforms in an online environment for example.
    Really impressive stuff, neat how you got past the common-color restriction of Commodore hardware. I quite enjoy the hybridization of both platforms, like that CGA Composite Artifact Color option that approximates the C64 color palette.🙂

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      I myself keep being impressed by the VDC chip, given its low adoption for graphics and games. :-)
      Thanks for your feedback!

  • @shaunbebbington6411
    @shaunbebbington6411 ปีที่แล้ว +1

    It's amazing how big a CGA card is compared to the C128 CDV chip and RAM.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      Absolutely. A couple of years make a big difference. Only two RAM chips required for the VDC, for example. Also, 3rd party vendors produced much smaller layouts.

    • @shaunbebbington6411
      @shaunbebbington6411 ปีที่แล้ว +1

      @@the8bittheory even still, I get the feeling that IBM over-engineered everything because I guess it was at the high end of the market, and could justify whatever price to its business consumers.

    • @shaunbebbington6411
      @shaunbebbington6411 ปีที่แล้ว

      @@the8bittheory also even more amazing what Atari did around 1978 with the Atari 400/800 series then, is it not?

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Oh yes, I think that is vastly underrated

    • @lovemadeinjapan
      @lovemadeinjapan 2 หลายเดือนก่อน

      @@shaunbebbington6411 Yes, and they were super flexible on the Atari 2600 too. The Commodore computers were totally rigid in comparisson. I think another machine that has a video chip that can bend like a rubber duck is the CPC. They could make it do insane vertical resolutions, like 3:4 vertical for Arkanoid, change palettes on line-to-line basis and 4 colour true bitmap modes.

  • @csbruce
    @csbruce ปีที่แล้ว +3

    18:29 A much more efficient way to do this doesn't use strings at all:
    VMW AP, CL(INT(B/16))*16 + CL(B AND 15)
    The INT() is only for clarity and isn't even needed, since subscripts will be 'integerized' anyway.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      Thanks, I‘ll try this absolutely.
      Your name sounds familiar. Did you write Zed?

    • @csbruce
      @csbruce ปีที่แล้ว +1

      @@the8bittheory: Yep. It'll be faster still if you assign 16, 15, and 1/16 to variables and use CL(B*var), where var = 1/16.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      @csbruce Nice!
      Yes, precalc makes it a lot faster. The disk image in the Github Repo also has a version that does everything through lookups. CGALOWRES3.PRG
      I should mention that in the next video, thanks!

  • @nst1nct
    @nst1nct ปีที่แล้ว +1

    Very nice! One further optimization you could do is to fill the entire bitmap with %00001111. If two pixels are the same color, just set the attribute to the same color for both foreground and background. This way you can clear the bitmap with fast block fills of %00001111 and only have to individually set the color attribute RAM bytes.
    Going beyond that, there is also a double-width mode with which you can do theoretically do a 320x200 mode, which only takes up 8000 bytes of bitmap, and then treat it as 160x100x16 as here. I can't recall what that does to the color attributes though. There's also something in my memory about timing weirdness in double-width mode which can result in it requiring doing a slightly smaller horizontal width. So in actuality it might end up being something strange like 304x200, leaving you with 152x100. I'm without a C128 at the moment (but expecting to have one again soon) so I can't reliably experiment to reproduce the mode. It's also entirely possible that I just wasn't adjusting something correctly and could've gotten 320x200 working reliably with different settings. Even with the VDC's limitations compared to the VIC-II's strengths, I still find it a fascinating chip, and think more could've and would've been done on the graphics and gaming side in the 80s and 90s if people had understood it better. It's great to see people like yourself doing videos like these, and I hope it'll inspire more people to see what they can make the VDC do.
    One more thing regarding the double-width mode is that since it reduces the bitmap to only needing 8000 bytes, I wonder if the mode I described above could be done on the 16K chip? With attributes taking up 8000 bytes, we'd be at 16000 total. Seems like it could be doable, but I may be missing something that would change the math.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      Thanks for the input!
      Double width mode also halves the color resolution, unfortunately. That would have been a great memory saver.
      Wrt 8000 bytes: if you‘re good with greyscale, you can really use textmode to fake graphics just as CGA does for the 160x100 mode.
      Also, thanks for the great feedback. I also hope that this inspires more people to look into the c128‘s unique capabilities.

    • @nst1nct
      @nst1nct ปีที่แล้ว +1

      @@the8bittheory Ah, thank you for correcting my flawed memory! Maybe you can also help me recall how attribute RAM works with interlace. Is it interleaved the same way as the bitmap is, so for example byte 1 of color RAM in 8x2 mode would choose the colors for lines 1 and 3, or does it behave in a contiguous way and it would color lines 1 and 2? I believe it's interleaved, but I don't trust my memory on it. Contiguous would be extremely useful, but seems unlikely.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +1

      Unfortunately, I haven’t found the time to look into interlaced mode yet. But it‘s on the list :-)

  • @lovemadeinjapan
    @lovemadeinjapan 2 หลายเดือนก่อน +1

    I would think that 640x200 in 16 colours should be possible, or 320x200x16 with dual page buffers or screen+sprite buffer, as the VRAM is 64kB. The VDC now feels a bit like a failure, and not an improvement. The only positive is no jailbars and chroma bleed.

    • @the8bittheory
      @the8bittheory  2 หลายเดือนก่อน

      You might be interested in the VDC-Modemania Demo. I think that shows the potential pretty well. Thanks for your input!

  • @CaptainDangeax
    @CaptainDangeax 22 วันที่ผ่านมา

    Hi.Just put my hands on a C128, I had a C64 when I was young (1983).I wonder whether it's possible to display 40x25 characters on the VDC, with 4 colors per character

    • @the8bittheory
      @the8bittheory  21 วันที่ผ่านมา +1

      You can set the registers so it displays 40x25. 4 Colors won‘t work in textmode, but 4 shades of gray should work

    • @CaptainDangeax
      @CaptainDangeax 21 วันที่ผ่านมา +1

      @the8bittheory thanx. And because I own french tv sets with scart connectors, I can enjoy sharp image on a lcd display. Scart is still the goto

  • @tarstarkusz
    @tarstarkusz ปีที่แล้ว +1

    1:50 This is wrong. CGA can display 16 colors in high res. Generally though, it is limited to color cells in alpha numeric mode (displaying the built in fonts). The color data only takes 4 bits per cell and there are only 2k cells.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      So it could if it had more RAM available. Is that what you‘re saying?
      Do you know of any CGA cards that came with more RAM?
      Thanks for your input, highly appreciated

    • @tarstarkusz
      @tarstarkusz ปีที่แล้ว +1

      @@the8bittheory Honestly, I think it was just a wording error or I misinterpreted what you said.. I was referring to text mode, which technically is running in 640x200 using 8x8 fonts and each cell can be any of 16 colors. I really should delete the comment. Sorry.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Don’t worry about that. Either way, your comment clarifies things. That’s good 👍🏻

  • @ingosevnik6773
    @ingosevnik6773 ปีที่แล้ว +1

    Warum ist dieses Video in Englisch während die vorherigen in Deutsch waren? Bin ein wenig verwundert 😅 Trotz alle dem wieder sehr informativ und interessant. Mir haben auch die vorherigen Videos sehr gefallen.😊

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว +2

      😁 naja ich hatte von Anfang an geplant, zweisprachig zu fahren. Zwei Tonspuren gibts leider noch nicht, englische Untertitel gibts aber schon bei anderen Videos. Und die machen fast die Hälfte der dortigen Besucher aus. Deshalb hab ich jetzt mal englisch gemacht. Deutsche Untertitel kommen aber noch.
      Freut mich dass es dir trotzdem gefallen hat. Danke für das Feedback 💪🏻

    • @danielmantione
      @danielmantione ปีที่แล้ว +1

      @@the8bittheoryDie absurde Situation ist, dass TH-cam gerade wegen der Sprachwahl das Video auch einem breiteren Publikum zeigt. An sich verstehe ich Deutsch genauso gut wie Englisch und könnte mir genauso gut das deutsche Video anhören. Allerdings bekomme ich das englische Video in meinen Vorschlägen zu sehen und so erfahre ich nun von der Existenz dieses Kanals.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Genau, das habe ich auch bemerkt. Ich werde aber wohl beide Sprachen beibehalten.
      Die Sprachversion, die als zweite kommt, hat immer den Vorteil dass Feedback von der ersten einfließen kann :-)

  • @michaelsommer3343
    @michaelsommer3343 ปีที่แล้ว

    Schade das die jetzt auf Englisch sind😔😔😔
    Englische Videos gibt es genug.

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Ich bin gerade am Experimentieren und hab auch das Video zum Microcompiler in beiden Sprachen veröffentlicht. Ich werd mal sehen wie groß der Aufwand für die zweite Sprache ist. Vielleicht gibts in Zukunft alle Zweisprachig (die zu Zeit der Gilden werden aber immer Deutsch bleiben)
      Danke für deinen Kommentar, sowas ist wichtig :-)

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Die deutsche Version ist schon in Arbeit. Wird diese Woche kommen

    • @michaelsommer3343
      @michaelsommer3343 ปีที่แล้ว +1

      Klasse Danke, das ist super. Ich bin von deinen Videos und der Tiefe so beeindruckt. Da kann man soviel lernen😃

    • @the8bittheory
      @the8bittheory  ปีที่แล้ว

      Danke, das motiviert :-)