Hallo allemaal,
Ik ben van plan om een 6502 home computer te bouwen. Ik wil de computer graag aan kunnen sluiten op een 'moderne' vga monitor. Nu ben ik al een tijdje de video's van Ben Eater (https://eater.net/) aan het volgen in zijn video's sluit hij zijn computer aan op een vga monitor het is echter nog geen perfecte oplossing en nog lang niet wat ik voor ogen heb. Ik zou namelijk mijn computer ook als een game console willen gebruiken.
Nou zoek ik een eenvoudige oplossing om een VGA monitor aan te kunnen sturen met een 6502 processor waarmee ik bijvoorbeeld een 2d game zou kunnen maken. Nu heb ik al van alles voorbij zien komen zoals FPGA's waarmee je een oplossing zou kunnen maken maar ik zie ook voorbeelden waarbij men een Atmega gebruikt om video te genereren. Ik heb een Atmega328p liggen waar ik eventueel iets mee zou kunnen maar ik heb geen idee of wat ik wil daarmee mogelijk is eventueel met behulp van andere IC's.
Game consoles zoals de NES hadden een coprocessor voor het genereren van video zou ik zoiets kunnen doen met een Atmega328p?
Op http://tinyvga.com/vga-timing zag ik dat je met een een 40MHz klok een beeld van 800X600 beeld zou kunnen genereren zou je dan met een 20MHz (dat is wat de Atmega328p maximaal aankan) niet een beeld van 400X300 kunnen genereren?
Mocht dit niet mogelijk zijn zijn er dan andere eenvoudige en goedkope oplossingen? Met een FPGA zou het mogelijk zijn maar dat lijkt mij een dure oplossing ik heb wel wat goedkopere FPGA's gezien maar ik heb er niet veel verstand van dus ik heb geen idee of die geschikt zijn.
Alvast bedankt!
Ik weet niet of die dingen er nog zijn. maar een 6847 is een videoprocessor, zo zijn er wel meer typen.
In mijn herrinering is de pixel-klok van VGA minimaal 31.5MHz, dus dat gaat met een ATMega328 niet lukken.
Ik zou eens in de 32bit ARM hoek kijken, ik denk dat er wel een ontwerp bestaat voor VGA uit een Raspberry Pico ofzo.
Bij die laatste krijg je gelijk genoeg geheugen voor een fatsoenlijke framebuffer.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
hardbass
PE2BAS
Ik zou kijken of je idd de video chip kan krijgen die in die tijd veel in dit soort PC's zijn gebruikt. De voornaamste reden is dat ook de bestaande software dan compatible is.
Een andere oplossing zou wellicht zijn om een video chip in een fpga te proppen. Misschien is dit ook wel ergens kant en klaar te koop?
(The 8 bit guy op yt heeft ook best wel van van dit soort dingen ge-reviewed)
[Bericht gewijzigd door hardbass op (11%)]
Ik zag zelf ook de Arduino MKR Vidor 4000 voorbij komen die heeft HDMI en een FPGA (Intel Cyclone 10CL016) ingebouwd hij is alleen nogal prijzig (voor wat ik wil) en ik vond de documentatie niet heel uitgebreid. Maar misschien wel een optie?
Op 26 juli 2022 12:08:07 schreef blurp:
In mijn herrinering is de pixel-klok van VGA minimaal 31.5MHz, dus dat gaat met een ATMega328 niet lukken.Ik zou eens in de 32bit ARM hoek kijken, ik denk dat er wel een ontwerp bestaat voor VGA uit een Raspberry Pico ofzo.
Bij die laatste krijg je gelijk genoeg geheugen voor een fatsoenlijke framebuffer.
Bedankt voor de tips blurp ik ga er zeker naar kijken.
Volgens het lijstje dat ik noemde is het afhankelijk van welke resolutie je voor ogen hebt. Ben Eater krijgt het voor elkaar om een beeld van 200X150 te krijgen met 10MHz. Met 20MHz zou je dan 400X300 voor elkaar moeten kunnen krijgen dat is wat mij betreft voldoende die oude game consoles zaten daar nog onder.
Zo'n Raspberry Pi Pico is inderdaad wel een mooie en vooral goedkope optie voor zo'n 5 euro heb ik er al een. Ik zag al voorbeelden waarbij deze werd gebruikt om een VGA signaal te genereren.
hardbass
PE2BAS
Ik weet niet hoe goed je bent met zaken als fpga's en of je interesse hebt om daarmee te spelen. Als je hier nog niets van weet zou ik het afraden en enkel iets kopen als het out the box doet wat je wilt.
Maar als je het wel leuk vind om daar mee bezig te zijn, er zijn steeds meer betaalbare ontwikkel bordjes te koop met een fpga erop. Bijkomend voordeel, je kan de 6502 ook in de fpga proppen. Hier heb je een voorbeeldje hoe je dat kan doen:
http://searle.x10host.com/uk101FPGA/index.html
50 euro, Arduino compatible:
https://www.tinytronics.nl/shop/en/development-boards/microcontroller-…
20 euro, HDMI bordje:
https://nl.aliexpress.com/item/1005003152104886.html
18 euro, iets beter als ik het zo snel zie:
https://nl.aliexpress.com/item/1005003803994525.html
Op 26 juli 2022 13:27:30 schreef hardbass:
Ik weet niet hoe goed je bent met zaken als fpga's en of je interesse hebt om daarmee te spelen. Als je hier nog niets van weet zou ik het afraden en enkel iets kopen als het out the box doet wat je wilt.Maar als je het wel leuk vind om daar mee bezig te zijn, er zijn steeds meer betaalbare ontwikkel bordjes te koop met een fpga erop. Bijkomend voordeel, je kan de 6502 ook in de fpga proppen. Hier heb je een voorbeeldje hoe je dat kan doen:
http://searle.x10host.com/uk101FPGA/index.html50 euro, Arduino compatible:
https://www.tinytronics.nl/shop/en/development-boards/microcontroller-…20 euro, HDMI bordje:
https://nl.aliexpress.com/item/1005003152104886.html18 euro, iets beter als ik het zo snel zie:
https://nl.aliexpress.com/item/1005003803994525.html
Bedankt hardbass, ik heb er weinig ervaring mee het enige wat ik eens heb gedaan is wat HDL code schrijven. Als software ontwikkelaar ben ik op zich niet bang om code te schrijven of nieuwe syntax te leren alleen kan ik er geen soep van maken wat de minimale hardware specificaties voor een FPGA zouden moeten zijn. Ik zie dat deze FPGA boards allemaal uit China komen in Nederlandse webshops zie ik ze niet of hele dure boards.
Ik denk dat het de Raspberry Pi Pico gaat worden die is goedkoop, gemakkelijk te bestellen en te programmeren zo te zien.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Voor velen een stuitende combinatie...
(een 6502 icm een Rpi...)
Dat beetje rekenwerk kan de Rpi dan ook nog wel overnemen, dan kun je de 6502 er los insolderen 'voor het gezicht'...
@Arco: Als het alleen maar gaat om 6205 software te draaien is een emulator sowieso het meest praktisch.
Als het gaat om de lol van het bouwen van een 6205 based-systeem is iedere combinatie met modernere chips natuurlijk toegestaan. TS wil vast geen VGA signaal om een glazen beeldbuis aan te sturen...
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Het "ik bouw m'n eigen computer" is een instructieve bezigheid. RAM, ROM, CPU etc. Doe je dat met een moderne Intel CORE7 CPU, dan gaat het zowiezo op niets uitlopen. Vandaar dat je zoiets doet met jaren-tachtig-CPUs. Toen was zo'n project nog haalbaar.
Als je daarna er "weinig mee kan" is de lol er snel af. Dus een "video out" er op maken heeft wel z'n nut.
En dan kan je "strict" zijn en zeggen: de rest is met jaren-tachtig-chips gemaakt, dus dan moet de video-out-module dat ook zijn. Of je kan zeggen: Ik vind het prima om voor dat deel "moderne tools" te gebruiken.
TS zit kennelijk in dat laatste kamp. Laat hem toch...
[Bericht gewijzigd door rew op (15%)]
Op 26 juli 2022 14:04:20 schreef Arco:
Voor velen een stuitende combinatie...(een 6502 icm een Rpi...)
Dat beetje rekenwerk kan de Rpi dan ook nog wel overnemen, dan kun je de 6502 er los insolderen 'voor het gezicht'...
Ik snap wat je bedoeld hoor maar als ik echt een authentieke oplossing zou willen zou ik ook een oude monitor moeten kopen die een PAL of NTSC aansluiting heeft. Oude video chips zijn moeilijk of niet aan te komen. VGA is al heel modern voor een 6502 lijkt mij. Het maakt mij niet zoveel uit als ik maar iets werkends krijg met de 6502 als CPU ik heb een 62256 ram en een 28c256 rom. Het gaat mij eigenlijk vooral om iets te hebben om mee te spelen wellicht dat ik er later nog iets anders mee ga doen. Ik heb ook nog een Z80 liggen die ik er misschien ook nog op de een of andere manier bij wil gaan gebruiken maar dat is volgens mij ook als vloeken in de kerk
.
Op 26 juli 2022 14:26:43 schreef Arco:
(is zoiets als een straalmotor op een postkoets monteren...)
Awesome! https://www.motor1.com/news/376941/jet-powered-amish-buggy-video/
Op 26 juli 2022 15:41:35 schreef blurp:
[...]Awesome! https://www.motor1.com/news/376941/jet-powered-amish-buggy-video/
Haha zo te zien helemaal niet zo gek dus 
Ik ben van plan om een 6502 home computer te bouwen. Ik wil de computer graag aan kunnen sluiten op een 'moderne' vga monitor.
Het maken van een video signaal door cpu is eigenlijk altijd een buitengewoon lastige klus geweest.
Home computers zoals de VIC20 van Commodore (met een 6502 cpu) hadden daar zelfs een speciaal ontwikkelde chipset voor die een composiet (pal of NTC) videosignaal maakte. Dat waren dure chipsets.
Bij andere goedkopere computers (Sinclair met een Z80 enzo) maakte men het video beeld met de eigen cpu en men spaarden daardoor een videochipset uit. Dat kon omdat de Z80 cpu iets sneller (in MHZ) was, en een voor video handigere CIS instructieset had. De 6502 had een risc instructieset.
Beide ideeën om video signalen te maken werkten en elk had gewoon zijn nadelen. Het maken van een videosignaal kost nu eenmaal erg veel computertijd en de electronica om de colourburst, syncpulsen e.d. te genereren en versterken was toen in verhouding best wel duur.
Tegenwoordig is de hardware zo snel geworden dat een moderne computer met twee vingers in de neus achteruitfietsend een beeldje kan genereren.
Z.g.emulatoren van oude homecomputer hardware kunnen daardoor zeer goed werken. Zo goed dat je eigenlijk geen verschil merkt met de echte hardware, mocht je dat ernaast hebben staan.
Als je oude games wilt spelen en dus compatibiliteit moet hebben kun je denk ik het beste gaan voor een emulator die draait op moderne hardware die je in een oude (of nieuwe) 3D geprinte behuizing zou kunnen prutsen. Voordeel is dat je veel meer dan 1 type oude homecomputer kunt emuleren. Niet alle games zijn uitgekomen op alle type home computers. En er waren bijzonder veel typen.
Het is een leuk en behoorlijk lastig project om zelf video te maken. Compatibiliteit met oude jaren tachtig home computer software zal een echte grote uitdaging worden.
Als je echt de hardware zelf wilt maken zul je je als je al bestaande software zou willen gebruiken moeten beperken tot maar 1 type of model homecomputer. En dan zul je opzoek moeten naar oude chipsets. En dat kan bijzonder lastig worden, in sommige gevallen onmogelijk zelfs. In de sinclair computers zat bijvoorbeeld een z.g. ULA. Dat heette officieel een uncomitted array. Een speciaal voor sinclair gemaakt IC dat dus alleen gekocht kon worden bij sinclair ,meestal in een computer ingebouwd. Die ga je dus echt niet meer vinden. Het is niet echt meer mogelijk om een nieuwe sinclair te bouwen. En de lange geleden gemaakte software voor deze computers zal dus ook nooit meer draaien. Tenzij je een emulator hebt op andere bestaande hardware.
Er is nog een derde mogelijkheid en dat is de oude hardware in nieuwe hardware inbouwen. Je zou bijvoorbeeld die ULA chip in een FPGA kunnen programmeren. En de hele rest als de Z80 het ram geheugen enzo, zou je daar dan ook meteen wel bij kunnen bakken. Meer dan zat ruimte in die moderne FPGA dingen tegenwoordig.
Alles is wat dat betreft mogelijk. Het is eerder de vraag wat je eigen mogelijkheden zijn. En misschien bestaat het wel op het www.
Misschien vind je hier wat info, allemaal "home brewed cpu's" en periferie.
https://www.homebrewcpuring.org/ringhome.html
https://c74project.com/about-the-c74-project/
Groetjes,
eSe
Op 26 juli 2022 17:24:05 schreef Ex-fietser:
[...]Het maken van een video signaal door cpu is eigenlijk altijd een buitengewoon lastige klus geweest.
Home computers zoals de VIC20 van Commodore (met een 6502 cpu) hadden daar zelfs een speciaal ontwikkelde chipset voor die een composiet (pal of NTC) videosignaal maakte. Dat waren dure chipsets.
Bij andere goedkopere computers (Sinclair met een Z80 enzo) maakte men het video beeld met de eigen cpu en men spaarden daardoor een videochipset uit. Dat kon omdat de Z80 cpu iets sneller (in MHZ) was, en een voor video handigere CIS instructieset had. De 6502 had een risc instructieset.
Beide ideeën om video signalen te maken werkten en elk had gewoon zijn nadelen. Het maken van een videosignaal kost nu eenmaal erg veel computertijd en de electronica om de colourburst, syncpulsen e.d. te genereren en versterken was toen in verhouding best wel duur.
Tegenwoordig is de hardware zo snel geworden dat een moderne computer met twee vingers in de neus achteruitfietsend een beeldje kan genereren.
Z.g.emulatoren van oude homecomputer hardware kunnen daardoor zeer goed werken. Zo goed dat je eigenlijk geen verschil merkt met de echte hardware, mocht je dat ernaast hebben staan.
Als je oude games wilt spelen en dus compatibiliteit moet hebben kun je denk ik het beste gaan voor een emulator die draait op moderne hardware die je in een oude (of nieuwe) 3D geprinte behuizing zou kunnen prutsen. Voordeel is dat je veel meer dan 1 type oude homecomputer kunt emuleren. Niet alle games zijn uitgekomen op alle type home computers. En er waren bijzonder veel typen.
Het is een leuk en behoorlijk lastig project om zelf video te maken. Compatibiliteit met oude jaren tachtig home computer software zal een echte grote uitdaging worden.
Als je echt de hardware zelf wilt maken zul je je als je al bestaande software zou willen gebruiken moeten beperken tot maar 1 type of model homecomputer. En dan zul je opzoek moeten naar oude chipsets. En dat kan bijzonder lastig worden, in sommige gevallen onmogelijk zelfs. In de sinclair computers zat bijvoorbeeld een z.g. ULA. Dat heette officieel een uncomitted array. Een speciaal voor sinclair gemaakt IC dat dus alleen gekocht kon worden bij sinclair ,meestal in een computer ingebouwd. Die ga je dus echt niet meer vinden. Het is niet echt meer mogelijk om een nieuwe sinclair te bouwen. En de lange geleden gemaakte software voor deze computers zal dus ook nooit meer draaien. Tenzij je een emulator hebt op andere bestaande hardware.
Er is nog een derde mogelijkheid en dat is de oude hardware in nieuwe hardware inbouwen. Je zou bijvoorbeeld die ULA chip in een FPGA kunnen programmeren. En de hele rest als de Z80 het ram geheugen enzo, zou je daar dan ook meteen wel bij kunnen bakken. Meer dan zat ruimte in die moderne FPGA dingen tegenwoordig.
Alles is wat dat betreft mogelijk. Het is eerder de vraag wat je eigen mogelijkheden zijn. En misschien bestaat het wel op het www.
Bedankt voor dit uitgebreide antwoord. Ik heb niet echt als doel om een specifieke oude computer na te bouwen of er software op te draaien van oude consoles of computers ik vind het prima als ik een 'eigen' ontwerp heb. Ik vind het gewoon een leuke uitdaging om software/games te schrijven met beperkte capaciteit RAM, ROM en een oudere zeer eenvoudige CPU.
Ik wil het gemakkelijk op een paar breadboards kunnen opzetten en niet dat ik een gigantische opstelling nodig heb met een hele hoop breadboards om iets werkend te krijgen.
Ik heb inmiddels zo'n Raspberry Pi Pico gekocht die ga ik voor de video output gebruiken dat is wat mij betreft voor nu prima. Wellicht dat ik later nog eens ga kijken of ik het anders kan doen. FPGA's vind ik ook wel erg interessant maar voorlopig kan ik even vooruit.
Op 26 juli 2022 18:38:45 schreef eSe:
Misschien vind je hier wat info, allemaal "home brewed cpu's" en periferie.https://www.homebrewcpuring.org/ringhome.html
https://c74project.com/about-the-c74-project/
Groetjes,
eSe
Bedankt voor de links eSe. Een aantal had ik inderdaad al eens voorbij zien komen. Ik ga er zeker naar kijken.