[SMS] Demo Bad Apple

Page 2 sur 3 Précédent  1, 2, 3  Suivant

Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Jeu 1 Juin 2017 - 9:33

C'est sur la démo est en 2bpp mais y'a pas un mode du TI pour faciliter ce genre d'affichage sur SMS ? Sinon je ne comprends pas  pourquoi ça ne marche pas sur MD

Stef
Infirmier

Nombre de messages : 4317
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par vingazole le Jeu 1 Juin 2017 - 9:41

En effet, c'est du mode 4 (le mode normal de la SMS), mais seuls les deux premiers bitplans sont mis à jour dans le chargement des tiles.

L'incompatibilité avec la MD est due à la mise à jour du pointeur d'écriture du VDP en ne modifiant que l'octet de poids faible quand il n'y a pas besoin de modifier l'octet de poids fort (une seule écriture sur le port de commande au lieu de deux), ce qui marche sur SMS mais pas sur MD.
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4078
Age : 44
Localisation : Nilbog
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Touko le Jeu 1 Juin 2017 - 9:48

L'auto incrémentation de la VRAM marche comment sur SMS ?? , à l'octets ??

J'aurai plutôt dit le contraire, incrémentation au word et écriture seulement du poids fort pour l'auto-incrémentation .


Dernière édition par TOUKO le Jeu 1 Juin 2017 - 10:09, édité 2 fois
avatar
Touko
Interne
Interne

Masculin Nombre de messages : 13037
Age : 45
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par vingazole le Jeu 1 Juin 2017 - 9:55

A l'octet : quand tu écris un octet en $3AFF en VRAM, le pointeur du VDP passe à $3B00.


Dernière édition par vingazole le Jeu 1 Juin 2017 - 10:13, édité 1 fois
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4078
Age : 44
Localisation : Nilbog
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Touko le Jeu 1 Juin 2017 - 10:08

@vingazole a écrit:Oui : quand tu écris un octet en $3AFF en VRAM, le pointeur du VDP passe à $3B00.
ah d'accord .
avatar
Touko
Interne
Interne

Masculin Nombre de messages : 13037
Age : 45
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Jeu 1 Juin 2017 - 11:19

@vingazole a écrit:En effet, c'est du mode 4 (le mode normal de la SMS), mais seuls les deux premiers bitplans sont mis à jour dans le chargement des tiles.

L'incompatibilité avec la MD est due à la mise à jour du pointeur d'écriture du VDP en ne modifiant que l'octet de poids faible quand il n'y a pas besoin de modifier l'octet de poids fort (une seule écriture sur le port de commande au lieu de deux), ce qui marche sur SMS mais pas sur MD.

Etant donné que le Z80 est un CPU 8 bits le VDP de la SMS supporte les écritures 8 bits ce dont est incapable le VDP de la MD... en mode 5 tout du moins : si tu écris un byte, il est dupliqué dans le byte fort/faible selon l'adresse où tu écris... Mais justement je pensais que le mode 4 du VDP permettait un accès 8 bits, sinon je ne comprends pas comment tu fais pour écrire dans le port VDP sur SMS puisque le CPU accède toujours en 8 bits en interne. Peut être que sur le VDP de la MD il y a un latch qui met à jour la commande seulement après avoir écrit un mot complet (byte low + byte high) alors que sur SMS la mise à jour est immédiate (après chaque byte écrit) ? Dans ce cas je suis surpris qu'il n'y ai pas plus de soucis d'incompatibilité avec les jeux SMS...
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Jeu 1 Juin 2017 - 11:24

@upsilandre a écrit:Le probleme c'est que sur NES tu peux pas accéder a la VRAM en dehors du Vblank, tu sera vite bloqué sur le transfert de tuile, faudrait forcement viser le PAL et meme en PAL ca sera compliqué.
Sur SMS je serais pas surpris qu'il décompresse meme directement dans la VRAM.
D'ailleurs qu'est ce qui empêcherait de faire aussi bien sur Colecovision? (ca serait en 1bpp mais du coup ca serait encore plus rapide) le probleme c'est la cartouche.


