Get started with Zeal 8-bit Video Board and run your first game!

Sdílet
Vložit
  • čas přidán 11. 06. 2024
  • Hello, world!
    The Zeal 8-bit Video Board is finally available, you get yours here: www.tindie.com/products/zeal8...
    In this video, we will see how to get started with the Zeal 8-bit Video Board, how to install it and flash the motherboard to make the use of it.
    I also demonstrate how to use Zepto, Zealasm, and the Video Board SDK, which has several examples like classic Snake game.
    Links to the projects I talked about:
    * Zeal 8-bit Bootloader: github.com/Zeal8bit/Zeal-Boot...
    * Zeal 8-bit OS, a new OS for the Z80: github.com/Zeal8bit/Zeal-8-bi...
    * Zepto, a clone of nano text editor: github.com/Zeal8bit/Zepto/
    * Zealasm, a Z80 assembler: github.com/Zeal8bit/Zealasm
    * Zeal 8-bit Video Board SDK: github.com/Zeal8bit/Zeal-Vide...
    * Zeal 8-bit Emulator: github.com/Zeal8bit/Zeal-WebE...
    Thanks again to SpriteTM for his help on the hardware audio of Zeal 8-bit Video Board, check his website to see his projects: spritesmods.com
    Or his CZcams Channel: / @spritetm
  • Věda a technologie

