O NESIZM é um emulador de sistema de entretenimento da Nintendo para a série de calculadoras de gráficos Casio Prizm. Atualmente, ele suporta as calculadoras FX-CG10, FX-CG20, FX-CG50 e Gráfico 90+ E Casio. O NESIZM foi construído desde o início com o desempenho em mente, mantendo a emulação e a compatibilidade precisas, sempre que possível, com cache inteligente, alinhamento forçado e montagem escrita à mão, quando necessário. Ele executa a maioria dos títulos a 60 fps, sem overclock no FX-CG50.
Este projeto tem suas raízes no meu interesse na tecnologia de desenvolvimento de jogos anteriores, bem como pelos benefícios inerentes ao Prizm como uma plataforma. Há uma grande base de instalação de jogadores que agora podem jogar NES por muitas horas de duração da bateria com 0 atraso de entrada do teclado para exibição.
Copie o arquivo NESIZM.G3A (ou NESIZM_CG10.G3A se você tiver um FX-CG10) para o caminho raiz da calculadora do Casio Prizm quando vinculado via USB. O NES ROMS (.NES) também deve entrar no diretório raiz. Mantenha os nomes de arquivos para esses arquivos devem ser simples e menos de 32 caracteres, como mygame.nes. O emulador suporta o formato NES 2.0 ROM, mas não o testei extensivamente.
No sistema de menu, use as teclas de seta e mude ou digite para selecionar. Você também pode usar o Alpha para sair rapidamente de um submenu. A ajuda para a opção selecionada atual está no canto superior direito.
Quando estiver dentro de um jogo, a tecla de menu sairá para a tela Configurações e pressionar o menu novamente o levará de volta ao sistema operacional da calculadora.
Você pode configurar suas próprias chaves no menu Configurações, esse é o padrão que eu encontrei para funcionar bem:
Observe que, se você definir a configuração turbo para 30 Hz, isso pode ser muito rápido para alguns jogos que causam mau funcionamento.
Se você deseja jogar com um segundo controlador, ele pode ser mapeado para outros botões na calculadora usando a opção Remap Buttons em Opções-> Controles. Isso é muito pesado, no entanto, portanto, por padrão, o jogador 2 não é mapeado para nenhum botão.
Um único estado de salvamento é suportado por ROM, que pode ser carregado/salvo usando as teclas remappable mencionadas na seção Controles. Estes padrão para as teclas 'S' e 'L' na calculadora. O arquivo de estado salvar será salvo no seu armazenamento principal com a extensão .fcs.
Esses estados salvos são geralmente intercompatíveis com o FCEUX, o popular emulador de PC NES. No entanto, por padrão, o FCEUX permite a compactação em seus estados salvadores ao salvar; portanto, para transportar um estado de salvamento de volta à sua calculadora, você precisa desativar a salvamento de compressão do estado no FCEUX.
Se uma ROM usa um recurso com backup de bateria, como o Legend of Zelda, essa memória será salva automaticamente quando você retornar ao menu principal com o botão de menu. Lembre -se de que o uso de estados salvadores substituirá completamente os dados de backup.
A opção de alongamento da tela utiliza a alta taxa de atualização da tela para entrelaçar o sinal, o que é muito semelhante à antiga TVs entrelaçados. Isso funciona com a tela colorida TFT, que tem uma ligeira latência de cor no Prizm, para ser muito difícil de notar. Se você definir a opção de alongamento para 4: 3, ela corresponderá de perto às proporções destinadas aos jogos originais. No entanto, requer um FPS alto. Portanto, o visual do emulador começará a parecer falhado se você tiver um conjunto de opções muito alto do FramesKip. Em geral, a definição de suas opções para um quadro muito alto deve ser desnecessária. A duração da bateria da calculadora não parece ser fortemente afetada pelo Skip de quadros.
3 paletas estão incluídas para escolher. Todos eles se sentem um pouco diferentes, então escolha o que você acha que é o melhor. Não existe uma cor correta verdadeira para o NES em muitos aspectos, pois as TVs da época podem interpretar o sinal do NES um pouco diferente. Depois de selecionar uma paleta, você pode ajustar o brilho (para um nível muito baixo se estiver em um ambiente escuro) e as quantidades de saturação de cores. Lembre -se de que aumentar o brilho aumentará apenas o brilho relativo das cores usadas, não o brilho da tela.
Se você é tão inclinado, uma paleta personalizada pode ser usada. Existem 192 arquivos de paleta de byte que você pode encontrar pesquisando facilmente on -line. Renomeie sua paleta desejada para "Custom.pal" e inclua -a no diretório raiz do seu armazenamento de arquivos. Deve ser selecionável como a 4ª Paleta opção neste momento.
4 opções de fundo estão disponíveis. O fundo 'Warp' corresponde ao menu principal. O fundo da TV fornece um histórico de TV antigo nostálgico, principalmente nos modos de trechos de tela menores. A opção de cor BG BG corresponderá à cor da paleta de fundo do jogo atualmente selecionada. O uso disso varia por jogo, mas funciona bem em alguns, como as seleções de fundo azul/preto em Super Mario Bros.
Opcionalmente, um relógio no jogo pode ser mostrado no canto inferior direito da tela, se você precisar acompanhar o tempo. No entanto, é necessário configurar, pois o relógio não é comumente usado no sistema operacional da calculadora. Defina seu relógio com um aplicativo de terceiros, como G-clock ou também dentro do excelente aplicativo de utilitários da GBL08MA.
O FPS também pode ser mostrado neste canto da tela. Lembre -se de que esses são simplesmente os quadros desenhados em um determinado segundo, não os quadros ignorados. Portanto, se isso diz que 40 fps e sua opção de pular quadros está definida como automática, o emulador ainda está em execução a 100% de velocidade, mas está pulando cada 3º quadro ao desenhar para a tela para salvar o processamento.
O emulador suporta quase todos os jogos com um mapeador compatível sem problemas. Se você encontrar um jogo com problemas verdadeiramente significativos, entre em contato.
Aqui está a tabela de suporte do mapeador. O emulador suporta quase todos os mapeadores dos EUA NTSC e PAL, excluindo o MMC5, cobrindo 98% dos jogos lançados comercialmente nessas regiões. O Disco Famicom e o Suporte ao Sistema VS não estão planejados.
Nome do mapeador | Editor | Nome | Editor | Nome | Editor |
---|---|---|---|---|---|
MMC1 | Nintendo | AXROM | Nintendo | Nanjing 163 | Nanjing |
MMC2 | Nintendo | GxROM | Nintendo | Susoft 3 | Sunsoft |
MMC3 | Nintendo | Bnrom | Nintendo | Susoft 4 | Sunsoft |
MMC4 | Nintendo | Nulo / nROM | Diversos | Susoft 5 | Sunsoft |
MMC6 | Nintendo | Sonhos de cores | Sonhos de cores | Rambo-1 | Tengen |
CnROM | Nintendo | Nina-03/06 | AVE | Nina-1 | Irem |
Desnom | Nintendo | Camerica | Sim | JF-11/14 | Jaleco |
Uma tabela completa de ROMs e mapeadores pode ser encontrada aqui, mas não a mantenho totalmente atualizada: https://docs.google.com/spreadsheets/d/1tfgu6dodagvizsmy3flpsmzvifkiysoxi9uwl-rlry/edit?uspingingsmzvifkiysoxi9uwl-rlry/edit?uspingingsMzHaring
Os Pal ROMs são executados a uma taxa de quadros diferente de 50 Hz em comparação com os jogos dos EUA e do Japão (NTSC), que são executados a 60 Hz. Isso, além de algumas outras diferenças de tempo, significa que elas precisam ser emuladas de maneira diferente. Infelizmente, a maioria dos arquivos da ROM para os jogos PAL não se identifica com precisão como exigindo emulação de pal. Com o NESIZM, você pode executar um jogo de PAL, incluindo (e) ou PAL (todos os bonés) no nome do ROM, como gamepal.nes
Os códigos Genie de jogo são suportados por meio de um arquivo separado por jogo. Se você tiver um arquivo de texto com o nome do arquivo "gamename.gg", onde o nome do GameName corresponde ao seu arquivo ROM menos a extensão NES, com códigos de gênio do jogo separados por linha, o emulador carregará e usará esses códigos quando a ROM for carregada. Você receberá uma caixa de diálogo no menu quando isso acontecer com sucesso. Eu recomendo o aplicativo Utilities da GBL08MA se você quiser editar códigos usando um editor de texto na calculadora. Você pode encontrar isso em https://github.com/gbl08ma/utilities
Se você tiver um arquivo txt com o mesmo nome do seu arquivo ROM, ele será visível enquanto o jogo é carregado no visualizador de perguntas frequentes no menu principal. O visualizador de perguntas frequentes se lembrará de sua posição anterior enquanto você joga. Navegue pelas perguntas frequentes com as teclas de seta, sua posição é mostrada através da barra de rolagem à direita. Você também pode pular incrementos de 10% do arquivo com as teclas 0-9.
O emulador tem suporte total ao som. O som é um algoritmo bem ajustado para um som de 1 bit sendo ajustado mais de 500.000 vezes por segundo. Infelizmente, as rotinas de som diminuem a emulação em cerca de 20%, mas com o pulo de quadro isso não é tão ruim. Você também pode usar um utilitário como o Ptune3 para overclock seu CG50 para obter 60 fps com som, mas eu não o recomendo, pois é um dreno de bateria. Habilite -o no menu de som nas opções. Para usá -lo, você precisará de um adaptador de 2,5 mm (masculino) a 3,5 mm (feminino). Estes podem ser encontrados para alguns dólares em vários fornecedores on -line, nada necessário! Eu também recomendo os fones de ouvido dos ouvidos para desfrutar do sinal de som.
Uma opção de qualidade adicional está disponível que é mais uma coisa subjetiva. A opção de qualidade diminuirá os geradores de ondas de triângulo e ruído com base no gerador DMC, assim como o NES original e adiciona um filtro de passes mais baixo para evitar mudanças rápidas. Na prática com som de um bit, porém, não parece ser extremamente importante.
Meu outro repositório, Prizmsdk, é obrigado a construir o NESIZM a partir da fonte. Coloque seu clone NESIZM no diretório de projetos SDK.
Para construir em uma máquina Windows, recomendo o uso dos arquivos do projeto usando o Visual Studio Community Edition, onde eu configurei bem o Nmake. Para outros sistemas, consulte sua documentação do Prizm SDK sobre como compilar projetos. Consulte as opções de configuração no make-deverelease.bat.
Se você usa o Visual Studio, um projeto está incluído que usa um simulador do Windows que escrevi que envolve as funções do PRIZM OS para que o código e o emulador possam ser facilmente testados e iterados no Visual Studio. Consulte o código Prizmsim.cpp/h para obter detalhes sobre seu uso.
O Wiki Nesdev, encontrado em http://wiki.nesdev.com/ foi incrivelmente útil no desenvolvimento do NESIZM. Minha sinceridade gratidão à comunidade de desenvolvedores de emuladores que coletaram todas as informações necessárias para escrever um emulador em um único local.
O FCEUX, encontrado em http://www.fceux.com forneceu ótimas ferramentas de depuração que me permitiram comparar e contrastar meu estado de emulador facilmente para jogos que tinham problemas de compatibilidade. Mostre a eles um pouco de amor usando seu emulador no PC!
CRITOR DO TI-PLANET.org por suas excelentes redes em Nesizm e para a comunidade em geral Casio. Sua emoção é infecciosa!