SlideShare uma empresa Scribd logo
1 de 29
Desenvolvimento de
consoles de videogame
utilizando hardware livre
Gustavo Castro
Quem sou eu?
● Gustavo Castro
○ Tecnólogo em sistemas para internet
● Programador
○ Atua Sistemas de Informação
■ PHP
■ JS
■ Postgresql
■ ….
● Hobbies
○ Arduino
○ Games retrô
Consoles software/hardware livre
I’m too young to
die
● Raspberry Pi
● Linux/Android
● Joystick USB
Hurt me plenty
● Gamebuino
● TFT
● Touchscreen
● Joystick serial
Nightmare
● ATmega”X”
● RCA (Tv de tubo)
● Botões de
pressão
Projeto
Hardware
Hardware
● Unidade Gerenciamento
○ 32 KB ROM
■ 2 KB -> Firmware
■ 30 KB -> Programa
○ 2,048 KB SRAM
● Conexão/Armazenamento
○ 2 GB SD
○ Velocidade de conexão
10/100MB
● Joystick/Input
○ Botões de pressão
○ Comunicação ISP/I2C
Hardware/Software - Vídeo
● TVout
○ RCA (Vídeo e áudio)
○ NTSC - PAL
○ 128 x 96
○ Preto e branco
Hardware - Controle
● “Joystick”
○ Botões de pressão em paralelo (I/O analógica)
■ Verifica o valor da corrente
Fonte:
http://rexpirando.blogspot.com.br/2011/07/controlando-multiplos-botoes-
com.html
Hardware/Software - Bootloader
● Como vou carregar vários jogos no meu console?
○ Dashboard
■ Atualizar a firmware do console
Hardware/Software - Bootloader
● BootDrive
○ 2 Arduinos
○ Firmware
■ Master
■ Slave
○ Cartão SD
■ Firmware .hex
○ Reiniciar Arduino
■ Firmware atualizado
Plano A
Hardware/Software - Bootloader
Plano A
● BootDrive
MASTER
SLAVE
SD/ETHERNET
jogo_do_jiraya.hex
jogo_do_jiraya.hex
ENFIA NA RAM
ESSA M#!
jogo_do_jiraya.hex -> 30 KB
SRAM ATmega328P -> 2 KB
Hardware/Software - Bootloader
● TFTP Bootloader
○ Atualização via FTP
■ Não carregava na RAM
● Roda o comando de gravação
de forma remota
● Necessita do avrdude instalado
no servidor
■ Necessidade de um servidor
■ Crashou um arduino
jogo_do_jiraya.hex
jogo_do_jiraya.hex
Plano B
Hardware/Software - Bootloader
Plano C - parte 1
● avr_boot
○ bootloader
■ =~ 4 KB ROM
■ =~ 28 KB Firmware
○ “Autogravação” da firmware
BOOT
FIRMWARE.BIN
Hardware/Software - Bootloader
Plano C - parte 2
● avr_boot
BOOT
FIRMWARE.BIN
jogo_do_jiraya.BIN
jogo_do_jiraya.BIN -> 30 KB
ROM ATmega328P -> 28 KB
Hardware/Software - Bootloader
SRAM ROM I/O
ATmega328P 2 Kb 32 Kb 23
ATmega1284P 16 Kb 128 Kb 32
Software
● Dashboard
○ Firmware (principal)
○ Listar os jogos no SD;
○ Listar os jogos remotos;
■ Realizar o download dos jogos;
○ Executar os jogos no SD;
Software
Listagem
Jogos no SD Jogos no Remoto
Software
Download
jogo_do_jiraya_2.BIN
1. jogo_do_jiraya_2.BIN.part
2. Download byte/byte
3. Verifica o tamanho final do arquivo
4. OK
TCP/IP
http://servidor/jogo_do_jiraya_2.BIN
Software
Execução
FIRMWARE.BIN
jogo_do_jiraya.BIN
Dashboard
Jogo em
execução
Jogos
Como funcionam os jogos?
while(!sair ) {
verificar entrada
usuário
realizar AI
verificar colisões
plotar imagem
tocar som
Loop Principal
Jogos - Plotar Imagens
● TVout
○ Plano cartesiano
○ set_pixel(x, y, color)
○ bitmap(x, y, bmp, i, width, height)
○ println(“Aqui vai uma string!”)
○ set_cursor(x, y)
● Percorrer um array de binários e plotar os pontos
○ Ex:
Jogos
ElvetureTetris Toorum’s Quest II
Arduino Tetris: https://storage.googleapis.com/google-code-archive-
downloads/v2/code.google.com/arduino-tvout/arduinotetris.zip
Elveture: https://github.com/yyyc514/elventure
Toorums’ Quest II: https://github.com/NosDE/toorumquest2
Referências
TvOut: https://code.google.com/archive/p/arduino-tvout/
avr_boot: https://github.com/zevero/avr_boot
boot drive: https://github.com/osbock/Baldwisdom/tree/master/BootDrive
TFTP bootloader: https://github.com/mharizanov/TFTPBootloader_0_2
Ligando botões em série: http://rexpirando.blogspot.com/2011/07/controlando-
multiplos-botoes-com.html
Download de arquivos da web para SD usando o Ethernet Shield:
https://startingelectronics.org/software/arduino/save-web-file-to-SD-card/
● E-mail: deb.gustavocastro@gmail.com
● Github: debgustavocastro
● Instagram: @theteenagerfrommars
VALEUS!

Mais conteúdo relacionado

Mais procurados

Interfaces do disco rigido
Interfaces do disco rigidoInterfaces do disco rigido
Interfaces do disco rigido
Clebio Afiliado
 
Construção de um computador
Construção de um computadorConstrução de um computador
Construção de um computador
vitec
 
Hardware da empresa
Hardware da empresaHardware da empresa
Hardware da empresa
lokko952
 

Mais procurados (16)

Power point apresentacao_valmor_placa_mae_atf
Power point apresentacao_valmor_placa_mae_atfPower point apresentacao_valmor_placa_mae_atf
Power point apresentacao_valmor_placa_mae_atf
 
Mt9850 505 pc verus compact
Mt9850 505 pc verus compactMt9850 505 pc verus compact
Mt9850 505 pc verus compact
 
945 gcl
945 gcl945 gcl
945 gcl
 
Computador Básico - Peças
Computador Básico - PeçasComputador Básico - Peças
Computador Básico - Peças
 
Interfaces do disco rigido
Interfaces do disco rigidoInterfaces do disco rigido
Interfaces do disco rigido
 
Computador Superior
Computador SuperiorComputador Superior
Computador Superior
 
Construção de um computador
Construção de um computadorConstrução de um computador
Construção de um computador
 
Componentes prsentes
Componentes prsentesComponentes prsentes
Componentes prsentes
 
Engenheiro informático
Engenheiro informático Engenheiro informático
Engenheiro informático
 
Micro superior(Computador Superior)
Micro superior(Computador Superior)Micro superior(Computador Superior)
Micro superior(Computador Superior)
 
Relatorio aida64 pc ej
Relatorio aida64 pc ejRelatorio aida64 pc ej
Relatorio aida64 pc ej
 
A evolução do Arduino: dos 8 aos 32-bits
A evolução do Arduino: dos 8 aos 32-bitsA evolução do Arduino: dos 8 aos 32-bits
A evolução do Arduino: dos 8 aos 32-bits
 
Hardware da empresa
Hardware da empresaHardware da empresa
Hardware da empresa
 
Watt OS R6
Watt OS R6Watt OS R6
Watt OS R6
 
Trabalho de hardware (placa mãe)
Trabalho de hardware (placa mãe)Trabalho de hardware (placa mãe)
Trabalho de hardware (placa mãe)
 
Aula 17 hd
Aula 17 hdAula 17 hd
Aula 17 hd
 

Semelhante a FISL 18 - Desenvolvimento de consoles de videogame utilizando hardware livre

curso-de-montagem-e-manutencao-de-computadores-xtends-aula21.ppt
curso-de-montagem-e-manutencao-de-computadores-xtends-aula21.pptcurso-de-montagem-e-manutencao-de-computadores-xtends-aula21.ppt
curso-de-montagem-e-manutencao-de-computadores-xtends-aula21.ppt
Cristian129328
 
00000007-Escolha Computadores modernos.pdf
00000007-Escolha Computadores modernos.pdf00000007-Escolha Computadores modernos.pdf
00000007-Escolha Computadores modernos.pdf
texspire
 

Semelhante a FISL 18 - Desenvolvimento de consoles de videogame utilizando hardware livre (20)

Noções de hardware
Noções de hardwareNoções de hardware
Noções de hardware
 
curso-de-montagem-e-manutencao-de-computadores-xtends-aula21.ppt
curso-de-montagem-e-manutencao-de-computadores-xtends-aula21.pptcurso-de-montagem-e-manutencao-de-computadores-xtends-aula21.ppt
curso-de-montagem-e-manutencao-de-computadores-xtends-aula21.ppt
 
Hardware
HardwareHardware
Hardware
 
00000007-Escolha Computadores modernos.pdf
00000007-Escolha Computadores modernos.pdf00000007-Escolha Computadores modernos.pdf
00000007-Escolha Computadores modernos.pdf
 
Arduino: Construindo robôs com software e hardware livres
Arduino: Construindo robôs com software e hardware livresArduino: Construindo robôs com software e hardware livres
Arduino: Construindo robôs com software e hardware livres
 
Seminário de Sistemas Embarcados - Análise sobre Super Nintendo e PlayStation 4
Seminário de Sistemas Embarcados - Análise sobre Super Nintendo e PlayStation 4Seminário de Sistemas Embarcados - Análise sobre Super Nintendo e PlayStation 4
Seminário de Sistemas Embarcados - Análise sobre Super Nintendo e PlayStation 4
 
Aula 1 Introdução
Aula 1   IntroduçãoAula 1   Introdução
Aula 1 Introdução
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware Livre
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdf
 
Ppt informática básica sistema operacioanal
Ppt informática básica sistema operacioanalPpt informática básica sistema operacioanal
Ppt informática básica sistema operacioanal
 
Raspberry pi - processamento de sinais com torta de framboesa
Raspberry pi - processamento de sinais com torta de framboesaRaspberry pi - processamento de sinais com torta de framboesa
Raspberry pi - processamento de sinais com torta de framboesa
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
 
Como Fazer Seu Próprio Gameboy - CPBR11
Como Fazer Seu Próprio Gameboy -  CPBR11Como Fazer Seu Próprio Gameboy -  CPBR11
Como Fazer Seu Próprio Gameboy - CPBR11
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Organização de computadores
Organização de computadoresOrganização de computadores
Organização de computadores
 
Aula de hardware
Aula de hardwareAula de hardware
Aula de hardware
 
Aula 1 introdução
Aula 1   introduçãoAula 1   introdução
Aula 1 introdução
 
Manual thunder pro_ii_ v7.7_rev_g
Manual thunder pro_ii_ v7.7_rev_gManual thunder pro_ii_ v7.7_rev_g
Manual thunder pro_ii_ v7.7_rev_g
 
Manual thunder pro_ii_ v7.7_rev_g
Manual thunder pro_ii_ v7.7_rev_gManual thunder pro_ii_ v7.7_rev_g
Manual thunder pro_ii_ v7.7_rev_g
 

FISL 18 - Desenvolvimento de consoles de videogame utilizando hardware livre