-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
--HG-- rename : font.png => bmp2font/font.png rename : fontv.bmp => bmp2font/fontv.bmp rename : fontv.png => bmp2font/fontv.png rename : front.png => photos/front.png rename : readme => readme.md
- Loading branch information
1 parent
196bba8
commit e35137e
Showing
12 changed files
with
47 additions
and
710 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
File renamed without changes
File renamed without changes.
File renamed without changes
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
## VGA Tetris - assembly, atmega8, software vga | ||
|
||
![front](front.png) | ||
|
||
Yeah, I know. Yet another tetris. But how mine clone is different? | ||
- Architecture - it's not a PC, smartphone or cellphone, I've created my own platform based on 8bit microcontroller | ||
- Code - I decided to write whole game in assembly | ||
|
||
|
||
Specification | ||
Processor: Atmega8 (8kB flash, 1kB SRAM) | ||
Graphics: 104x120px, 16colors | ||
Input: Gamepad from Pegasus (Polish Famicom clone) (8 buttons) | ||
Audio: Mono, generated using PWM (unfortunately, not implemented, not enough time) | ||
|
||
|
||
|
||
# Why? | ||
Project was made for contest on Elektroda.pl (Retro game). Contest was a good motivation for learning AVR architecture from the low level (assembly). | ||
Also I've learned how to generate VGA image in software and I have managed to carry my project from an idea in my mind to physical, working device. | ||
|
||
|
||
|
||
# Result? | ||
Finished and working "console" with clone of Tetris, second place in a contest, above 2000 lines of code in pure assembly, pride from finishing a project (from game project, schematics, PCB to working console). | ||
|
||
|
||
|
||
# What is so hard? | ||
The fact, that I don't have a library like SDL or Allegro, where I call function to display image on a monitor. I don't have any functions, operating system or even something like BIOS. Everything was implemented from scratch, including video generation line by line (the graphics card job) where I had to count instruction cycle based, in other case the video becomes desynchronized or was displayed wrong. Next I've implemented high level functions like displaying a tile and later - fonts and images. | ||
|
||
|
||
|
||
Presentation (in Polish): | ||
|
||
https://www.youtube.com/watch?v=FwZ4Or7Z6ZU | ||
|
||
![schematics](schematics/schematics.png) | ||
![top](photos/top.jpg) | ||
![board](photos/board.jpg) | ||
|
||
More info (in Polish): http://www.elektroda.pl/rtvforum/topic2177246.html | ||
|
||
Linus "lft" Akesson has made a demo on this micro - VGA display, chiptune music, awesome effects, must see! | ||
http://www.linusakesson.net/scene/craft/ | ||
|
||
Zobacz plik "vga_generacja" jeżeli interesuje cie temat generowania obrazu VGA. |