English version here
Intro
Meu console de infância foi o Mega Drive, mas faz um tempinho que tenho um snes em casa. Achei um anúncio barato e acabei por comprar, apesar de não vir com jogos exceto por um bootleg de Mortal Kombat.
Okay, agora eu possuo um Super Nintendo, yay! Que nostalgia!
Mas e os jogos? Okay, talvez procurando no mercado livre. Pesquisando, achei anúncios de cartuchos repro como os seguintes:
Image may be NSFW.
Clik here to view.
145 reais!?? wtf
Então. Um cartucho repro não é um original. Esse tipo de exploração irrita.
Como se faz um cartucho repro (geralmente)?
- Pega-se um cartucho tosco (aqueles de esportes principalmente)
- Grava-se uma EPROM com a ROM desejada.
- Substitui-se a ROM do cartucho pela EPROM gravada
Depois vendem à preço de original, que bad.
Okay, mas então porque nem todo mundo faz suas próprias repros? Porque um gravador não é tão barato. Willen e afins podem sair bem fora do preço pagável. Também tem os gravadores chineses mas esses ainda não saem barato(~300R$). Tudo tem uma relação custo-benefício, e a galera Maker/Hacker entende bem disso, como criar ferramentas super úteis com materiais baratos.
Em 2014, eu consertei um cartucho de Mega Drive usando uns chips de BIOS que achei na sucata. Gravar memórias flash não é trivial, há um certo algoritmo, mas ainda sim é um processo relativamente simples. Talvez gravar Eproms não fosse complicado.
Gravador
Uma EPROM também não deixa de ser uma memória. E são ainda mais fáceis de se gravar que memórias flash. Para se gravar um byte numa EPROM basta selecionar o endereço através dos pinos A0, A1, A2…em diante; colocar o byte a ser gravado nos pinos Q0, Q1, Q2…etc e dar um pulso com uma alta tensão (13V) no pino Vpp. O problema é fazer isso pra 8*1024*1024=8388608 endereços. Mais informações no datasheet da Eprom 27C801.
Eu já usei Arduino para gravar vários tipos de memória. Porque não tentar também EPROMS? Além disso, Arduino são super baratos (Ebay/Ali express). Mas claro, não precisei comprar um Arduino apenas pra gravar memórias, já tenho alguns aqui em casa que uso pra todo tipo de coisa.
Abaixo um esquema que eu bolei pra o gravador:
Image may be NSFW.
Clik here to view.
Esquemático para o gravador de Eprom com Arduino.
Ah, a eprom precisa ser alimentada com 6V quando for gravada (5V quando for lida). Por isso o regulador LM317 acima. Na prática usei um jumper para escolher manualmente a tensão de alimentação. O potênciometro no regulador deve ser ajustado a fim de se obter os 6V na saída. Além disso, o pinout do LM317 é bem confuso, bom checar o datasheet antes de montar o circuito.
Montei o circuito em um shield de prototipagem, com um socket ZIF. Assim fica fácil de colocar e tirar a memória do gravador. Os 13 volts são providos por um módulo boost, mas possivelmente uma fonte 12 volts pode ser usada (daí testar já fica a cargo do leitor). Usei um boost porque assim tudo fica alimentado pela USB.
Image may be NSFW.
Clik here to view.Shield gravador de Eprom (Incompleto, faltavam ainda os transistores)
Beleza. Hardware sem software nesse caso não rola. Python for the win. O script em Python lê os dados de um arquivo e envia pro Arduino pela serial, que recebe os dados e grava na memória, tudo muito simples.
$ python3 eprom.py =========================================== What do you want do do? 1-dump 2-burn 3-info 2016 Robson C ===========================================
As memórias que tenho aqui eu comprei no Ebay, cerca de 2$ cada uma.
Os arquivos do projeto estão disponibilizados no meu github.
Agora você já sabe que é possível gravar eproms apenas com um Arduino Mega e alguns componentes adicionais ;). Abaixo algumas fotos do projeto.
Fotos
Image may be NSFW.
Clik here to view.Eprom gravada, em um cartucho.
Image may be NSFW.
Clik here to view.Shield finalizado. Adaptei o código pra gravar memórias flash também. Mas ainda tem alguns bugs. De qualquer forma o código está no meu github também.
Image may be NSFW.
Clik here to view.Zelda no cartucho acima.
Image may be NSFW.
Clik here to view.
Harvest Moon.
Image may be NSFW.
Clik here to view.
Apagador de Eproms que uso. Eproms são apagadas com luz ultravioleta apenas.
Image may be NSFW.
Clik here to view.
Verso da placa com todas as ligações.
Considerações Finais
- Favor não utilizar esse trabalho de forma comercial
- O Dragão não disponibiliza ROMs ou tutoriais sobre ROMS.
- Se divirta
Aproveita e mostra o post pra alguém que curta SNES/Arduino e tal ;)
Até um próximo post o/
Image may be NSFW.
Clik here to view.
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
The post Gravador de EPROMS – Arduino Mega appeared first on Dragão sem Chama.