Logicielsmoto.com

Nous sommes le 28 Mar 2024, 10:14

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 88 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante
Auteur Message
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 22 Déc 2018, 18:56 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
Oui, le bitmap 16, c'est très joli, mais c'est tordu.

_________________
Marche a suivre pour s'inscrire sur ce forum
Do not forget to contact one of the administrators to validate your registration.
Le site des démos de Puls
L'émulateur Teo


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 22 Déc 2018, 19:21 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
ouais.. Du coup il vaut mieux avoir tout précalculé bien comme il faut et avoir mappé la vidéo dans un espace de 16ko contigü pour ne plus avoir besoin de poker $E7C3/$A7C0 pour switcher RAMA/RAMB.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 31 Déc 2019, 03:19 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Bonjour à tous,

- je galère un peu sur une petite routine que j'aimerais mettre en place.
si quelqu'un peut m'aider, ça serait cool, que je puisse avancer sur mon projet to8.
merci.

- objectif : Lire des octets mis dans FCB pour les afficher sur l'écran à partir de $4000 puis décaler à la colonne suivante tous les 15px lignes (valeurs)
( FCB 98 = fin de col, FCB 99 = fin affichage)

- sens affichage voulu : de haut vers le bas puis vers la droite
- j'arrive à afficher 1 colonne, mais je n'arrive pas à passer à la colonne suivante puis remonter de 15px tous les FCB 98 pour afficher la colonne suivante !

extrait de code :
Code:

display4
          LDX   #sprite4
          LDY   #$4000
loop4
          STB  -40,Y            *boucle pour afficher les FCB de haut vers le bas
          LDB   ,x+
          LEAY 40,Y
          CMPB  #98            *test fin de colonne pour passer +1 à droite
          BNE   loop4         
         
         LEAY -40*15,Y      *on remonte en haut pour la colonne suivante
         LDB   ,x+
         CMPB  #99             *test fin d'affichage
         BNE   loop4
         RTS

sprite4
          FCB   $00,$02,$22,$22,$20,$20,$20,$20
          FCB   $20,$20,$20,$22,$22,$02,$00
          FCB   98
          FCB   $00,$20,$20,$20,$00,$00,$00,$00
          FCB   $00,$00,$00,$20,$20,$20,$00
          FCB   98
          FCB   $00,$02,$02,$02,$02,$02,$02,$00
          FCB   $02,$02,$02,$02,$02,$02,$00
          FCB   98
          FCB   $00,$00,$00,$00,$00,$00,$00,$00
          FCB   $00,$00,$00,$00,$00,$00,$00
          FCB   99



_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 31 Déc 2019, 09:06 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Code:
          LDY   #$4000
loop4
          STB  -40,Y            *boucle pour afficher les FCB de haut vers le bas
          LDB   ,x+
          LEAY 40,Y
          CMPB  #98            *test fin de colonne pour passer +1 à droite
          BNE   loop4         
Hmm.. quand je déroule le programme je vois qu'on commence à afficher un B pas initialisé en $4000-40, c'est à dire en dehors de l'écran. C'est pas grave, mais c'est curieux. J'aurais perso mis un label juste avant le "LDB ,x+" et j'aurais sauté dedans juste après le LDY.
Code:
        LEAY -40*15,Y      *on remonte en haut pour la colonne suivante
Là il y a un petit problème: certes -40*15 fait remonter de 15 lignes, mais ne fait pas avancer de colonne. Il faut faire -40*15+1 (notes bien le "+1") pour passer à la colonne de droite.

Bon au final le code ressemblerait plutôt à ca pour moi:
Code:
display4
          LDX   #sprite4
          LDY   #$4000
          BRA   lit
affiche
          STB   ,Y                      * affiche
          LEAY  40,Y                  * descend
lit
         LDB   ,x+
         CMPB #98
         BEQ   remonte_et_decale
         CMPB  #99             *test fin d'affichage
         BNE   affiche
         RTS
remonte_et_decale
         LEAY  40*-15+1,Y
         BRA   lit

Après perso pour gagner des cycles, j'inverserais le rôle de X et Y, et j'utiliserais l'accu A pour la valeur à afficher. Quant à B je lui mettrais la valeur 40, et utiliserais ABX (3 cycles) au lieu de LEAX 40,X (5 cycles.)

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 31 Déc 2019, 12:30 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
bonjour,

Merci beaucoup, t'est un chef, ça fonctionne.
Je vais examiner le process pour mieux comprendre et rajouter la dedans l'histoire ramA ramB moi même.

je si cale je demanderais.

merci et bonnes fêtes à tous.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 01 Jan 2020, 22:41 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
salut, et bonne année.

bon j'ai réussi à afficher mon sprite, reste le swap ram ABAB.. à rajouter à ma routine.
Image

(j'ai fait un javascript qui génère mes FCB à partir d'un gif indéxé, et pour la palette, je pars d'un fichier .act photoshop puis un script python qui me génère un csv de la palette)

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 03 Jan 2020, 02:48 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
salut,

galère mais c'est bon.

Image

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 03 Jan 2020, 02:56 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Félicitations!

C'est vrai que passer de RAMA/RAMB via $4000 en changeant de colonnes parfois en incrémentant X, parfois en modifiant le bit0 de $E7C3 est compliqué. Même en remappant l'écran vidéo en $A000/$C000 c'est pas tellement plus simple. L'idéal serait une organisation octet pair/octet impair pour RAMA/RAMB, mais ca n'existe pas sur thomson, donc on doit faire avec ce genre de code et tant pis pour la complexité relative
Code:
 LDB  $E7C3
 BITB #1
 BNE  MEME_ADDR
 LEAX 1,X
MEME_ADDR:
 EORB #1
 STB  $E7C3

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 03 Jan 2020, 03:33 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
j'ai fais comme ça en modifiant ce que tu m'a proposé :
c'est pas parfait mais avant de faire une routine dynamique d'affichage de sprite faut que je capte bien le truc, surtout
quant je vais ajouter les histoires de conversion x,y pixel == adresse sur l'ecran !

Code:
displaysprite
            clra
            JSR rama
            LDX   #sprite4
            LDY   #screen+(40*(2*8))
            BRA   lit
affiche
            STB   ,Y                    * affiche
            LEAY  40,Y                  * descend
lit
           LDB   ,x+
           CMPB #98                     *fin de colonne
           BEQ   remonte_et_decale
           CMPB  #99                    *test fin d'affichage
           BNE   affiche
           RTS
remonte_et_decale
           LEAY  (-40*15),Y
           JSR  swap_ramab
           BRA   lit


************
* passage a RAMA
************
rama
       LEAY  1,Y
       LDA    $E7C3
       ORA    #$01
       STA    $E7C3
       RTS
************
* passage a RAMB
************
ramb
       LDA    $E7C3
       ANDA   #$FE
       STA    $E7C3
       RTS

************
*swap ram si A B si B A
************
swap_ramab
            LDA     $E7C3
            CMPA    #173
            BEQ     ramb

            LDA     $E7C3
            CMPA    #172
            BEQ     rama

            RTS




* xywh 0,65,8,15
sprite4
        FCB   $00,$00,$00,$04,$04,$04,$04,$04
        FCB   $04,$04,$04,$04,$04,$00,$00
        FCB   98
        FCB   $04,$44,$44,$45,$45,$45,$45,$45
        FCB   $44,$44,$44,$44,$44,$04,$00
        FCB   98
        FCB   $40,$44,$44,$44,$55,$95,$95,$44
        FCB   $44,$44,$44,$44,$04,$04,$00
        FCB   98
        FCB   $00,$00,$40,$50,$50,$90,$94,$54
        FCB   $44,$44,$44,$44,$04,$04,$00
        FCB   98
        FCB   99


_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 03 Jan 2020, 03:41 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Fais attention à la comparaisons sur la valeur de $E7C3. Son contenu n'est pas fixe et varie suivant les machines et les registres systèmes. Sur TO7 par exemple une partie de ses bits représente la couleur du tour. Sur TO8 c'est autre chose etc, et du coup la constante que tu as mis dans ton programme n'est pas la même. Regardes mieux l'exemple que j'indique. Il n'utilise que le bit b0 de E7C3 (via le #1 de BITB et EORB) qui est garanti d'être la seule chose qui soit fixe et dont on ait besoin. Il doit marcher partout pour le mode BM16 (en principe si je ne me suis pas trompé, mais à cette heure ci je ne garantis rien :D ).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 03 Jan 2020, 03:50 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
oui je me disais bien que c'été pas très "secure" de tester l'octet complet, mais je savais pas tester juste 1 seul bit !

je vais tester avec ton code.

merci.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 04 Jan 2020, 03:09 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ok j'ai viré les blocs
-passage a RAMA
-passage a RAMB
-swap ram si A B si B A

et j'ai remplacé par

Code:
************
*swap ram si A B si B A test sur bit 0 de E7C3
************
swap_ramab
            LDA     $E7C3
            BITA    #1
            BNE  MEME_ADDR2
            LEAY    1,Y
MEME_ADDR2  EORA #1
            STA  $E7C3

            RTS


ça marche nickel,

merci.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 04 Jan 2020, 16:37 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
cool j'ai réussi à faire un javascript couleur rgb PC > valeur palette TO

pixelData[0] = valeur R (0-255)
pixelData[1] = valeur G (0-255)
pixelData[2] = valeur B (0-255)

Code:
var to8R = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
var to8G = [0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240];
var to8B = [0,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3328,3584,3840];
var indexTo8R = Math.round( ( 15*pixelData[0] ) / 255 );
var tmpTo8R  = to8R[indexTo8R];
var indexTo8G = Math.round( ( 15*pixelData[1] ) / 255 );
var tmpTo8G  = to8G[indexTo8G];
var indexTo8B = Math.round( ( 15*pixelData[2] ) / 255 );
var tmpTo8B  = to8B[indexTo8B];
var TO = tmpTo8R+tmpTo8G+tmpTo8B;

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 04 Jan 2020, 16:45 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Attention, l'indexation n'est pas linéaire sur thomson (une histoire de gamma). Je veux dire que l'intensité 128/255 de PC ne vaut pas un 7/15 sur thomson, mais quelque chose proche de 2. La formule mathématique est un truc genre index_thomson = round(15*(index_pc/255)^3). Avec un index_pc=128, on obtient index_thomson=round(1.8)=2.

_________________
Good morning, that's a nice Tnetennba


Dernière édition par Samuel Devulder le 04 Jan 2020, 16:58, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Formats d'image sur TO8
MessagePosté: 04 Jan 2020, 16:56 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
je sais pas si c'est un bon test , j'ai fais un essai avec cela en appliquant mon js:
Image

juste j'ai remarqué que la conversion des bleus, était plus pâle sur TO par rapport à la version PC.

bon c'est proche quant même, et sinon ba je corrige à la main ceux que je peux améliorer pour ensuite appliquer les valeurs en asm avec la routine PALETTE

_________________
Image


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 88 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 35 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com