algumas dúvidas:
N64 tem 4mb de ram (o ps1 3,5mb sendo 2 de main, 1 de vídeo e 512k de som)
no n64 acredito que pode ser escolhido valores dentro desses 4mb porém o console precisa usar por default os filtros e o z-buffer etc quantos megas isso ocupa/elimina obrigatoriamente dos 4mb do N64 ?
No N64 a memória era unificada (UMA), dentro dela não existia compartimentos para V-RAM, A-RAM e W-RAM, e o desenvolvedor poderia escolher o quanto usar desses 4MB/8MB sem restrições específicas para vídeo, áudio e dados/instruções do processador. Pelo que me lembro AA tomava cerca de 10-20% de processamento (desligando o filtro pelo patch), mip-mapping cerca de 25% e 50% do TMEM (cachê de texturas), Z-Buffer toma bastante, mas o que mais era prejudicado pelo Z-Buffer era a taxa de preenchimento, a qual era de 32 mega pixels por segundo com polígonos texturizados, filtrados e com Z-Buffer no modo de 2 ciclos.
No modo de 2 ciclos 4 pixels de 16 bits (16bpp) ou 2 pixels de 32 bits (32bpp) são copiados a cada 2 ciclos de clock, somente neste modo é possível adicionar fog e filtar texturas com mip-mapping sem o RPD ficar esperando pelo MI (buscar e gravar pixels para a memória do frame-buffer). No modo de um ciclo, o pipeline fica paralisado no MI, esperando pelo framebuffer ao acessar as cores e Z-Buffer.
há evidencia de que Zelda 64 ultrapassa os 2mb de main ? como seria a divisão dessa memória em relação aos recursos do jogo ? o Saturn são 2mb de main, em Quake eles adicionaram uma paredinha para reduzir o estágio, no N64 não foi preciso portanto posso assumir que alí há uma exemplo de que o design extrapola os 2mb, imagino.
Zelda 64 tem cenários open world, parte da memória fica pra armazenar todos aqueles polígonos texturizados, em consoles com menos memória cenários de mundo aberto somente são possíveis usando polígonos menores e sem texturas, essa adição de paredes é justamente para contornar limitações de pouca memória que os outros consoles tinham, reduzindo o escopo do cenário o máximo possível (como em Shadowman). Quanto ao uso da memória em Zelda 64, mesmo com cenários open world eles não chegam nem próximo de ocupar muito, é possível ver isto quando os cenários (pelos valores em KB) são ripados de dentro da memória, explicação detalhada sobre o uso da memória abaixo.
Quais as diferenças substanciais/reais ao ponto de Zelda 2 exigir o cartucho de 4mb um vez que primordialmente nos demais jogos tal cartucho contribui para aumentos de resolução ?
a res do zelda é 320x240 hipoteticamente Zelda 2 poderia rodar sem esse cartucho a 15fps na resolução sub-Conker (conker tem resolução 20% menos res) essa tese seria possível/cabível ?
O frame-buffer é de tamanho e cor variável, se um jogo funcionar em 320x240 e 16 bits de cor ocuparia um total de 307 KB.
320x240 x 2 bytes (16 bits de cor) x 2 (buffer duplo) = 307.200 bytes = 307,2 KB.
Deve-se notar que o N64 pode alterar a resolução do jogo em tempo real, geralmente ao usar o Enpansion Pak você pode mover o frame-buffer para os bancos de memória 2 ou 3 que são os 4 MB extras do Expansion Pak (jogos que só aumentam a resolução com o pacote de expansão dificilmente fazem uso da memória extra, eles funcionam com os 4 MB de estoque).
307 KB de 4 MB é realmente muito pouco, mas em consoles com V-RAM dedicada como o PS1 este passo simples consumiria 30% da memória para gráficos, já que possui apenas 1 MB (15 bits de cores).
O som, costumava consumir entre 512KB e 1MB, embora ao contrário do frame-buffer que tem um tamanho obrigatório, o buffer de som poderia ser variável de acordo com as necessidades do programa, neste caso o N64 requer memória adicional do que no PS1 ou Saturn porque tem que trabalhar com samples para gerar as melodias, ao invés de ler diretamente do CD.
As texturas ocupavam 4KB (ou 2KB com mip-mapping ativado), então ter 128 texturas 64x64 ocuparia apenas 512KB, o N64 tinha um depurador que permitia fazer uma lista visualizada de todas as partes disponíveis na memória.
O PS1 tem um cache de textura de 2KB, mas ele também poderia usar V-RAM ao custo de uma penalidade de desempenho, em Resident Evil 1,2 e 3 texturas maiores são usadas (aproveitando o fato de que os cenários são pré-renderizados).
Podem haver outros buffers de tela para efeitos ou sombras, por exemplo, eles são variáveis e dependem do tamanho e da profundidade da cor, também existiam buffers internos como o próprio Z-buffer (por esse motivo eu adicionei um segundo buffer na multiplicação acima).
O resto da memória RAM é dedicada ao programa, visualização/faixas de áudio e uma parte reservada para o sistema operacional do N64, que faz algumas operações internas (algumas em 64 bits, mas o comum eram instruções de 32 bits por causa do barramento).
O microcódigo pode carregar 4 KB adicionais no RCP (diferente de TMEM), deve-se notar que tanto texturas, sons e partes do programa podem ser carregados em streaming do cartucho, algo que o Fator 5 fez em Indiana Jones.
Ultima pergunta; porque a resolução aumenta ao usar o cartucho ? em alguns jogos os fps caem dando a entender que há um trade off
Enfim, são só essas dúvidas, por enquanto.
Não aumenta por causa do cartucho, mas com o cartucho você tem muito mais memória disponível para o frame-buffer, que pode ser movido para os bancos de memória adicionais do Expansion Pak.
Se um jogo funcionar em 640x480 em 32 bits de cor seriam 640 x 480 x 4 (32 bits de cor) x 2 = 2.457.600 bytes = 2.4MB.
Em outras palavras, mais da metade da memória está sendo usada somente para a resolução e com 4MB adicionais sobra muito mais memória reservada para outras coisas, além de poder usar uma bitagem de cores maior para as imagens, como explicado acima.