Sur NES en configuration CHR-RAM, tu as 8 Ko de CHR-RAM il me semble, dans ce cas comment y accèdes tu ? j'imagine que tu passes par des écritures sur le port PPU car la CHR-RAM est connecté au bus du PPU. Il y a un auto incrémente j'imagine comme sur les autres machines avec ce mode de configuration ? Je me demande comment ça fonctionne, le PPU a du être prévu pour pouvoir écrire dans la mémoire CHR (et pas seulement lire)...
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par vingazole le Jeu 1 Juin 2017 - 11:41

@Stef a écrit:Etant donné que le Z80 est un CPU 8 bits le VDP de la SMS supporte les écritures 8 bits ce dont est incapable le VDP de la MD... en mode 5 tout du moins : si tu écris un byte, il est dupliqué dans le byte fort/faible selon l'adresse où tu écris... Mais justement je pensais que le mode 4 du VDP permettait un accès 8 bits, sinon je ne comprends pas comment tu fais pour écrire dans le port VDP sur SMS puisque le CPU accède toujours en 8 bits en interne. Peut être que sur le VDP de la MD il y a un latch qui met à jour la commande seulement après avoir écrit un mot complet (byte low + byte high) alors que sur SMS la mise à jour est immédiate (après chaque byte écrit) ? Dans ce cas je suis surpris qu'il n'y ai pas plus de soucis d'incompatibilité avec les jeux SMS...

Exemple concret : le pointeur du VDP est à $3820 et on veut le passer à $3850.

Sur SMS on peut se contenter d'écrire $50 sur le port de commande et ça affectera uniquement l'octet de poids faible du pointeur.

Sur MD ça ne marche pas, il faut réécrire l'adresse 16 bits complète ($3850, donc).

A ma connaissance aucun jeu officiel n'utilise cette spécificité du VDP de la SMS, donc aucun problème d'incompatibilité quand on les lance sur une MD en mode SMS Wink
avatar
vingazole
Infirmier

Masculin Nombre de messages : 4078
Age : 44
Localisation : Nilbog
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par ichigobankai le Jeu 1 Juin 2017 - 12:44

c'est à cause de ce "trick" que la démo de cimmerian ne marchait pas sur MD ^^
avatar
ichigobankai
Patient incurable

Masculin Nombre de messages : 1403
Age : 39
Localisation : 49
Date d'inscription : 04/04/2011

http://www.mastersystem-france.com

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par upsilandre le Jeu 1 Juin 2017 - 14:08

@Stef a écrit:
@upsilandre a écrit:Le probleme c'est que sur NES tu peux pas accéder a la VRAM en dehors du Vblank, tu sera vite bloqué sur le transfert de tuile, faudrait forcement viser le PAL et meme en PAL ca sera compliqué.
Sur SMS je serais pas surpris qu'il décompresse meme directement dans la VRAM.
D'ailleurs qu'est ce qui empêcherait de faire aussi bien sur Colecovision? (ca serait en 1bpp mais du coup ca serait encore plus rapide) le probleme c'est la cartouche.


Sur NES en configuration CHR-RAM, tu as 8 Ko de CHR-RAM il me semble, dans ce cas comment y accèdes tu ? j'imagine que tu passes par des écritures sur le port PPU car la CHR-RAM est connecté au bus du PPU. Il y a un auto incrémente j'imagine comme sur les autres machines avec ce mode de configuration ? Je me demande comment ça fonctionne, le PPU a du être prévu pour pouvoir écrire dans la mémoire CHR (et pas seulement lire)...

