Tudo sobre o Master System - Edição expandida

Espaço para discussão sobre SG-1000, SC-3000, Master System, Mega Drive, Game Gear.

Moderador: Moderadores

Avatar do usuário
Gigacom
Mensagens: 3706
Registrado em: Seg Dez 29, 2008 12:46 pm
Localização: Casa do Giga, rua do Giga - Gigacity CEP: 84550-025

Tudo sobre o Master System - Edição expandida

Mensagem por Gigacom »

A série "tudo sobre" que criamos no Sega Brasil trata sobre aspectos gerais e detalhados dos consoles que tanto amamos.
Hoje vamos estrear a edição expandida, falando sobre detalhes técnicos de modo mais aprofundado. Mesmo esquema do anterior, aos poucos vou editando esse primeiro post e avisando sobre atualizações. Ignorem o que colocarmos em tom de piada e aproveitem a leitura. E se for xupar a informação daqui pra fazer seu video do youtube, pelo menos nos mencione - precisamos de visitantes para manter o Admin feliz.
________________________________________________________________________
O Master System é oriundo de uma linha de evolução que parte do SG-1000. É um projeto tipico dos anos 80, inspirado em home-computers ou personal computers que inundavam o mercado. Quase todos os seus componentes estavam disponíveis off-the-shelf, e os poucos itens realmente criados e customizados pela SEGA é que realmente davam o sabor novo ao console.
Dos componentes off-the-shelf temos:
- memórias ROM e RAM
- slot do cartucho
- codificador de vídeo
- CPU
- switchs, portas DB9, componentes de eletrônica em geral

Customizados temos:
- I/O Conttoller
- VDP - Video Display Processor
- Slot de cartão usado nos jogos em cartão ou no adaptador dos óculos 3D no Brasil
- Software que dava vida ao console, que é a sua BIOS bunitinha com musica e animação (versão japonesa) ou com joguinho na memória.

Essa composição garantia para a SEGA abundância e custo acessível dos componentes quase todos de seu video game, o que obviamente diminuia consideravelmente o custo de fabricação e de suporte. Também possibilitava uma fácil adesão de third-parties para a criação de jogos para o seu console, uma vez que os componentes como CPU e VDP (esse ultimo na verdade era um multi-chip encapsulado em um único die, explicaremos adiante) eram bem conhecidos pela comunidade, além é claro de uma generosa configuração de memória e da arquitetura bastante familiar e amigavél.

Diagrama
Um diagrama geral da placa mãe do Master System é essa:
Placa Mãe
Placa Mãe
Placa Mãe - Componentes
Placa Mãe - Componentes
Nessas imagens encontramos uma peculiar versão MS americana do console, mas que ilustra os principais CIs do console embora a versão TecToy possua diferenças enormes relacionadas ao codificador de imagens e sua alimentação. Note-se que na imagem a CPU é um NEC D780C-1; que nada mais é que o Z-80 versão japãoneza produzido pela NEC. Abordemos agora os componentes.

CPU
A CPU do Master System tem sua origem Intel 8080. Federico Faggin, criador do Z-80, trabalhou no projeto do Intel 8080 e ao fundar sua própria empresa, quis que sua CPU fosse inteiramente compatível com o Intel 8080, mas aproveitou para implementar algumas melhorias em seu próprio CPU de modo a deixá-lo mais atraente para o mercado. Essas melhorias consistiam em mais registradores de memória, instruções diversas para manipulação de dados, interruptores novos, etc e etc. Esse projeto do Z-80 sofreu diversas modificações e melhorias após o seu lançamento e a versão do Master System é uma das variantes melhoradas em relação ao chip original.

UM DETALHE pouquissimo comentado, é o fato do Z80 no Master System ser a versão Z80A.
A unidade aritmética lógica (ALU em inglês) dessa CPU é de 4-bits, fazendo com que para a CPU executar opearções aritméticas de 8-bits tenha que executar ao menos dois ciclos de processamento. É por isso que essa versão opera em 3.579.545 Hz (3.58MHz) ao contrário de sua versão inicial de 2.5MHz a fim de compensar essa condição e alcançar um ótimo resultado equiparavél ou mesmo superior aos concorrentes da época como o Motorola 6800, Intel 8080 e o MOS 6502 (esse último a CPU do NES, que por sua vez é uma derivação do Motorola 6800).
Com o tempo outras versões do Z80 foram surgindo, havendo algumas operando em até 8MHz e com diversos outros incrementos.

