No video

[001] Making a Retro Video Display Processor

  Рет қаралды 5,166

rj45 Creates

rj45 Creates

Күн бұрын

Пікірлер: 28
@jasonbaumgarte6465
@jasonbaumgarte6465 3 жыл бұрын
Exactly what I've been trying to work on myself. I'm new to FPGA's so I've been scouring for sources like this for reference. Thank you so much!
@rj45Creates
@rj45Creates 3 жыл бұрын
Me too... specific technical documentation on the inner workings are hard to come by... hopefully I can help change that :-)
@jasonbaumgarte6465
@jasonbaumgarte6465 3 жыл бұрын
@@rj45Creates Very curious to see how you implement your solutions, I was shooting for 640x480 using an upduino, not enough ram for full bitmap mode tho. So far I just have solid colors displaying on the screen which can be updated via writing to a register. Been looking at the Mercury 2 which would allow me the benefit of also dropping my SPLD's for my somewhat complex addressing scheme on my 6502 (X16 compatible). I was looking at the ICE40 hx8k for this same purpose, but the options with enough IO pretty much come down to the Alchitry Cu, but alas those are not in stock anywhere. I started designing my own board around the HX8K, but all the dc decoupling, power timing and BGA form factor all add up to a bit of a turn off.
@rj45Creates
@rj45Creates 3 жыл бұрын
@@jasonbaumgarte6465 check out the icezero by trenz electronic.... 512 KB of SRAM and 4 pmods, plus the IO that goes to the raspberry pi. If you build a custom carrier board instead of a raspberry pi, that could be very interesting... that's my current leaning on a custom board
@javiergaliani8653
@javiergaliani8653 3 жыл бұрын
You: I'm going to do a VDP Me, an electronic engineering student: Yeah, this is pure gold, this will be awesome
@rj45Creates
@rj45Creates 3 жыл бұрын
I'm glad, yeah it will be fun :-)
@user-kh4kh2wl9p
@user-kh4kh2wl9p 3 жыл бұрын
I am very look forward to fellow this series. Thanks a lot!
@rj45Creates
@rj45Creates 3 жыл бұрын
You're very welcome!
@cbmeeks
@cbmeeks 3 жыл бұрын
I'm very interested in this series! I've been working on building a custom VDP using a micro-controller (Propeller) but I still am curious about the FPGA world. Personally, I'd like to see you build it as well.
@rj45Creates
@rj45Creates 3 жыл бұрын
Awesome! I will take your input into consideration. I will try something new in the third episode and see if it works better.
@TheSulross
@TheSulross 3 жыл бұрын
should come on over to FPGA world - have done software for 3 decades but very excited to now be dipping my toe into FPGAs
@jecelassumpcaojr890
@jecelassumpcaojr890 3 жыл бұрын
Great project! I imagine you will use two line buffers so you don't have to draw the sprites during the horizontal blanking. That also makes it easy to show the same line twice or more. It would really help the software if you implement collision detection. The original Gameduino, for example, allowed you to assign a two bit "class" to each sprite and then a register can have a bit for each pair of classes which get set when writing a pixel to the line buffer. Another thing that helps the software is an interrupt at the start of the vertical blanking. Some systems allow interrupts when drawing a selected line and use that to reconfigure the VDP for neat effects, but your "everything is a sprite" scheme can do most of these tricks in a more direct way.
@rj45Creates
@rj45Creates 3 жыл бұрын
Thanks :-) Collision detection would be very handy for a slower CPU for sure. I am not sure I can figure out an easy way to add it that wouldn't complicate the circuit a lot but we will see. And yes, IRQ generation is a must for sure.
@TroySchrapel
@TroySchrapel 3 жыл бұрын
Looks great. I was wanting to do something like this to replace my TMS9918 and try my hand at FPGA dev at some point.
@rj45Creates
@rj45Creates 3 жыл бұрын
Yeah, I feel like the VIC was a single IC, so then why not use an FPGA in a hobby computer build.... and well, they don't make brand new VDPs anymore that I am aware of.... eventually TMS9918s will be quite rare.
@cbmeeks
@cbmeeks 3 жыл бұрын
@@rj45Creates This is exactly why I want to learn more about FPGA's. The F18A is a good replacement for the TMS9918 but they are impossible to find these days (I have one). There needs to be replacement (and DROP IN replacements) for these chips. Including the VIC, VIC-II, etc.
@rj45Creates
@rj45Creates 3 жыл бұрын
@@cbmeeks Indeed. We do need drop in replacements for all of these chips. I don't really have the time to do that, but I do want to teach people how, so that hopefully we can have a bunch of projects to build replacements for these chips.
@CharlesHepburn2
@CharlesHepburn2 8 ай бұрын
So you went with a Alpha 68k/NEO-GEO approach for all sprites. This will limit the ability to perform parallax/line scroll effects, just as it did with the NEO GEO. However, you could simulate it using animated tiles. Is there a limit to the number of "background layers" you can display? I suppose the answer to that would be in your 800 sprite pixels per line rough estimate. Seems kind weak compared to the NEO GEO's 1,536 sprite pixels per line... although it was limited to 96 sprites per line. 256 sprites is probably fine, especially if they all can be of arbitrary size. I would have liked to see at least 1 tilemap/bitmap layer for parallax/line-scrolling. Hardware non-integer scaling, rotation and some translucency/alpha-channel abilities would have also been nice. Honestly, all of this has made me appreciate how powerful the NEO GEO was; it being designed by ADK in the 1988/1989 time period.
@stupid4President
@stupid4President 3 жыл бұрын
Very nice! Love to see where this is going, hopefully into something working :)
@rj45Creates
@rj45Creates 3 жыл бұрын
Well it works in the emulator, and the code looks like it will be easy to convert to circuits... but well.... It'll be fun, hopefully not too ambitious :-)
@TheDesignDevil
@TheDesignDevil 3 жыл бұрын
Can‘t wait to see this working. Very interesting project! But for a 8-Bit Computer like in the 1980‘s i think the Specs are to high. But let‘s wait.
@rj45Creates
@rj45Creates 3 жыл бұрын
The specs come from the fact that block ram in the fpga is a specific fixed size. So if we store sprite attributes in block ram, they are 256 words in size, so we might as well have 256 sprites. That doesn't mean we need to have 256 or 512 sprites, those are just reasonable maximum specs given the capabilities of the hardware. There is indeed something to be said for limits breeding creativity, and perhaps these specs are not limiting enough. I will try to make it configurable wherever that is easy to do and doesn't make the circuit more complex.
@naikrovek
@naikrovek 3 жыл бұрын
story mode vs. "watch me build it mode": I don't care, as long as I understand what you did at the end of the video.
@rj45Creates
@rj45Creates 3 жыл бұрын
Cool, yeah, I want to work on building my skill in documenting things. Having the freedom to build it first, clean it up and figure out how to explain it thoroughly I think will be good.
@genxtech5584
@genxtech5584 3 жыл бұрын
Ok I give up... I've been racking my brain all day and I can't figure out how you're going to get 512 variable size sprites rendered in a single frame! Leak some tidbits :)
@rj45Creates
@rj45Creates 3 жыл бұрын
You'd have to get pretty creative to make all 512 sprites appear on the screen in a single frame. But it should be possible. There is a limit of how many can be on a single scan line, so you would have to arrange them such that you make maximum use of that. That limit comes from the number of cycles in each scan line. There are ways to make maximum use of those cycles...
@_Balduino_
@_Balduino_ 3 жыл бұрын
Hi
@rj45Creates
@rj45Creates 3 жыл бұрын
Hi!
[002] Video Display Processor Drawing Pixels!
21:23
rj45 Creates
Рет қаралды 3,6 М.
Tutorial: Digital to FPGA 101
1:05:57
rj45 Creates
Рет қаралды 14 М.
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 47 МЛН
OMG what happened??😳 filaretiki family✨ #social
01:00
Filaretiki
Рет қаралды 13 МЛН
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 4,2 МЛН
Emulating TMS9918A/TMS9928A/TMS9929A In 'C'
27:14
Develop IT
Рет қаралды 661
[003] Video Display Processor Palette Lookup!
22:55
rj45 Creates
Рет қаралды 2,3 М.
The Z80's secret feature discovered after 40 years!
16:07
Andy Hu
Рет қаралды 744 М.
TMS9918A on Arduino
19:44
krallja
Рет қаралды 13 М.
VGA from an EPROM, is it possible.
15:04
DrMattRegan
Рет қаралды 53 М.
Open Source Analog ASIC design: Entire Process
40:11
Psychogenic Technologies
Рет қаралды 40 М.
I Designed My Own 16-bit CPU
15:46
AstroSam
Рет қаралды 2 МЛН
[01] Data Oriented C Compiler - Humble Beginnings
38:28
rj45 Creates
Рет қаралды 1,6 М.
I designed my own 8-bit computer just to play PONG
17:19
Build an 8-bit retro computer powered by a Z80 ! [Zeal 8-bit]
13:47
Zeal 8-bit Computer
Рет қаралды 93 М.
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 47 МЛН