La CHR-RAM est simplement dans la continuité de la VRAM, c'est dans le meme espace mémoire (celui du PPU) et t'y accede de la meme facon que la VRAM de la console en passant par le PPU (et avec de l'auto_incrémentation) mais seulement pendant le Vblank (qui est tres court si tu bidouille pas).
En PAL ca serait deja plus intéressant.
avatar
upsilandre
Guéri miraculeux

Masculin Nombre de messages : 2583
Age : 43
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Jeu 1 Juin 2017 - 16:03

Exemple concret : le pointeur du VDP est à $3820 et on veut le passer à $3850.

Sur SMS on peut se contenter d'écrire $50 sur le port de commande et ça affectera uniquement l'octet de poids faible du pointeur.

Sur MD ça ne marche pas, il faut réécrire l'adresse 16 bits complète ($3850, donc).

A ma connaissance aucun jeu officiel n'utilise cette spécificité du VDP de la SMS, donc aucun problème d'incompatibilité quand on les lance sur une MD en mode SMS

Ok donc c'est bien une histoire de latch après l'écriture du 2eme byte sur le VDP de la MD, comme quoi il y a une petite différence entre les 2. Je suis vraiment surpris qu'aucuns jeux n'utilisent ce trick ! A mon jeux les premiers jeux SMS auraient pu l'utiliser... J'imagine que Sega l'a interdit (dans les normes de dev) lorsqu'ils avaient les plans de la MD en tête, mais avant rien ne l'empêchait :-/


La CHR-RAM est simplement dans la continuité de la VRAM, c'est dans le meme espace mémoire (celui du PPU) et t'y accede de la meme facon que la VRAM de la console en passant par le PPU (et avec de l'auto_incrémentation) mais seulement pendant le Vblank (qui est tres court si tu bidouille pas).
En PAL ca serait deja plus intéressant.

Combien d'espace adressable pour cette VRAM ? de base tu as 2 ko pour la map il me semble, la CHR-RAM en ajoute 8 KB. Le PPU permet d'en adresser combien au juste ? 64 KB ? qu'est ce qui empêche d'avoir 32 KB de CHR-RAM par exemple ?
A moins que ça prend la même configuration que la CHR-ROM : 8KB + 8KB, Donc le PPU fonctionne ainsi :
- 2 KB pour le tilemap
- 8 KB CHR background
- 8 KB CHR sprite
C'est ça ? je connais bien mal la NES..
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par upsilandre le Jeu 1 Juin 2017 - 16:25

Le bus d'adressage du PPU c'est du 14bit donc 16Ko
t'as 2Ko de tilemap dans la console qui sont parfois étendu a 4Ko dans la cartouche pour avoir une tilemap de 4 ecrans (mais c'est tres rare , 2 ou 3 jeux)
Les 8Ko de CHR-RAM viennent juste remplacer les 8Ko de CHR-ROM et contiennent 4Ko de background et 4ko de sprite. Le PPU ne peut pas de toute facon adresser plus de 8Ko de tuiles a la fois.
avatar
upsilandre
Guéri miraculeux

Masculin Nombre de messages : 2583
Age : 43
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par TotOOntHeMooN le Jeu 1 Juin 2017 - 16:39

@Stef a écrit:A mon avis les premiers jeux SMS auraient pu l'utiliser... J'imagine que Sega l'a interdit (dans les normes de dev) lorsqu'ils avaient les plans de la MD en tête, mais avant rien ne l'empêchait :-/
C'est ce qui est recommandé. Si tu n'écris pas l'adresse haute, normalement tu ne la valide pas. 
Si ça fonctionne sur SMS c'est juste par chance. Il faut croire que les programmeurs japonnais étaient trop consciencieux pour s'y risquer et il y avait certainement mieux à faire avant d'optimiser les jeux ! Mr. Green
avatar
TotOOntHeMooN
Docteur *
Docteur *

Masculin Nombre de messages : 6995
Age : 48
Localisation : France
Date d'inscription : 18/04/2013

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Jeu 1 Juin 2017 - 17:08

@upsilandre a écrit:Le bus d'adressage du PPU c'est du 14bit donc 16Ko
t'as 2Ko de tilemap dans la console qui sont parfois étendu a 4Ko dans la cartouche pour avoir une tilemap de 4 ecrans (mais c'est tres rare , 2 ou 3 jeux)
Les 8Ko de CHR-RAM viennent juste remplacer les 8Ko de CHR-ROM et contiennent 4Ko de background et 4ko de sprite. Le PPU ne peut pas de toute facon adresser plus de 8Ko de tuiles a la fois.

8 Ko de CHR-RAM ?? mince je pensais que c'était 16 Ko ^^ Bon ok je comprends mieux, merci.
Bon 4Ko de CHR-RAM... si tu blank à la ligne 224 ça te fais 38 lignes pour transférer tes tiles. Y'a pas besoin de sprites donc tu peux désactiver la MAJ de l'OAM... réalistement tu peux garder 156 tiles fixes (les plus utilisés) et avoir juste 100 tiles dynamiques.. ensuite tu as aussi la map à mettre à jour ^^ c'est jouable de transférer 1600 bytes de tiles et la map (960 bytes) en 2 vblank de 38 scanlines sur NES ? Vu comment le CPU est poussif pour ce genre d'opération (copie mémoire) j'ai quelques doutes :-/
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par upsilandre le Jeu 1 Juin 2017 - 17:44

Ca passera pas. C'est une demo qu'il faut faire un PAL c'est obligé.
avatar
upsilandre
Guéri miraculeux

Masculin Nombre de messages : 2583
Age : 43
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Touko le Jeu 1 Juin 2017 - 18:21

Vu comment le CPU est poussif pour ce genre d'opération (copie mémoire) j'ai quelques doutes :-/
Je suis pas sur que le Z80 fasse bcp mieux .
avatar
Touko
Interne
Interne

Masculin Nombre de messages : 13037
Age : 45
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par TotOOntHeMooN le Jeu 1 Juin 2017 - 18:37

Il faut créer en émulation un nouveau mapper "Bad Apple" qui puisse permettre de switcher les banques de tiles depuis la ROM pour alimenter directement les tilemaps avec les bons sets. Et une fois que cela fonctionne, créer le vrai mapper pour une cartouche dédiée à la démo. Mr. Green
avatar
TotOOntHeMooN
Docteur *
Docteur *

Masculin Nombre de messages : 6995
Age : 48
Localisation : France
Date d'inscription : 18/04/2013

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par upsilandre le Jeu 1 Juin 2017 - 20:25

Sinon oui on peut tout figer en ROM (tileset et tilemap) de facon non compressé et tout bank switcher frame par frame, les mappers le font deja. Dans ce cas oui la NES fait la demo bad apple finger in the nose en 256x240 a 60fps 2bpp et sans utiliser aucune ressource (on pourrait meme du coup avoir aussi l'audio samplé a 44khz 7bit) mais la cartouche serait du coup tres grosse.

edit: En etant un peu raisonnable et en se limitant a 30fps et en modifiant en moyenne juste la moitié du tileset a chaque frame (128 tuiles) on peut s'en sortir avec 21 Mo pour l'image (4mn) et entre 2 Mo et 10 Mo pour l'audio (selon si on choisit 44Khz ou 22Khz et si on compresse ou pas)
avatar
upsilandre
Guéri miraculeux

Masculin Nombre de messages : 2583
Age : 43
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par TotOOntHeMooN le Jeu 1 Juin 2017 - 23:02

A 30fps et 22khz pour diviser par 2 la taille de la ROM, ça serait déjà beau, nop ?

edit: mdr, t'as édité en même temps ou je suis miro ? MDR
avatar
TotOOntHeMooN
Docteur *
Docteur *

Masculin Nombre de messages : 6995
Age : 48
Localisation : France
Date d'inscription : 18/04/2013

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Ven 2 Juin 2017 - 10:24

Bah si tu utilises du bank switch et qu'il n'y a plus de compression pour moi il n'y a plus aucun intérêt à la démo :-/
Le but c'est tout de même d'utiliser au mieux les ressources de la machine pur faire une cartouche d''une taille "raisonnable" et obtenir un résultat correct. A ce niveau la version SMS est une vraie réussite (qui demande tout de même une machine PAL).
Sur une NES PAL il y a peut être moyen de faire quelque chose.

@touko> Le Z80 est bien pourri pour les opérations de copie mémoire clairement, entre la SMS et la NES je ne sais pas lequel est le plus lent des 2 pour ce genre d'operation MDR
Je pense que c'est encore plus lent sur la NES (en utilisant le registre SP sur SMS tu peux aller un peu plus vite que le LDI) mais de toute façon il y a la compression à gérer à côté qui bouffe aussi beaucoup de temps (et là pas sur que le Z80 à 3.58Mhz fasse mieux que le 6502 à 1.78Mhz)
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par TotOOntHeMooN le Ven 2 Juin 2017 - 11:30

Les ressources de la machine ? Y'en a pas ! MDR

Sur NES, tout ce qui pouvait-être déporté dans les cartouches pour réduire le coût de fabrication de la console l'ont été. S'il y a bien un intérêt sur NES, c'est de pouvoir accéder directement à la ROM pour afficher les tiles et animer les backgrounds. Se passer de cette fonctionnalité c'est au contraire ne pas exploiter la machine au mieux.

Compresser des données, c'est la méthode à utiliser sur les machines qui doivent de toute façon charger en VRAM avant de devoir afficher. Va dire à monsieur NeoGeo qu'il faut réduire le contenu des cartouches en compressant les données parce que c'est cool... Mr. Green

OK, ce n'est peut-être pas passionnant pour un codeur aujourd'hui...


Dernière édition par TotOOntHeMooN le Ven 2 Juin 2017 - 15:38, édité 1 fois
avatar
TotOOntHeMooN
Docteur *
Docteur *

Masculin Nombre de messages : 6995
Age : 48
Localisation : France
Date d'inscription : 18/04/2013

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Touko le Ven 2 Juin 2017 - 15:16

Je pense que c'est encore plus lent sur la NES (en utilisant le registre SP sur SMS tu peux aller un peu plus vite que le LDI) mais de toute façon il y a la compression à gérer à côté qui bouffe aussi beaucoup de temps (et là pas sur que le Z80 à 3.58Mhz fasse mieux que le 6502 à 1.78Mhz)
Je sais que sur nes (d'après le forum nesdev), ils font du 8 cycles/octets en VRAM pendant le vblank .
avatar
Touko
Interne
Interne

Masculin Nombre de messages : 13037
Age : 45
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par fanoplusplus64K le Ven 2 Juin 2017 - 15:23

Sur SMS l'avantage c'est que tu peux écrire en vram tout le temps , tu peux envoyer très rapidement à 16 cycles par octets pendant la vbl avec outi , par contre pas sur que le vdp suive...
avatar
fanoplusplus64K
Patient contaminé

Masculin Nombre de messages : 524
Age : 42
Date d'inscription : 16/01/2011

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Touko le Ven 2 Juin 2017 - 15:26

Ouai, mais tu dois quand même y arriver, même plus lentement c'est toujours mieux que de n'avoir que le vblank .
Ca représente qd même un avantage dans une demo (même surement dans un jeu) comme BA par rapport à la nes .

Bah si tu utilises du bank switch et qu'il n'y a plus de compression pour moi il n'y a plus aucun intérêt à la démo :-/
Oui effectivement, là ça sert vraiment à rien .
avatar
Touko
Interne
Interne

Masculin Nombre de messages : 13037
Age : 45
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Ven 2 Juin 2017 - 16:19

@fanoplusplus64K a écrit:Sur SMS l'avantage c'est que tu peux écrire en vram tout le temps , tu peux envoyer très rapidement à 16 cycles par octets pendant la vbl avec outi ,  par contre pas sur que le vdp suive...

La bande passante VRAM du VDP SMS est sur dimensionné par rapport à ce que le Z80 peut envoyer, Tiido avait bricolé un DMA dans une cartouche SMS et ça allait *beaucoup* plus vite Wink
16 cycles octet ? c'est la vitesse de l'instruction LDI ^^
Ah mais oui, le VDP est mappé sur les ports IN/OUT sur SMS... pas moyen d'utiliser SP pour aller plus vite :-/
Du coup tu vas aussi vite avec les 8 cycles / octet sur la NES (j'imagine que c'est de la copie un peu trash avec un code qui fait la taille du tableau à copier MDR )

Calcul rapide pour la NES:
113 cycles / ligne, 38 lignes de blank dispo avec un affichage en 224 ligne.
Pour être safe on va dire qu'on peut exploiter que 35 lignes (ce qui est déjà pas mal) à cause des autres opérations :
(113 * 35) / 8 = ~500 bytes / frame.
Bon en effet ça fait un peu juste, rien que la nametable c'est 896 bytes MDR
Faudrait une opti type RLE pour ne modifier que les entrées nécessaire de la nametable (car on modifie quasiment jamais toute la nametable), mais ça implique de réécrire l'adresse VRAM entre chaque paquet... ah c'est rude ^^
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par fanoplusplus64K le Ven 2 Juin 2017 - 16:41

@steph c'est intéressant à savoir, j'eu peur qu'il ait les mêmes limitations que son prédécesseur pour qui le z80 est trop rapide...
avatar
fanoplusplus64K
Patient contaminé

Masculin Nombre de messages : 524
Age : 42
Date d'inscription : 16/01/2011

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Touko le Ven 2 Juin 2017 - 16:58

Du coup tu vas aussi vite avec les 8 cycles / octet sur la NES (j'imagine que c'est de la copie un peu trash avec un code qui fait la taille du tableau à copier  )
Presque, y'a de l'unrolling(à mort qd même  Cool ),voire de la copie via la stack(à coup de pla/sta) mais bon pour la demo c'est pas suffisant .

Ah mais oui, le VDP est mappé sur les ports IN/OUT sur SMS... pas moyen d'utiliser SP pour aller plus vite :-/
Tu montes à combien avec ça ??
avatar
Touko
Interne
Interne

Masculin Nombre de messages : 13037
Age : 45
Localisation : LE MANS/MARSEILLE
Date d'inscription : 08/07/2010

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Ven 2 Juin 2017 - 17:37

POP HL     ' 10
LD (VDP_PORT),HL   ' 16

Le POP est particulière efficace : 10 cycles pour lire 2 octets avec post incrementation... Le PUSH est très efficace aussi mais dans le cadre d'une copie tu utilises l'un ou l'autre, mais pas les 2 à la fois.
Dommage que l'instruction set du Z80 est un peu pourrie, si on pouvait faire une écriture 16 bits mais indexé par un registre ça serait encore plus performant, mais pour des raisons incompréhensibles les instructions LD 16 bits se font toujours en immédiate (ce qui est plus long).

J'aurais bien vu un :
POP HL     ' 10
LD (DE),HL   ' 10

avec DE qui pointe sur VDP_PORT... enfin bon, on est déjà à 26 cycles pour 2 octets soit 13 cycles / octet, c'est un peu mieux que les 16 cycles du LDI.
A noter que je ne suis pas un expert du Z80, peut être qu'on peut faire un peu mieux en utilisant les instructions EX xx mais à regarder rapidement comme ça je ne vois pas.


Dernière édition par Stef le Ven 2 Juin 2017 - 18:04, édité 3 fois
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par fanoplusplus64K le Ven 2 Juin 2017 - 17:44

Le vdp de la SMS est mappé sur les i/o il me semble Steph , c'est out qui doit être utilisé
Idem, ld (de), hl n'existe pas

Par contre tu peux faire
Pop de
Out (c), e
Out (c), d
avatar
fanoplusplus64K
Patient contaminé

Masculin Nombre de messages : 524
Age : 42
Date d'inscription : 16/01/2011

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Stef le Ven 2 Juin 2017 - 17:47

Oui je sais, c'était juste pour montrer à Touko Wink
Et je disais justement que c'était dommage que le LD (DE),HL n'existe pas quand le LD (imm), HL lui existe Wink

Avec ton POP DE et les 2 OUT tu es à 10+22 cycles, soit 32 cycles au total, exactement la même chose qu'avec OUTI, dommage MDR
avatar
Stef
Infirmier

Masculin Nombre de messages : 4317
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par fanoplusplus64K le Ven 2 Juin 2017 - 17:56

Ah ok 😉
C'est sur que c'est moins souple qu'un 68k, après c'est la génération d'avant 😉
avatar
fanoplusplus64K
Patient contaminé

Masculin Nombre de messages : 524
Age : 42
Date d'inscription : 16/01/2011

Revenir en haut Aller en bas

Re: [SMS] Demo Bad Apple

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 3 Précédent  1, 2, 3  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum