La Place des Développeurs Mes 1ers pas sur MSX ...
Reprise du message précédent
Bon les ptits gars, je crois que ca y estmon compile.bat
@echo off
set path=%path%;D:\_Msx_Dev_\_Progr_MSX\SDCC\bin
sdasz80 -o crt0msx.s
sdcc -mz80 -c --oldralloc mes_sources\video.c
sdcc -mz80 -c --oldralloc mes_sources\tools.c
sdcc -mz80 -c --oldralloc mes_sources\gfx.c
sdcc -mz80 -c --oldralloc mes_sources\main.c
sdcc -mz80 -o main.ihx --oldralloc --code-loc 0x4010 --data-loc 0xc000 -mz80 --no-std-crt0 crt0msx.rel video.rel tools.rel gfx.rel main.rel
hex2bin.exe -e rom -s 4000 main.ihx
pause;
D:\_Msx_Dev_\_Progr_MSX\meisei\meisei.exe D:\_Msx_Dev_\wii\main.rom
le main.map
crt0msx.rel [ crt0 ]
video.rel [ video ]
tools.rel [ tools ]
gfx.rel [ gfx ]
main.rel
le fichier main.rom fait dorénavant 24394 octets
info du hex2bin
lowest adress 00004000
highest adress 00009f49
Merci à vous les zamis
Grace à vouzotte, je vais pouvoir poursuivre
Edité par Ricco59 Le 19/01/2021 à 23h30
aoineko
Membre non connecté
Conseiller Municipal
J'ai pas forcement toutes les infos, mais de ce que je comprends, le problème venait du fait que le crt0 n'était pas linké en premier et que du coup les segments étaient mal ordonnés.
Du coup, y a du code qui se retrouvé au delà de l'adresse de la RAM et hex2bin générait un binaire incorrect.
Du coup, y a du code qui se retrouvé au delà de l'adresse de la RAM et hex2bin générait un binaire incorrect.
On est toujours ignorant avant de savoir.
L'ancienne version de mon compile.bat avait pour effet de ne pas linker les fichiers dans le bon ordre. C'était linké comme ca
main.rel [ main ]
crt0.rel [ crt0 ]
tools.rel [ tools ]
video.rel [ video ]
gfx.rel [ gfx ]
lorsque je dumpais le main.rom (taille du fichier = 34131 octets : de 0x4000 à 0xc553) j'ai vu une zone vierge remplie de 0xff faisant 0x2609 octets (9737o).
Il y avait des données de 0x4000 à 0x9c89 et de 0xc294 à 0xc553. hex2bin a comblé le vide avec des octets.
Pourquoi la dernière partie est allée se greffer si loin au lieu de 0x9c8a ? pour l'instant je n'en sais absolument rien si ce n'est que ma procédure de compilation n'était pas la bonne...
J'ai ensuite procédé comme tu avais fait Eric (compilation), et là, tout est rentré dans l'ordre et le linkage était comme ca
crt0.rel [ crt0 ]
video.rel [ video ]
tools.rel [ tools ]
gfx.rel [ gfx ]
main.rel [ main ]
Il va falloir qu'en plus du MSX, du C, du décryptage des fichiers .map .sym .*** que je m'intéresse au batch
Il y a encore du boulot
Merci encore à vous 2
Bonne soirée
main.rel [ main ]
crt0.rel [ crt0 ]
tools.rel [ tools ]
video.rel [ video ]
gfx.rel [ gfx ]
lorsque je dumpais le main.rom (taille du fichier = 34131 octets : de 0x4000 à 0xc553) j'ai vu une zone vierge remplie de 0xff faisant 0x2609 octets (9737o).
Il y avait des données de 0x4000 à 0x9c89 et de 0xc294 à 0xc553. hex2bin a comblé le vide avec des octets.
Pourquoi la dernière partie est allée se greffer si loin au lieu de 0x9c8a ? pour l'instant je n'en sais absolument rien si ce n'est que ma procédure de compilation n'était pas la bonne...
J'ai ensuite procédé comme tu avais fait Eric (compilation), et là, tout est rentré dans l'ordre et le linkage était comme ca
crt0.rel [ crt0 ]
video.rel [ video ]
tools.rel [ tools ]
gfx.rel [ gfx ]
main.rel [ main ]
Il va falloir qu'en plus du MSX, du C, du décryptage des fichiers .map .sym .*** que je m'intéresse au batch
Il y a encore du boulot
Merci encore à vous 2
Bonne soirée
ericb59
Membre non connecté
Conseiller Municipal
Ricco59 :
Il va falloir qu'en plus du MSX, du C, du décryptage des fichiers .map .sym .*** que je m'intéresse au batch
Il va falloir qu'en plus du MSX, du C, du décryptage des fichiers .map .sym .*** que je m'intéresse au batch
batch, Shell, Makefile, Python, et j'en passe et des meilleurs On a jamais fini d'apprendre
C'est tellement vrai
ericb59
Membre non connecté
Conseiller Municipal
avec le confinement qui s'annonce, je ne sais pas si le livreur pourra se déplacer
Nombre aléatoire
j'ai l'impression que R ne suffit pas pour faire un 'bon' nombre aléatoire.
Existe-t-il une fonction permettant de lire la position du balayage ?
Comment determinez-vous vos nombres aléatoires
ex: rnd(valeur de debut, valeur de fin) ?
Tankiou so beaucoup
Bon dimanche les zamis
Eric
Nombre aléatoire
j'ai l'impression que R ne suffit pas pour faire un 'bon' nombre aléatoire.
Existe-t-il une fonction permettant de lire la position du balayage ?
Comment determinez-vous vos nombres aléatoires
ex: rnd(valeur de debut, valeur de fin) ?
Tankiou so beaucoup
Bon dimanche les zamis
Eric
ericb59
Membre non connecté
Conseiller Municipal
moi j'utilise ceci :
Code C :
Edité par
ericb59
Le 24/01/2021 à 10h30
#define RealTimer() (*(unsigned int *)0xFC9E) char FT_RandomNumber (char a, char b) { char random; random = rand()%(b-a)+a; return(random); } void main(void) { char n,i; srand(RealTimer()); // use current clock seconds as seed in the random generator for(i=0;i < 10; i++) { n=FT_RandomNumber(1,101); // Choose random number between 1 and 100 printf("%d,",n); } Exit(0); }
Salut les zamis,
Voici la WIP03 de 'Where is it ?"
Il me reste encore du travail, mais c'est pas trop mal parti
n'hésitez pas à me faire vos commentaires
A+
Eric
WIP03 - Wii? sur MSX
Voici la WIP03 de 'Where is it ?"
Il me reste encore du travail, mais c'est pas trop mal parti
n'hésitez pas à me faire vos commentaires
A+
Eric
WIP03 - Wii? sur MSX
aoineko
Membre non connecté
Conseiller Municipal
Je vais répété ce que j'ai dis sur MRC, mais je trouve ça vraiment super !
J'aime beaucoup l'attention que tu portes aux détails : tout est propre, tout semble fonctionnel.
Seul (petit) défaut de mon point de vue, c'est qu'autant ton lettrage est stylé, autant je trouve la lettre "T" vraiment pas lisible.
En tout cas, ça donne très envie d'essayer ton jeu ; ce qui est très bon signe.
Tu as prévu des mécaniques de jeu pour faire évoluer le challenge au fur et à mesure des parties ?
L'intérêt dépend surtout du nombre d'heures de jeu que tu prévois au total et s'il y a un risque de monotonie à force d'enchainer les parties.
En tout cas, voici quelques idées en vrac :
- Un niveau en noir & blanc (on joue que sur les formes)
- Un niveau qu'avec des couleur unies (pas de dessin)
- Un niveau avec le pattern à trouver qui est tourné de 90°, 180° ou -90°
- Un niveau qui scroll de temps en temps (juste un décalage horizontal ou vertical des tuiles) pour que le joueur perde ses repères
Ca pourrait juste être des niveaux "boss" à la fin de chacune de tes 10 îles.
J'aime beaucoup l'attention que tu portes aux détails : tout est propre, tout semble fonctionnel.
Seul (petit) défaut de mon point de vue, c'est qu'autant ton lettrage est stylé, autant je trouve la lettre "T" vraiment pas lisible.
En tout cas, ça donne très envie d'essayer ton jeu ; ce qui est très bon signe.
Tu as prévu des mécaniques de jeu pour faire évoluer le challenge au fur et à mesure des parties ?
L'intérêt dépend surtout du nombre d'heures de jeu que tu prévois au total et s'il y a un risque de monotonie à force d'enchainer les parties.
En tout cas, voici quelques idées en vrac :
- Un niveau en noir & blanc (on joue que sur les formes)
- Un niveau qu'avec des couleur unies (pas de dessin)
- Un niveau avec le pattern à trouver qui est tourné de 90°, 180° ou -90°
- Un niveau qui scroll de temps en temps (juste un décalage horizontal ou vertical des tuiles) pour que le joueur perde ses repères
Ca pourrait juste être des niveaux "boss" à la fin de chacune de tes 10 îles.
On est toujours ignorant avant de savoir.
Merci Aoineko
Ca a l'air d'être tout bon (reconnexion au compte)
Pour en revenir à la question ci-dessus, oui, j'utilise le sprite comme un pochoir
tu peux en voir d'autres dans la table des scores
J'ai aussi utilisé le bit early clock pour le mode story (vaisseau arrivant de la gauche)
Dans le descriptif, j'ai mis un 'chapitrage' qui permet de voir les différents niveaux
easy utilise une quinzaine de figures
normal utilise une quinzaine d'autres figures
hard pareil
mix mèle les pièces de easy+normal+hard
en mode story, sur la 10e ile, toutes les pièces sont blanches
le chapitrage
00:11 game mode - arcade EASY
00:45 entering Challenge Stage
02:24 level 02 - round 01
02:47 entering CHALLENGE STAGE
04:26 RESET
04:39 game mode - arcade NORMAL
05:03 entering CHALLENGE STAGE
06:38 RESET
06:52 game mode - arcade HARD
07:15 entering CHALLENGE STAGE
08:40 RESET
08:54 game mode - arcade MIX
09:21 entering CHALLENGE STAGE
10:54 RESET
11:07 game mode - STORY
11:11 Story mode introduction
11:36 landing on the first island of 'M33' archipelago
11:44 RESET
11:55 menu, hiscore, credits
12:46 end
Merci encore pour avoir, une fois de plus debloqué ce pb de connexion
Eric
Ca a l'air d'être tout bon (reconnexion au compte)
Pour en revenir à la question ci-dessus, oui, j'utilise le sprite comme un pochoir
tu peux en voir d'autres dans la table des scores
J'ai aussi utilisé le bit early clock pour le mode story (vaisseau arrivant de la gauche)
Dans le descriptif, j'ai mis un 'chapitrage' qui permet de voir les différents niveaux
easy utilise une quinzaine de figures
normal utilise une quinzaine d'autres figures
hard pareil
mix mèle les pièces de easy+normal+hard
en mode story, sur la 10e ile, toutes les pièces sont blanches
le chapitrage
00:11 game mode - arcade EASY
00:45 entering Challenge Stage
02:24 level 02 - round 01
02:47 entering CHALLENGE STAGE
04:26 RESET
04:39 game mode - arcade NORMAL
05:03 entering CHALLENGE STAGE
06:38 RESET
06:52 game mode - arcade HARD
07:15 entering CHALLENGE STAGE
08:40 RESET
08:54 game mode - arcade MIX
09:21 entering CHALLENGE STAGE
10:54 RESET
11:07 game mode - STORY
11:11 Story mode introduction
11:36 landing on the first island of 'M33' archipelago
11:44 RESET
11:55 menu, hiscore, credits
12:46 end
Merci encore pour avoir, une fois de plus debloqué ce pb de connexion
Eric
No problemo Aoineko, je te tiens au jus
Salut les potos,
Y-a-t-il un moyen visuel pour voir le temps machine que prend routine ? (sur amiga, on mettait un trait au copper d'une couleur avant la routine et après celle-ci, on remettait la couleur de fond. On avait donc une barre de couleur plus ou moins épaisse qui symbolisait le temps machine que prenait cette routine). Tout ça pour vous demander si
ld hl,vram+coordX+coordY*32
ld a,code du tile à afficher
call WRTVRM
est moins rapide que
ld hl,vram+coordX+coordY*32
ld a,code du tile à afficher
PUSH AF
DI
LD A,L
OUT (#0x99),A
LD A,H
AND #0x3F
OR #0x40
OUT (#0x99),A
EI
POP AF
OUT (#0x98),A
en relisant, je pense meme faire ça
ld hl,vram+coordX+coordY*32
PUSH AF
DI
LD A,L
OUT (#0x99),A
LD A,H
AND #0x3F
OR #0x40
OUT (#0x99),A
EI
ld a,code du tile à afficher
POP AF
OUT (#0x98),A
je sais que je gagne quelques octets en saut et retour mais c'est négligeable ou c mieux ?
Merci
ps : pour info, depuis hier, j'ai ajouté la gestion des couleurs du cadre en fonction du niveau de difficulté et, en mode story après l'affichage caractère / caractère, j'efface ligne / ligne comme sur coleco
Edité par Ricco59 Le 27/02/2021 à 21h26
Salut les potos,
Y-a-t-il un moyen visuel pour voir le temps machine que prend routine ? (sur amiga, on mettait un trait au copper d'une couleur avant la routine et après celle-ci, on remettait la couleur de fond. On avait donc une barre de couleur plus ou moins épaisse qui symbolisait le temps machine que prenait cette routine). Tout ça pour vous demander si
ld hl,vram+coordX+coordY*32
ld a,code du tile à afficher
call WRTVRM
est moins rapide que
ld hl,vram+coordX+coordY*32
ld a,code du tile à afficher
PUSH AF
DI
LD A,L
OUT (#0x99),A
LD A,H
AND #0x3F
OR #0x40
OUT (#0x99),A
EI
POP AF
OUT (#0x98),A
en relisant, je pense meme faire ça
ld hl,vram+coordX+coordY*32
DI
LD A,L
OUT (#0x99),A
LD A,H
AND #0x3F
OR #0x40
OUT (#0x99),A
EI
ld a,code du tile à afficher
OUT (#0x98),A
je sais que je gagne quelques octets en saut et retour mais c'est négligeable ou c mieux ?
Merci
ps : pour info, depuis hier, j'ai ajouté la gestion des couleurs du cadre en fonction du niveau de difficulté et, en mode story après l'affichage caractère / caractère, j'efface ligne / ligne comme sur coleco
Edité par Ricco59 Le 27/02/2021 à 21h26
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie