Sega Dreamcast - Atualização de memória RAM para 32MB.

Sonymaster

Jogador de Videogame das décadas 1980/1990
Colaborador
Este artigo descreve como atualizar um Dreamcast de 16MB para 32MB de SDRAM do sistema. Eu fiz isso exatamente uma vez, então isso ainda é bastante experimental. Por favor, tente isso apenas com um Dreamcast sobressalente que você não se importa de destruir.

Eu adoraria ouvir de você se você foi capaz de reproduzir isso, e eu estou feliz em ajudar a solucionar problemas. Boa sorte!

OIP.t2g9cBkVBz8TMFyew2c2bwHaHu


Existem 13 pinos de endereço (A15-A3) conectados entre a CPU SH-4 do Dreamcast e seu SDRAM. Dois, A15 e A14, são usados para selecionar o endereço bancário SDRAM. Os endereços da linha e da coluna são multiplexados nos outros 11 pinos.

Anos atrás, houve uma discussão sobre a ASSEMbler Games sobre como acessar pinos de endereço adicionais no SH-4 para que mais memória possa ser abordada. Infelizmente, o pino de endereço A16 não está conectado, e também acontece de estar em uma linha interior de um chip BGA, então a única maneira de acessá-lo seria perfurando o PCB a partir da parte de trás ou removendo o chip e refluindo-o de volta com um fio ligado à bola A16. Não sei se alguém conseguiu isso ainda.

Mas ler esse tópico me fez pensar sobre como os endereços de memória são multiplexados no barramento SH-4, e acontece que é possível abordar mais memória alterando a forma como o barramento de endereços existente é utilizado.

Vejamos algumas das opções de multiplexing de endereço SDRAM disponíveis.
512K x 32 bits x 4 SDRAMsO Dreamcast vem com dois SDRAMs 512K x 32 bits x 4 para um total de 16MB.

Os dados de 64 bits (32 bits de cada SDRAM) são abordados por endereços de linha de 11 bits e endereços de coluna de 8 bits. O multiplexing de endereço do SH-4 é controlado pelos pinos AMX2-AMX0 do MCR (ver Seção 13 (Bus State Controller (BSC)) do Manual de Hardware SH7750 para obter mais detalhes). O Dreamcast BIOS define AMX muito cedo no processo de inicialização, antes de se copiar para SDRAM. Um Dreamcast não modificado usa o AMX 4.

Veja como funciona o AMX 4 (do apêndice F do manual SH-7550):

(A12 e A11 no SDRAM são BA1 e BA0, respectivamente)

amx13.png



1M x 32 bits x 4 SDRAMsO segmento ASSEMbler Games considera substituir aqueles por SDRAMs de 1M x 32 bits x 4 por um total de 32MB. Estes SDRAMs têm um pino de endereço adicional (A11) e usam endereço de linha de 12 bits e endereços de coluna de 8 bits. Definir o bit de endereço da 12ª linha exigiria a conexão do A16 do SH-4, que não é facilmente acessível, mas aqui está como seria o multiplexing do endereço:

amx9.png



2M x 32 bits x 4 SDRAMsOutra abordagem é usar SDRAMs de 2M x 32 bits x 4 porque eles têm endereços de linha de 12 bits e endereços de coluna de 9bits. O SH-4 ainda pode dirigir apenas 11 bits do endereço da linha, por isso só pode abordar metade dos 64MB disponíveis de RAM, mas ainda pode usar o bit de endereço extra da coluna para abordar 32MB.

Uma boa propriedade desses SDRAMs é que se você amarrar o pino A11 ao chão, eles se comportam exatamente como os SDRAMs originais de 512K x 32 bits x 4 e podem ser usados com um BIOS AMX 4 original. Apenas 16MB podem ser abordados nesta configuração, mas fornece uma maneira de verificar se os SDRAMs estão funcionando depois de instalá-los, mas antes de religá-los e mudar para um BIOS AMX 3 para que 32MB possam ser abordados.

Aqui está AMX 3, o modo multiplexação de endereço para SDRAMs de 2M x 32 bits x 4:
(A13 e A12 no SDRAM são BA1 e BA0 agora)

amx11.png


O Dreamcast ainda está conectado para AMX 4, então o acima não é realmente como as coisas estão conectadas. Na realidade, o A16 do SH-4 não está conectado, o A15 do SH-4 está conectado ao A13/BA1 do SDRAM, e o A14 do SH-4 está conectado ao A12/BA0 do SDRAM, assim:

amx11_actual.png



Essa configuração não funcionará porque o SH-4 mudará o endereço do banco durante o ciclo CAS puxando o A14 do SH-4 para baixo.

Mas funcionará se você amarrar o A12/BA0 do SDRAM e o A13/BA1 do SDRAM (de modo que ambos sejam conduzidos pelo A15 do SH-4) e anexar o A14 do SH-4 ao A11 do SDRAM:

amx11_works.png



Para conseguir isso na prática, você só precisa scoot um par de pinos sobre: dobrar pino 22 e soldá-lo para pad 23, em seguida, dobrar pino 21 e soldá-lo para pad 22, assim:

amx11_rewire.png



O BIOS precisa ser modificado para usar o AMX 3 para usar os SDRAMs nesta configuração.
ProcessoRequisitosMateriais
  • Um Dreamcast modded com um BIOS gravável. Usei um VA1 e não testei outras revisões.
  • Dois SDRAMs TSOP2 de 86 pinos compatíveis com pinos (2M x 32 bits x 4) com endereçamento de coluna de 9 bits. Usei dois SDRAMs IS42S32800J-6TL, mas não vejo razão para que as notas mais lentas de -7 e -75 não funcionem tão bem.
  • ~30 fios AWG (opcional, mas recomendado).
Ferramentas
  • Uma estação de retrabalho de ar quente
  • Um ferro de solda, fluxo, limpador de fluxo, pavio de solda
  • Pinças e alicates para levantar e endireitar pinos de IC
  • Um multimetro para verificar se há shorts
Habilidades
  • Desmontando e remontando Dreamcasts
  • Usando ar quente para remover ICs de montagem de superfície de um PCB
  • ICs de montagem da superfície de solda (0,8 mm)
  • Patching binaries usando um editor hex
  • Imagens de BIOS piscando usando Dreamshell
Visão geralRecomendo instalar os novos SDRAMs no modo AMX 4 para que você possa testá-los com um BIOS original antes de religá-los para AMX 3. No meu caso isso valeu a pena porque no início, meu Dreamcast não inicializava com os novos SDRAMs no modo AMX 4, e eu tinha que voltar e retocar a solda para fazê-lo funcionar.
Se você estiver mais confiante em suas habilidades de retrabalho/solda, as etapas 4, 5 e 7 são opcionais se você fizer o passo 6 antes do tempo.
  1. Remova a placa-mãe e use uma estação de ar quente para remover os chips SDRAM originais.
  2. Dobre os pinos 21 e 22 em ambos os SDRAMs.
  3. Soldar os novos SDRAMs para a placa-mãe. Para cada SDRAM, dobre o pino 22 para baixo o suficiente para que você possa soldá-lo para a almofada 22. Deixe o pino 21 levantado e desconectado.
  4. Soldar um fio do pino 86 (VSS) ao pino 21 (A11) em cada SDRAM.
  5. Monte o Dreamcast e ligue-o com um BIOS original (AMX 4). Se tudo correu bem, deve começar normalmente.
  6. Flash o BIOS com um BIOS modificado que define AMX 3. Você não será capaz de inicializar este BIOS até que os SDRAMs tenham sido religados na etapa 8.
  7. Remova novamente a placa-mãe e dessole os fios entre os pinos 86 e 21.
  8. Levante o pino 22 e solde-o para a almofada 23, e levante o pino 21 e solde-o para a almofada 22.
  9. Monte o Dreamcast novamente e inicializa o BIOS modificado (AMX 3). Deve inicializar normalmente. O BIOS AMX 4 não funcionará mais.
Instruções passo a passo1. Remova os SDRAMs originaisDesmonte o Dreamcast e remova a placa-mãe. Identifique os chips SDRAM do sistema (IC102 e IC103). Seus SDRAMs podem ter um número de peça diferente e fabricante, pois várias peças diferentes foram usadas.

(Os pinos 22 e 23 são soldados para a plataforma 23. O pino 21 é o único pino soldado para a almofada 22.)

original_sdram.jpg


Use uma estação de ar quente para remover os SDRAMs originais e limpar as almofadas com vime de solda e limpador de fluxo.

no_sdram.jpg



2. Dobre os pinos 21 e 22 nos novos SDRAMsEu prefiro levantar e endireitar os pinos neste momento antes que as fichas sejam soldadas para baixo.
Você pode usar a tela de seda da placa-mãe como um guia para identificar os pinos. A tela de seda marca cada 5ª almofada com um ponto branco. Alinhe os SDRAMs com as almofadas IC103:

lined_up.jpg


Use os pontos brancos para identificar os pinos 21 e 22:

pins_to_lift.jpg


Em seguida, dobre os dois com pinças para que eles estejam em um ângulo de 90 graus do resto dos pinos e endireitar-os com alicates:

lifted_pins.jpg


3. Soldar os SDRAMs para a placa-mãe

Em cada SDRAM, deixe o pino 21 (o pino levantado à esquerda) desconectado, mas dobre o pino 22 (o pino levantado à direita) de volta o suficiente para que você possa soldá-lo para a almofada 22. Você vai levantá-lo novamente no passo 8.

soldered.jpg


4. Soldar um fio do pino 86 (VSS) ao pino 21 (A11) em ambos os SDRAMs
Isso é temporário, então não precisa ser bonito.

wired.jpg



5. Remonte o Dreamcast e verifique se ele ainda funcionaNeste ponto, apenas 16MB estarão disponíveis, mas isso verificará se os SDRAMs foram instalados corretamente. Você deve ser capaz de usar o menu BIOS, executar um programa a partir de um disco, etc.
6. Flash um AMX 3 Dreamcast BIOSEDIT: darc criou uma imagem Dreamshell com versões corrigidas de 32MB de muitas imagens BIOS
Modifiquei v1.032 do excelente BootROM personalizado dos bolos japoneses (SHA1 ec42875983f33cefafe8616eb9152cf0172136ae) para usar AMX 3.
Os dois valores que este BIOS usa para carregar o MCR são armazenados nos endereços 0x005074 e 0x005078. Para modificar o BIOS para usar o AMX 3 em vez do AMX 4, use um editor hex altere esses dois bytes de 0x24:
Código:
[code]
00005070: 1101 1101 240e 0a80 240e 0ac0 9001 94ff ....$...$....... ^^ ^^

Para 0x1c:
Código:
[code]
00005070: 1101 1101 1c0e 0a80 1c0e 0ac0 9001 94ff ....$...$....... ^^ ^^
O resultado final, um BIOS AMX 3, deve ter sha1 soma cf64d6509aadde812500db0f7571fd51e0ff85bb.
Use a Dreamshell para piscar o BIOS AMX 3. Você não será capaz de inicializar a partir do BIOS AMX 3 ainda.
7. Remova a placa-mãe novamente e remova os fios adicionados na etapa 4Não pule esse passo só porque não tenho mais nada a dizer sobre isso.
8. Pinos remap 22 e 23 em cada SDRAMEm cada SDRAM, levante o pino 22, dobre-o para a direita para que toque o pino 23, e solde-o para fixar 23. Também em cada SDRAM, dobre o pino 21 para a direita e solde-o para a almofada 22.
O resultado deve ser que os pinos 22 e 23 são soldados juntos, e o pino 21 deve ser o único pino soldado para a almofada 22.

Aqui está o IC102 acabado:

ic102.jpg


O IC103 acabado:

ic103.jpg


E uma visão de pássaro do produto acabado. É difícil ver os pinos reaplicados a essa distância.

finished.jpg


9. Monte o Dreamcast e inicializa o BIOS AMX 3 que você brilhou na etapa 6

O BIOS AMX 4 não será mais executado, mas o novo BIOS AMX 3 que você piscou na etapa 6 funcionará agora.
SoftwareA maioria dos softwares precisará ser modificado para aproveitar a MEMÓRIA RAM extra. Deve ser possível para o software verificar o MCR no tempo de execução para determinar a quantidade de RAM está presente, mas eu não estou ciente de nada que faz isso no momento. Eu só testei com KallistiOS usando as alterações descritas abaixo.

Biblioteca existenteEDIT: Parece que alguns jogos de varejo do Dreamcast (baseados em uma amostragem não tão aleatória, cerca de 25% deles) não são compatíveis com este mod. Eu ainda não sei por que eles não funcionam ou o que pode ser feito para fazê-los funcionar.

KallistiOSVocê só precisa substituir 0x8d000000 (o teto de 16MB) por 0x8e0000000 (o teto de 32MB) em toda a fonte KallistiOS. Aqui está um patch contra cometer c989f25 que faz isso.

Observe que algumas dessas alterações são para patches que o KallistiOS aplica ao gcc que determinam onde a pilha é colocada. Você precisará recompilar sua barra de ferramentas KOS depois de aplicar o patch acima para que a pilha seja colocada no novo teto. Se a pilha ainda começar em 0x8d0000000, você provavelmente terá um mau tempo tentando estender o monte para os 16MB superiores de SDRAM.
EDIT: Veja aqui um exemplo de adicionar suporte de 32MB ao KallistiOS.

ScummvmEDIT: Na versão mais recente, meu backend alternativo ScummVM para Dreamcast agora suporta tanto 16MB quanto 32MB Dreamcasts dos mesmos binários. ScummVM suporta vários jogos que funcionam bem no Dreamcast, mas exigem mais de 16MB de RAM.

Fonte: Blog TsoWell
 

Users who are viewing this thread

Voltar
Topo