π
<-
Chat plein-écran
[^]

Mise à jour NTSC émulateur NES + comparaison performances

Mise à jour NTSC émulateur NES + comparaison performances

Unread postby critor » 14 Oct 2018, 15:33

La sortie vidéo des consoles Nintendo NES utilisait différents formats selon la zone de vente :
  • NTSC
    (60Hz)
    pour l'Amérique du Nord et le Japon
  • PAL
    (50Hz)
    pour l'Europe
Pour ne faire afficher que 50 images par seconde aux consoles européennes,
Nintendo
a tout simplement ralenti la console en utilisant des processeurs de fréquence inférieure.

En conséquence, les mêmes jeux sont 20% plus rapides si joués sur une console américaine ou japonaise.



9853L'émulateur
NES
pour
NumWorks
, un portage par de
nofrendo
, ne gérait initialement que le mode
PAL
, ce qui donnait une émulation nettement plus lente que sur les modèles concurrents
TI-Nspire
.

Dans la nouvelle version de son émulateur et du convertisseur en ligne
webnofrendo
associé,
zardam
te donne le choix du format vidéo à cibler :
PAL
ou
NTSC
. :bj:
Choisis donc
PAL
pour une expérience de jeu
oklm
, ou
NTSC
si tu as l'âme d'un champion international ! :bj:



Profitons-en pour comparer maintenant équitablement les performances d'émulation
NES
de nos calculatrices.

La
Graph 90+E
ne sera hélas pas incluse dans ce test, parce que son émulateur
NES
n'a pas bougé depuis un an, qu'aucune version compilée n'en a jamais été disponible, que nous n'avons pas réussi à le compiler même en demandant de l'aide sur
Planète Casio
, et que l'auteur n'a pas davantage répondu à un courriel demandant un binaire de démo/test en 2017. :'(



  1. La
    NumWorks
    (processeur
    ARMv7
    à
    100MHz
    )
    et la
    TI-Nspire
    monochrome
    (processeur
    ARMv5
    à
    120MHz
    )
    sont les premières à terminer l'intro de
    Ninja Gaiden
    en
    1min29
    . :bj:
  2. Elles sont suivies de peu par la génération de
    TI-Nspire CX
    avec processeur
    ARMv5
    à
    132MHz
    , en
    1min31
    . :bj:
  3. Et la
    TI-Nspire CX CR4+
    malgré son processeur
    ARMv5
    plus rapide à
    156MHz
    , se traîne lamentablement pendant
    2min00
    . :mj:

Voyons maintenant si les
TI-Nspire
peuvent rattraper leur retard avec un peu d'
overclocking
:

  1. La
    TI-Nspire
    monochrome avec son processeur
    ARMv5
    monté à son maximum de
    150MHz
    est mainenant seule à terminer l'intro en
    1min28
    . :bj:
  2. La
    NumWorks
    , toujours avec sonprocesseur
    ARMv7
    à
    100MHz
    , met donc encore
    1min29
    . :bj:
  3. Sur la représentante de la génération
    TI-Nspire CX
    à
    132MHz
    ,
    Nover
    a détecté et enregistré une configuration d'
    overclocking
    stable à
    252MHz
    qui ne met plus que
    1min30
    ! :bj:
  4. La seule représentante de la génération
    TI-Nspire CX CR4+
    à
    156MHz
    dont nous disposons pour les tests s'
    overclocke
    assez mal en comparaison,
    Nover
    ayant abandonné l'accélération à seulement
    216MHz
    , ce qui prend donc encore une éternité de
    1min56
    . :mj:

Apparemment, mieux vaut acheter sa
TI-Nspire CX
d'occasion.
A quand l'overclocking sur
NumWorks
par contre ? ;)




Lien NumWorks
:
convertisseur en ligne de
ROM NES


Téléchargements Nspire
:
Ressources Nspire
:
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32923
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Mise à jour NTSC émulateur NES + comparaison performance

Unread postby jean-baptiste boric » 14 Oct 2018, 17:28

critor wrote:A quand l'overclocking sur
NumWorks
par contre ? ;)

Selon les datasheets officielles, le STM32F412 est déjà quasiment au maximum dans tous les domaines d'horloges (96 MHz actuels/100 MHz maximum nominal). On peut toujours essayer de changer les facteurs du PLL ainsi que les waitstates de la Flash (sachant qu'on ne peut pas espérer gratter plus avec de l'overvolting sans changer le régulateur de tension, fixé à 2,8 V).

Si on se réfère aux datasheets (et les principales limites officielles):
  • f(VCO clock) = f(PLL clock input) × (PLLN / PLLM),
    50 <= PLLN <= 432, 100 <= f(VCO clock) <= 432, 2 <= PLLM <= 63
  • f(PLL general clock output) = f(VCO clock) / PLLP,
    PLLP = {2, 4, 6, 8}
  • f(USB clock output) = f(VCO clock) / PLLQ,
    2 <= PLLQ <= 15

Les réglages de NumWorks donnent:
  • f(VCO clock) = 25 MHz × (192 / 25) = 192 MHz
  • f(PLL general clock output) = 192 MHz / 2 = 96 MHz
  • f(USB clock output) = 192 MHz / 4 = 48 MHz
    (doit être à 48 MHz pour que l'USB fonctionne)

Bref, officiellement on est déjà quasiment au taquet et je ne sais pas a priori quelle est la marge de manœuvre dont on dispose.

Sans transition, NumWorks vient de merger du code visant à compresser les glyphes et images avec l'algorithme LZ4. Au delà de l'économie en Flash actuelle (qui pourrait encore augmenter s'ils se mettent à compresser d'autres choses en plus), on pourrait l'appliquer aux ROMs de l'émulateur NES. Il n'y a pas assez de RAM pour faire tenir une ROM décompressée complète, donc ça nécessiterait un mécanisme de paging à la demande+cache LRU pour décompresser à la volée. Avec un peu de chance ça n'impacterait pas trop les performances.
User avatar
jean-baptiste boricPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.2%
 
Posts: 255
Joined: 21 Dec 2015, 22:22
Gender: Not specified
GitHub: boricj

Re: Mise à jour NTSC émulateur NES + comparaison performance

Unread postby critor » 14 Oct 2018, 17:40

Ah ben merci pour la réponse détaillée et très intéressante une fois de plus. :)
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 95.7%
 
Posts: 32923
Images: 8642
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Mise à jour NTSC émulateur NES + comparaison performance

Unread postby zardam » 14 Oct 2018, 23:36

J'avais testé rapidement l'overclock il y a quelques temps.

En utilisant les valeurs suivantes (dans device.cpp aux alentours de la ligne 266) :
Code: Select all
RCC.PLLCFGR()->setPLLQ(5);
RCC.PLLCFGR()->setPLLN(240);

On fait passer le CPU à 120 MHz, tout en conservant l'USB à 48 MHz.

Avec ces réglages, le script Python mandelbrot(10) s'exécute en environ 35 s au lieu de 42 s. On est bien sur hors spécification.

Concernant la compression des ROM, il est très certainement possible de faire quelque chose. La NES utilise un système de bank switching, et on peut donc se baser la dessus pour décompresser uniquement le nécessaire, en espérant que les switch ne soient pas trop pénalisants ni trop fréquents, à voir aussi. Enfin le plus efficace serait d'avoir plus de place, dommage que la flash additionnelle se soit pas "de série"...
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 7.6%
 
Posts: 164
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):


Return to News NumWorks

Who is online

Users browsing this forum: No registered users and 3 guests

-
Search
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
381 utilisateurs:
>359 invités
>17 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)