Logicielsmoto.com

Nous sommes le 19 Mar 2024, 11:37

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 276 messages ]  Aller à la page Précédente  1 ... 15, 16, 17, 18, 19  Suivante
Auteur Message
MessagePosté: 27 Juin 2022, 18:15 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
ADNZ, je ne pense vraiment pas que la société Namco oserait te porter préjudice en cas d'utrilisation de Pac-Man en nom officiel. Il y a eu tellement de version de "Pac-Man" même avec nom officiel sortis ou d'autres avec des noms dérivés.

Sur Thmson on a eu le même principe de jeu mais avec des évolutions ou même sur d'autres plateforme (Atari ici)... il y a des noms dans ces pages en dehors de "Pac-Man" si ça peut t'inspirer et il y a même eu un Pac-Man en labyrinthe 3D (sur C64, qui me parait assez difficile en fait : 3D Glopper sur C64)

Quoiqu'il en soit bravo pour le travail. Cependant, développer un Pacman fluide en mode bm16 (à cause de la taille double des pixel et qu'en plus, faire un déplacement hozizontal pixel par pxl dans ce mode c'est hyper complexe), c'est pas forcément le meilleur choix d'autant qu'il y a eu à écrire toute la partie textuelle. Bcp de plate-forme ont écrit Pacman en 4 couleurs ou,alors utiliser du monolouleur pour les sprite (Hungry Horace sur C64, Spectrum ou Tandy Coco). PacMan versio C64 utiise toute la largeur de l'écran en bm16 et ça parait + logique (pu que la taille de pixel et doublée dans ce mode)

phpBB [video]

et les sprites sont en 2 couleurs.

Pour en revenir au nom, vu qu'à l'origine, Pac" était pour "Puck" qui apparemment signifierait "pizza" pourquoi pas "Pizza Man" ? Ou quelque chose qui rappelle le Thomson, "TOc-Man" ? le c pour... je ne sais pas euh... "crock" ?

Haha je me rend compte que ce message est le 256ème de ce sujetk, j'aime bien les chiffres ronds.

Et à part ça, où peut on trouver la dernière version ?


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Aoû 2022, 14:55 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Et voilà, c'est dispo en ligne !

https://oxustudio.com/pacman/

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Aoû 2022, 16:51 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Testé à l’instant sous retroarch+. Ça marche bien même si mes scores sont minables.

Il faut en faire de la pub sur systemcfg!

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Aoû 2022, 19:34 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Merci, ok je vais faire un post, mais je le fais dans "Développements actuels" ?

[EDIT] : ok Développements actuels.
[EDIT] : c'est fait https://forum.system-cfg.com/viewtopic.php?f=25&t=13538

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Aoû 2022, 19:09 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Bon, alors dans la routine audio j'ai ajouté le test bouton du joystick !
mais il me semble que selon si joystick ou sortie audio le status doit être différent , sinon le son crache.

La boucle de lecture du sample dans pacman.bin
Code:
splash_screen_loop

    LDY #music_index    ; set samples index adresses
    JSR PlayDPCM8kHz    ; call audio routine

        LDA  music_loop ; test if loop = 0
        CMPA #0         ; sample exit to continu
        BEQ ecran_intro ; else loop sample
       
       JMP splash_screen_loop



Code dans player audio PlayDPCM8kHz avec le test bouton joystick pour sortir de la loop audio
Code:
PlayDPCM8kHz
        pshs  d,x,y
                *lda   $E7E6   *_GetCartPageA
                *sta   RestorePage+1-decalage
        *ldd   #$fb3f  *! Mute by CRA to
        *anda  $e7cf   *! avoid sound when
        *sta   $e7cf   *! $e7cd written
        *stb   $e7cd   *! Full sound line
        *ora   #$04    *! Disable mute by
        *sta   $e7cf   *! CRA and sound
    ldu   #DACDecodeTbl-decalage
    lda   #$80                     * init delta value
    sta   smplh+1-decalage
    sta   smpll+1-decalage
ReadChunk
        lda   sound_page,y             * [4] load memory page
        beq  End                      * [3]
        *sta   $E7E6     *_SetCartPageA                  * for each page switch there is a lag, when data in ROM: 24 cycles late in stream
        sta   $E7E5
        ldx   sound_start_addr,y       * [6] Chunk start addr
