Hardware Scrolling - VGA from Scratch - Part 4

preview_player
Показать описание

In the first three vga videos we built up the most basic stand alone video subsystem. At the end of the last video the freed up cpu time was put to use with our first animating graphics. Animation is where things start to get interesting and one of the most useful 8-bit era building blocks to that end is hardware scrolling. In this video we explore how to add this to the vga circuit.

0:00 Introduction
1:00 Counter initialization
2:38 More Breadboards
5:45 New Registers
10:20 Memory Mapped IO Discussion
15:54 IO Implementation
19:42 Initial Test Code
22:18 Smooth Scrolling!
24:18 Super wide scrolling! (Incremental update)
26:26 Vertical Scrolling
28:46 Main Demo
29:42 Boring James talking outro bit
Рекомендации по теме
Комментарии
Автор

In case you’re using that schematic at 17:30 to design the PCB, the middle IC has its ground tied to V+. Wouldn’t like that to kill a batch of boards.

Scrogan
Автор

OK, mind officially blown now. That’s impressive on a whole ‘nother level now!

DavidWilliams-rnuq
Автор

Absolutely epic progress!
It feels like you are truly approaching the point that the only thing holding you back from getting Metal Slug to run on this thing is actually programming Metal Slug in Sharman Assembly!

UsagiElectric
Автор

I am seriously starting to consider writing an emulator for your project so more people can write software for it. This has the potential to become an actual usable 8 bit system.
Considering how detailed your videos are it should be possible.

Artentus
Автор

<3 fanboying over you building the schematics as you make the breadboard, again, soooo good and the bit callouts in the video overlays... exactly my kind of accurate.

Your implementation of the 6502 is CRUSHINGLY "better" than every other build I have seen. It shows that you build games.

twobob
Автор

Thank you for sharing this amazing process! I’m vicariously living the continuation of my teenage passion of building stuff with 7400 chips in the days before microcontrollers, and game development in assembler close to the hardware. It’s inspiring me to revisit my own 2020 lockdown projects and finish them off, maybe with some videos too.

jimmy
Автор

This is one of the few channels that I am genuinely happy to see a notification from.

With the hardware so advanced, each new feature is stunning. Not only visually (that procgen game map is awesome), but also because of how educational it is to understand the details of how this worked in older games.

I'm in shock that this channel doesn't have many more subscribers yet.
Thank you very much for the great videos.

rauljvila
Автор

Very entertaining videos! I was about to ask about double buffering in the last video - then I saw the title of this one.
It’s really cool to see scrolling without needing to use tiles, unlike most “old school” game hardware.

jimmy
Автор

I’m still blown away at how you are able to figure all this stuff out, great work!

TheDefpom
Автор

Very nice! Good progress and the video was super watchable. Can't wait to see this come together on a PCB with tiling and sprites.

cskilbeck
Автор

When I saw that demo it reminded me of your amazing blended-texture 3D engine for SWIV 3D back in 1996. Incredible work James.

GlennBroadway
Автор

Good stuff James! This is easily my favorite video series on YT and it's always great to see the progress every new video. I have learned a lot from this whole project and I have to say it's really gratifying for me as a viewer to see a breadboard become a PCB, so I can just imagine what it's like for you. Keep it up!

datamoon
Автор

Nice work! Maybe you could have 2 modes? One for a live buffer to which you can put pixels / raster at low FPS and this mode at 60FPS for scrollers.

DamianReloaded
Автор

I'm really impressed! Hardware scrolling! WOW! I admit a lot has gone over my head in your explanations. I'll have to view the video again.... and again.

Автор

Very nice! I used to program for pre-VGA graphics cards so this brings back memories.

To smooth out the vertical scrolling, you could using a filter, like `scroll_y = f * tunnel_y + (1-f) * scroll_y` and then tune f (start with 0.1).

Dithermaster
Автор

Very impressive demo, James. Looks fantastic. I'm using memory mapped IO on my backplane build using 74688 8-bit comparators. A single IC gets me my 256 byte IO space. Then each IO device can either use another 74688 to get down to even a single byte of IO or you could use a 74138 to get multiple.

TroySchrapel
Автор

12:19 loading high gave me flashbacks from DOS time ! you just overwrite some of the bios shadow that won't be used anymore after boot, yay.
cool !

monad_tcp
Автор

Thanks James. That was really interesting.

helmutzollner
Автор

Looks like parrotise.
And i like the approach to reduce chip count using the left over gates.
Thank you for sharing :-)

daskasspatzle
Автор

Awesome stuff. Thanks James. I will need to view these videos again and again, Let the next one come!

your_utube