MSX Village forum

La Place des Développeurs Vera Cruz

Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 22/08/2012 à 22h48

Reprise du message précédent

J'ai fini le compacteur mais je n'ais pas utilisé le lzw Je vous laisse apprécier la taille du fichier compacté. On passe de 30 K à 4 K
C'est quand même plus sympa pour gagner de la place.
l'algorithme utilisé :
http://fr.wikipedia.org/wiki/LZ77_et_LZ78
Dès que j'ai fini le décompacteur je testerai.
test.zip Edité par Visiteur Le 22/08/2012 à 22h53
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 23/08/2012 à 08h05
Reste à voir si ça décompressera rapidement...
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 23/08/2012 à 08h15
GDX :
Reste à voir si ça décompressera rapidement...


Bon pour l'intant c'est pas gagné, j'ai eu quelques déboires avec blueMSX.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 23/08/2012 à 11h49
Il existe déjà des compresseurs/décompresseurs sur MSX : Pletter et Bitbuster.
Ils utilisent en partie les algorithmes LZ.



MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 24/08/2012 à 23h29
Bienvenue Old Snake, très bonne idée de passer les graphismes de Vera Cruz en MSX2, ce sera moins tristounet.
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 27/08/2012 à 00h25
@ GDX et Metalion :
Bonsoir,
Mon test était faussé, j'ai pris une autre image du jeux qui était moins complexe. Ah les drag 'n' drop avec 10000 fenetres ouvertes sur le bureau :D
Au final les trois formats de compressions sont kif-kif pour des images de la même complexité en terme de taux de compression et de vitesse de décompression. Par contre les sources de pletter et bit buster sont a modifier pour pouvoir être compilé avec asMsx (pas de support macro pour ce cross compiler).
J'ai commencé à compiler quelque routines. J'ai un petit peu galéré car j'ai quand même oublié beaucoup de choses, mais pour l'instant tout baigne.
Pour ce galop d'essai le jeu sera comme la version Basic :
-MSX 2
-Format Disk (BIN) (Installable sur disque dur)
-128 VRAM
-64 RAM
@riquet
Bonsoir et merci, pour l'accueil.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 27/08/2012 à 08h18
Old Snake :
Par contre les sources de pletter et bit buster sont a modifier pour pouvoir être compilé avec asMsx (pas de support macro pour ce cross compiler)


J'ai réécrit il y a quatre ans les sources de Pletter et Bitbuster pour être compilées par AsMSX (et par un assembleur sans macro).

Et je les ai modifiées pour effectuer une décompression directement en VRAM, mais pour MSX1 uniquement. Edité par Metalion Le 27/08/2012 à 08h18


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 853

Le 27/08/2012 à 11h31
Bonjour,

Serait-il possible d'avoir le(s) listing(s) BASIC de Vera Cruz ?
En effet, je viens de terminer la conversion de Citadelle sur Sanyo PHC-25, un ordinateur pré-MSX de Sanyo.

J'aimerai convertir d'autres programmes. Après, je ne sais pas si le listing peut tenir dans 16Ko...

Merci



MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 27/08/2012 à 12h03
Ce n'est pas si simple, il y a 2 fichiers basic, mais aussi 7 fichiers binaires. Edité par Visiteur Le 27/08/2012 à 14h54
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 853

Le 27/08/2012 à 12h13
Hum, en effet, à la lecture du topic j'avais cru cela plus simple.
Je ne vais pas me casser la tête, je fais juste cela par loisirs et puis le pauvre Sanyo est très mal loti niveau logithèque.

La logithèque du Sanyo (ce qu'on en a retrouvé...)
http://www.phc25.com/collection.htm

Citadelle
http://www.phc25.com/projets.htm


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 28/08/2012 à 07h25
@Metalion :

Bonjour Metalion,

Je viens de finir de réecrire pletter sur lequel je vais me baser pour asMSX, j'ai quatre ans de retard sur toi :lol , mais comme on dit mieux vaut tard que jamais :D

@Datapro

Salut ;)

Je crains que tu ne puisse pas adapter Vera Cruz à partir du listing MSX 2. Si la partie binaire ne contient que les images et est facilement reproductible, la partie basic utilise beaucoup de fonctions faisant appel au "hardware accelerated routines".

