Nouveau jeu HECTOR : NOTME!

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

DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

6502man a écrit : 07 nov. 2024 09:25 (supp modo: pas la peine de tout quoter systématiquement)
Encore merci, n'étant pas un pro (juste un débutant) en assembleur et en HECTOR, il faut que je digère tout ça. Je vais essayer pour les minuscules mais et l'affichage.
Je vais lire tes sources et voir ce que je peux faire. :D
Avatar de l’utilisateur
Furella
Messages : 95
Inscription : 22 févr. 2024 04:55
Localisation : Vigo - Espagne

Re: Nouveau jeu HECTOR : NOTME!

Message par Furella »

Merci DarkSteph pour ce nouveau jeu! Bel écran de présentation!
et merci au maitre Phil qui frappe à nouveau!! Chuck Norris n'a qu'a bien se tenir!! :lol: :lol:
ATARIPower without the price
Avatar de l’utilisateur
6502man
Messages : 12689
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Nouveau jeu HECTOR : NOTME!

Message par 6502man »

Je ne suis pas un pro, juste un passionné :wink:

Tant que je peux aider c'est avec plaisir, surtout quand cela fait revivre une machine Française
un peu délaissé depuis quelques années :wink:

Si tu n'y arrive pas n'hésite pas à demander ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

Furella a écrit : 07 nov. 2024 20:55 Merci DarkSteph pour ce nouveau jeu! (...)
Avec plaisir !!!!!
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

6502man a écrit : 09 nov. 2024 20:25 (...) Si tu n'y arrive pas n'hésite pas à demander ;)
Alors j'ai fait pas mal de tests.
J'ai mis en place le chargement des fichiers avec INCBIN
J'ai mis ton code en 0x6000
J'arrive bien à utiliser ton decompresseur.

Code : Tout sélectionner

gameScreenTitle:
    LD A, 0                  ; LD A, 0 Load color screen 0=black
    CALL SETSCR             ; Set screen color 0, black (do cls in same time)    
    LD DE,0xFE00
    LD HL,EXOMIZER
    LD BC,FINEXOMIZER-EXOMIZER+1
    LDIR

    LD DE, 0xC000 ; DE adresse destination VRAM
    LD HL, splashScreen; HL adresse image compressé
    CALL 0xFE00  
    gameScreenTitleKeyDetection:            ; Waiting to press a key
        CALL KEY                            ; Test if a key is pressed
        JR C, gameScreenTitlekeyDetection   ; Loop if key not pressed
preMain: 
    LD BC, colors_pre_game      ; 0=black(0)(00), 1=white(7)(01), 2=cyan(6)(10), 3=green(2)(11), 4=half light = false
    CALL SETCOL                 ; Set palet colors (4 colors)
    XOR A                       ; Load color screen 0=black
    CALL SETSCR                 ; Set color 0, black (do cls in same time)
    LD C, 2                     ; Load color pen 2=Cyan
    CALL CHRCOL                 ; Apply color 2 to pen
    DELAYMACRO 10
    LD BC, h01:         ; Load Adress sentence "Annee 1453, les temps sont durs."
    LD DE, 0A0Ah        ; X, Y positions
    CALL PutstrDelay    ; Displays text  
L'écran se charge bien mais la suite du code n'arrive pas à bien s'éxecuter (l'écran d'affichage de l'histoire)

Si je reste avec mon ancien affichage (sans le décompresseur ça fonctionne)

Code : Tout sélectionner

gameScreenTitle:
    XOR A                   ; LD A, 0 Load color screen 0=black
    CALL SETSCR             ; Set screen color 0, black (do cls in same time)
    LD HL, splashScreen     ; Load splashScreen adress in HL
    LD DE, 0xC000           ; Load Adress Screen begin 
    LD BC, 0xDF00           ; Load image length in byte
    CALL ShowScreen
    gameScreenTitleKeyDetection:            ; Waiting to press a key
        CALL KEY                            ; Test if a key is pressed
        JR C, gameScreenTitlekeyDetection   ; Loop if key not pressed
