Main

How performant is Zeal 8-bit Video Board? Check its features!

Get your Zeal 8-bit Computer motherboard on Tindie: https://www.tindie.com/products/zeal8bit/zeal-8-bit-computer-developer-edition-z80-based/ Hello world! The Zeal 8-bit Video Board is finally back in a video! In this video, I present all the features that are already implemented and that I plan to have in the first release. From text mode to graphics mode, discover the list of what it can do. In the upcoming videos, we will see how to program it and by making a demo for it. You can check the emulator source code here: https://github.com/Zeal8bit/Zeal-WebEmulator Join the community on: Discord: https://discord.gg/CtyGsSkzDY Github: https://github.com/Zeal8bit Twitter: https://twitter.com/zeal8bit

Zeal 8-bit Computer

2 days ago

Hello world. Today, I would like to show you the features of Zeal 8-bit video board As you may know, the motherboard is already in a release version, and the FPGA board was still under development. So today, I would like to show all the features that I implemented and that I consider feature complete, ready for release. This board is still a prototype. It's not the release one because there are a lot of things that are going to change, but it's already possible to use it to show you all the diff
erent features that I implemented for it. Ideally, what I would like to do is make a series of short videos, and through these videos, we will see how to make a small demo. Okay, so I'm going to show you the list of features that I implemented and are currently supported and which I consider will be in the first release. Let me connect everything and show you. So, I connected the PS/2 keyboard, the power cable, which is USB-C, and the VGA cable. Let's power on the board. Okay, as you can see, I
did not need to reset the board after powering the video board, and this is because now the FPGA is starting much faster than before. Also, there is a blinking cursor, and this is because Zeal 8-bit video board manages the cursor itself. Now the font also changed; the character set is now IBM PC-like. It's very close to it. Let's check the features. I'm still running Zeal 8-bit OS of course We have two resolutions supported: 640x480 and also a virtual resolution of 320x240. I say virtual resolut
ion because in hardware, it's still running at 640x480; it's just that each pixel is doubled We have text mode, we have 8x12 pixels characters We have a 256-character font customizable Any program can change the character font; it's just a table of 256 characters, and each character is 12 bytes In 640x480 mode, we have 80 columns and 40 lines, We have to divide both by two when we are in 320x240 mode We can scroll the screen, which means that when we are in 40 by 20 mode, this will let us show t
he hidden parts of the screen, and when we are in 80 by 40 mode, it will just wrap the screen. We have 4-bit colors for both background and foreground As I said, there is hardware cursor support, And all the registers for the text mode are accessible via both the memory bus and the IO bus Of course, we have the graphics mode; We have 16x16 pixel tiles. This has not changed We have a palette of 256 RGB 565 colors, and it's customizable, which means that any program can modify this palette We have
a total of 80 by 40 tiles, but not all of them are shown at the same time on the screen; We have only 40 by 30 tiles visible on the screen when we are in 640x480 mode and 20x15 tiles when we are in 320x240 resolution mode Again, we can scroll the screen in both X and Y in order to show the parts of the screen that are hidden The main mode is 8-bit color mode, which means that we have 256 colors that can be shown on screen at the same time, so up to 256 different tiles on screen We have one back
ground layer, one foreground layer with transparency. I'm back after correcting the bug Well, at least it shows that there are still some tests to do, so it's a good thing to try to make a demo; at least it will reveal other bugs that need to be fixed on the FPGA Anyway, so we have one foreground layer, as I said, with transparency, the layers can be scrolled independently We can have the foreground layer scrolled while the background layer stays still We also have a 4-bit color mode, so it mean
s 16 colors per tile and 256 colors per screen We have a total of 16 palettes of 16 colors, and the palette number is programmable for each tile, each tile can use its own palette In this mode, we have up to 512 different tiles that can be shown on screen at the same time, and we have a single layer for this mode Another major feature that is now present in this implementation is sprites We now have support for sprites; we have up to 128 visible sprites on screen, and they are always shown on to
p of the layers and unaffected by scrolling They can be placed anywhere on screen with a pixel granularity They don't need to be on a 16-pixel bound, contrarily to the tiles which means that we can have a Sprite that is half-hidden on the left side of the screen, and we will only see half of it, the right half, for example We can flip the sprites with a single bit, and we can flip it in both X and Y And of course, in 4-bit color mode, we can choose the palette for the sprite These are the featur
es that I plan to have on Zeal 8-bit video board release Of course, there are some things that will need to be fixed, as we just saw Maybe there will be more features in the future, but those are the features that I would like to test and have in the first release. So, in the upcoming videos, as I said, I would like to make a small demo to test maybe not all these features but most of them and show how they work. Of course, these are not the only features of the board; there are several features
 that I did not present here. I would like to concentrate on Graphics in this video, but of course, I plan to document all the features of the video board, and I also plan to implement them in the emulator. Anyway, that's it for this video. If you have any questions or suggestions regarding the video board or videos in general, feel free to leave a comment down below, and see you next time!

Comments

@JSRFFD2

This is an exciting set of features! Looking forward to the next videos in the series! Sprites sounds like an awesome feature. I don't know how hard it would be to make it configurable for a sprite to be on top of all the tiles, between the two tile layers, or below the tiles, to have some neat transparency effects.

@lawrencemanning

I was hoping for some demos, but this is still fantastic work! Hi “Zeal”! 😊😊😊

@kilianhekhuis

Sounds cool. If I'd change anything is to be able to have two sprite layers, one on top, and one between fg and bg layer. That's imho paramount for games if you have two tile layers.

@ser_olmy

This is seriously impressive. Congratulations! Some questions: - In text mode, does the screen scroll/shift by one pixel at the time, or by one 8x12 character? - Are the 16 text mode colours fixed, or can one pick 16 colours from a larger palette? - Are sprites available in text mode? - How large are the sprites? - How many sprites can appear on the same scan line? - Can the video board generate raster interrupts and/or VSync interrupts? - Does the video board provide any "accelerator" features, such as line/circle/triangle drawing, flood fill, blitting etc? I do have one request/criticism, though: I'd really, REALLY like to see a board with digital output rather than VGA. Rationale: VGA is legacy, and newer low-cost monitors either don't have it, or the built-in ADC is horribly low-quality and introduces very visible artifacts. (Speaking from personal experience here.) Besides, if you have DVI or HDMI output and need VGA, a $10 HDMI-to-VGA adapter will produce a very decent picture. However, if you have VGA and need HDMI, converters are either rubbish or quite expensive, and will in either case introduce lag.

@parkman29

Yeah I might make a game for this eventually! I have an idea for one but it will take a while to figure it out so don't get your hopes up

@martandrmc

I am very keen to understand how you managed the 128 sprites. Will you be releasing the HDL for the video module? Does the sprite system have a limitation on how many can be displayed per line like the SNES or is each one truly independent? Overall quite a good mix of video modes that will accommodate various pieces of software. Thank you for sharing!

@sanhua8337

wow, really want to try the graphics mode of this homebrew video card. My money is ready, when can I buy one?😊

@AK-vx4dy

What is puprose of tiles ? To limit memory usage ? or to enable by CPU animations ?

@crazyfurnaceguy1229

I think eZ80 can be more competent with this video board.🤔