A arquitetura do Master System faz com que a memória RAM principal e a ROM do cartucho sejam acessadas somente pelo Z80, ao contrário do que ocorre por exemplo no NES onde a CPU acessa parte da ROM e o VDP acessa a outra parte. No Master System isso não ocorre, o responsável por ler o conteúdo da ROM dos cartuchos é o Z80, que se encarrega de tomar as instruções, gráficos e diversos artefatos do jogo e ir direcionando aos outros componentes do console.

Memória
O Z80 é capaz de acessar blocos de até 64KB de memória e também outros componentes por meio de portas de entrada/saída (I/O) ao mesmo tempo em cada ciclo de processamento. Isso permite a CPU do console acessar diretamente outros recursos sem precisar manipular registros na memória, deixando-a livre para o programa.
É por isso que as I/O do Z80 são utilizadas por meio de instruções In/Out ao invés do tradicional load/store. O efeito disso, por exemplo, é que quando o jogador aperta o botão 1 para o Alex Kidd pular essa informação vai direto do controlador de I/O para a CPU, e este por sua vez faz o processo de orientação para o VDP, por meio de outra porta de I/O, e assim vemos o movimento gráfico do Alex Kidd pulando por sendo executado pelo VDP. Só nesse momento é que vemos alguma coisa de memória sendo manipulada pelo VDP. Isso dá um dinamismo e velocidade muito interessantes, pois se evita o gasto de tempo em processamento de CPU com operações de load/store/read/procedure.

Dado essa configuração de funcionamento, as memórias do Master System são usadas em um modelo que se assemelha muito ao que encontramos hoje em dia em modernos PCs, onde há dois grandes blocos de memória: a RAM utilizada pela CPU e a RAM utilizada pelas placas de vídeo.
Funções do Z80 na arquitetura do Master System. Ele é quem faz o acesso a memória RAM principal e a ROM nos cartuchos.
Funções do Z80 na arquitetura do Master System. Ele é quem faz o acesso a memória RAM principal e a ROM nos cartuchos.
No Master System as memórias RAM são do tipo estática, onde os registrados são do tipo flip-flop. Esse tipo de memória faz o registro de bytes por meio do acionamento elétrico de um registrador por sinais elétricos positivos ou ausência deles, que é o negativo. Esses registros são efetuados por um intricado conjunto de micro transistores e capacitores inseridos no die de cada chip. Cada transistor é numerado e denominado "registro xx", onde o xx é o número dele. O transistor recebe a ordem do micro-controlador da memória para energizar ou liberar a energia do componente imediatamente a frente dele, que no caso é um simples micro-capacitor. Ao receber o comando para energizar, esse micro-capacitor se eletrifica, e o pulso elétrico resultante sinaliza para o micro-controlador que ele está positivo. O micro-controlador então disponibiliza essa informação como 1. O contrário, que é a ausência de pulso elétrico, faz com que o micro-controlador da memória informe que aquele determinado registro possui o valor 0. As operações de energização-pulso-informação ocorrem na escalha dos milhões a cada segundo nas memórias do Master System.

No console, encontramos nos primeiros modelos 3 chips de memória RAM. Todos os três do modelo NEC D4168C-15 ou D4168C-15-SG. A diferença desses modelos está em algumas features mais avançadas da versão SG, mas não utilizada pelos jogos do console ao mesmo tempo que é perfeitamente retrocompatível com o modelo anterior.

Nas revisões de hardware que foram surgindo com o tempo, essa configuração de 3 chips foi sendo alterada fisicamente, mas não logicamente. Isso significa por exemplo, que em uma determinada revisão a SEGA/TecToy pode ter optado por fabricar um SOC que tivesse, encapsulado, esses 3 chips de memória assim como diversos outros componentes. Mas para efeito didático, tomemos como premissa os primeiros modelos do Master System onde encontramos os 3 chips e assim seguirmos na explanação.

Pois bem, desses 3 chips um é dedicado exclusivamente para o Z80 e os outros dois são dedicados exclusivamente para o VDP.
Não há vias de acesso que possibilitem o Z80 acessar as memórias do VDP e virse versa. Cada um tem seu 'parquinho' exclusivo onde o outro não mexe.
Curiosidade: essa configuração foi alterada no projeto sucessor do Master System, o Mega Drive, onde temos o advento do DMA - Direct Memory Access, mas isso é outra história.

Além das memórias RAM o console também faz uso de duas memórias ROM, uma que é inserida por meio do slot de cartucho e outra presente no console e que abriga o software inicializador do sistema, vulgarmente conhecido como BIOS.

