Ir ao conteúdo
  • Cadastre-se

PIC Mini console que rode apenas um jogo


Ir à solução Resolvido por aphawk,

Posts recomendados

Olá, sou novo aqui no fórum e tenho uma dúvida.

Eu gostaria de criar um console que rode apenas um jogo. O jogo seria tipo o super Mário do super Nintendo e seria feito especificamente para esse console.

Sou programador e estou estudando pic.

Esse projeto é apenas para estudo.

Eu gostaria de dicas sobre qual caminho que devo seguir...

 

Link para o comentário
Compartilhar em outros sites

@kgin Massa, o que eu quero é algo por ai, algo que eu mesmo possa construir, mas eu queria q o jogo fosse um pouco mais complexo tecnologicamente, algo mais tipo super Mário sabe, que exige mais memoria, processamento, vídeo e som... o jogo pode ser simples extremamente besta, mas que tenha essas características acima. 
Imagino que tenha bastante coisas para fazer como a parte de vídeo, sons, talvez o próprio pic não tenha memoria nem processador para rodar, meu intuito aqui mesmo é saber o caminho pra conseguir fazer isso, qual microcontrolador / processador qual melhor linguagem, framework para desenvolver esse jogo.
Eu fico pensando, com a tecnologia atual deve ser possível recriar um "super Nintendo" de forma mais fácil.
Hoje em dia temos diversos programas que permitem desenvolver sistemas complexos em pouco tempo, que é o caso dos frameworks, temos o arduino que permite o estudo de forma menos complexa também.
Queria videogame próprio, com um jogo próprio apenas por aprendizado mesmo e por achar q seria muito bom, mas como pode perceber não sei qual melhor hardware e software para criar isso.
 

Link para o comentário
Compartilhar em outros sites

@Diegolv eu não quero jogar água na sua fervura, mas para isso você precisaria de no mínimo um mestrado em engenharia eletrônica, construir uma placa nunca foi fácil, mesmo para empresas com muitos recursos, por isso que existem essas placas polivalentes hoje em dia, inclusive é por isso que existe o próprio processador intel, quando ele foi lançado era o pior processador que existia, mas era barato e fácil de programar, quando uma empresa precisava de um sistema precisava projetar uma placa e processador quase do zero e quando precisava de alteração tinha que corrigir o projeto e fabricar de novo, dá pra imaginar a trabalheira que era ne?

você vai só perder o seu tempo e não vai produzir nada de útil.

O que eu recomendaria é você programar um emulador que rode nativamente no orange py ou rapsberry, isso por si só já seria algo muito difícil de fazer e interessante.

Link para o comentário
Compartilhar em outros sites

@wagner2029 discordo sobre a parte da utilidade, mas concordo sobre a complexidade, eu sou estudante de engenharia elétrica e apesar de n ter tanto conhecimento consigo imaginar a complexidade da coisa... eu não quero competir com a Sony nem Microsoft, na verdade o que me incomoda na ideia do py é depender de uma marca, já está tudo montado, eu mesmo gostaria de montar (acho importante entender o comportamento dos componentes), não quero reinventar a roda, se por acaso houvesse uma solução como por exemplo o Arduino que eu mesmo posso criar apenas comprando os componentes eletrônicos eu acharia super legal.

Em resumo, eu acharia massa a ideia do py se eu quisesse focar apenas no software, mas também quero focar no hardware... Mas obrigado pela sugestão, talvez no futuro faça algo assim pra um jogo mais complexo como um RPG por exemplo.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Me lembrei vagamente que junto com o proteus https://www.labcenter.com/simulation/ na versão demo vem junto um exemplo completo do space invaders pra um pic 18fxxx.

O carinha sem noção achou que achariam que foi de sua autoria... e acho que acharam mesmo

Pode lhe ser um norte

 

Neste daqui https://www.quinapalus.com/picsi.html o cara fez com um 16f628 mas acho que não publicou os fontes...

 

19 horas atrás, Diegolv disse:

estudando pic.

 

 

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Diegolv ,

 

Começe vendo como gerar o sinal de vídeo..... existem alguns artigos de projetos antigos que geravam vídeo composto a partir de um PIC comum, mas a resolução é baixa.

 

Existem alguma implementações interessantes usando um Arduino Uno, mas são microcontroladores AVR e não PIC, mas talvez a teoria te ajude.

 

 

