Nesizm est un émulateur de système de divertissement Nintendo pour la série Casio Prizm de calculatrices graphiques. Il prend actuellement en charge les calculatrices FX-CG10, FX-CG20, FX-CG50 et Graph 90+ E. Nesizm a été construit à partir de zéro avec des performances à l'esprit, tout en maintenant une émulation et une compatibilité précises dans la mesure du possible avec une mise en cache intelligente, un alignement forcé et un assemblage écrit à la main si nécessaire. Il exécute la plupart des titres à 60 ips sans overclocking sur le FX-CG50.
Ce projet a ses racines dans mon intérêt pour la technologie de développement du début du jeu, ainsi que les avantages inhérents du Prizm en tant que plate-forme. Il y a une grande base d'installation de joueurs qui peuvent désormais jouer au NES sur de nombreuses heures de durée de vie de la batterie avec 0 décalage d'entrée du clavier à l'affichage.
Copiez le fichier NESIZM.G3A (ou NESIZM_CG10.G3A Si vous avez un FX-CG10) sur le chemin racine de votre calculatrice Casio Prizm lorsqu'il est lié via USB. NES ROMS (.nes) devrait également entrer à l'intérieur du répertoire racine. Gardez les noms de fichiers pour ces fichiers doit être simple et moins de 32 caractères, tels que mygame.nes. L'émulateur prend en charge le format ROM NES 2.0, mais je ne l'ai pas testé largement.
Dans le système de menu, utilisez les touches fléchées et déplacez ou entrez pour sélectionner. Vous pouvez également utiliser Alpha pour sortir rapidement d'un sous-menu. L'aide pour l'option sélectionnée actuelle se trouve en haut à droite.
À l'intérieur d'un jeu, la touche de menu quittera l'écran des paramètres, et appuyer sur le menu vous ramènera à nouveau au système d'exploitation de la calculatrice.
Vous pouvez configurer vos propres clés dans le menu des paramètres, ce sont les défauts que j'ai trouvés pour bien fonctionner:
Notez que si vous définissez le paramètre Turbo sur 30 Hz, cela peut être trop rapide pour certains jeux, ce qui les a fait dysonner.
Si vous souhaitez jouer avec un deuxième contrôleur, il peut être mappé sur d'autres boutons de la calculatrice à l'aide de l'option Remap Boutons dans les options -> Contrôles. C'est très lourd, cependant, donc par défaut, le joueur 2 n'est mappé à aucun boutons.
Un seul état de sauvegarde est pris en charge par ROM, qui peut être chargé / enregistré à l'aide des clés remappables mentionnées dans la section Contrôles. Ceux-ci par défaut des touches «s» et «l» sur la calculatrice. Le fichier Save State sera enregistré sur votre stockage principal avec l'extension .fcs.
Ces états de sauvegarde sont généralement intercompatibles avec FCEUX, l'émulateur PC NES populaire. Cependant, par défaut, FCEUX permet une compression sur ses états de sauvegarde lors de l'enregistrement, donc afin de transporter un état de sauvegarde vers votre calculatrice, vous devez désactiver la compression de l'état de sauvegarde dans FCEUX.
Si une ROM utilise une fonction à soutenir la batterie, comme Legend of Zelda, cette mémoire sera automatiquement enregistrée lorsque vous reviendrez au menu principal avec le bouton du menu. Gardez à l'esprit que l'utilisation des états de sauvegarde écrasera complètement les données soutenues par batterie.
L'option d'écran d'écran utilise le taux de rafraîchissement élevé de l'écran pour entrelacer le signal, ce qui est très similaire à l'âge des téléviseurs entrelacés. Cela fonctionne avec l'écran de couleur TFT, qui a une légère latence de couleur sur le Prizm, pour être très difficile à remarquer. Si vous définissez l'option Stretch sur 4: 3, il correspondra de très près aux proportions destinées aux jeux originaux. Cependant, cela nécessite un FPS élevé. Ainsi, les visuels de l'émulateur commenceront à avoir l'air glitch si vous avez un ensemble d'options FramesKip très élevé. En général, la définition de vos options sur un Frameskip très élevé doit être inutile. La durée de vie de la batterie de la calculatrice ne semble pas être fortement effectuée par le saut de cadre.
3 palettes sont incluses au choix. Ils se sentent tous un peu différents, alors choisissez celui qui, selon vous, est le meilleur. Il n'y a pas de vraie couleur correcte pour les NES à bien des égards, car les téléviseurs de l'époque pourraient tous interpréter le signal des NES légèrement différemment. Une fois que vous avez sélectionné une palette, vous pouvez ajuster la luminosité (à un niveau très bas si vous êtes dans un environnement sombre) et les quantités de saturation des couleurs. Gardez à l'esprit que l'augmentation de la luminosité n'augmentera qu'augmenter la luminosité relative des couleurs utilisées, et non la luminosité de votre écran.
Si vous êtes si enclin, une palette personnalisée peut être utilisée. Il existe des fichiers de palette de 192 octets que vous pouvez trouver en recherchant facilement en ligne. Renommez la palette souhaitée sur "Custom.pal" et incluez-les dans le répertoire racine de votre stockage de fichiers. Il doit être sélectionnable comme l'option 4e palette à ce stade.
4 options d'arrière-plan sont disponibles. L'arrière-plan «Warp» correspond au menu principal. L'arrière-plan TV fournit un ancien fond télévisé nostalgique, en particulier dans les modes d'étirement à petit écran. L'option de couleur BG Game correspondra à la couleur de la palette de fond de jeu actuellement sélectionnée. L'utilisation de cela varie par jeu, mais elle fonctionne bien dans certains, comme les sélections de fond bleu / noir de Super Mario Bros.
Une horloge en jeu peut éventuellement être affichée dans le coin inférieur droit de l'écran si vous devez garder une trace du temps. Il faut cependant configurer, car l'horloge n'est pas couramment utilisée dans le système d'exploitation de la calculatrice. Réglez votre horloge avec une application tierce, telle que G-Glock ou également à l'intérieur de l'application Utilitaires GBL08MA.
Les FP peuvent également être affichés dans ce coin de l'écran. Gardez à l'esprit que ce sont simplement les cadres dessinés en une seconde donnée, pas les cadres sautés. Donc, si cela dit 40 ips et que votre option de saut de trame est définie sur Auto, l'émulateur fonctionne toujours à 100% de vitesse, mais saute chaque 3e trame lors du dessin à l'écran pour enregistrer le traitement.
L'émulateur prend en charge presque tous les jeux avec un mappeur compatible sans problème. Si vous rencontrez un jeu avec des problèmes vraiment importants, faites-le moi savoir.
Voici la table de support du mappeur. L'émulateur prend en charge presque tous les mappeurs US NTSC et PAL, à l'exclusion de MMC5, couvrant 98% des jeux publiés dans le commerce dans ces régions. Le soutien du disque Famicom et VS n'est pas prévu.
Nom de mappeur | Éditeur | Nom | Éditeur | Nom | Éditeur |
---|---|---|---|---|---|
MMC1 | Nintendo | Axrom | Nintendo | Nanjing 163 | Nanjing |
MMC2 | Nintendo | Gxrom | Nintendo | Sunsoft 3 | Soleil |
MMC3 | Nintendo | Bnrom | Nintendo | Sunsoft 4 | Soleil |
MMC4 | Nintendo | Null / nrom | Plusieurs | Sunsoft 5 | Soleil |
Mmc6 | Nintendo | Rêves de couleur | Rêves de couleur | Rambo-1 | Tension |
Cnrom | Nintendo | Nina-03/06 | Avenue | Nina-1 | Irem |
Unmom | Nintendo | Camerica | Oui | JF-11/14 | Jaleco |
Une table complète de ROM et de cartouches peut être trouvée ici, mais je ne la garde pas entièrement à jour: https://docs.google.com/spreadsheets/d/1tfgiu6dodagvizsmy3flpsmzvifkiysixi9uwl-rlry/edit?usp=sharing
Pal Roms fonctionne à une fréquence d'images différente de 50 Hz par rapport aux jeux des États-Unis et du Japon (NTSC) qui se déroulent à 60 Hz. Ceci, plus quelques autres différences de synchronisation signifie qu'ils doivent être émulés différemment. Malheureusement, la plupart des fichiers ROM pour les jeux PAL ne s'identifient pas avec précision comme nécessitant une émulation PAL. Avec Nesizm, vous pouvez bien exécuter un jeu PAL en incluant (e) ou PAL (tous les plafonds) dans le nom de fichier ROM, comme Gamepal.nes
Les codes de génie du jeu sont pris en charge via un fichier séparé par jeu. Si vous avez un fichier texte avec le nom de fichier "GameName.gg" où GameName correspond à votre fichier ROM moins l'extension NES, avec des codes de génie de jeu séparés en ligne, l'émulateur chargera et utilisera ces codes lorsque la ROM est chargée. Vous serez présenté avec une boîte de dialogue dans le menu lorsque cela se produira avec succès. Je recommande l'application Utilities de GBL08MA si vous souhaitez modifier les codes manuellement à l'aide d'un éditeur de texte sur la calculatrice. Vous pouvez le constater sur https://github.com/gbl08ma/utilities
Si vous avez un fichier TXT avec le même nom que votre fichier ROM, il sera visible tandis que le jeu est chargé dans la Viewer FAQ via le menu principal. La visionneuse FAQ se souviendra de votre position précédente pendant que vous jouez. Naviguez dans la FAQ avec les touches de flèche, votre position est affichée via la barre de défilement à droite. Vous pouvez également sauter à travers des incréments de 10% du fichier avec les touches 0-9.
L'émulateur a une prise en charge complète du son. Le son est un algorithme réglé fin pour un son 1 bits ajusté plus de 500 000 fois par seconde. Malheureusement, les routines sonores ralentiront l'émulation d'environ 20%, mais avec le saut de cadre, ce n'est pas trop mal. Vous pouvez également utiliser un utilitaire tel que PTUNE3 pour overclocker votre CG50 pour obtenir 60 ips avec du son, mais je ne le recommande pas car il s'agit d'une fuite de batterie. Activez-le dans le menu sonore dans les options. Pour l'utiliser, vous aurez besoin d'un adaptateur de 2,5 mm (mâle) à 3,5 mm (femme). Ceux-ci peuvent être trouvés pour quelques dollars chez divers vendeurs en ligne, rien d'extraordinaire! Je recommande également des écouteurs d'oreille pour le plaisir du signal sonore.
Une option de qualité supplémentaire est disponible, ce qui est plus une chose subjective. L'option de qualité diminuera les générateurs de triangle et d'onde de bruit basés sur le générateur DMC tout comme le NES d'origine, et ajoute un filtre de passes plus faible pour éviter des changements rapides. En pratique avec un son à un bits, il ne semble pas être extrêmement important.
Mon autre référentiel, PrizMSDK, est nécessaire pour construire Nesizm à partir de la source. Mettez votre clone Nesizm dans le répertoire des projets SDK.
Pour construire sur une machine Windows, je recommande d'utiliser les fichiers du projet à l'aide de Visual Studio Community Edition, où j'ai bien configuré Nmake. Pour d'autres systèmes, veuillez vous référer à votre documentation SDK PRIZM sur la façon de compiler les projets. Reportez-vous aux options de configuration dans make-DeviceRelease.bat.
Si vous utilisez Visual Studio, un projet est inclus qui utilise un simulateur Windows que j'ai écrit qui enveloppe les fonctions Prizm OS afin que le code et l'émulateur puissent facilement être testés et itérés dans Visual Studio. Voir le code prizmsim.cpp / h pour plus de détails sur son utilisation.
Le Wiki Nesdev, trouvé sur http://wiki.nesdev.com/ était incroyablement utile dans le développement de Nesizm. Ma plus sincère gratitude à la communauté des développeurs d'émulates qui a collecté toutes les informations dont j'avais besoin pour écrire un émulateur en un seul endroit.
FCEUX, trouvé sur http://www.fceux.com a fourni d'excellents outils de débogage qui m'ont permis de comparer et de contraster facilement mon état d'émulateur pour les jeux qui avaient des problèmes de compatibilité. Montrez-leur un peu d'amour en utilisant leur émulateur sur PC!
Critor de Ti-Planet.org pour ses excellents écrits sur Nesizm et pour la communauté générale de Casio. Son excitation est contagieuse!