As memórias ROM contém, de forma estática (ou seja, que não se pode alterar) o software/programa para ser executado pelo console. Por ordem, a primeira memória a ser lida ao se ligar o video game sempre é a memória da BIOS, que dará as instruções gerais de inicialização e operação de todos os outros componentes para a CPU. Uma dessas instruções é a checagem de uma memória ROM no slot de cartuchos; se é encontrado algo ali, a CPU recebe instrução da BIOS para executar o que esta presente nessa ROM do cartucho; do contrário a CPU segue com a instrução seguinte que é executar o programa da BIOS que, em suas primeiras versões, continha uma mensagem para o usuário inserir um cartucho.


No Master System japonês a BIOS carrega essa linda animação, com a música tema de Space Harrier ao fundo. A mensagem em japonês orienta o usuário a inserir um cartucho (software).

A ilustração abaixo demonstra a configuração das memórias no console:
Overview do hardware do Master System
Overview do hardware do Master System
Voltando à imagem da placa mãe, observem:
Placa Mãe - Componentes
Placa Mãe - Componentes

Próximo ao VDP temos dois chips de 8KB de memória cada um. E próximo à CPU temos um único chip de 8KB. Conforme demonstrado no diagrama anterior e explicado no texto mais acima, a CPU tem sua memória de trabalho e o VDP tem a sua memória. Ocorre no entanto um fato curioso, logo se nota que o VDP tem acesso ao dobro de memória que a CPU, mas nem tudo ali é usado somente para gráficos. Na verdade, é utilizado para gráficos e também para som, manipulação, registro de comandos das interfaces de entrada/saída (como os controles por exemplo). Ou seja, o VDP lida com bem mais coisa do que somente gráficos. Então, abordemos agora esse curioso chip.

VDP - Video Display Processor
O VDP é um chip criado pela SEGA e encapsula, em um mesmo die, dois componentes da Texas Instrument que são:

TMS9918 - Esse é o processador gráfico, muito semelhante ao que já tinha no SG-1000 porém com algumas features a mais.

SN76489 - É um PSG - Programmable Soung Generator. É um chip especializado em geração de ondas e tons, capaz de sintetizar algumas formas de som.

Bem próximo ao VDP encontramos 16KB de VRAM que são acessadas somente pelo VDP por meio de um barramento de 16-bits cada. Essa característica foi uma feature desenvolvida pela SEGA (o design original do chip da Texas Instrument fazia a comunicação em barramentos de 8-bits apenas). As VRAM do video game são identicas as WRAM exceto pela latência, onde as VRAM possuem uma latência menor que a WRAM e, consequentemente, tempo de resposta mais curto.

Originalmente, o VDP é capaz de gerar frames (quadros de tela) de até 256x192 pixels. Algumas revisões posteriores desse chip possibilitavam gerar frames de 256x224 pixels, mas aparentemente isso nunca foi usado em um jogo comercial do console.

Como tantos outros sistemas dessa época, ele foi projetado para manipular tiles. Tiles é um conjunto de pixels ordenados e que produzem um pequeno gráfico como, por exemplo, a orelha do Alex Kidd ou parte da mãozinha do personagem. Os tiles manipulados pelo VDP possum um tamanho de 8x8 pixels e que ocupam 32 bytes de memória cada um.

Na VRAM do console são reservados 14KB para o armazenamento de tiles, que são separados em dois grupos: character tiles e screen map. Fazendo uma simples conta é possível calcular a quantidade total de tiles que a arquitetura do sistema permite a cada carregamento:

x: bytes da VRAM reservadas para o armazenamento de tiles, que no caso é de 14KB (14.336 bytes)
y: bytes ocupados por cada tile, que no Master System é de 32 bytes
z: quantidade total de tiles que podem ser armazenados, na VRAM, a cada carregamento.

Fórmula: x ÷ y = z
14.336 bytes ÷ 32 bytes = 448 tiles

Observação: em computação os cálculos todos sofrem com a conversão dos sistemas decimal - binário - hexadecimal. No cálculo acima foi considerado a conversão do binário - decimal, contabilizando o total de bytes por extenso.

Ainda sobre a composição, cada tile é composto por 64 pixels inseridos em uma matriz de 8x8 pixels de largura. Os pixels possuem 1 cor que pode ser selecionada de um total de 16 cores em cada ciclo carregamento. Essas 16 cores por sua vez são escolhidas de uma paleta que possui 64 cores ao todo.