Komentáře • 46

  • @Spritetm
    @Spritetm Před měsícem +7

    Haha, you're welcome! By the way, you may want to think about implementing Kermit or X- Y- or Z-modem rather than 'raw' UART transfers. First of all, they protect against bit errors in your serial protocol stuff, and secondly they stop you from needing to give the size of the file.

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      It's great to see you here! I didn't take time to check the different file transfer protocols over UART, I will definitely check, it's annoying to provide the size and UART data corruption is still possible in theory, mainly when the signals are software generated.
      I also added a CRC module in the video board, which can be very convenient to check the integrity of any stream of data

  • @SuperRadMaker
    @SuperRadMaker Před měsícem +3

    Such a cool project! I would love to play around with one.

    • @Zeal8bit
      @Zeal8bit  Před měsícem +3

      Thanks a lot! Actually, you can already start thanks to the emulator! 😄

  • @scifidad
    @scifidad Před měsícem +5

    This is amazing, and I can't wait to get involved. I've got a plan to make an integrated-keyboard case, as I love the idea of a little "all in one" like the C64s and friends of old. Well done! Love your work!!

    • @sanhua8337
      @sanhua8337 Před měsícem

      I also love the idea to put all in the 3D case, which is very nicely design and well printed in PLA material, totally homebrew, and it can turn on/off the board with a touch sensor, giving a modern touch to this retro computer. Astonishing 🤩

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      Thanks for your comment! Feel free the join the Discord if you need some help to get started
      When I started the project, I also wanted an all-in-one keyboard, but that would require more time, I don't want to postpone the release of the project anymore😄

  • @walrusbyte263
    @walrusbyte263 Před měsícem +2

    Super cool project! It's inspiring!

  • @hamzacasdasdasd
    @hamzacasdasdasd Před měsícem +4

    20 min ago i am lucky :) awesome project btw

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      Haha, thanks! You were fast!

  • @tov_marshal
    @tov_marshal Před měsícem +2

    It will be good to add “default” parameters for bios directives such as “bytes”. In order to user can input value or just press enter for default.

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      Thanks for your comment!
      I am not sure to understand what you mean, do you mean that the user should be able to input KB or MB, but by default the input is interpreted as bytes?

    • @tov_marshal
      @tov_marshal Před měsícem +1

      @@Zeal8bit Hello! I meant simplifying the user experience. So if you flash firmware, you can add default value of ROM address and give possibility to change it to user or just press "enter". This way the user won't have to remember and enter the same values ​​every time.

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      @@tov_marshal Oh I see, thanks for the clarification! It is a good point, adding a header in the bootloader binary would help a lot, the user would only have to transmit it and everything else is automatic (destination, size, etc..)

    • @jnharton
      @jnharton Před měsícem

      @@Zeal8bit
      That's certainly one way to do it.
      But I think they were saying that your program on the machine that handles flashing could take input from the user on what it should do with the received file.
      Doing so would in principle allow the user to request that any binary data be flashed to the rom, starting at an arbitrary address.
      -----
      I do think that the header approach is a good one, though.
      Instead of expecting the user to specify details, it would mean that you can't accidentally flash the binary data to the wrong part of the rom without modifying the generated binary first.

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      @@jnharton That's currently the case already, when flashing a binary to the ROM, the user can specify the destination address in ROM directly from the bootloader, hence my misunderstanding😄

  • @GianmarioScotti
    @GianmarioScotti Před měsícem +7

    Could you share something about the design of that cideo board?

    • @Zeal8bit
      @Zeal8bit  Před měsícem +4

      It is planned, I would like to write a technical manual about it to explain all the features and design choice. In the meanwhile I wrote a quick guide here: zeal8bit.com/getting-started-zvb/

  • @kilianhekhuis
    @kilianhekhuis Před měsícem +2

    Impressive!

  • @rehsd
    @rehsd Před měsícem +3

    Good stuff!

  • @MotownBatman
    @MotownBatman Před měsícem +3

    THIS IS W!ZARD!
    You have a Brain far smarter than I LOL

    • @Zeal8bit
      @Zeal8bit  Před měsícem +1

      haha no, it's more about the time invested in the project 😉

  • @____________________________.x

    This looks great, I’d noticed the hardware page earlier. Can this run CP/M? I wondered if you had any further software or hardware development in mind

    • @Zeal8bit
      @Zeal8bit  Před měsícem +2

      Oh yes, I still have plenty ideas about new software, improvement for the OS, the video board firmware and even new hardware modules. Regarding CP/M, it can run on the board, I did a demo in one of my older video but didn't go beyond because it was quite limited for my usage, I preferred to concentrate on Zeal 8-bit OS

  • @KostsovKonstantin
    @KostsovKonstantin Před měsícem +1

    Привет. Спасибо за видео и проект. Сколько Вам лет ? Думаю, что Вы молоды и не верю, что застали бум Z80 компьютеров.

  • @hasenbeck76
    @hasenbeck76 Před měsícem +3

    Ciao, this is very impressive project but I would like to ask how it is different or better than e.g. the agon lite 2

    • @Zeal8bit
      @Zeal8bit  Před měsícem +1

      From a hardware point of view, the Agon Lite 2 uses an ESP32 for the graphics, which is a dual-core 32-bit MCU @ 240MHz (much more powerful that the eZ80 itself). If I recall correct, the Z80 doesn't have control over the video RAM, it can only give commands to the ESP32 which itself will interpret the request and update the video RAM. You can see the ESP32 as a coprocessor in that case. This is not how video chips worked on the retro 8-bit computers (or retro consoles)
      The retrocomputers and retroconsoles (NES, Gameboy, GameGear, SNES, etc...) manipulate the VRAM directly from the CPU in order to generate an image on screen. For example, you provide a 16x16px tile by copying each pixel color to a certain part of the video memory. Then you write to another part of the VRAM to specify where you want this tile to be shown. In other words, you manipulate all the bits of the VRAM via the CPU (or DMA on more advanced computers) which themselves will be interpreted in a certain way by the video chip. This is exactly how the Zeal 8-bit Video Board works too. You have 128KB of video memory space that the CPU needs to manipulate in order to show something on screen.
      Not only you have full control of the video output, but the communication is done via the parallel bus, and not a serial protocol, so a single `out` or `ld` instruction on the Z80 is enough to show a character or control the cursor for example.

    • @jnharton
      @jnharton Před měsícem

      @@Zeal8bit The NES and SNES game systems don't actually have direct access to the video ram (aka VRAM), as I understand.
      Instead they utilize a special video hardware unit Nintendo calls (called) a PPU.
      And the PPU (Picture Processing Unit) doesn't actually have much VRAM at all, because the graphics data comes directly from the cartridge's "Character ROM" (organized as 8x8 tiles") when they are needed.
      Instead the very small amount of VRAM is used to store information regarding what tile should be drawn to which part of the screen (tile map?).
      So the PPU is basically drawing each frame by reading the needed data from ROM on the fly.
      -----
      You could see it as a crude solution or as a very clever solution that minimizes the hardware needed to get the desired results.
      For a much better (and very thorough) explanation, you can check out this website: www.copetti.org/writings/consoles/nes/

    • @jnharton
      @jnharton Před měsícem +1

      @@Zeal8bit Does your graphics card also implement some of tile engine/tile-based rendering?
      Or is that just easier to describe it's video menory in terms of tiles, rather than just as some sort of large framebuffer?

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      @@jnharton The Zeal 8-bit Video Board is only tile-based at the moment, so yes, we can say that it implements a tile engine (you can compare it to the Gameboy PPU)
      There is no framebuffer, in fact, it would take a lot of video RAM (300KB) and would be too big for the Z80 to handle at decent speed

  • @Mrshoujo
    @Mrshoujo Před měsícem +2

    Hope you have a source for Z80s since that announcement one company was going to stop making them.

    • @ser_olmy
      @ser_olmy Před měsícem +2

      Zilog are only ending production of the 40-pin DIP version. The PLCC version used by the Zeal (as well as the eZ80) are still being made.

    • @Zeal8bit
      @Zeal8bit  Před měsícem +1

      There are plenty of Z80 CPUs available on the market, in DIP and PLCC, for us hobbyists. In the worst case, there is still the Z180, which is in production and also available in PLCC, and in the case where it also get discontinued, there are FPGAs for a real 1-to-1 emulation

  • @ser_olmy
    @ser_olmy Před měsícem +3

    Any chance of a future version of the video board with a digital output? The VGA-to-digital converter in most modern TVs and monitors is pretty much an afterthought, and both the picture quality and lag leaves a lot to be desired.

    • @Zeal8bit
      @Zeal8bit  Před měsícem

      I considered it, the main issue I have is the licensing of HDMI. HDMI is NOT royalty-free, in theory, you have to pay to integrate it in a product. In practice, some say it is possible to have the connector but not use the HDMI protocol, and use the DVI protocol (TMDS) instead. I haven't found any official statement that allows this.
      Anyway, another possibility would have been to use DVI connector, but I have seldom seen DVI screens myself, it is easier to find a VGA screen. The remaining possibilities are using DisplayPort or even better USB Type-C, which supports TMDS too!
      In all cases, if I end up implementing digital output, it would be done through the extension/module port present on the video board (below the 3.5mm jack connector)

    • @ser_olmy
      @ser_olmy Před měsícem

      @@Zeal8bit I've seen plenty of products using the HDMI connector, but simply not advertising it as HDMI. In one instance, it was labeled "IMDH"!
      It's all about the trademark but really, the point is moot as DVI and DisplayPort are perfectly fine alternatives. Simple [X]-to-HDMI and [X]-to-VGA-adapters for both are readily available for pennies.

    • @jnharton
      @jnharton Před měsícem

      @@ser_olmy They're also needlessly complicated for a Z80 based computer, especially if the actual resolution is fairly low.
      And there is nothing simple about such an adapter, because unless the video card can secretly do VGA ("magic" adapter required that signals it should output VGA) the adapter actually has to convert hdmi output (digital, 4x differential signaling pairs) to vga output (analog rgbhv).

    • @ser_olmy
      @ser_olmy Před měsícem

      @@jnharton There's a reason why people in the retro community spend significant amounts of money on HDMI mods for old 8-bit systems (Atari, Commodore, Acorn, MSX etc). Besides VGA inputs being rubbish on modern monitors (if they have them at all), there's also interference, jail bars, non-trivial lag, and inaccurate colours. If this wasn't the case, there would be no market for the insanely expensive RetroTink.
      DisplayPort/HDMI-to-VGA adapters can be had for way less than $10 on AliExpress. I have a bunch of them, and they work just fine on everything from modern PCs to the C64 Mini.

    • @ser_olmy
      @ser_olmy Před měsícem

      ​@@jnharton If there were no major issues with hooking an analog video source up to a modern LCD screen, there would be no market for the very expensive RetroTink.
      The various Digital-to-VGA adapters are less than $10 on AliExpress, and they work fine with anything from a modern GPU to the C64 Mini. I can attest to that, as I have a bunch of them.