Ça a l'air trop cool et tu avances bien !
Dès que j'ai un moment, j'essaie !
Quel émulateur proposes-tu ? (J'en n'ai aucun)
Ça a l'air trop cool et tu avances bien !
Dès que j'ai un moment, j'essaie !
Quel émulateur proposes-tu ? (J'en n'ai aucun)
Coucou !!
ET voila la ROM promise !!
Le jeu devient un poil plus tactique avec la gestion améliorée du score ainsi que les unités plus coriaces.
Papi ne dispose toujours que d'une vie, mais ça va changer.
J'ai ajouté des petits détails que je vous laisse découvrir ...
La ROM :
https://dl.dropboxusercontent.com/u/...mando%20MD.bin
Amusez vous bien !
PS :
Merci Cirrus !!
L'emulateur que je te conseille Fusion !! Le plus connu et le meilleur à mon avis.
Tu peux même en trouver sur Android et jouer sur mobile ...
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Et oui, en même temps que le développement de Papi sous BEX, je potasse l'assembleur 68000 ... Tout un programme pour mon vieux cerveau 8 bits !
Je ne résiste pas à vous faire partager mon tout premier programme sous BEX, en assembleur.
La simplicité du basic associé à la puissance machine :
Ok ca sert à rien, c'est pas très folichon, mais puréééééééeeeeeee ... Je manipule des variables par leurs adresses et effectue des opérations par des registres ( d0 à d8 ), ( a0 et a8 sont des pointeurs. )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 '======================= '= Petit TD de 68000 = '= Manipulation de = '= variables = '======================= dim a as integer dim b as integer dim c as integer a=256 b=256 asm: move $ff004C,d0 ; On stocke le contenu de a dans le registre d0 add $ff004e,d0 ; On addtionne le contenu de b avec d0 ( soit d0 = a+b ) move d0,$ff0050 ; On stocke le resultat de d0 dans c ! move.b #$1,d1 ; On stocke $1 dans d1, $1 étant &h0001, donc un byte de 4 octets .b move $ff004C,d2 ; On stocke a dans d2 add d0,$ff004C ; On addtionne le contenu de d0 la valeur de a + b : 512 avec a : 256 soit : 768 ! add $ff0050,d1 ; On additionne le contenu de c 512 avec d1 1 soit : 513 move d1,$ff0050 ; On stocke le résutat de d1 dans C ! soit c = 513 end asm print c print a ' C'est magique !!! ^^
C'est mon "HELLO World !" à moi !
Je suis heureux ... et je vais reposer mon vieux cerveau 8 bits ... !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Oh bien que tu te met a l'assembleur 68000
A vrai dire je le connait moyennement (j'avais bosser le 68000 pour la neo geo) , par contre tes commentaires en assembleur ne sert a rien ^^
c'est un peu comme si je faisais cela :
Mais je comprend qu'on débute on a besoin de ce genre de commentaire pour nous aidé a comprendre et a apprendre l'assembleur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(a == b) // on compare si a est egal a b
Merci Kannagi !
A vrai dire, je met des commentaires à foison, comme tu dis ça m'aide et ça me donne des repères car j'apprends aussi les subtilités des OPcodes et il y en a !
Mais de la à refaire tout le jeu en asm comme ta démo sur SNES, certainement pas !
Par contre intégrer quelques petites routines en asm pour accélérer des traitements, certainement !!
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
En fait comme il le montre à tout le monde ça sert pour les gens qui ne toucheront jamais à l'assembleur (==> moi) et comme ça montre un code super simple et qu'en plus chaque ligne est décrite ça fait que rien qu'en furetant sur ce forum j'aurai vu comment fonctionnait la base de la base de la base (et ainsi de suite) de l'assembleur.
Comme quoi c'est une heureuse inutilité .
Merci Veto (t'arrêtes pas de me donner des surnoms pourris alors VENGEANCE !!!)
Abandonner ses rêves n'est pas à la portée de tout le monde.
Bonjour à tous !!
J'ai le plaisir et la joie de confirmer le bon fonctionnement du Driver Z80 que m'a aimablement compilé nemokantio, et quelques modifications du code 68000 préconisées par Tfdi et d'autres de mon cru ! ^^
Voici la magie via Gen ( en mode Debug CPU Z80 ), ou l'on voit par la présente capture, le code et Z80 pédaler pour ma grande satisfaction :
Cela prouve donc que ce Z80 est bien en mode "Slave" et qu'il fait bien son boulot !
Voici la petite Rom avec la musique du theme principal :
https://dl.dropboxusercontent.com/u/...65/PapiWav.bin
Pour les curieux, le code 68000 du "player" :
( Je précise que cette source n'est pas de mon cru, mais modifié et étudié pour un bon fonctionnement. C'est aussi comme ça que l'on apprend ! )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 ORG $00000000 ;Start Adress DC.L $00FFFFFE, CodeStart, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.L Interrupt, Interrupt, Interrupt, Interrupt DC.W $0000 ; Checksum DC.L $00000000, $003FFFFF ; ROM start->end DC.L $00FF0000, $00FFFFFF ; RAM start->end, why ??? DC.L $00000000 ; External RAM info DC.L $00000000, $00000000 ; External RAM start->end FMPORT1 EQU $A04000 FMPORT2 EQU $A04001 FMPORT3 EQU $A04002 FMPORT4 EQU $A04003 DPORT EQU $C00000 CPORT EQU $C00004 Interrupt: RTS CodeStart: MOVE.W #$2700, SR ; Disable ints ; Fulfill a security measure so we can run this on the real thing MOVE.B $A10001, D0 ; Get MD hardware info ANDI.B #$0F, D0 ; Mask out extra info so hardware ver is left CMP.B #0, D0 ; If version is 0 then BEQ SkipSegaSecurity ; skip security measure. MOVE.L ($000100), ($A14000) ; write "SEGA" to a reg SkipSegaSecurity: MOVE.B #$01, ($A11200) ; Stop Z80 reset MOVE.B #$01, ($A11100) ; request Z80 bus MOVE.W #447, D0 LEA Z80prog, A0 MOVE.L #$A00000, A1 Z80loadLoop: MOVE.B (A0)+, (A1)+ DBRA D0, Z80LoadLoop MOVE.B #$00, ($A11200) ; Start Z80 reset MOVE.B #$00, ($A11100) ; unrequest Z80 bus MOVE.B #$01, ($A11200) ; Stop Z80 reset LEA Soundfile, A0 ; Give the address of sound JSR GiveAddress MOVE.B #4, D0 ; ajuste la vitesse du sample JSR GiveTimeConstant MOVE.B #1, D0 ; Start playback JSR GiveCommand IdleLoop: JMP IdleLoop GiveAddress: ; Give Z80 program the address of sound MOVE.B #$01, ($A11100) ; request Z80 bus MOVE.L #$A00040, A1 MOVE.L A0, D0 MOVE.B D0, (A1)+ LSR.L #8, D0 MOVE.B D0, (A1)+ LSR.L #8, D0 MOVE.B D0, (A1)+ MOVE.B #$00, ($A11100) ; unrequest Z80 bus RTS GiveCommand: ; Give the Z80 program a command MOVE.B #$01, ($A11100) ; request Z80 bus MOVE.B D0, ($A00043) MOVE.B #$00, ($A11100) ; unrequest Z80 bus RTS GiveTimeConstant: ; Give the Z80 program a Time constant MOVE.B #$01, ($A11100) ; request Z80 bus MOVE.B D0, ($A00044) MOVE.B #$00, ($A11100) ; unrequest Z80 bus RTS WriteFMset1: BTST #7, (FMPORT1) BNE WriteFMset1 MOVE.B D0, (FMPORT1) WriteFM1: BTST #7, (FMPORT1) BNE WriteFM1 MOVE.B D1, (FMPORT2) RTS WriteFMset2: BTST #7, (FMPORT1) BNE WriteFMset1 MOVE.B D0, (FMPORT3) WriteFM2: BTST #7, (FMPORT1) BNE WriteFM2 MOVE.B D1, (FMPORT4) RTS Z80prog: ; Z80 Driver INCBIN "Z80WAVD.BIN" SoundFile: INCBIN "Papi.raw" ; Papi Theme Raw 12 Khz - 8 bits unsigned EVEN
Vous apprécierez la qualité du rendu !
Sur Fusion, le rendu est exceptionnel pour un fichier son de seulement 249 Ko !
Par contre il a fallu résoudre de nombreux problèmes :
1/ La compilation du code .asm via ASM68K. Après de nombreux essais infructueux et après lecture de la doc, il fallait ajouter dans la commande "/p" !
En effet, /p compile le code assembleur en "pur" BIN ! C'était ce qu'il fallait faire pour pouvoir rendre la ROM compatible avec les émulateurs et la console.
( asm68K.exe /p votre code.asm, VotreRom.bin )
2/ Ensuite le bon échantillonage du fichier son. En effet, le rendu fut catastrophique et ce en mode .Wav ... Dès lors, j'ai cherché, réfléchi et trouvé la solution !
Sous Audacity, ouvrir votre fichier son, changer l'échantillonage à 11Khz.
Ensuite modifier la vitesse à 300 pour conserver la tonalité d'origine.
Puis sauvegarder le fichier en mode RAW et unsigned 8 bits.
Et le tour est joué !
Voila, ce périple se termine positivement ...
Un autre arrive : pouvoir utiliser ce code avec BEX !
C'est pas encore gagné !
A bientôt !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
J'ai pas pigé ce que tu veux faire en asm Z80
La mega drive c'est pas du Motorola 68K ?
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Bonjour à tous,
Je profite de ce post pour vous informer qu'après de longs et lourds examens, hormis ma tumeur qui a été éradiqué, aucune autres n'ont été décelées et ni autres saloperies de cancers ...
Grand OUF de soulagement et la fin d'un période stress pour ma famille, mes proches et ... moi même !
Je vais pouvoir reprendre mon activité professionnelle dès le 24 février avec, peut être, un aménagement de poste.
Merci encore pour vos messages de soutiens et autres pensées positives amicales importantes à plus d'un titre.
Au niveau développement, je vais continuer mes travaux sur le portage de Papi Commando sur Megadrive sans pour autant laisser tomber mes autres projets ! Tout comme les femmes, je préfère en contenter qu'une à la fois ...
A très bientôt !
Amicalement,
Vetea
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé
Et le serment de non-allégiance :
Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.
Mais ta main elle va retrouver l'ensemble de ses fonctions ? Reste-t-il un handicap ?
Vetea va-t-il pouvoir reprendre sa vie de surmenage destructeur tant sportif que créatif ?
(La suite au prochain épisode ^^)
Abandonner ses rêves n'est pas à la portée de tout le monde.
1/ Il faut attendre une seconde opération de reconstruction dans le courant de l'année. Mais je n'aurai certainement pas la même motricité qu'avant étant donné les dégâts.
2/ Pour le sportif, va falloir se calmer un peu ! Pour le créatif, mon cerveau n'est pas touché alors ... Go go go !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Content de lire tout ça !
J'ai enfin essayé la version MD, avec l'émulateur Fusion.
C'est génial tout ce que tu as déjà fait !
Décor, sprites, collisions, du son...
Je suis arrivé là où les décors changent, et où il y a des soldats plus balèzes.
Merci Cirrus !
Bon, c'est un prototype de jeu mais les trucs essentiels sont réalisés.
Actuellement je tente d'intégrer mes premières routine ASM dans mon code non sans mal ...
Je voudrai utiliser le Z80 pour la musique indépendamment du 68000, tout un programme bien loin des préoccupations du développeur de jeu moderne !!
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Bonsoir à tous,
Et voila, j'ai enfin réussi à domestiquer ce Z80 !!
Je pourrai désormais jouer des musiques différentes indépendamment du 68000 qui s'occupera du reste des calculs, trop cool !
Je vais pouvoir charger la mule en intégrant en ROM la plupart des musiques du jeu original.
La prochaine version ira dans ce sens, la gestion des musiques ainsi que l'amélioration globale du jeu.
Mais Dieu ce que j'ai galéré ...
A bientôt !!
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Bonjour à tous,
Ce matin j'ai intégré toutes les nouvelles routines en jeu !
On peut dire que ça change et apporte une nouvelle dimension !!
J'ai ajouté 4 musiques originales, quelques sons de tirs, de morts et de bonus.
Je n'ai pas tout intégré en .ASM, le code devient trop complexe pour moi en l'état, par contre, le driver dispose de son propre fichier .ASM.
Pour information, toute la partie sonore est gérée avec le Z80 pendant que le 68000 s'occupe de gérer le jeu !! Un sorte de multi tâche - Multi processeur avant l'heure il y a plus de 20 ans déjà !
Concernant les sons, il y a 4 canaux + 1 Canal bruit ( PSG ) pour chacun à savoir :
- Musiques : Canal 0
- Sons Papi : Canal 1
- Sons Ennemis : Canal 2
- Sons Jeu divers : Canal 3
Voici un exemple en vidéo :
Encore un grand merci à Stef pour son aide précieuse !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Bonjour à tous,
J'ai pas mal bossé ce soir sur le projet.
J'ai commencé à un peu embellir un peu le jeu avec quelques effets de Scroll, démarrage partie, stage terminé, etc ...
Bon, c'est encore un peu succint, mais on a un petit proto bien sympa à jouer je trouve.
Avec en plus les musiques et sons en jeu, ça apporte un grand plus !
Voici la Rom :
https://dl.dropboxusercontent.com/u/...mando%20MD.bin
Amusez vous bien !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Super, ça commence à prendre forme !
Des animations, du son et de la musique...
J'ai fait quelques parties mais la seule fois où je suis arrivé assez loin (il y avait plein de casques noirs !) je me suis retrouvé à court de munitions
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager