Wiki MultiCore 2

**Wiki MultiCore 2**

## Propósito

Wiki dedicada à documentação da MultiCore 2 do Victor Trucco - utilização, instalação / troubleshooting, enfim, quaisquer informações que visem facilitar o seu aproveitamento máximo.
A Multicore 2 (abreviada "MC2") é um hardware baseado em FPGA desenvolvido e produzido por Victor Trucco . Em sua atual configuração, ela possui:

* STM32 - Microcontrolador ARM Cortex de 32 bits. Utilizado principalmente para efetuar a leitura dos cores armazenados em um cartão microSD, eliminando a necessidade de um "USB Blaster".
* Altera Cyclone IV E: dispositivo (EP4CE22F17C8) com 22K LEs e também com 256Mb de RAM.
* 2x portas PS/2 para teclado e mouse, respectivamente.
* 2x portas DB-9 para controle de jogos (gamepad ou joystick)
* 2x conectores de áudio estéreo P2, para saída AUX e entrada MIC.
* 1x conector padrão D-sub (15 pinos), para saída de vídeo VGA.
* 1x conector padrão HDMI, para saída de vídeo em alta definição.

O seu principal propósito, é para utilização como uma plataforma capaz de sintetizar múltiplos cores de sistemas antigos (retrocomputação / retrogaming), como por exemplo, Atari 2600 / Colecovision / Odyssey / MSX / Amiga / Sinclair / BBC Micro / Commodore 16 + 64 + Vic-20 / Apple II / MC-1000, todos possíveis de serem sintetizados.

## Instruções gerais

Ao ligar o MultiCore2, o usuário verá a tela do Loader de cores. Utilizando o teclado ou o joystick, poderá escolher o core ou navegar pelas pastas do cartão SD.

O menu apresenta os resultados ordenados (primeiro os diretórios, depois os arquivos). Apenas os cores (terminação .MC2) serão exibidos. Caso haja mais de 128 entradas (diretórios + cores), será exibida uma mensagem de erro e nem todos os resultados serão exibidos. É recomendado que diretórios com mais de 128 entradas sejam organizados em subdiretórios.

Navegação:

* Setas Para Cima/ Para Baixo: escolhem o core
* Setas para esquerda/direita: volta / avança uma página
* Enter: carrega o core selecionado ou entra no diretório selecionado
* Teclas A-Z: pula para o próximo diretório/arquivo iniciado pela letra especificada

Após carregar o core, o monitor ficará temporariamente desativado e a luz verde do STM32 começará a piscar, indicando que a carga está em curso. Em momentos o core estará operacional.

É importante consultar a página Resumo dos cores para verificar qual saída de vídeo é produzida pelo core escolhido (HDMI, VGA ou RGB). Embora este menu de seleção de core funcione com todas as saídas, nem todos os cores produzem todas as saídas.

Para sair de um core e carregar outro, é necessário desligar e ligar novamente o MultiCore2.

## Preparando o Cartão SD para o MultiCore2

Para fazer uso de seus recursos, em primeiro lugar o usuário deve dirigir-se ao repositório no GitLab onde se encontram os arquivos de bitstream para cada um dos cores existentes, e montar um cartão microSD (seguindo as instruções específicas contidas na página de cada core) - aqui também serão disponibilizadas instruções específicas para cada core, sempre que necessário (em construção).

A partir daí, deve-se buscar o conteúdo (ROMs ou imagens de disco) específico para cada core sintetizado (internet; em sites de emulação e/ou torrents) para a seguir, instalar tal conteúdo em um cartão SD separado ou no próprio SD onde já se encontra copiado o arquivo do core. Para essa finalidade, o usuário deverá seguir as instruções específicas para cada core (na página do core no GitLab e/ou aqui).

Em geral, os cores possuirão um *Loader*, que será exibido na tela automaticamente, ao se carregar o core; ou então pressionando-se a tecla F12 do teclado PS/2. Em outros casos (ex., MSX/OCM) o usuário deverá acessar o loader de sua preferência (ex., *SofaRun*) para acessar o conteúdo já previamente gravado no cartão SD.

## Aviso importante (leia com atenção)

Discussões técnicas sobre síntese de cores em FPGA são muito bem-vindas; no entanto, **não se admitirá** nesse espaço quaisquer postagens relacionadas a **pedidos de cores / ROMs**, e afins. Tais postagens serão sumariamente **excluídas** sem prévio aviso, e reincidentes serão bloqueados.
Este espaço é destinado exclusivamente para troca de informações sobre a MultiCore 2.

## Páginas

Instruções para cores específicos (em construção)

Resumo dos cores

Problemas com cores

Hardware Compatível