Logicielsmoto.com http://www.logicielsmoto.com/phpBB/ |
|
Formats d'image sur TO8 http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=398 |
Page 4 sur 6 |
Auteur: | Prehisto [ 22 Déc 2018, 18:56 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
Oui, le bitmap 16, c'est très joli, mais c'est tordu. |
Auteur: | Samuel Devulder [ 22 Déc 2018, 19:21 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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. |
Auteur: | adnz [ 31 Déc 2019, 03:19 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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 |
Auteur: | Samuel Devulder [ 31 Déc 2019, 09:06 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
Code: LDY #$4000 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.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 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.) |
Auteur: | adnz [ 31 Déc 2019, 12:30 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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. |
Auteur: | adnz [ 01 Jan 2020, 22:41 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
salut, et bonne année. bon j'ai réussi à afficher mon sprite, reste le swap ram ABAB.. à rajouter à ma routine. (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) |
Auteur: | adnz [ 03 Jan 2020, 02:48 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
salut, galère mais c'est bon. |
Auteur: | Samuel Devulder [ 03 Jan 2020, 02:56 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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 |
Auteur: | adnz [ 03 Jan 2020, 03:33 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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 |
Auteur: | Samuel Devulder [ 03 Jan 2020, 03:41 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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 ). |
Auteur: | adnz [ 03 Jan 2020, 03:50 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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. |
Auteur: | adnz [ 04 Jan 2020, 03:09 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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. |
Auteur: | adnz [ 04 Jan 2020, 16:37 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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; |
Auteur: | Samuel Devulder [ 04 Jan 2020, 16:45 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
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. |
Auteur: | adnz [ 04 Jan 2020, 16:56 ] |
Sujet du message: | Re: Formats d'image sur TO8 |
je sais pas si c'est un bon test , j'ai fais un essai avec cela en appliquant mon js: 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 |
Page 4 sur 6 | Heures au format UTC + 1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |