Multicore



Em 23 de Janeiro de 2017




Como muitos dos meus amigos, eu também sou um aficionado por retro-computação, mas sempre caio no problema de simplesmente não querer utilizar os micros por preguiça. A montagem "física" do equipamento no meu caso costuma ser chata e muitas vezes ele sequer está à mão, mas sim em algum armário ou prateleira alta. Isso sem contar todo o resto do "circo" em torno do equipamento, onde são necessários interfaces de carregamento, cartuchos, gravadores e afins.

Então, por que não um equipamento híbrido, que pudesse reunir os clássicos e ao mesmo tempo fosse fiel o suficiente para substituir os reais? O Multicore foi concebido exatamente com esse conceito, para utilização dos equipamentos 8 bits da década de 80.

Mas isso não é apenas um emulador? Não seria melhor utilizar um Raspiberry Pi?

Aqui é onde muita gente se engana e confunde a sintetização (ou recriação) do hardware em FPGA com um emulador. "Emulação" no melhor sentido da palavra, necessáriamente é um processador, que no caso do Raspiberry Pi seria um ARM e no PC um X86/X64 compatível, recebendo os comandos e respondendo como a máquina alvo. Já o FPGA "é" a própria máquina, ou seja todo o conjunto de portas lógicas formados pelos diversos CIs, agrupados em uma única pastilhas reprogramável.

E qual a vantagem disso? Uma máquina sintetizada pode se comportar exatamente como a original, com todas as suas características e até mesmo defeitos. Além disso a máquina sintetizada pode receber melhorias para utilização de equipamentos modernos, como TVs com entrada HDMI e cartões SD para armazenamento.

Características técnicas:

Altera Cyclone IV de 10K LEs
512 kb de memória
Entrada de cartão SD
Saída de vídeo DB15 RGB 15Khz/VGA 31Khz
Saída HDMI (com audio)
Duas entradas DB9 similar controle de Atari
Duas entradas PS/2 (mouse e teclado)
Saída de áudio estéreo
Entrada/saída auxiliar




Atualmente existe 43 cores (núcleos) sintetizados e prontos para serem usados no Multicores:
Clique no núcleo para obter maiores informações e arquivos de bitstream.

VIDEO GAMES (total de 6)
- Atari 2600
- Odyssey 2
- Colecovision
- Adventurevision
- Sega Master System
- Nintendo 8 bits (NES)

MICROS (total de 18)
- ZX Spectrum 48Kb (TBBlue)
- ZX Spectrum 128Kb (TBBlue)
- ZX Spectrum +3 (TBBlue)
- ZX 80 (TBBlue)
- ZX 81 (TBBlue)
- Jupiter Ace (TBBlue)
- MC1000
- ZX 81
- Apple II Plus
- Vic 20
- Commodore 16
- Commodore 64
- MSX
- Tandy Color Computer
- BBC Micro Model A
- TK2000
- CP/M 3.0
- Compukit UK101 / Orao
- TRS80 model III

ARCADES (total de 18)
- Frogger
- Scramble
- Pac-Man
- Crush Roller
- Ms Pac-man
- Super Glob
- Mr TNT
- Gorkans
- Galaxian
- Galaga
- Phoenix
- Pleiads
- Space Invaders
- Space Invaders Deluxe
- Lunar Rescue
- Space Laser
- Super Earth Invasion
- Ballon Bomber












Todos os cores são baseados nos trabalhos de diversos autores, sob as mais variadas licenças de código aberto, o que torna o Multicore também um projeto de código aberto. Não é a minha intenção deixar alguém sem os devidos créditos, mas mesmo alguns tem vários autores diferentes porque re-usam módulos presentes em trabalhos de terceiros, então fica um pouco dificil de creditar core por core. Isso dito, se você tem interesse em participar do projeto ou mesmo ver como foram as diversas adaptações adotadas ou, apenas para saber quem codificou o que, onde, basta pedir acesso ao código.
É expressamente proibido a reprodução total ou parcial deste texto sem a minha devida autorização por escrito.