Loop     
        lda   ,x                       * [4] load data byte
        lsra                           * [2]
        lsra                           * [2]
        lsra                           * [2]
        lsra                           * [2]
        ldb   a,u                      * [5] read high nibble sample
smplh  addb  #00                      * [2]
        stb   smpll+1-decalage                 * [5]
    lsrb                           * [2]
    lsrb                           * [2]
    stb   $e7cd                    * [5] send byte to DAC
        lda   ,x+                      * [6] reload data byte
        anda  #$0F                     * [2]
        ldb   a,u                      * [5] read low nibble sample
smpll  addb  #00                      * [2]
        stb   smplh+1-decalage                 * [5]

                LDA  JOYS              * click joy button
                ANDA #%01000000        * a = bit 6 value
                BEQ  DisableLoop       * test to exit
                        PSHS CC
                        JSR KTST
                        BCS DisableLoopEndRoute
                        PULS CC
                LDA #17-5
        *lda   #18                      * [96] wait
wait   deca                           * ...
        bne   wait                    * ...
        nop                            * ...
        nop                            * ...   
    lsrb                           * [2]
    lsrb                           * [2]                   
    stb   $e7cd                    * [5] send byte to DAC
        cmpx  sound_end_addr,y         * [7]
        beq   NextChunk               * [3]
        lda   #15-8                    * [79] wait
wait2  deca                           * ...
        bne   wait2                   * ...
        nop                            * ...
        bra   Loop                    * [3]
NextChunk
        leay  sound_meta_size,y        * [5]
* IFNDEF T2 
        lda   #10-5                      * [54] wait
wait3  deca                           * ...
        bne   wait3                   * ...
        nop                            * ...
* ENDC
        bra  ReadChunk                * [3]
End
        *lda   #$00
        *sta   $e7cd
        *ldd   #$fbfc  *! Mute by CRA to
        *anda  $e7cf   *! avoid sound when
        *sta   $e7cf   *! $e7cd is written
        *andb  $e7cd   *! Activate
        *stb   $e7cd   *! joystick port
        *ora   #$04    *! Disable mute by
        *sta   $e7cf   *! CRA + joystick
RestorePage       
        lda   #$00
        *sta   $E7E6     *_SetCartPageA
        puls  d,x,y,pc
DisableLoop
        LDA #00
        STA music_loop
        bra End
DisableLoopEndRoute
        PULS CC
        LDA #00
        STA music_loop
        LDA #01
        STA music_loop_out_route
        bra End

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Aoû 2022, 19:28 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Est ce que le bit 6 (%01000000) de JOYS est bien positionné en entrée dans l’init du cna?

Sinon au niveau asm je vois qu’il y a quelques optims possibles.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Aoû 2022, 20:45 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Le process c'est :

joue echantillon (envoie au DAC)
test joy
joue echantillon (envoie au DAC)
test joy
etc..

et j'ai ces 2 codes d'init !

Code:
        ldd   #$fb3f  *! Mute by CRA to
        anda  $e7cf   *! avoid sound when
        sta   $e7cf   *! $e7cd written
        stb   $e7cd   *! Full sound line
        ora   #$04    *! Disable mute by
        sta   $e7cf   *! CRA and sound


et

Code:
        lda   #$00
        sta   $e7cd
        ldd   #$fbfc  *! Mute by CRA to
        anda  $e7cf   *! avoid sound when
        sta   $e7cf   *! $e7cd is written
        andb  $e7cd   *! Activate
        stb   $e7cd   *! joystick port
        ora   #$04    *! Disable mute by
        sta   $e7cf   *! CRA + joystick


le premier c'est pour init pour le son clean et le 2eme pour l'init du joystick ??

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Aoû 2022, 21:03 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Bon je vais peut être dire une bêtise (je suis sans doc là), mais j’analyse les deux inits comme suit:

Le 1er positionne les bits 0 à 5 en sortie ($3f dans B).

Le 2e devrait les rebasculer en entrée (tous les bits à 0). Or il fait un and sur $fc, et donc ne mets à 0 que les 2 premiers bits (les autres, bah ça depends, en particulier pour le bit 6). Le complément de $3f est $c0 et pas $fc.

Bon c’est peut être une fausse piste.

Une autre est aussi qu’il faut desactiver et réactiver le joystick entre deux écritures d’échantillons.

Bon désolé de ne pas pouvoir être plus précis ou certain, mais au niveau symétrie entre l’activation et la deactivation du cna (ou dac en anglais), un truc me gêne sans que je sache complètement l’identifier.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Aoû 2022, 07:38 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Il faut aussi bien vérifier le contenu des registres de contrôle CRA et CRB. Ils permettent en particulier de mettre en sortie les broches CA2 et CB2 en positionnant à 1 le bit b5. Dans le TO8, ces broches sont reliées aux entrées PB6 et PB7, donc aux boutons d'action de chaque joystick. Il est donc possible de modifier ainsi les valeurs lues sur le port PB.

Cette fonction (configuration en sortie de CA2-CB2) n'est jamais utilisée par les programmes Thomson et n'est pas émulée par dcmoto, c'est peut-être pourquoi, si le bit b5 a été positionné par erreur dans pacman, les manettes fonctionnent avec l'émulateur et pas avec la vraie machine.

Autre point à vérifier dans la routine d'initialisation du 6821 : DDRA doit être à zéro (tous les bits de PA sont en entrée) et DDRB doit être à $3F : bits 0-5 en sortie pour le CNA, bits 6-7 en entrée pour les boutons d'action. Ensuite il n'est pas nécessaire de modifier DDRB.

Rappel : le bit 2 de CRA(CRB) doit être à 1 pour accéder à PA(PB) et à 0 pour accéder à DDRA(DDRB).


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Aoû 2022, 19:41 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Bon OK, ça fonctionne, le son crachote pas et le joystick est OK ingame.
Il ne me reste juste à init correctement au début avant l'écran d'accueil pour ne pas que le bouton s'appuie tout seul et fasse sauter la premiere musique ! et c'est bon :)

[EDIT] : OK tout marche sur le vrai TO8 (juste cette histoire de "C" pour crédit à régler)

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Aoû 2022, 19:50 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1800
Localisation: Brest
Super! T’as fixé quoi au juste du coup?

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Aoû 2022, 20:10 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
dans la routine audio "PlayDPCM8kHz"

j'ai mis au début ça

Code:
        ldd   #$fb3f  *! Mute by CRA to
        anda  $e7cf   *! avoid sound when
        sta   $e7cf   *! $e7cd written
        stb   $e7cd   *! Full sound line
        ora   #$04    *! Disable mute by
        sta   $e7cf   *! CRA and sound


et en fin de process ça

Code:
        lda   #$00
        sta   $e7cd
        ldd   #$fbfc  *! Mute by CRA to
        anda  $e7cf   *! avoid sound when
        sta   $e7cf   *! $e7cd is written
        andb  $e7cd   *! Activate
        stb   $e7cd   *! joystick port
        ora   #$04    *! Disable mute by
        sta   $e7cf   *! CRA + joystick

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Aoû 2022, 11:17 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
Finalement c'est pas le joystick le soucis de passage du premier screen tout seul, c'est le clavier !

Dans la loop audio y'a ce code qui me permet de tester si une touche est appuyé :

Code:
...
        PSHS CC
        JSR KTST
        BCS DisableLoopEndRoute
        PULS CC
...


c'est ce code qui réagi comme si une touche était enfoncé et fait sauter le splashscreen...

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Aoû 2022, 11:45 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
j'ai rajouté le ANDCC pour être sûr que le bit C est à 0 avant le JSR KTST, mais non ça passe quand même comme si j'avais appuyé sur une touche (au premier affichage seulement) !!

Code:
        PSHS CC
        ANDCC #$FE
        JSR KTST
        BCS DisableLoopEndRoute
        PULS CC

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Aoû 2022, 12:12 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 477
c'est compliqué cette routine de test KTST, donc Positionne C à 1 si une touche est appuyée.

Mais quand je check le debugger, sur la boucle du splashscreen avec le "press fire" , le bit C bouge de 0/1 tout seul !!! sans que j'appuie sur les touches !

_________________
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  [ 276 messages ]  Aller à la page Précédente  1 ... 15, 16, 17, 18, 19  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 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 à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com