Paulo

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@.if ainda não li o artigo, mas pela imagem do topo é algo do tipo que quero! Obrigado amigo! Se tiver mais links sobre coisas parecidas me mande iria ser muito legal!

@aphawk caramba!!! Os jogos são até mais complexos Doq eu queria, vou olhar o canal desse cara a fundo, fiquei impressionado.

É esse tipo de coisa que gostaria, se por acaso tiver mais algo para compartilhar, mande! :D .

Me diz uma coisa, será q tem algum software, ou IDE para facilitar o desenvolvimento do jogo? Pois até para testar o jogo é meio complicado ficar gravando no microcontrolador pra só depois testar...

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

4 horas atrás, Maria Cristina Oliveira disse:

Na idade dele eu só brincava de boneca. 🙄 😔

 

Creio eu que na sua época eletrônica digital não era uma coisa tão acessível kkkk.

 

@Diegolv Na minha opinião a parte mais difícil não é montar o hardware para isso, é sim programar o jogo em si.

Jogos como o super mario world tem mecânicas complicadas de reproduzir, como a distancia entre os inimigos e as colisões entre os objetos.

 

Eu recomendo você aprender a programar alguns jogos pequenos primeiro em uma maquina mais potente para só depois tentar entrar de cabeça nessa empreitada.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

45 minutos atrás, kgin disse:

Creio eu que na sua época eletrônica digital não era uma coisa tão acessível kkkk.

Na sua época???????????????? 🤨

Do jeito que você fala, parece que eu nasci na pré-história, que eu fui estagiária do Georg Simon Ohm (1789-1854) e aprendi eletrônica com válvulas, na época do computador à lenha...

Amigo: Eu devo ser mais nova que você (nasci em 1995, e como esse menino deve ter uns 10 anos, eu tinha essa idade em 2005. Aliás esse menino tem todo o estereótipo do geniozinho, nerd, CDF, que senta na primeira fila na classe é zoado pelos colegas).

Deve ser um daqueles alunos que pula etapas e entra na faculdade aos 13 anos de idade, um Sheldon Cooper da vida.

😁😁😁😁😁

 

OBS: Desculpe as brincadeiras, acordei bem-humorada! 😔

 

  • Haha 2
Link para o comentário
Compartilhar em outros sites

  • Solução

@Diegolv ,

 

Os Atari usavam um processador 6507, uma versão "capada" do 6502, o mesmo usado pelos Apple ][ .

 

Uma ideia fantástica foi a que esse cara aqui teve :

 

https://hackaday.com/2015/04/08/an-apple-emulator-on-an-arduino-uno/

 

https://github.com/dpeckett/arduino-appleii

 

As placas originais Arduino Uno contém dois microcontroladores : um deles é um Atmega16U2, que é programado para servir apenas como conversor serial - Usb, mas possui o conector para ser rwprogramado para fazer outras funções. 

 

Esse cara fez isso, reprogramou esse microcontrolador para ser o gerador de vídeo !

 

O outro microcontrolador,  que é o Atmega328, fica livre para emular o 6502 e ainda rodar a linguagem Basic original do Apple !

 

Você pode fazer algo semelhante, repare que tudo o que o cara precisou foi um Arduino Uno e alguns resistores...., e acho que isso tudo pode servir para emular um Atari também, o que lhe daria centenas e centenas de jogos ...

 

Existem alguns Arduino Nano que usam um Atmega32u4 em vez do Atmega16u2, o que em tese te dá o dobro de capacidade para gerar sinais de vídeo mais complexos e talvez uma resolução ainda maior.

 

O legal é que você usa apenas o hardware do Arduino, não a IDE, e se preferir pode montar a plaquinha de sua maneira.

 

 

Outro projeto legal é a emulação de um computador Sinclair Zx-81 ( o qual eu tive um original nos idos de 1982 acho), que@Diegolv fazia alguns joguinhos legais, mas em preto e branco.

 

O microprocessador usado era um Z80, e aqui segue o emulador que usa um simples Atmega1284 para fazer o trabalho pesado :

 

http://www.jcwolfram.de/projekte/avr/ax81b/main.php

 

Tem muita coisa interessante para te ajudar no seu projeto.

 

A seguir um projeto de conclusão de curso de Engenharia Eletrônica, a teoria é muito bem explicada :

 

https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/f2014/jn286_cy255/jn286_cy255/index.html

 

Esse projeto é um dos meus preferidos, usando um Atmega1284 e um CI AD724 para gerar um vídeo NTSC da maneira clássica.

 

 

Por último:  o famoso UZEBOX :

 

https://github.com/Uzebox/uzebox

 

Ainda existe uma comunidade grande nesse projeto, e é bem legal.

 

Existem até versões comerciais dele, e você usa apenas um Atmega644 e um AD725.

 

Agora é com você ...

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 08/05/2021 às 22:10, Maria Cristina Oliveira disse:

Sheldon Cooper

Oi:   :)  

 

Olha só que legal...Funcionou direitinho, só tive que colocar um trimpot no pino 12 do arduíno para ajustar o contraste do LCD.

 

O homenzinho fica pulando cactus enquanto o tempo está correndo (não consigo passar de 20 segundos)

 

Agora, difícil mesmo é entender o que ele fez analisando o programa...(anexos)

 

image.png.bac7459a11d16b60b51326f3f687e97d.png

 

 

 

 

Dino_Run.png

image.png

arduino_Dino_Run.pdf

Link para o comentário
Compartilhar em outros sites

@Maria Cristina Oliveira ,

 

Muito legal !

 

Ele aproveita uma característica que poucos sabem : podemos definir 8 novos caracteres para serem usados nos displays comuns 16x2 e semelhantes.

Assim conseguimos deslocar esses caracteres rapidamente pela tela, criando a ilusão do movimento.

Faz algum tempo um colega de outro Fórum postou um vídeo que impressionou muita gente, veja aqui :

 

 

 

Todos pensam usar esses adaptadores i2c para LCD torna o display muito lento, mas até que o efeito não ficou lento.

 

Nesse que você postou o LCD usa o modo paralelo de 4 bits, bem mais rápido, e pode fazer uma movimentação em mais campos do display.

 

Recentemente outro colega publicou uma library para o Bascom que permite usar um adaptador I2C de 16 bits para os displays tipo KS0108 (128*64) , tipo gráficos monocromáticos baratinhos, e um adaptador que custa lá fora US$ 6, olha que legal , veja que podemos usar até microcontroladores bem pequenos !

 mcp23017_i2c_glcdde_128.jpg.459b2bc150e458e67084636904c3e001.jpgmcp23017_i2c_glcdh_127.jpg.4b8245900854f47dbac21f3ba1d2c289.jpgMCP23017_I2C_GLCDa.jpg.8e7db316d09f7b6afe703b1f0d878116.jpg

 

Pena que ainda ninguém vende esse adaptador aqui ...

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

6 horas atrás, kgin disse:

Lembrei de alguns anos atrás que eu ligava esses monitores lcd na porta paralela do computador

image.png.2c2045bade9491b9321941cf008e05b1.png

 

É que no passado (antigamente, antes de eu nascer), os computadores tinham porta paralela. Hoje não se acha mais computador zero Km com porta paralela, tem que mandar montar (desktop)... agora notebook com porta paralela? Sem chance...

 

Mas o efeito no LCD é muito legal! Dá para fazer muitas coisas, até uma IHM diminuta mas, bonitinha...👍

 

Brincadeiras à parte, vou precisar mandar montar um desktop para mim com porta paralela por causa do meu gravador de pic (pikprog+) da ELNEC (muito bom, não quero me desfazer dele)

 

😁😁😁😁😁

Link para o comentário
Compartilhar em outros sites

@Maria Cristina Oliveira ,

 

Obrigado por fazer duas múmias aqui, eu e a @.if... já somos velhos mas agora passei a me sentir obsoleto também ....

 

Bons tempos de portas paralelas... os Hardlocks eram ligados nelas, e uma vez me chamaram numa Estatal para ajudar eles porque o Hardlock sumiu e o programa custava mais de US$ 10.000 , e além disso ainda queriam ver a possibilidade de usar em vários computadores ...

 

Eu observei que quando chamavam o programa sem o Hardlock o programa entrava no modo de demonstração, totalmente funcional mas rodava por apenas 5 minutos.

 

Fiz um programinha em Assembly que interceptava a rotina do BIOS que calculava a hora, criei uma rotina que deixava andar 2 segundos e depois retornava o tempo 2 segundos atrás, ou seja o tempo nunca avançava de verdade, mas o CAD engoliu.... e funcionava o dia inteiro .

 

Fiz dois programinhas no final, um que fazia esse truque e mantinha a hora correta em uma variável, e outro que desfazia, voltando a hora da variável para o sistema. Total de bytes era cerca de 150 bytes.... Fiz isso em menos de um dia, e cobrei o equivalente a  US$ 2.500, mas exigiram que eu entregasse também o fonte. Topei claro porque era só desassemblar mesmo e eles teriam o fonte ....

Mas quando viram o fonte não queriam mais pagar esse valor, falaram que era um roubo tudo isso por um programinha de 150 bytes.... mas aí um outro técnico interviu  e disse que eles haviam chamado um outro cara que que ia cobrar quase o mesmo valor e tentou por 3 dias sem sucesso, aí resolveram me pagar.

 

Vocês podem nunca ter usado uma porta LPT, mas era 100 vezes mais fácil de usar do que essas atuais portas USB...

 

Ah, esse seu programador... deve ser uma cópia do Ponyprog !

 

Paulo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

24 minutos atrás, aphawk disse:

@Maria Cristina Oliveira ,

 

Obrigado por fazer duas múmias aqui, eu e a @.if... já somos velhos mas agora passei a me sentir obsoleto também ....

 

Bons tempos de portas paralelas... os Hardlocks eram ligados nelas, e uma vez me chamaram numa Estatal para ajudar eles porque o Hardlock sumiu e o programa custava mais de US$ 10.000 , e além disso ainda queriam ver a possibilidade de usar em vários computadores ...

 

Eu observei que quando chamavam o programa sem o Hardlock o programa entrava no modo de demonstração, totalmente funcional mas rodava por apenas 5 minutos.

 

Fiz um programinha em Assembly que interceptava a rotina do BIOS que calculava a hora, criei uma rotina que deixava andar 2 segundos e depois retornava o tempo 2 segundos atrás, ou seja o tempo nunca avançava de verdade, mas o CAD engoliu.... e funcionava o dia inteiro .

 

Fiz dois programinhas no final, um que fazia esse truque e mantinha a hora correta em uma variável, e outro que desfazia, voltando a hora da variável para o sistema. Total de bytes era cerca de 150 bytes.... Fiz isso em menos de um dia, e cobrei o equivalente a  US$ 2.500, mas exigiram que eu entregasse também o fonte. Topei claro porque era só desassemblar mesmo e eles teriam o fonte ....

Mas quando viram o fonte não queriam mais pagar esse valor, falaram que era um roubo tudo isso por um programinha de 150 bytes.... mas aí um outro técnico interviu  e disse que eles haviam chamado um outro cara que que ia cobrar quase o mesmo valor e tentou por 3 dias sem sucesso, aí resolveram me pagar.

 

Vocês podem nunca ter usado uma porta LPT, mas era 100 vezes mais fácil de usar do que essas atuais portas USB...

 

Ah, esse seu programador... deve ser uma cópia do Ponyprog !

 

Paulo

 

Cheguei a projetar hardlock mas pela serial.

O algorítmico que fiz era ótimo.

O programa se comunicava com o Hardlock,via serial,mas o baud rate era indefinido.

Na primeira comunicação,o programa envia bytes dizendo qual o baund rate usar no momento de envio de informações,mas esse baud rate era aleatório a cada segundo,então sempre antes de se comunicarem,um baund rate novo era negociado.

Caso o baund rate fosse 'errado',os bytes iriam ser decifrados do mesmo jeito pelos dois mas os dados ficariam 'errados' e o Hardlock entraria em loop infinito(um valor na Eeprom gravada),só destravando com uma reprogramação do Hardlock.

Caso alguem tentasse fazer um Sniff,não teria tempo pois não saberia qual o próximo Bund rate usar e travaria o Hardlock.

Calro que só uma pessoa teria os fontes.

Usei um máquinas de música,para evitar roubo.

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Paulão não quer contar mas ele ajudou o Alan Turing a decifrar os códigos nazistas da engima

enigma.jpg

 

Também já 'decifrei' proteções... algumas mó moleza: só alterar ou apagar chaves no registro do windows. Outras mexia direto no cód .exe. ou .dll. Registre-se que era só hobbie e diversão e claro pela adrenalina 😁

  • Haha 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...