Jeu d'échecs pour VG5000

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Markerror
Messages : 2123
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Jeu d'échecs pour VG5000

Message par Markerror »

Un petit MP concernant la page de présentation en attente... :wink:
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Jeu d'échecs pour VG5000

Message par joaopa »

Une nouvelle version beta. Cette superbe présentation est l'oeuvre de Markerror. Encore merci pour lui

[EDIT: Suppression liens morts]
Dernière modification par joaopa le 22 mars 2015 03:07, modifié 1 fois.
Markerror
Messages : 2123
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Jeu d'échecs pour VG5000

Message par Markerror »

Bonjour,

Je vois tu as résolu tes problèmes de chargement :-). Tu as réencodé l'image ? Il y a un bug graphique dans la barbe de Sargon, et un autre dans sa coiffe (ligne brisée sur la partie haute)

Il y a un problème d'affichage du bord de l'échiquier dans la partie "analyse". Je suppose que c'est encore en développement. A ce propos, il serait probablement utile de rajouter une fonction permettant d'effacer une pièce (pour le cas où l'utilisateur se serait trompé).
Dernière modification par Markerror le 04 oct. 2014 12:06, modifié 1 fois.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Jeu d'échecs pour VG5000

Message par Carl »

Merci à tous les deux !
sargon.jpg
sargon.jpg (149.77 Kio) Consulté 4030 fois
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Jeu d'échecs pour VG5000

Message par joaopa »

Bonjour,
une nouvelle version qui corrige le problème de l'image du chargeur notée par Markerror.
En plus cela m'a permis de récupérer 300 octets qui vont servir à implémenter la possibilité de rejouer un coup.


@Markerror. Dans le mode analyse, pour changer une pièce, il suffit de reprogrammer la case voulue.
Comme tu peux le voir, j'ai reprogrammé l'image directement pour l'EF9345. Je voulais un loader dans le genre de la moto infernale (pas de message lors du chargement du second programme)


[EDIT: suppression liens morts]
Dernière modification par joaopa le 22 mars 2015 03:07, modifié 7 fois.
Markerror
Messages : 2123
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Jeu d'échecs pour VG5000

Message par Markerror »

Bonsoir,

L'image est maintenant parfaite ! Pour ne pas que l'utilisateur voit de message de chargement, il y a toujours l'astuce bidon de mettre le texte à la couleur du fond (comme dans Strip 21). Mais c'est effectivement une bonne idée que d'essayer de faire ça en assembleur.
Par contre, merci de changer le copyright sur ton source, les gens vont croire que je maîtrise la programmation de l'EF9345, ce qui n'est pas du tout le cas :mrgreen: .

Dans la nouvelle version, il y a juste un truc qui me gêne un peu, c'est l'intitulé de l'option 4 du menu. Le mot matériel ne ne me semble pas approprié, mais je ne trouve pas pour l'instant ce qu'il faudrait mettre à la place. En cherchant sur le wiki des termes associés au 'échecs, matériel est finalement le bon mot ! Bref, j'ai rien dit :wink: .
Dernière modification par Markerror le 09 oct. 2014 08:50, modifié 1 fois.
Avatar de l’utilisateur
6502man
Messages : 12327
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Jeu d'échecs pour VG5000

Message par 6502man »

Bravo :D

Pour la programmation de l'EF-9345 tu fait un appel à l'adresse 646 puis de suite après 3452 ca correspond à quoi exactement ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Jeu d'échecs pour VG5000

Message par joaopa »

Call 646 est l’équivalent de la routine BUSY de l'Alice. Elle sert a s'assurer que l'EF9345 est prêt a recevoir des instructions.
Call 3422 envoie la valeur de DE à l'EF9345 (généralement le numéro de registre et sa valeur)
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3054
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Jeu d'échecs pour VG5000

Message par Papy.G »

Selon le mode d'affichage choisi, peut-être l'attribut Conceal peut être utilisé? :)
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
6502man
Messages : 12327
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Jeu d'échecs pour VG5000

Message par 6502man »

@jeopapa: merci pour la précision :)
Question subsidiaire: l'affichage de la page de présentation et la gestion de l'affichage du jeu tu écrit dans la RAM partagé avec le EF-9345 ou tu passe directement par le EF-9345 ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Jeu d'échecs pour VG5000

Message par joaopa »

@Papy. G > Le chargement du second programme se fait à travers le Basic (CLOAD). En basic, on n'a pas accès au bit de masquage.
@6502man > J'écris directement dans l'EF9345. C'est beaucoup plus flexible et en plus on peut utiliser la colonne 0, chose impossible avec le buffer Z80 (la colonne 0 est alors réservée pour équivaent de l'instruction Basic Delim)


La seule chose embétante (un appel du pied au pro du VG5000), c'est qu'il faut désactiver l'envoi du buffer video vers l'EF9345. Mais si on a besoin des interruptions, (par exemple pour faire un chronomètre), comment peut-on desactiver l'envoi du buffer vers l'EF9345 sans utiliser l'instruction DI ?
Daniel
Messages : 17419
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Jeu d'échecs pour VG5000

Message par Daniel »

L'interruption IRQ passe par une routine utilisateur (call 47d0h) puis teste le compteur d'interruptions pour savoir s'il faut rafraîchir l'écran. Si la routine utilisateur incrémente de 1 le compteur d'interruptions (à chaque passage), il ne sera jamais nul et l'écran ne sera pas rafraîchi.

Code : Tout sélectionner

----------------------------------
Interruption masquable (IRQ)
----------------------------------
0038 cdd047    call    47d0h         routine utilisateur
003b f5        push    af
003c dd3500    dec     (ix+00h)      compteur d'interruptions pour rafraichissement ecran
003f c28601    jp      nz,0186h ---> sortie d'interruption

----------------------------------
rafraichissement de l'ecran
----------------------------------
0042 dd7e02    ld      a,(ix+02h)    valeur de reference compteur interruptions
0045 dd7700    ld      (ix+00h),a    reinitialisation du compteur d'interruptions
0048 ddcb0146  bit     0,(ix+01h)    flag 1 si l'ecran doit être rafraichi (47FB)
004c ddcb0186  res     0,(ix+01h)
0050 ca8601    jp      z,0186h ----> sortie d'interruption
Daniel
L'obstacle augmente mon ardeur.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Jeu d'échecs pour VG5000

Message par joaopa »

@Daniel > C'est génial!! J'ai testé et ça fonctionne nickel.

Merci pour cette astuce
Markerror
Messages : 2123
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Jeu d'échecs pour VG5000

Message par Markerror »

Maître Daniel a encore frappé :mrgreen:. C'est simple mais imparable et il fallait y penser. Je note ça dans mes tablettes, ça pourra peut-être servir dans le futur pour d'autres projets.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Jeu d'échecs pour VG5000

Message par Carl »

Vous faites une sacré équipe dans le monde du VG5000, bravo !
reste plus qu'à remonter le temps en 1984...
Carl
Répondre