Complicado? Nem tanto. Observem a imagem abaixo:
Tiles Sonic 1 - Primeira fase.jpg
Tiles Sonic 1 - Primeira fase.jpg (15.98 KiB) Exibido 1877 vezes
Essa imagem corresponde aos tiles da primeira fase do Sonic 1. Há 448 tiles como esse aqui:
Primeira fase Sonic 1 - Um único tile.jpg
Primeira fase Sonic 1 - Um único tile.jpg (354 Bytes) Exibido 1877 vezes
ATENÇÃO! Se tiver muito ruim de ver o tile vá no oftamologista agora mesmo! Provavelmente você está sofrendo de diverticulite venosa trombal ocular aguda. Ou pegue uma lupa. Ou ainda, amplie a imagem para enxergar o tilezinho pequetucho super fofo do Sonic.

Se você observar bem, verá que há apenas 16 cores que se repetem em vários pixels nos 448 tiles dessa composição. Essas cores, por sua vez, são selecionadas de uma paleta que possui no máximo 64 cores. Uma outra curiosidade é que o VDP determina por regra que cada pixel em cada tile pode ter um valor númerico de no máximo 4 bits. É daí que vem a limitração das 16 cores, pois em 4 bits é possível obter até 16 valores diferentes em binário, conforme ilustrado na tabelinha abaixo:
Decimal - Binário - Hexadecimal.png
Essa tabela traz a conversão de decimal - binário - hexadecimal.

Outa coisa interessante é que os tiles não são armazenados na ROM e então simplesmente lidos e transferidos para a VRAM. O que ocorre na verdade é que os tiles são montados, seguindo uma instruçao e só aí eles viram tiles. Vamos explicar esse processo em partes.

Lembram que cada tile no Master System é um quadrado de 8x8 pixels? Então, cada pixel nesse quadrado é informado por código que compõem uma matriz gráfica. Para facilitar, vamos usar um tile de 2x2 pixels e escrever sua composição de modo lógico. Considerando que o tile é de 2x2, então temos ao todo 4 pixels. Agora, vamos determinar qual cor e qual posição cada pixel ocupará:
Pixel 01 - Será da cor azul.
Pixel 02 - Será da cor verde.
Pixel 03 - Será da cor laranja.
Pixel 04 - Será da cor branco.

O resultado é:
Captura de Tela 2023-10-23 às 11.48.37.png
Obs.: era pra ter só 4 cores nessa imagem mas como é JPG acaba que fica meio zuado. Faiz de conta que só tem 4 cores aí blz?

Na ROM o que encontramos são instruções como essa, que podem ser chamadas de map-tiles. No entanto ao invés de termos só 4 instruções (que é o caso do exemplo) nós temos 64 instruções PARA CADA TILE. E considerando que na primeira faze do Sonic 1 ha 448 tiles, então só para calcular e desenhar isso é necessário 28.672 instruções, no mínimo!!! E olha que nem falamos ainda do processo de animação, background, movimento, som e etc. É um bucado de coisa.

Animação
A animação é realizada toda no VDP, mas sempre obedecendo as instruções do programa que o Z80 encaminha para ele. A posição de cada objeto ou conjunto de objetos, o movimento que deve ocorrer na tela de acordo com o programa ou comando do jogador, a informação de eventos de colisão.. são todos executados pelo VDP mas de acordo com a orientação dada pela programação passada pelo Z80.

O Z80 é o orquestrador do funcionamento de todo o sistema, e é claro que o VDP lhe obedece integralmente.

O background é uma grande camada onde tiles estáticos são alocados. Para o background há uma area na VRAM reservada para ele chamado de "screen map" e que consome....

LEMBRETE PRO GIGA
AJUSTAR O TEXTO PARA NÃO CONFUNDIR O LEITOR SOBRE O CHARACTER TILE E O SCREEN MAP

LEMBRETE PRO GIGA
FALAR AQUI DE COMO QUE O BACKGROUND É FEITO, QUANTO CONSOME DE MEMÓRIA ETC E TALS

No console o responsável por fazer a leitura de instruções contidas na ROM do cartucho, montar cada tilezinho e enviar para o VDP é o querido, muito amado e possante Z80 quem faz. O VDP tem o trabalho de receber o resultado do cálculo que o Z80 fez, armazenar essa informação na VRAM e converter os dados ali em pixels que serão exibidos na tela.

LEMBRETE PRO GIGA
FALAR AQUI DE COMO SE CONSTROEM OS SPRITES, COMO SE MOVIMENTAM, SISTEMINHA DE CONTROLE DE COLISÃO ETC E TALS
Master System - Manual de Serviços .pdf
Manual de Serviço do Master System
(3.06 MiB) Baixado 19 vezes
Esquema - Master System I e II.zip
Esquema eletrônico Master System I e II TecToy
(752 KiB) Baixado 19 vezes
Anexos
Interface memória - Z80 - VDP - componentes
Interface memória - Z80 - VDP - componentes
Como dizia o velho deitado, há malas que vão para Belém.
Avatar do usuário
Jair
Mensagens: 6066
Registrado em: Qui Ago 30, 2007 10:10 pm

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Jair »

Belo texto!
----
Manuais, scans, pôsters, panfletos, tudo sobre Tectoy em:
http://www.sega-brasil.com.br/Tectoy/

Ecco 2 is like injecting awesome into your body. They don't make games like this any more.
Avatar do usuário
Odin
Mensagens: 7348
Registrado em: Ter Mai 04, 2010 2:52 pm
Localização: Palácio Valhalla - Asgard
Contato:

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Odin »

Belo review Giga, tem detalhes ai que eu não sabia, já aproveitei e baixei o manual técnico e o esquema que eu ainda não tinha :mrgreen:
Imagem

Imagem

Imagem
Avatar do usuário
Gigacom
Mensagens: 3706
Registrado em: Seg Dez 29, 2008 12:46 pm
Localização: Casa do Giga, rua do Giga - Gigacity CEP: 84550-025

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Gigacom »

Valeu pessoal! Mas vejam que ainda não está completo. Agorinha mesmo coloquei mais umas informações sobre o VDP e a composição de tiles. E olha que tá resumido...

Façamos o seguinte, toda vez que fizer um update no post principal, vou colocar um post aqui pra avisar vocês. E aí vou apagando os "up" e postando de novo conforme for evoluindo.
Como dizia o velho deitado, há malas que vão para Belém.
Avatar do usuário
Jair
Mensagens: 6066
Registrado em: Qui Ago 30, 2007 10:10 pm

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Jair »

Realmente impressionante, você deveria escrever para o Wiki.
----
Manuais, scans, pôsters, panfletos, tudo sobre Tectoy em:
http://www.sega-brasil.com.br/Tectoy/

Ecco 2 is like injecting awesome into your body. They don't make games like this any more.
Avatar do usuário
Gigacom
Mensagens: 3706
Registrado em: Seg Dez 29, 2008 12:46 pm
Localização: Casa do Giga, rua do Giga - Gigacity CEP: 84550-025

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Gigacom »

Então chefitcho, eu tenho que trabalhar lá no wiki mesmo... por falar nele, como essa semana está (até agora) mais tranaquila, vou dar uma conferida nas coisas como que tão lá.
Como dizia o velho deitado, há malas que vão para Belém.
Avatar do usuário
Sønic[U.G]
Mensagens: 310
Registrado em: Ter Dez 30, 2008 11:30 am
Contato:

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Sønic[U.G] »

Texto bacana Gigante!! E concordo com o Jair, isso devia estar no wiki. Aliás, se você ainda tiver em algum backup os textos do seu antigo site, você deveria mandar para o wiki também.
SONIC, É UM RAIO AZUL!
SONIC, QUE VAI DE NORTE A SUL!
SONIC, ELE É O MAIS VELOZ QUE HÁ!
Avatar do usuário
Jair
Mensagens: 6066
Registrado em: Qui Ago 30, 2007 10:10 pm

Re: Tudo sobre o Master System - Edição expandida

Mensagem por Jair »

Tem muito conteúdo antigo que eu poderia subir, tenho que achar os backups. Quem sabe um dia...
----
Manuais, scans, pôsters, panfletos, tudo sobre Tectoy em:
http://www.sega-brasil.com.br/Tectoy/

Ecco 2 is like injecting awesome into your body. They don't make games like this any more.
stormbr77
Mensagens: 26
Registrado em: Sáb Mar 06, 2021 7:13 pm

Re: Tudo sobre o Master System - Edição expandida

Mensagem por stormbr77 »

Muito bom o tópico, parabéns Gigacom.

O esquema elétrico é do master system tectoy ou do japonês ? Preciso reservar um tempo pra passar o master system que tenho pra ntsc, instalar a placa fm, simplificar o sistema de alimentação da fonte e queria tirar o processador do encoder de video do tectoy para substituir por uma placas dessas rbg.

Será que vale a pena ? Estou com as placas pra fazer esse mod a tempos paradas.

Editado: percebi que o esquema é do master tectoy.
Responder