EGA am C128? Sieht großartig aus!
19:41
EGA on the C128? And it looks great
18:11
Der Brauer Teil 6 - Der Marktplatz
25:41
Пікірлер
@herpederpe4320
@herpederpe4320 25 күн бұрын
Nooooo this optimization of BASIC seems like something you would find in JavaScript $A = "Hello" + ""
@the8bittheory
@the8bittheory 25 күн бұрын
Ha, right :-D
@Stingray64er
@Stingray64er Ай бұрын
Oh, please keep these fantastic C128 VDC vids coming! incredible, incredible work! 👍👍👍
@the8bittheory
@the8bittheory Ай бұрын
Thanks for the input. I‘ll definitely try to get back into the routine :-)
@networkg
@networkg Ай бұрын
I enjoyed the video. For the Commodore 64, I have two Basic favorites. The one that comes with the computer and the recently released Vision Basic. As a compiler is faster than Blitz and allows greater flexibility with graphics and inline assembly language programming.
@the8bittheory
@the8bittheory Ай бұрын
Glad you liked the video. I also enjoy Vision Basic a lot. I need to find some time working on something serious with it :-)
@hartman_75
@hartman_75 2 ай бұрын
In the late 80s I downloaded a copy of the Austro Speed compiler for C64 from the Quantum Link online service in the US. Insofar as I'm aware now, it was identical or nearly identical to Blitz! apart from the name, though at time I thought it was public domain software. I didn't use it a lot, as I mostly programmed in C128 BASIC, but I did find one great use for it. There was a Rogue-like RPG I really wanted to like called Telengard. It was commercial but written entirely in BASIC, and while quite good it played very slowly and was a test of patience. In 1982 when it came out, I'm sure people didn't have high expectations when it came to performance, but I came to the scene six years later and newer games written in assembly had already spoiled me. Running the Telengard code through Austro Speed made it play fast enough for me to really enjoy playing, and I was able to start making good progress, exploring many more levels of the vast dungeon in much less time. It ended up becoming one of my favorite RPGs, and if it hadn't been for that compiler it might've been something I only played a few times and then moved on.
@holgerburmester6205
@holgerburmester6205 2 ай бұрын
D.h. der VDC kennt keine Color-Cells wie der VIC-II?
@the8bittheory
@the8bittheory 2 ай бұрын
Es gibt schon auch Color Cells. Die sind aber anders angelegt als die am VIC-II. Deren Größe ist variabel und pro Cell sind nur 2 Farben möglich.
@Mr.1.i
@Mr.1.i 3 ай бұрын
3rd party developers really let that machine down the games could have been better than some nes titles but they only sold 2.5million c128s twice as many as a commodore 16 and that had over 500titles while the c128 had about 27 but thats commodore....they were funny buggers
@the8bittheory
@the8bittheory 3 ай бұрын
Right. But also, there was next to no documentation of the VDC chip‘s bitmap mode, or it’s 64kb capabilities, for example. So the chip just wasn‘t attractive to any game developer I think. Thanks for your input!
@Mr.1.i
@Mr.1.i 3 ай бұрын
@the8bittheory did u know that a plus 4 can intrupt the raster to produce a resolution of 496x320 graphics with the Ted chip
@Mr.1.i
@Mr.1.i 3 ай бұрын
@the8bittheory the +4 could use raster intrupt and achieve 320x496 they use 6502 assembly in this mode
@retrobitstv
@retrobitstv 5 ай бұрын
Super cool, I am really enjoying your work with the 128's VDC. Thanks for sharing!
@the8bittheory
@the8bittheory 5 ай бұрын
Thanks for the great feedback! Glad you enjoy it :-)
@csbruce
@csbruce 5 ай бұрын
8:36 There's less flickering if you copy the color attributes before the bitmap.
@the8bittheory
@the8bittheory 5 ай бұрын
I‘ll try that. Thanks for the input!
@gregcoons7308
@gregcoons7308 5 ай бұрын
this is just amazing!
@the8bittheory
@the8bittheory 5 ай бұрын
Thanks for the great feedback!
@ericanderson85
@ericanderson85 6 ай бұрын
I can't say I recognize him, but I look forward to finding out more.
@the8bittheory
@the8bittheory 5 ай бұрын
He‘s part of the Ultima 4 opening sequence. Video about that coming soon :-)
@Stoney3K
@Stoney3K 6 ай бұрын
I would guess the fade-in of the Ultima logo is done by covering the logo by less and less blocks of random black pixels, so basically doing a form of crude dithering. You could do it in reverse by grabbing random blocks of the logo from the back buffer and put them on the visible area of the screen, instead of blitting the whole logo as a whole. The "waving flag" effect could be done by shifting the scan lines left and right in an alternating fashion while copying in the logo.
@the8bittheory
@the8bittheory 6 ай бұрын
Yes that could work. The actual puece if code was already explained in another comment here, but it‘s probably not going to work that way on the Commodore. So, an alternate approach like yours will probably make sense. Thanks!
@Stoney3K
@Stoney3K 6 ай бұрын
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 6 ай бұрын
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.
@adrianbye830
@adrianbye830 6 ай бұрын
Great video!
@the8bittheory
@the8bittheory 6 ай бұрын
Thank you!
@adrianbye830
@adrianbye830 6 ай бұрын
Outstanding video, thanks for your hard work.
@the8bittheory
@the8bittheory 6 ай бұрын
Glad you like it. Thanks for the great feedback!
@oziphantom9465
@oziphantom9465 7 ай бұрын
ah so there is a work around, I was originally trying to get 160x100 mode working on a 16K chip, by using the offset mode, as I don't care about the bitmap data looping around in memory as the bitmap is identical for the whole screen. But I ran into issues, maybe the solution was to put the Attributes then Bitmap rather than Bitmap then Attributes. Does it behave the same on the other VDC chip? as it has the scrolling offset backwards it might change the fix required in this case as well.
@the8bittheory
@the8bittheory 7 ай бұрын
Interesting thought about the other VDC-chip. Unfortunately I can't verify that as I only own newer VDC chips. And Z64K doesn't offer different VDC-revisions afaik. How does 160x100 work on a 16k chip? I haven't found a way to do squeeze all the data in. Thanks for your input, highly appreciated!
@oziphantom9465
@oziphantom9465 7 ай бұрын
@@the8bittheory well if bitmap offsetting worked what you do put it in memory bitmap row attribute row bitmap roe attribute row now the trick here is you will run out of memory for the bitmap, however the bitmap is just XXXX0000 for every char on every line, so if the bitmap wraps around the 16K mark back to $0000 it will then just get the same bitmap data which is fine. But you then get a unique line for each attribute
@the8bittheory
@the8bittheory 7 ай бұрын
I think I understand. That could work. Address-Increment-per-Row set to 81 and visible columns to 79. Not for scrolling, but for having interleaved memory addresses. The start of Attribute-RAM would be at 0 Start of Screen-RAM would also be at 0. Bitmap data 0x0F is filling 80-159, 240-319, 400-479, etc (the "interleaved" screen-rows) Attribute data is FG/BG-color filled into 0-79, 160-239, 320-399, etc (the "visible" screen-rows) While this looks like visible and invisible memory areas are overlapping, it should actually be not. Because of the weird latching(?) behavior that's responsible for the 79-bytes offset between screen-ram and attribute-ram. Let me know if you get around to trying that :-) Maybe I'll find the time to try that, too
@the8bittheory
@the8bittheory 7 ай бұрын
I tried this now, but it only really works for the top half of the screen. However, I had to set both, starts of Attribute-RAM and Screen-RAM to 80 to make it look right. So, I'm still pretty sure I misunderstand something about memory alignment. We'll see ...
@oziphantom9465
@oziphantom9465 7 ай бұрын
@@the8bittheory there is something with the memory layout in 16K emulation with 64K ram installed which might explain why "half the screen works" maybe in that it doesn't give the same actual bits that you are skipping/rely upon in the latch issue?
@JustWasted3HoursHere
@JustWasted3HoursHere 7 ай бұрын
It's too bad that the C128's VDC chip was not utilized more by developers. I know the 8-bit guy's "Attack of the PETSCII Robots" for the C128 allows you to use a second monitor (which uses the VDC chip), but I can't think of another example, sadly.
@the8bittheory
@the8bittheory 7 ай бұрын
The c64 port of Eye of the Beholder also uses it for displaying the Automap. But it‘s only used as a secondary display, not fully using its potential. Thanks for your input!
@JustWasted3HoursHere
@JustWasted3HoursHere 7 ай бұрын
@@the8bittheoryNow that you mention it, I do remember reading about that. This is the home brew version of Eye of the Beholder, right? (The original version for the Amiga is my brother's all-time favorite game on any system ever. He used to sit and play that game for 10 or 12 hours at a time, or until our mom said, "Go outside and play for crying out loud!")
@the8bittheory
@the8bittheory 7 ай бұрын
@JustWasted3HoursHere Right, that‘s not an official release. Sounds like my mom 😁
@JustWasted3HoursHere
@JustWasted3HoursHere 7 ай бұрын
@@the8bittheoryThe homebrew scene is red-hot right now and I'm loving every minute of it. We're seeing what's possible when you can take your time and work on it until it's perfect, instead of being rushed so that it can be ready for the upcoming holiday season. Funny thing about my mom: She was always making fun of us kids when we'd play some of those old games and yell at the screen, "Oh come on! That guy was nowhere close to me!" etc. But, she's going to be 81 this year, and guess who discovered video games after she retired and now does the same thing? Yep! Also funny: She's played Tetris Attack on the SNES so much that I can't even beat her. She's an inhuman monster on that game! [side note: That's one of the best designed puzzle type games I have ever seen on any system.]
@AnnatarTheMaia
@AnnatarTheMaia 7 ай бұрын
With so many restrictions, this micro compiler doesn't really bring any advantages to just writing the code in assembler, for example in Turbo Macro Pro and targeting the C=128. It's basically in the same class as the cc65 C compiler, which does not have the basic float and double data types, and therefore cannot do floating point arithmetic, and doesn't come with libc, which pretty much defeats the purpose of writing software for the C=64 in C, or compiling existing body of C software for the C=64. These pieces of software are the antithesis to core UNIX software design principles.
@the8bittheory
@the8bittheory 7 ай бұрын
From today's perspective that's completely right. Back then, the micro compiler was a type-in program. It basically came for free (well, the price of the magazine), which was one of the main benefits, I guess. All the restrictions only make it useful for targeting very specific tasks, not for writing full programs. Any probably only for people who aren't familiar with assembly language.
@AnnatarTheMaia
@AnnatarTheMaia 7 ай бұрын
By the by, "variable" in English is pronounced the same way as in German, the only difference being that the "a" in "va" is short, not long. Pronounced "Weriable".
@the8bittheory
@the8bittheory 7 ай бұрын
I'll keep that in mind, thanks! Highly appreciate your feedback :-)
@AnnatarTheMaia
@AnnatarTheMaia 7 ай бұрын
@@the8bittheory ...and I appreciate how much you go into detail, and also that you've decided to do a series of videos on the C=128, because it's not a well documented, well understood system, and there should be more (modern) software for it to exploit its full capabilities in comparison to the C=64.
@joshhiner729
@joshhiner729 7 ай бұрын
Your vdc videos are the most exciting thing for me on youtube currently. Thank you for these videos and any future videos!
@the8bittheory
@the8bittheory 7 ай бұрын
Glad you like the content! It’s amazing stuff for me, too :-) Thanks for the amazing feedback!
@Barcrest
@Barcrest 7 ай бұрын
When you copy the logo and paste it an you copy out psudo random parts and past them on so it appears in blocks. You would need to create a data table of the copy positions but it should work and look passible.
@the8bittheory
@the8bittheory 7 ай бұрын
That‘s probably the best way to do this. Maybe I can even extract the data table from the original DOS source code Thanks for your input!
@TheSteveTheDragon
@TheSteveTheDragon 7 ай бұрын
What? The c64 was famous for its arcade ports and fast games. It was comparable to the nes.
@the8bittheory
@the8bittheory 7 ай бұрын
Absolutely agreed. Did I say something different?
@TheSteveTheDragon
@TheSteveTheDragon 7 ай бұрын
@@the8bittheory I might have misunderstood, but I thought you said the c128 was good at playing slower type games implying it couldn't handle faster arcade type games.
@the8bittheory
@the8bittheory 7 ай бұрын
You understood right. I was referring to the VDC chip, but probably wasn‘t very clear on that. With the VIC-II, the c128 is great for fast paced action and arcade games.
@TheSteveTheDragon
@TheSteveTheDragon 7 ай бұрын
@@the8bittheory Oh, I see! Yes, I can see that. I'm not too familiar with the C128 architecture, but the vdc was the 128s text display chip? Ok, I can definitely see how that applies then. Thanks for clarifying!
@the8bittheory
@the8bittheory 7 ай бұрын
You‘re very welcome. Thanks for your input!
@mrsid6581
@mrsid6581 7 ай бұрын
And fwiw, drawing the Ultima IV logo the same way as the DOS version is going to be hard to do with that VDC basic extension, as you would probably have to draw it pixel by pixel, which will be too slow. Looking at the drawing code of the DOS version, it blits the logo 56 times, and uses the table at D_32D0 to mask out different pixels in each step. It's the code at C_17C1 that's ANDing the mask for each of the four bit planes that are being written. At offset 56, that table contains a mask of ffffh, so then all pixels will be set.
@the8bittheory
@the8bittheory 7 ай бұрын
Thanks for providing these insights! Right, I'm also pretty sure the Ultima IV Logo won't work that way by using VDC-Basic.
@mrsid6581
@mrsid6581 7 ай бұрын
The Ultima IV logo doesn't appear in one go, because it takes to long to copy the data within one frame, so you can see it for one frame without the correct attribute data. I'd try to copy the attribute data first, before copying the pixel data.
@the8bittheory
@the8bittheory 7 ай бұрын
Thanks for the input, I didn’t think about that before :-)
@Stoney3K
@Stoney3K 6 ай бұрын
You may even be able to exploit that to accomplish the fade-in effect. Since you can just place the pixel data without modifying the attribute data, you can put random data blocks in the attribute memory to manipulate the color (going from black to the eventual colour), and use the pixel data to shift the logo around in the meantime, so you don't have to render in the entire logo pixels every time.
@SledgeFox
@SledgeFox 7 ай бұрын
Happy and healthy new year! Very interesting video, you got a new subscriber! Thank you very much!
@the8bittheory
@the8bittheory 7 ай бұрын
Happy New Year! Thanks for the great feedback and welcome on board :-)
@brendanstone3073
@brendanstone3073 7 ай бұрын
Your study of EGA and the C64 is amazing! It brings up questions I have had recently about the relative merits of an early x86 PC with EGA versus the Commodore 64. It seems as if the C64 was a really great gaming computer for its time. Better than the early IBM PC with CGA. With EGA, it becomes somewhat closer. A 286 with EGA could run games like Keen 1. However, that setup is much more expensive than a C64, and came much later. So it feels as if the value proposition of a C64 was very high relative to IBM, for a long time. EGA cards were bitmap-based in their drawing, I think. VIC-II had HW sprites. So the latter would have been far more efficient for platforming and other functions. I'm just wondering, what do you get for all that $$$ and giant EGA card in an IBM? It seems EGA had an advantage in bitmap graphics. If you look at some of the adventure games that ran on it, they were more detailed and higher-resolution than what a C64 would produce. And 8086 with EGA could run a game like F-19 Stealth Fighter sharper than C64. But it shouldn't have been so close! I guess maybe an IBM PC with composite CGA-out would have been a closer match to a C64. The Commodore had many games optimized for it come out, but IBM PC with composite CGA had far fewer games that were optimized for that specific configuration. Otherwise, gaming on that particular model of PC could have been better. So it's partly about optimization.
@the8bittheory
@the8bittheory 7 ай бұрын
I agree with everything you said. And you can even add sound and music to the comparison. For gaming, the c64 was the much better option for the price. Maybe the c128 with it’s 80 column output is closer to the PC‘s definition. With regards to gaming, I like the CGA-composite you‘re bringing up. This wasn’t an option for non-NTSC regions, btw. Thanks for your input!
@dgmt1
@dgmt1 4 ай бұрын
First of all in 1986-1987, which is when both PC gaming took off and the C64 was at its peak, a turbo XT clone with 640k 8088@8mhz and EGA cost just over US$500. By 1989-1990 a 286@12-16mhz with VGA cost the same. By comparison a c64c with a 1541c disk drive was $420. PC clones were actually cheaper than the C128 (with a disk drive) while offering more memory, faster & cheaper storage options, better resolutions, better keyboards, and the ability to run real software. In terms of gaming, the c64 was definitely better than the original IBM 5150 but it was purely a business machine not intended for gaming or the home market and hence games in 1981-1985 were never made to take advantage of its capabilities. However a turbo XT with EGA was capable of running games well beyond what the C64 could do and was actually reasonably competitive with the ST and Amiga other than sound. For examples Prince of Persia, Quest for Glory, Monkey Island, Ultima 6, F-19 stealth fighter, Pools of Radiance, and Commander Keen to name a small list. Even older titles like Elite and Ultima 5 played far better on a turbo XT thanks to the faster cpu, higher memory and much faster storage. A fast 286 with VGA was actually more capable than the Amiga 500 hence why the PC game market started to pull ahead of the Amiga one by 1990-1991.
@mondo8bit
@mondo8bit 7 ай бұрын
Very nice video, great work! 👍
@the8bittheory
@the8bittheory 7 ай бұрын
Thanks for the great feedback! Glad you like it
@rhialtothemarvellify
@rhialtothemarvellify 7 ай бұрын
So did you report this bug to the VICE team? If not, it will obviously not be fixed...
@the8bittheory
@the8bittheory 7 ай бұрын
Not yet, I still have to check with daily builds. But you‘re right, I need to do that. Thanks for bringing this up!
@tiiff1
@tiiff1 7 ай бұрын
Interesting stuff! 👍 ps. There is a loud 15.5khz flyback transformer whine in the background whenever there is a monitor on the screen. Unfortunately I am still "fortunate" enough to hear it. :D I would suggest filtering the audio track with a low-pass filter whenever there is a monitor on the video. Or maybe even low-pass it all the time.
@the8bittheory
@the8bittheory 7 ай бұрын
Thanks for bringing this up. I‘ll definitely do that. I‘m one of the fortunate ones it seems 😁
@tiiff1
@tiiff1 7 ай бұрын
​@@the8bittheory Haha, the sound brings back the memories. Always remember hearing that as a kid but we all were used to it anyways so I didn't really bother so much.😄 Oh and happy new year!
@the8bittheory
@the8bittheory 7 ай бұрын
Thanks! Have a happy new year, too !
@Grunchy005
@Grunchy005 7 ай бұрын
"Bounces" has a fantastic fade intro that I was always fascinated by. I'm certain it must be done by algorithm, I would love to one day sort out how it's done. (It's all over within 3 seconds into this video, the entire fade is 14 frames long. You can step frame-by-frame with , and . buttons.) kzfaq.info/get/bejne/psyVqb2mu66tZZc.html
@the8bittheory
@the8bittheory 7 ай бұрын
Oh yes, this is really great. I'd also love to know how these are done. I'll have to dig into that :-) Thanks for bringing this up!
@miselzivanovic2181
@miselzivanovic2181 7 ай бұрын
I am repeating myself, but imagine now C128 on the left screen with 4MHz :-)) And on top of that with 121 colors from Plus 4. haha... That would have blew the competition away with ease back in the days! Thanks for the efforts btw. It is always interesting to see what Commodore computers were since always capable to do even with limited resources.
@the8bittheory
@the8bittheory 7 ай бұрын
Actually, MHz don‘t compare 1:1 between 6502 and 8088 architectures. Given the PCs 4,77 MHz, the c128 with 2MHz should be an equal contender (the MHz Ratio changed with 286s, though)
@miselzivanovic2181
@miselzivanovic2181 7 ай бұрын
Well, it obviously can be done. Nice work! ... VDC is a complicated piece of hardware and accessible only through two registers (if i can recall correctly). Running unfortunately only at 2MHz instead of 4MHz. The engineers did the same mistake with VIC and C128 normal mode in general. They did add tons of extras directly accessible with better BASIC. Built-in ML monitor. Added more memory, better keyboard compared to C64 and they put even C64 inside of C128. But they made a catastrophic mistake. You had to drive with Fiat Punto to explore the big C128 area. Same car as you had with C64, but slower in C128 mode! That's unforgivable and only a few million sold C128 are good evidence for it. Otherwise every existing C64 owner would back then also buy C128 after selling his C64. After all that were more than 20 million units. Old customers could use all the C64 software and would hold this in his hands: Imagine: 4MHz 8502 CPU inside of a C128! Without defect Z80, and without incompatible VIC! That would have written totally different story for us as customers and also for the Commodore company back then. And make C128 significantly cheaper and better accessible. I see more than 20 million sold units because developers would have surely develop also for the C128 and could still sale C64 software because of the compatibility. But 1MHz C128??? What were they thinking (Management and Engineers). Hope some smart guy (not me, haha...) can develop a module for Commodore C128 with 4MHz 8502 CPU and 4MHz compatible VIC version. I would immediately buy it because i love my C128 even if it's full of mistakes 😁
@the8bittheory
@the8bittheory 7 ай бұрын
Right, more speed would have been great. I think the story, why things went the way they did, has already been told by Bil Herd. It‘s still a great machine though, I completely agree with that last sentence of yours :-) Thanks for your input !
@miselzivanovic2181
@miselzivanovic2181 7 ай бұрын
@@the8bittheory haha...true, the story went the way it did. But if a broken C128 close to 40 years later can be fixed, it should be possible to also fix the C128 story itself. I bet Bil Herd could do that, to give a new birth to C128 with less mess inside, and focus only on what is of importance (as mentioned)... People made CommanderX16 now, but new C128 (with mentioned specs) would be far more interesting (at least for me)... I thought CX16 could be a good replacement, but hmmm... The VERA part is more complicated than the C128 VDC especially if one is not 24/7 CX16 user. My first Commodore was C128 (parents bought me that) and then i had no idea what it was (back then i was a concerned little village citizen in Croatia, we had no road and availability of electricity was a lottery show ;-). Instruction was in German language. I had only C128, and small b/w (i still have that one) TV)... Anyway, as said i hope someone, anyone can create this module (4MHz CPU and working VIC) for C128... That would be amazing! Guten Rutsch und all the best wishes bald im neuen Jahr.
@the8bittheory
@the8bittheory 7 ай бұрын
Thanks! Best wishes, too!
@brendanstone3073
@brendanstone3073 7 ай бұрын
@@miselzivanovic2181 The problem with any new-build Commodore computer today is in the video chip. Nobody is producing or can affordably produce the specialized video hardware. Something like a VIC-II chip is very difficult to produce affordably. If you want a custom chip for a better C128, that is going to cost even more. That is why CX16 went with FPGA for the video card - it's the only way to do it. And it's not inauthentic - some 1980s hardware used 'chip-on-a-chip' type solutions. But yes, VERA is very capable, and with capabilities from late 1980s. I don't know if a C128 with better chips and video card would have been possible or not. Would have to review Bill Herd's story again. I think that maybe the Commodore retro community should have come together to release some kind of enhanced C64. Something with more RAM, dual SID chips, basically all the improvements that already exist. But standardized in one build. That way, it would be reverse-compatible with C64 software. But you could also release new programs for it, taking advantage of added RAM and dual-SID. Kind of a "C64 NEXT" like the ZX Spectrum has. Except with real hardware [since most compatible parts are in production.]
@miselzivanovic2181
@miselzivanovic2181 7 ай бұрын
@@brendanstone3073 CX16 is an interesting machine, and VERA is a very capable chip. It's probably going to be something out of it with a proper basic/compiler solution. Because not everyone can do ML coding, but everyone wants to have fun nevertheless. You can have that only with proper dev tools (unless you do cross-compiling. Then you need just the HW... Retro feeling ? Not at all... ) Back in the days they had 8502 with 4MHz for C128, however they took the 2MHz version instead, combined with the incompatible VIC is then what we got eventually. Probably was that a cheaper solution then taking 4MHz which also wouldn't work with VIC. Better C128 is actually already existing (Mega 65). Basic version 10 and 40 MHz speed (also 1, 2, 3.5 MHz frequencies possible). That's then good, but it's stealing the 8-bit magic. That's why I said C128 4MHz and compatible VIC. Everything else can remain the same... Retro feeling preserved, happy about 4MHz and...don't even need 121 colors from the previous version Plus 4. 15 colors is enough. Can even be a FPGA solution. Shouldn't cost more than CX16. Well, can be that someone can make this wish come true for the next Christmas 🎄🎁 😁 Thanks for your feedback. Have a great new year and hopefully we will be blessed with 4MHz for C128 😉
@shaunbebbington6411
@shaunbebbington6411 7 ай бұрын
It is a shame that the VDC display wasn't more accessible. Some people tell me that some VGA monitors can support the C128's VDC, but I didn't find any that work in the UK, so I'm guessing it was NTSC machines that worked with some VGA monitors, not PAL machines.
@the8bittheory
@the8bittheory 7 ай бұрын
I think support for 15kHz hor freq is the key requirement. With that, only a few resistors are required to make a working connection. Otherwise you need at least a scandoubler to make it work.
@AlexEvans1
@AlexEvans1 7 ай бұрын
VGA monitors that support the necessary scan rates exist, but are unusual. It is basically a CGA signal.
@Pseudo_Lisa
@Pseudo_Lisa 7 ай бұрын
Beautiful scenery. Thank you ! xoxo
@the8bittheory
@the8bittheory 7 ай бұрын
Glad you enjoyed it!
@fradd182
@fradd182 7 ай бұрын
I have to admit, EGA version has warmer and more vibrant colours.
@the8bittheory
@the8bittheory 7 ай бұрын
Right, at least on PAL C64s. Supposedly, NTSC C64s had at least a bit more vibrant colors. Really good point, thanks for bringing this up!
@litjellyfish
@litjellyfish 7 ай бұрын
I would not call it scrolling flawlessly until I see some smooth scrolling. Maybe it’s the videos capture issues. But all I see is some rather choppy scrolling compared to what the VICII hardware scroll does
@the8bittheory
@the8bittheory 7 ай бұрын
Correct. It‘s not smooth scrolling. I was so excited that I didn‘t make a difference. Smooth scrolling is possible but requires use of Assembly language. Not sure when I will be able to cover that. Thanks for your input!
@litjellyfish
@litjellyfish 7 ай бұрын
@@the8bittheory haha no worries. Also depending on the setup of the hardware do asm really make it possible? I mean do the chip have enough brute force power to push the requirement data in 60fps? One thing is the code to excite the data copy to the chip. That for sure could be speeds up. Still really cool to see someone taking time to explore this “forgotten” chip :)
@the8bittheory
@the8bittheory 7 ай бұрын
The VDC has a shift register for pixel-level scrolling, just like the VIC-II. For setting this from 7 to 0 (or vice versa), vblank needs to be leveraged. Otherwise it jitters. 60 fps won’t be possible. I think for fullscreen, 10 is a more realistic number.
@litjellyfish
@litjellyfish 7 ай бұрын
@@the8bittheory yes that was I feared. For me 10fps is unbearable. 25fps can work depending on scenario tho
@the8bittheory
@the8bittheory 7 ай бұрын
The VDC chip will never become an Arcade powerhouse 😁
@jumhed994
@jumhed994 7 ай бұрын
Programming was always a mystery to me. Tbh, i still dont know how C64 games were programmed.
@the8bittheory
@the8bittheory 7 ай бұрын
But you‘re very interested in the topic anyways, right? Game programming is probably the most attractive field in programming, but also the most complex one.
@lurkerrekrul
@lurkerrekrul 7 ай бұрын
I had a pirated copy of Blitz back in the 80s, but beyond using it on BASIC programs, I never knew how to use it. I knew it had various options and other things you could do with it, but since I never had a manual for it, all I could do was run it on a BASIC program and hope it worked. If I recall correctly, I used it on a few simple conversion programs I made. Like one to convert Printshop graphics from Commodore to non-Commodore printer formats by doubling all the pixels horizontally. Or my program to convert a copy of Championship Lode Runner into a data disk for use with the original game (so you could use the built-in cheats). I seem to recall having some other BASIC compiler as well, but I forget what it was called. Then there was one published by Compute!'s Gazette. It only worked on a subset of BASIC commands, but produced really fast results. I think it converted the commands directly to ML, which is probably why it only allowed the use of certain commands.
@the8bittheory
@the8bittheory 7 ай бұрын
Conversion programs are a great use case :-). For both, Basic and Basic compilers. I also made a video about micro compilers. That‘s probably close to the one from Computer Gazette you mentioned. Thanks for your input!
@BikeNutt1970
@BikeNutt1970 8 ай бұрын
The 960x540 mono with blue or red really looks SO crisp
@the8bittheory
@the8bittheory 8 ай бұрын
Good to know, I‘ll have to give that a try ☺️ Thanks for the input!
@PCRetroTech
@PCRetroTech 8 ай бұрын
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 8 ай бұрын
Your channel is a great source of inspiration for this. Thanks for the great feedback!
@gsestream
@gsestream 8 ай бұрын
so why not compile to assembler, directly, from basic. no interpreter required. way too complex "compiler solution". so you already have the code and jump tables, why not compile to c64 assembler directly. even the unoptimized assembler code translation is way faster. this was totally non required speed up software, you are smart. also modules/libraries work if you...
@the8bittheory
@the8bittheory 8 ай бұрын
There‘s other compilers that do directly compile to assembler, so you can do that - at least for the c64. But on the c128 options are really limited. Thanks for your input!
@gsestream
@gsestream 8 ай бұрын
like vision basic but that seems to lack some parenthesis functionality, of basic, so not full basic compatibility, I dont care of the extra if the basic is not working@@the8bittheory
@gsestream
@gsestream 8 ай бұрын
but if so and common, why would blitz even exist, are they all paid@@the8bittheory
@the8bittheory
@the8bittheory 8 ай бұрын
You might want to take a look at MOSpeed. www.c64-wiki.com/wiki/MOSpeed
@gsestream
@gsestream 8 ай бұрын
how about c/c++ to c64/128 asm/executable?@@the8bittheory
@nst1nct
@nst1nct 8 ай бұрын
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 8 ай бұрын
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 8 ай бұрын
@@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 8 ай бұрын
Unfortunately, I haven’t found the time to look into interlaced mode yet. But it‘s on the list :-)
@andrewdunbar828
@andrewdunbar828 8 ай бұрын
wizzable is a great word!
@the8bittheory
@the8bittheory 8 ай бұрын
😁 it‘s just really hard to use it correctly. That made my day, thanks for bringing it up 😁
@andrewdunbar828
@andrewdunbar828 8 ай бұрын
@@the8bittheory I used it in an AI image generator prompt and liked the result (-:
@the8bittheory
@the8bittheory 8 ай бұрын
Ha, nice!
@gsestream
@gsestream 8 ай бұрын
basic(s) is never useless
@the8bittheory
@the8bittheory 8 ай бұрын
Fully agreed. Leaves mental capacity for spotting the actual problem :-) Thanks for your input!
@victokra
@victokra 8 ай бұрын
Congrats! Nicely done. Now use the soft-scroll-registers to make it smooth 🙂
@the8bittheory
@the8bittheory 8 ай бұрын
Yep, I’m curious to see how that’s going. Thanks for the input!
@AS-ly3jp
@AS-ly3jp 8 ай бұрын
Freakin awesome! Now we only need someone to finally make more new C128 games! I would pay for it... Thank you for this great research and video!
@the8bittheory
@the8bittheory 8 ай бұрын
Oh yes! I‘m also planning a video on games that would work great on the c128‘s VDC chip. It would be a bridge between 8 and 16-bit. Thanks for your feedback!
@AS-ly3jp
@AS-ly3jp 8 ай бұрын
@@the8bittheory Thank You!
@svenvandevelde1
@svenvandevelde1 8 ай бұрын
You know ... I'm 53 now and I always wondered if scrolling was possible on the VDC. Note you've proven that it is!
@the8bittheory
@the8bittheory 8 ай бұрын
Thanks, makes me kinda proud to have that answered to you :-)
@kenknight5983
@kenknight5983 8 ай бұрын
Nice! Show Bill Herd. Now I'm also wondering if Attack of the Petscii Robots' form of scrolling can use these modes. Show the 8 Bit Guy
@the8bittheory
@the8bittheory 8 ай бұрын
Maybe I‘ll do that… Thanks for your input :-)
@the8bittheory
@the8bittheory 8 ай бұрын
Btw: Attack of the Petscii Robots only scrolls part of the screen. I don‘t think that this way of scrolling can help there. I‘m planning to cover that in a dedicated video.
@barryon8706
@barryon8706 8 ай бұрын
That's some nice detective work!
@the8bittheory
@the8bittheory 8 ай бұрын
Haha, thanks! Detective work actually really describes it best, I totally lack technical knowledge about how chips work :-). Thanks for the feedback!
@MrDarchangelomni
@MrDarchangelomni 8 ай бұрын
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 8 ай бұрын
Right. And MCGA was never released as a dedicated adapter, it was only available on VGA cards. Thanks for your input!
@MrDarchangelomni
@MrDarchangelomni 8 ай бұрын
@@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 8 ай бұрын
Interesting, I wasn't aware of that. Thanks for bringing this to me!
@botoxedballsack7391
@botoxedballsack7391 8 ай бұрын
I liked hte Commander X16 part!
@the8bittheory
@the8bittheory 8 ай бұрын
I'm also pretty excited about it. Thanks for the feedback!