EGA on the C128? And it looks great

Ғылым және технология

Errata: VGA was actually introduced in 1987, not in 1989!
German version of this video here (including a small scene featuring my Amstrad PC1640 showing Ultima V EGA on a CGA monitor):
• EGA am C128? Sieht gro...
We compare capabilities of EGA graphics cards with the VDC-Chip.
Not surprisingly, the VDC-Chip holds up pretty well.
Programming is done in Commodore Basic 7, introducing a 30-year old Basic extension called VDC-Basic.
A german version of this video is in the works.
Sources shown in the video:
github.com/The8BitTheory/vdc-ega
VDC-Basic documentation, sources and binaries:
github.com/The8BitTheory/vdc-...
CGA-Low Resolution Video:
• C128‘s VDC vs IBM XT‘s...
The video about RLE Encoding in Commodore Basic:
• C128 Basic 100x faster...
8-Bit Show and Tell KZread Channel: @8_Bit
The EGA Palette is taken from moddingwiki.shikadi.net/wiki/...
The Commodore 128 image has been created by Evan Amos and has been taken from de.wikipedia.org/wiki/Commodo...

Пікірлер: 114

  • @DaneArcher
    @DaneArcher7 ай бұрын

    I have to admit -- Seeing C128 content is usually an automatic Subscribe from me :) Aside from all that, this is some great work, I love to see what the 128s can actually do after 35 years of "It can mimic the C64's VIC-II really well."

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I so hear you 😁 Thanks for your feedback!

  • @kbrsretrogameroom327
    @kbrsretrogameroom3277 ай бұрын

    Very interesting video. I have a C128 in my collection and always found it fascinating what can be done natively on the machine. It's a shame that more companies didn't take advantage of it on the late 80's.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I fully agree. I wish I had that Basic on the c64. At least we can explore all the things today that companies missed back then :-)

  • @PCRetroTech
    @PCRetroTech5 ай бұрын

    That ends up looking quite acceptable in the end. Congratulations! It's great that there is someone doing this on the C128 with a focus on clear, understandable code. This is the sort of thing that will get more people trying things out themselves, which will really enhance the community. Thanks for what you are doing!

  • @the8bittheory

    @the8bittheory

    5 ай бұрын

    Your channel is a great source of inspiration for this. Thanks for the great feedback!

  • @Automatik234
    @Automatik2347 ай бұрын

    It's awesome to see good content creators from Austria. It's been time!

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Thanks for the great feedback :-)

  • @ktaylor9095
    @ktaylor90957 ай бұрын

    EGA adaptors organized the 16 color graphics modes in bit planes, with 4 layers of 8 adjacent pixels. I believe the Windows bitmap format of that era did the same.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Right, the ressource files of EGA games are pretty much always organized in color planes. The bmp files I worked with here did not though. Maybe there‘s a difference in the various flavors. Thanks for your input

  • @8_Bit
    @8_Bit7 ай бұрын

    I've been meaning to learn more about the VDC for a long time, so these videos on the subject are very welcome. I'd love to see more about the scrolling capabilities of the VDC, and also to see how fast the screen can be updated. If a VDC version of Ultima V was made, would it be able to scroll the tilemap and refresh the screen at an acceptable speed? Would all the tiles be able to fit in video RAM? Thanks for the video and your mention of my channel!

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Nice, I'm really looking forward to seeing more C128 content on your channel. Some of your questions will be answered in the next video. And tile-based rendering on the VDC is probably the most exciting topic, I can't wait to get to it :-) Thanks for your input and feedback!

  • @2150dalek
    @2150dalek7 ай бұрын

    I remember the Commodore, Amiga computers. They were very useful for creating video slides, presentations for us in the early 90's at Motorola. I liked the cruder graphics ( at the time I didn't know any better) and had a great time playing around with it's abilities.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Oh yes. Graphics from that time aged really well. I fully share that view

  • @RetroDawn

    @RetroDawn

    7 ай бұрын

    The Amiga had dramatically better graphics capability than the Commodore 128 (and used the Motorola 68000 series, rather than the MOS 6502 series of the 64/128). That's awesome that you still used Amigas at Motorola in the early 90s. Perhaps they were AGA Amigas (1200/4000), which had even better graphics capabilities.

  • @gabor222
    @gabor2227 ай бұрын

    8:39 I think that you can store the image in 16 colours in GIMP by selecting Mode - Indexed and setting up the parameters there.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    That definitely works. Gimp can‘t set color constraints though, right? Thanks for you input!

  • @pamelax64
    @pamelax647 ай бұрын

    C128 is by far the most unexploited power from commodore,i had one.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Yes. I agree.

  • @n00blamer

    @n00blamer

    6 ай бұрын

    @@the8bittheory I remember some magazine article back in the day about 4096 color hack mode for C128, was it some alternating-frames trick or did I just hallucinate that. Ever heard anything like that?

  • @the8bittheory

    @the8bittheory

    6 ай бұрын

    I think that used adjacent pixels to generate a dithering effect. On CRTs that‘s blurry, so it looks like a different color. Won‘t work so well on LCDs though.

  • @BikeNutt1970
    @BikeNutt19705 ай бұрын

    The 960x540 mono with blue or red really looks SO crisp

  • @the8bittheory

    @the8bittheory

    5 ай бұрын

    Good to know, I‘ll have to give that a try ☺️ Thanks for the input!

  • @barryon8706
    @barryon87067 ай бұрын

    320x200/16 looks pretty good!

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I fully agree. You have a great taste when it comes to graphics 😁

  • @Grunchy005
    @Grunchy0057 ай бұрын

    I wonder if this is what is going on with the RAD cartridge for C128 when they play Doom? The game is running on the R-Pi but then they render the video frames back to VDC and I guess it keeps up to 60 fps.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    RAD-Doom is leveraging the VIC-II chip and even on a C128 it runs in C64 mode. But besides that, afaik they directly render the image data into the Video Memory area, you're right. More information here: github.com/frntc/RAD-Doom

  • @ozzyyzzoful
    @ozzyyzzoful7 ай бұрын

    be sure there are really 16 colors in your image by counting : colors -> remove unused colors then save image as -> bmp windows indexed. The trick is sometime a color index above 16 is used .. it could be black and u can't notice it.. u can also change a suspicious black color to flashy green or anything to spot them. gl

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Thanks. I‘ll try that

  • @ozzyyzzoful

    @ozzyyzzoful

    7 ай бұрын

    @@the8bittheory yeah it works , it's just a hidden color index used into your bitmap

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    @@ozzyyzzofulawesome, thanks!

  • @csbruce
    @csbruce7 ай бұрын

    At 640 bitmap pixels wide, you could do twice as fine horizontal dithering compared to EGA. Also, if 8×2 color cells only takes 8kB of VRAM, 8×1 would take 16kB, and 4×1, if that can be done, would take 32kB and still fit into the 64KB VRAM.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    You‘re right. Planet X3 does dithering in 640x350 mode I think. Well worth a try. 8x1 is possible, but you have to set the register to 0 during vblank and set it back to 1 before the end of it. The max horizontal resolution is reduced to ca 480 pixels then, however. Less than 8 pixels horizontally can be set but doesn‘t work. The display goes blank immediately. But yes, the 64k really allow for a lot of possibilities, leaving all of CPU RAM available for the program and data.

  • @stevegray8801

    @stevegray8801

    7 ай бұрын

    @the8bittheory I have successfully reduced the character width to 7 pixels. I could not get 6-pixels to work, but I'm no expert on the VDC registers. Any time you mess with the screen geometry the chip can lock up.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    @stevegray8801 yes it‘s so easy to break the display. Amazing you managed to get char width down to 7 pixels. Any code you can share?

  • @glenndoiron9317
    @glenndoiron93177 ай бұрын

    The combination of a lack of a raster interrupt, lack of sprites, and (to a lesser extent) metastability issues of the interface made sure the VDC wouldn't be a big target for games in any event.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    It‘s definitely not everyone’s favorite chip. And it‘s for sure not made for arcade games. Definitely a blocker back then. But very worth taking a deeper look today, under different circumstances :-)

  • @glenndoiron9317

    @glenndoiron9317

    7 ай бұрын

    @@the8bittheory Would have been quite a nice chip if the issues had been fixed. It had hardware block copies, too.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    @glenndoiron9317 oh yes. Block copy will be a significant topic on one if the upcoming videos.

  • @valenrn8657
    @valenrn86577 ай бұрын

    IBM PGA was released in 1984 and it has 256 colors from 4096 color palette.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Never heard about PGA before. Thanks for mentioning!

  • @grzegorz__
    @grzegorz__7 ай бұрын

    The funny thing is that C64 Ultima gfx to me looks better :) Color limitations sometimes introduce mysterious vibe, consistency :) Great video!

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I tend to agree for the fullscreen artwork. There‘s something about the c64‘s aesthetics. However, for in-game graphics. EGA matches my taste much more. Thanks for your input and feedback!

  • @madcommodore
    @madcommodore7 ай бұрын

    VDC = VERY expensive monitor to see the display. Nobody wanted to spend £550 on a C128D AND then £300 on the Commodore 1901 or an EGA PC monitor. That's why nobody bothered making VDC game.

  • @DonVintaggio

    @DonVintaggio

    7 ай бұрын

    That coupled to the C128 having the C64 100% compatibility mode made developing for native C128 worthless; and the "business" target Commodore intended the C128 to be was a joke: they only included a Z80 for CP/M mode, which only covered a dozen slow and very limited text-only programs.

  • @madcommodore

    @madcommodore

    7 ай бұрын

    @@DonVintaggio If the C128 could run at 2mhz mode AND use the VIC-II chip at the same time then yes it would be worth it to do 128 only games. But it can't so all the 128D will ever be is a 128k expanded 1mhz Commodore 64 if you want to use it on a TV. I assume had a 2mhz VIC-II existed they could have used more than half the bits of the 8bit colour RAM and therefore a larger palette. The C128 is something Commodore made from the original cancelled Commodore LCD motherboard according to Bil Herd on YT C128 Animals Group 25th anniversary video. The Z80 only on the C128 because they couldn't get the Commodore 64 CP/M cartridge to work. It's a bit of a mess really. Still it sold more than ALL Amstrad CPC home computers alone, almost as many as the 7 different versions of the Sinclair/Timex computers worldwide. It's just an awkward design and few developers could do much more with a 128k 1mhz C64 so they didn't bother. Rescue on Fractalus on a Commodore running faster than the Atari 800 version would have been nice but it would only be possible via the VDC and then nobody would really buy it if they needed an EGA RGBi digital monitor to play it on their £280 C128 :)

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I agree, the monitor was probably the main blocker for the c128 to be adopted by game manufacturers. I think the 1901 went from $ 700 in 1986 to less than $ 300 in 1988. I think the 1084 was introduced in 1987 at roughly $ 500. Also, most people probably didn‘t bother with upgrading to 64k of VRAM. I‘ll cover these points in a future episode, thanks for your input

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I agree. A 2 MHz VIC-IIe would have been a game changer. Improved Color RAM access might have allowed games like Sonic without REU.

  • @madcommodore

    @madcommodore

    7 ай бұрын

    @@the8bittheory I haven't checked what screen mode Sonic 64 is using but if it's character based 1kb screen 2mhz video and color RAM access for a good coder is enough probably. Knowing Commodore though. Would be interesting to compare VDC Law of the West visuals possible with the standard VIC-II hi-res 8kb bitmap screen + sprites the C64 version used. Law of the West is probably the most damaging game, graphically speaking, to rival 8 bit systems.

  • @EgonOlsen71
    @EgonOlsen717 ай бұрын

    Actually, VGA was introduced in 1987, 89...

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Ah, thanks for setting this straigt. You're right, I got that wrong somehow...

  • @n00blamer
    @n00blamer6 ай бұрын

    Ultima V had native C128 mode: used extra memory to avoid swapping disks and had music too.

  • @the8bittheory

    @the8bittheory

    6 ай бұрын

    Correct. That‘s mentioned after about 45 seconds in the video.

  • @Stoney3K
    @Stoney3K3 ай бұрын

    Wasn't one of the VDC's shortcomings that it didn't have the performance compared to the VIC? A lot of games took heavy advantage of the VIC's hardware capabilities to make them run fast and smooth, I have no idea whether the VDC was also somewhat capable of doing that, or if it was more of a 'dumb' display adapter that just displayed whatever you put in VRAM and not much more. PC's didn't really have that limitation since the EGA was already pretty much a dumb adapter from the start and CPU's were fast enough to handle the simple bit-banging method of generating graphics, so it didn't need any accelerating features like hardware sprites. With regards to graphics quality games like Sierra or LucasArts adventures would really have shined on the C128. Imagine "The Secret of Monkey Island" releasing a few years earlier with Michael Land's music on (stereo?) SID sound.

  • @the8bittheory

    @the8bittheory

    3 ай бұрын

    It‘s mainly the missing sprite capability and the lack of raster interrupts that really limit the chip. In-memory operations are ok in speed, I guess. And 64k of VRAM make up for a lot of things. It‘s no arcade chip, though. EGA was no better, you‘re right. But the 286 and 386 have much more horsepower to make it shine. Soft-sprites are no problem with sufficient processing power. LucasArts games should have worked. Sierra not so much because the vector drawing doesn’t go well alongside the color-resolution limitations of the VDC.

  • @MrDarchangelomni
    @MrDarchangelomni6 ай бұрын

    320 x 200 x 16 is still CGA, 320 x 200 x 256 onscreen out of 262,144 colors (18 bit palette) is MCGA, EGA supports: 640 × 350 × 16 colors on screen out of 64 colors

  • @the8bittheory

    @the8bittheory

    6 ай бұрын

    Right. And MCGA was never released as a dedicated adapter, it was only available on VGA cards. Thanks for your input!

  • @MrDarchangelomni

    @MrDarchangelomni

    6 ай бұрын

    @@the8bittheory that is close to true, Ps/2 line had dedicated mcga that were not vga, because there is a big difference... you can play some vga softwares over mcga, but they have to follow certain memory rules... resolution can not exceed 320x200 and it must not use more than one memory page, and none of the vga specific control registers. My model 30 is MCGA only and I believe 1 or two other Models came with Mcga only... but since IBM was trying to isolate itself from the clone market, no plans were made to implement this on an ISA bus, so VGA being so close to the standard could emulate mcga for the software that needed it it on a clone.

  • @the8bittheory

    @the8bittheory

    6 ай бұрын

    Interesting, I wasn't aware of that. Thanks for bringing this to me!

  • @loganjorgensen
    @loganjorgensen7 ай бұрын

    2:51 That's kind of the curse of EGA lol, how the typical CGA monitor use cut off the full 64-color EGA system palette from ever being used 99% of the time as there are only a handful that do support a switching EGA monitor option Eg. Ivan 'Ironman' Stewart's Super Off Road, thus EGA being CGA default colors. So for one the video card costed more, two not a lot of games actually supported it's full potential, and three by the time VGA monitors with backwards compatible modes became common it was too late. A very botched DOS video card generation.😒 6:46 Yeah that particular limitation is quite bespoke, reminds me of the color byte setup of the MSX/Colecovision/Adam, I think manual intervention is the only solution. That overall conversion protocol is just complicated enough that I think an automated tool is in order for more people to use this format ijs. I see some people complaining about the old cost restraints of using the VDC but CRT use is rarer now, I like my tubes but even I take into account LCDs and how things look on them since they are so commonly used now. Better to use the chip full now rather than almost not at all like it was in the past. Same can said with other things like the Amiga 500 it is not a one-button joystick platform, never has been, so stop treating it as such for past reasons with future projects. Great stuff.🙂

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    That's absolutely correct: I own a PC1640 that features an EGA card, but I only own the CGA monitor. And I'm really happy that I can play virtually all EGA games. Right, monitor constraints are a thing of the past. I'm also thinking about doing a video that shows all the modern display options for the VDC chip. While I own a number of CRTs, LCS just take less space and are less noisy (my kids hate the high-pitched sound). Time to take the C128 to the 21st century :-) Thanks for your input!

  • @loganjorgensen

    @loganjorgensen

    7 ай бұрын

    Lol that is hilarious, for the life of me I don't remember CRTs making noise as a kid and now I'm too old to hear it anyway heh.😂 For me the constraints of EGA was a hindsight thing, my buddy had some older monitors but I started with VGA.@@the8bittheory

  • @rubberduck4966
    @rubberduck49667 ай бұрын

    320x200x16colors was also possible in pre-EGA times for example on the Amstrad PC1512 or Tandy. EGA is 640x350x16 of a palet of 64. So no - the C128 is NOT Capable of doing this.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    You‘re right, it‘s not. But it can be really close in many cases and close enough in even more of them. Thanks for your feedback!

  • @kargaroc386
    @kargaroc3867 ай бұрын

    "Serie" isn't the plural of series, the word you're looking for is episode! If you're looking to get raw bytes out of an image and you don't want to export as raw data, you'll want to use .tga files, since they're pretty simple, and don't do stupid stuff like scanline pixel alignment or vertical mirroring.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    I‘ll keep that in mind, thanks for the input!

  • @MaxQ10001
    @MaxQ100017 ай бұрын

    The game does not use the VIC2 chip in a good way. The graphics could have been so much better.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Well, I also liked Ultima IV‘s look more. But then I also like V better than VI. So, they moved away from the VIC-II‘s sweet spot in my opinion. Thanks for sharing your thoughts!

  • @terfy
    @terfy7 ай бұрын

    I'm still waiting on a new XBOX 360 E slim with 7nm processor.

  • @areksoft
    @areksoft6 ай бұрын

    Great video. Your voice has WAY to low volume though.

  • @the8bittheory

    @the8bittheory

    6 ай бұрын

    Thanks! I‘ll make sure to get the volume right going forward! Highly appreciated!

  • @axtrifonov
    @axtrifonov7 ай бұрын

    Afaik you can't change palette on EGA in 320x200 mode.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Oh that‘s interesting. That would answer the color choice of games. Thanks for letting me know

  • @az09letters92

    @az09letters92

    7 ай бұрын

    You can select 16 colors out of a palette of 64 colors in EGA 320x200 mode.

  • @JimLeonard

    @JimLeonard

    7 ай бұрын

    @@az09letters92No, you can select from the full 64-color palette in EGA high-res 640x350 mode only. 640x200 and 320x200 are limited to the 16 text colors (although you can change any palette index to any other, so crude palette cycling effects are possible).

  • @az09letters92

    @az09letters92

    7 ай бұрын

    @@JimLeonard That's crazy. I could sworn I've written 320x200 16 color mode code in the nineties that changed the palette. Although I tested it on a VGA adapter...

  • @JimLeonard

    @JimLeonard

    7 ай бұрын

    @@az09letters92 VGA is not EGA ;⁠-⁠)

  • @wiwingmargahayu6831
    @wiwingmargahayu68316 ай бұрын

    wow

  • @the8bittheory

    @the8bittheory

    6 ай бұрын

    Right? 😁

  • @First_Ninja
    @First_Ninja7 ай бұрын

    Why do you use past tense in your video? Have all C128s vanished? Are all copies of Ultima 5 erased? Have all EGA graphics cards been tossed in the trash?

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Hm, good point. I‘ll check that :-) Thanks for bringing this up.

  • @First_Ninja

    @First_Ninja

    7 ай бұрын

    @@the8bittheory Thanks! Other than that, your video is really interesting. Here's hoping someone will port King's Quest to the C128! 👍

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Sierra AGI games should be doable, I tried converting Space Quest artwork for example. The rendering process would need to be different though. But I‘m planning on touching that. Thanks for your input!

  • @First_Ninja

    @First_Ninja

    7 ай бұрын

    @@the8bittheory Rendering process? You just earned yourself a subscriber! 👍

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Well, I might be mis-using the term, but AGI games use vector graphics. The c128 would need to work with bitmaps for various reasons. I‘ll touch that briefly in the upcoming video. Glad to have you onboard 👍🏻

  • @kenknight5983
    @kenknight59837 ай бұрын

    Now figure out how to make text mode scroll sideways

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    The answer to this is in the works :-). Stay tuned, it‘s actually not too hard on the VDC chip.

  • @kenknight5983

    @kenknight5983

    7 ай бұрын

    @@the8bittheory It's a challenge I put to 8 Bit Show and Tell, as I think Splatform would look really good in that mode. He doesn't know how, so this could be very interesting

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    Thanks for bringing this up. I wasn‘t aware of Splatform so far :-)

  • @TanjoGalbi
    @TanjoGalbi7 ай бұрын

    How can you like one font over another when THEY ARE BOTH THE SAME IDENTICAL FONT?!!!! 🤣🤣🤣🤣🤣🤣 Don't believe me? Pause the video where you have the side-by-side comparisons and look closely! lol It may be that the screen space allows for more text per line on the 16-bit version so you are perceiving that difference and attributing it to the font by mistake. Also, the 16-bit version seems to have a brighter white colour which makes the font look bolder.

  • @the8bittheory

    @the8bittheory

    7 ай бұрын

    You‘re right, the difference only comes from Vice vs Dosbox. I only found out after. Fonts are the same, I only preferred how Vice was rendering it ;-) Thanks for your feedback, highly appreciated :-)

Келесі