preMain:  
    LD BC, colors_pre_game      ; 0=black(0)(00), 1=white(7)(01), 2=cyan(6)(10), 3=green(2)(11), 4=half light = false
    CALL SETCOL                 ; Set palet colors (4 colors)
    XOR A                       ; Load color screen 0=black
    CALL SETSCR                 ; Set color 0, black (do cls in same time)
    LD C, 2                     ; Load color pen 2=Cyan
    CALL CHRCOL                 ; Apply color 2 to pen
    DELAYMACRO 10
    LD BC, h01:         ; Load Adress sentence "Annee 1453, les temps sont durs."
    LD DE, 0A0Ah        ; X, Y positions
    CALL PutstrDelay    ; Displays text            
J'ai l'impression que ton décompresseur change des choses à un endroit de la mémoire qui fait que la suite du code plante.
https://drive.google.com/file/d/1pHUX1g ... sp=sharing

En regardant le debug, j'ai l'impression que c'est en utilisant la fonction SETSCR et SETCOL en 0D30h et equ 0636h que ça bug (mais je suis pas sûr de mon diagnostic).
Avatar de l’utilisateur
6502man
Messages : 12689
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Nouveau jeu HECTOR : NOTME!

Message par 6502man »

Salut,

Alors effectivement sur HR+ la zone $FE000-$FF00 semble utilisé et notamment $FF00 pour la table de caractères, je n'avais pas vue ce détail :oops: :oops:

Donc je t'ai refait une version du décompresseur en $FD00.
Je viens de tester sur émulateur et ca fonctionne correctement.

Du coup tu doit changer les adresses pour la copie de la routine décompression
en $FD00.