Tu ne pourras reproduire une fonction copyvram (ou du moins pas pour qu'elle affiche instantanément l'image),

pas plus que tu ne pourras switcher les pages video (fonctions allegrement utilisée dans le 1er listing).

Simple oui, mais uniquement sur MSX 2 parce que le MSX 2 possède un macro langage graphique évolué avec des fonctions accelérées et à ma connaissance c'est la seule.

Ceci dit le jeu n'est pas difficile à reproduire en basic. A l'epoque ou je l'ai fait, je n'ai pas désassemblé le source original.

J'ai juste reproduit ce que j'avais observé en y jouant (en modifiant quelques trucs).



Bon je reviendrai en fin de semaine avec si tout va bien la première partie finie. Toutes les routines sont prêtes.

J'ai galéré un peu sur la partie réservé au MSX 2 plus, pour la simple raison que je n'ai jamais exploité ce mode et qu'apparement les routines du BIOS CHGMOD et CHGMDP n'ont pas été updatées pour ce VDP.

A ce sujet si un codeur à de la doc technique en anglais, elle serait la bienvenue.

et si quelqu'un à quelque chose de plus élégant que ceci pour faire un screen 10 :





En passant par le bios en sub-rom

ld c,0

ld b,14

ld ix, SUBROM_WRTVDP

call EXTROM

ld c,1

ld b,96

ld ix, SUBROM_WRTVDP

call EXTROM

ld c,25

ld b,24

ld ix, SUBROM_WRTVDP

call EXTROM



ou en passant par le bios en rom

ld c,0

ld b,14

call WRTVDP

ld c,1

ld b,96

call WRTVDP

ld c,25

ld b,24

call WRTVDP





(pour Info je n'utilise pas la macro.BIOS de asmsx. J'ai mes propres headers et donc SUBROM_WRTVDP equ 12dh).

Hello Mars ;) Ca roule ?

Bonne semaine. Edité par Visiteur Le 28/08/2012 à 07h36
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 28/08/2012 à 08h24
Old Snake :
Bonjour Metalion,

Je viens de finir de réecrire pletter sur lequel je vais me baser pour asMSX, j'ai quatre ans de retard sur toi, mais comme on dit mieux vaut tard que jamais


Tu as bien fait de choisir Pletter, car la performance en compression/décompression est légèrement supérieure à Bitbuster. Même si l'algorithme de base est le même, le code est optimisé.



Old Snake :
J'ai galéré un peu sur la partie réservé au MSX 2 plus, pour la simple raison que je n'ai jamais exploité ce mode et qu'apparement les routines du BIOS CHGMOD et CHGMDP n'ont pas été updatées pour ce VDP.


C'est très étonnant ... :s



Tu es sûr que les routines du BIOS n'ont pas été modifiées ?

Dans quel environnement est ce que tu travailles ?

Emulateur ou machine ?



Old Snake :
A ce sujet si un codeur à de la doc technique en anglais, elle serait la bienvenue


A ma connaissance, la seule doc technique qui existe est celle du VDP 9958.

Je pense qu'il n'y a rien sur le BIOS du MSX2+.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 28/08/2012 à 13h25
@Metalion:

J'ai choisi pletter surtout parce que bitbuster m'a occasionné quelques plantages (j'ai fait un test avec 200 images différentes).



Je n'ai jamais fait d'assembleur pour MSX2+ et Turbo-R car à l'époque je n'avais pas de doc (et c'est toujours le cas), j'ai donc procédé "à l'ancienne", c'est à dire en faisant des tests et en lisant des états.

J'ai fait les test en appelant les routines en ROM (Au cas ou) et en SUBROM, en environnement émulé(BlueMSX,OpenMSX et RuMSX), mais je ne pense pas que ça ai une incidence dans le cas présent dans la mesure ou je passe par le bios.

plantage assuré au delà de la valeur 8.

Donc concernant les routines du bios je ne peux rien affirmer avec certitude tand que je n'aurai pas désassemblé les deux routines, mais si je me base à ceux qui est documenté, elles serait identique sur MSX2 et MSX2+ :



Ajout bios MSX 2+ :

RDBTST equ 0017Ah (Lecture sur le port F4)

WRBTST equ 0017Dh (Ecriture sur le port F4)



Donc rien concernant les routines CHGMOD et CHGMDP. si je me souviens bien les routines RDVDP et WRTVDP gerait déjà

les valeurs non valides sur MSX2, elles plantaient si la valeur n'existait pas sur le VDP (à Vérifier).



Concernant la doc du V9958, j'ai fini par en trouver une de 32 pages, qui m'a permis de voir que 3 registres supplémentaires ont été ajoutés au VDP (par rapport au V9938) et que ces trois registres permettent de gérer les nouvelles fontionnalités du processeur. Le registre 25 gère donc les nouveaux modes écran :



On a donc :

le bit 3 du registre 25 qui active ou désactive le mode YJK (screen 12)

le bit 4 du registre 25 qui active le mode YAE (screen 10 et 11) ce qui confirmerai ce que je pensai à l'époque à savoir que ces deux modes n'en sont qu'un. le relevé des registres du vdp lors de l'initialisation de ces modes va dans ce sens.



Je précise que ce ne sont pas des affirmations, et que cela demande à être confirmé avec de la documentation.

Ce serai pas mal que GDX, s'il a des infos nous éclaire sur le sujet, vu qu'il a longtemps baigné dans le mélange ASM/MSX.

J'avais déjà désassemblé la rom et la subrom de mon 8280, mais jamais celle de mon turbo-r. Je m'y collerai plus tard, mais à mon avis c'est le cas.



Donc à l'heure actuelle la manière la plus propre (System friendly) pour faire un screen 10 ou 12 que j'ai trouvé est celle-ci :



;------------------------------- on fait d'abord un screen 8

ld a,8

CALL CHGMOD

;------------------------------- on positionne le(s) bit(s) du registre en fonction du mode MSX 2+ désiré

ld c,25

ld b,8 ;(ou 24)

CALL WRTVDP



A priori lors de l'initialisation les autres bits de ce registre doivent être à zéro donc on peut rentrer une valeur sans passer par une phase lecture/opération logique.



Quand je dis plus propre, je veux dire le plus court en passant par le bios pour assurer une compatibilité maximum. de plus la deuxieme partie de la routine peut être un "greffon" dans un test Version de VDP ou VERSION de MSX. sinon on peut faire du out direct sur le port du VDP.

Pour ce premier jet je vais procéder comme ça, sauf si quelqu'un à mieux. Edité par Visiteur Le 28/08/2012 à 19h19
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 853

Le 29/08/2012 à 10h51
[quote=]Ceci dit le jeu n'est pas difficile à reproduire en basic. A l'epoque ou je l'ai fait, je n'ai pas désassemblé le source original.
J'ai juste reproduit ce que j'avais observé en y jouant (en modifiant quelques trucs).[/quote]Justement, je pensais au listing de cette version 100% BASIC pour MSX1 ;)
Toutefois, j'imagine qu'il ne tiendra pas en 16 Ko...


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 29/08/2012 à 13h27
Old Snake :
Quand je dis plus propre, je veux dire le plus court en passant par le bios pour assurer une compatibilité maximum. de plus la deuxieme partie de la routine peut être un "greffon" dans un test Version de VDP ou VERSION de MSX. sinon on peut faire du out direct sur le port du VDP. Pour ce premier jet je vais procéder comme ça, sauf si quelqu'un à mieux.




J'ai posé la question sur msx.org, et apparemment, c'est bien la seule solution possible.

C'est tout de même très étonnant qu'ils n'aient pas modifié ces routines du BIOS pour gérer les modes spécifiques MSX2+ ...


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 29/08/2012 à 13h47
C'est vrai que sur MSX, c'est un peu le bordel (Microsoft oblige ?).

Et puis faut dire que Microsoft s'est barrée à l'époque du MSX2 et ASCII a continuée seule tant bien que mal.

Pour faire simple, on aurait dû faire le Bios pour l'MSX1 et la SubROM pour l'MSX2, etc mais on se retrouve avec un Bios à moitié actualisé et une SubROM pour le reste. Le mieux est de voir dans le MSX DataPack 2 et 3 pour voir ce qui est compatible ou pas avec le MSX que l'on vise. C'est en japonais mais c'est compréhensible pour ça. On trouve les PDF sur le net.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie