Projekt: TV-spel

Berätta om dina pågående projekt.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Projekt: TV-spel

Inlägg av Melker »

Tjenixen!
Tänkte använda denna tråd för att berätta lite hur vårat TV-spels projekt går...
Har för ett par månader sedan, tillsammans med en klasskompis påbörjat att programmera (och bygga det lilla som behövs) ett TV-spel som ett projekt i skolan inom kursen Mikroprocessor B. Videosignalen genereras helt i mjukvaran i en ATmega32 på 16Mhz och ligger för tillfället på 96*60Pixlar och 1bitars färgdjup(svart/vitt, vem behöver mer? :D ). Vi kommer nog försöka höja upplösningen lite, hoppas kring 128*96, men vi får se hur mycket som är möjligt.
Vi har byggt upp det nu så att koden som genererar själva videosignalen drivs helt av interrupts, på så vis slipper man under programmering av spelkoden att räkna tiden på alla instruktioner, det enda som man då inte kan använda under själva spelet är andra interrupts, i princip alla register och portar är lediga att använda som man vill. Vi har tidigare gjort rutiner för att sätta/ta bort/invertera en bestämmd pixel och har idag gjort en teckentabell och rutiner för att skriva ut tecken och strängar på TVn.

Vi har inte riktigt bestämmt oss för vad för spel vi ska göra, men det börjar luta åt att vi startar med ett enkelt Snake, när det inte kräver några som helst tunga uträkningar. Vi har även funderat en del på ett Pong, men det är desto svårare när det kräver lite "tyngre(egentligen är dom ju inte så tunga, men mycket av CPU-kraften går ju åt till videosignalen, så risken är stor att det skulle bli ganska långsammt) beräkningar för bollens rörelse. Har någon förslag på andra lättare spel man skulle kunna göra så är dom välkommna.

Ungefär så här ser det ut för tillfället:
Bild
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Har ni ett interrupt för varje pixel?

För att få högsta möjliga upplösning kunde man kanske köra ett interrupt per rad, och bara göra övriga beräkningar under synk- och blankingintervallen...

Fast då har ni kanske inte minne så det räcker till att använda den upplösningen heller.

Ser kul ut iaf, påminner lite om vårt pong vi gjorde med programmerbar logik. Vi skapade grafiken "on the fly" med en hög komparatorer istället för att lagra bilden i ett minne.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Hehe... Nej, vi har inte ett interrupt per pixel, vore alldeles för tidskrävande. Vi hade först ett interrupt per rad, men märkte att det inte fanns så mycket tid att utvinna mellan varje rad som visade bilddata(pixlarna) så nu sitter alla linjer som visar själva bilden ihop, därimot dom typ 10-20raderna(kommer inte ihåg exakt hur många) längst upp och längst ner + vertikalasyncen är olika interrupts, så där körs det mesta av spelkoden, ungefär som du beskrev.
Hur fin var bollen upplösning då i erat spel och hur många riktningar hade den? Det vore ju egentliga inga större problem i nuläget att göra ett pong med typ 8 riktningar på bollen, men jag kulle gärna se att man hade iaf kring 30.

Vi har 2KB att använda so bildminne, just nu används 96*61/8=720Byte, så det finns en del mer där att hämta.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Bollen var bara en fyrkant, men den rörde sig mjukt (Vi hade 512xnånting pixlar, fast all grafik var stora fyrkantiga block eftersom det är svårt att göra nåt annat med komparatorerna).

Antalet riktningar vete tusan, vi hade en X-hastighet och en Y-hastighet. X-hastigheten ökade lite för varje studs, och Y-hastigheten bestämdes vid varje studs av hur snabbt spelaren rörde på joysticken vid det ögonblicket (vi hade analoga joysticks att styra med).

Inte riktigt originalreglerna, men det var rätt kul att spela faktiskt.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Hmm... Vi kanske har tänkt lite fel när vi tänkt på bollens rörelse, som du säger vore det kanske smart att göra. Ska fundera lite mer på det imorrn när jag är på skolan, tack för tippsen iaf!
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Liten uppdatering bara...
Har grejat lite med TV-spelet idag och lyckats höja upplösningen till 136*102Pixlar, hade till och med gått att få upp lite högre, men minnet började bli knappt, så vi nöjer oss med detta så länge.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Höjde upplösningen ytterliggare idag, ligger nu på 144*102... Nu är nog dock gränsen nådd för vad minnet klarar (144/8*102 = 1836Bytes tar bilden nu). Håller även på och försöker få igång koden i GCC's assemblerare för att få möjlighet att kunna skriva spelen eller programmen i C, vore väldigt trevlig att slippa skriva dom i assambler.

Som det ser ut i nuläget:
Bild
jensa
Inlägg: 149
Blev medlem: 28 oktober 2003, 18:16:49
Ort: Umeå

Inlägg av jensa »

Najsig grej detdär :)
Varför känner jag igen lokalen måntro... :)
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Jaså... Läst el på Dragon?
jensa
Inlägg: 149
Blev medlem: 28 oktober 2003, 18:16:49
Ort: Umeå

Inlägg av jensa »

Nepp, men gått på dragon =)
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Har nu gjort klart ett enkelt Tetris och även ett Snake, programmerat i båda C.

Fösökte spela samtidigt som jag tog bilden, vart lite snett därför:
Bild
Så kan också gå:
Bild

Och så kanske man får fresta med ett par jättedåliga filmer på det
http://w1.907.telia.com/~u90705005/bild ... eo%201.3gp
http://w1.907.telia.com/~u90705005/bild ... eo%202.3gp
Kan ses i Quicktime

Har inga bilder på Snake nu, men tar kanske senare. Härnäst så tänkte jag vidareutveckla Tetris så att man kan spela två spelare, tror att processorkraften ska räcka till det och lite mer, det återstår att se.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 29993
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Mitt quicktime fattar inte alls vad det är för slags filer, och realplayer som absolut vill öppna dem visar bara rappakalja. Massa vita bokstäver på svart bakgrund

[edit]
Jag har quicktime 6.5.1 och den säger:

Could not open the file "video 1.3gp" because it is not a file that QuickTime understands
Senast redigerad av MadModder 8 juni 2004, 18:19:45, redigerad totalt 1 gång.
Användarvisningsbild
ToB
Inlägg: 678
Blev medlem: 22 februari 2004, 10:32:58
Skype: tobias_bjork
Ort: Sollentuna

Inlägg av ToB »

Jag kan spela filmerna (QT 6.5)
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Jag är imponerad Melker! Önskar jag kunde göra något liknande.

Super Mario nästa?
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

cykze, tjaa ett enkelt platformspel skulle kanske gå, lite snålt om RAM över till spelen bara, ca 200byte.

Vet inte varför filmerna inte skulle fungera, gör det för mig i något ganska nytt Quicktime. Hur som helst så säger nog dom där bilderna mer än filmerna, så du har inte missat något.
Skriv svar