J'ai aussi refait la compression des images car il y avait quelques octets de trop :roll:
Datascreens.zip
(8.08 Kio) Téléchargé 8 fois
Voila désolé de t'avoir mis dans l'erreur :(
Pièces jointes
DEEXOM_FD00.zip
(354 octets) Téléchargé 9 fois
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12689
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Nouveau jeu HECTOR : NOTME!

Message par 6502man »

Il y à aussi un point à prendre en compte si ton code commence avant $6000.
La zone $5Fc0-$5FFF est utilisé par le système, surtout les adresses $5FF3-$5FF5
qui est le vecteur d'interruption, donc si tu ne veux pas avoir de problème lors
de l'exécution vaut mieux laisser cette zone libre :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

6502man a écrit : 10 nov. 2024 23:39 (supp modo: pas la peine de tout quoter systématiquement)
Merci pour les infos. Et au contraire, toutes tes informations sont pour moi très utiles. Ne connaissans pas très bien la machine, j'essaie toujours de comprendre ce que l'on me dit.
Encore un grand merci pour ton aide.
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

6502man a écrit : 10 nov. 2024 23:39 (supp modo: pas la peine de tout quoter systématiquement)
J'avance mais doucement, j'arrive bien à afficher l'ecran de commencement "fullscreen" mais j'ai l'impression que quand j'essaie d'utiliser une deuxième fois ta routine, le Hector plante.
Pour info :
Mon code :
BEGINCODE4200 EQU 04200H

ENDCODE4200 EQU 04A75H
BEGINDATA6000 EQU 06000H

ENDDATA6000 EQU 084C7H

J'ai mis la pile en 5000h (mais je sais pas quelle taille max elle peut faire). J'ai essayé plein d'endroits différents mais j'ai le même comportement.

J'ai testé l'affichage d'une image, ça fonctionne bien. Si j'affiche une deuxième image à la suite, le Hector plante. PEut-être que j'utilise mal ta routine.
Ci-dessous le code:

Code : Tout sélectionner

ORG 4200h
BEGINCODE4200:
    LD SP, 05000h           ; Tout les progs commencent par cette instruction
start:
    CALL CLS                ; Clear screen
initColors:                  ; 0=black(0)(00), 1=yellow(3)(01), 2=blue(4)(10), 3=white(7)(11), 4=half light = false
    LD BC, colors_title     ; Load colors table to BC
    CALL SETCOL             ; Set palet colors (4 colors)
gameScreenTitle:
    LD A, 0                  ; LD A, 0 Load color screen 0=black
    CALL SETSCR             ; Set screen color 0, black (do cls in same time)    
    ;1ere image
    LD DE,0xFD00
    LD HL,EXOMIZER
    LD BC,FINEXOMIZER-EXOMIZER+1
    LDIR

    LD DE, 0xC000 ; DE adresse destination VRAM
    LD HL,  ecranFin01; HL adresse image compressé
    CALL 0xFD00
    ; 2e image 
    LD DE,  0xFD00
    LD HL,  EXOMIZER
    LD BC,  FINEXOMIZER-EXOMIZER+1
    LDIR
    LD DE,  0xC000      ; DE adresse destination VRAM
    LD HL,  ecranFin02  ; HL adresse image compressé
    CALL 0xFD00          
    gameScreenTitleKeyDetection:            ; Waiting to press a key
        CALL KEY                            ; Test if a key is pressed
        JR C, gameScreenTitlekeyDetection   ;
Petites vidéos : Bon suis désolé avec mes questions, j'épère que je t'embête pas trop. J'essaie de faire fonctionner mais suis un peu juste pour debuger.
Avatar de l’utilisateur
6502man
Messages : 12689
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Nouveau jeu HECTOR : NOTME!

Message par 6502man »

La pile tu peux la mettre en $FFFF, pour la taille tout dépend de ton programme mais je pense quelle doit être assez courte.
C'est vite vu avec l'émulateur.

Pour le programme qui plante c'est soit que les données compressées sont corrompues soit que la routine de décompression est placée dans une zone qui soit modifié par le programme ou autre ???

Je suis en déplacement aujourd'hui donc je regarde ce soir ou demain ...

Tu ne m'embête pas , c'est avec plaisir que j'aide ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12689
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Nouveau jeu HECTOR : NOTME!

Message par 6502man »

Me voici de retour.

J'ai compris ton problème et c'est de ma faute car tu as 3 images mais pas toutes en plein écran,
et une à était converti comme si elle était en plein écran alors qu'elle ne fait qu'un tiers d'écran :oops: :oops: :oops:


Donc voici l'archive mise à jour :
Datascreens.zip
(8.07 Kio) Téléchargé 7 fois
j'avais testé en décompressant toujours en $C000 forcement ca fonctionné très bien pour les 3 :lol:

mais si tu donne une adresse de décompression plus haute ca plante la machine :roll:

Désolé de t'avoir fait perdre du temps, mais j'ai voulut aller vite pour aider et dans ces cas la on fait des bêtises :oops: :oops:

Edit: pour la pile ton programme semble utiliser moins de $20 octets donc tu peux la placer en $FFFF sans problème
Edit2: attention la pièce jointe à était mise à jour
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

Merci en tout ca pour toute ton aide.
C'est vraiment cool.
J'essaie de regarder tout ça demain et je te dis.
Dernière modification par DarkSteph le 13 nov. 2024 22:36, modifié 1 fois.
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

@6502man est-ce qu'il faut que je mette à jour le code de décompression ? Ou il faut juste mettre à jour les .exo compréssés ?
Avatar de l’utilisateur
6502man
Messages : 12689
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Nouveau jeu HECTOR : NOTME!

Message par 6502man »

Juste les .EXO qui faut mettre à jour.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
DarkSteph
Messages : 16
Inscription : 05 nov. 2024 18:59

Re: Nouveau jeu HECTOR : NOTME!

Message par DarkSteph »

6502man, ça y est j'ai tout mis en place.
Bon j'ai triché un peu, pour la petite histoire, j'ai réussi à afficher les images mais que au début du jeu.
Je sais pas pourquoi mais si j'affiche les images une fois que le joueur a gagné ou perdu, ça plante.
Je pense que c'est mon code qui doit écrire là ou il ne faut pas.
Donc j'affiche l'image de début de façon compressée et les 2 plus petites de fin en mode "normal".
https://drive.google.com/file/d/1fXixeJ ... sp=sharing

Encore merci pour les images compressées et le décompresseur.

J'ai tout updaté sur itch io https://darksteph2.itch.io/notme
Je vais updater aussi le github.
Répondre