La Place des Développeurs moteur de jeu en basic création, optimisation
igal
Membre non connecté
Conseiller Municipal
Reprise du message précédent
Hello Obelix.(Ma fille aussi adore Winnie)
J'ai testé WINNUSAS avec BlueMsx en émulation Turbo-R, et à ma grande surprise, c'est extrêmement plus rapide.
Virtuellement, l'ajout d'une ou plusieurs autres animation simultanées devraient fonctionner à 100/100
il ne faut pas oublier que le vrai Turbo-R tourne 2 fois plus vite qu'un MSX2 d'ou les performances
avec blueMSX on peux régler sa vitesse avec le curseur rotatif et atteindre des cadences impossibles a faire avec la vraie machine
avec blueMSX on peux régler sa vitesse avec le curseur rotatif et atteindre des cadences impossibles a faire avec la vraie machine
Je suis tombé sur un autre utilitaire : OX crée par Parallax
Il semble fonctionner avec Age, il a servi pour Blade Lords, Akin & Core Dump
Il semble fonctionner avec Age, il a servi pour Blade Lords, Akin & Core Dump
igal
Membre non connecté
Conseiller Municipal
Bonsoir à tous.
Winnie en vadrouille dans l'univers Usas, est amusant, mais avec toute la bibliothèque Musicale et Sonore de Salamander en SCC, c'est encore mieux
J'ai donc isolé la partie "Player" contenu dans la démo SALAMANDERD et épuré le programme (avec mes connaissances limités) pour arriver à lancer des Musiques au choix (Pendant le jeu) et des sons en interaction avec les divers Items récoltés avec les sons désirés.
Il reste néanmoins un zone d'ombre.
Les musique(s) joué(es) font planter le MSX (Bluemsx), d'une façon assez surprenante, puisque le BUG a lieu lorsqu'un ITEM est collecté à moment précis de la partition musicale jouée
Après avoir procédé à de nombreux testes, en me servant d'une Image instantané du CPU, j'ai remarqué avec CERTITUDE, que le BUG à lieu lors de certaines Moments de la "partition musicale, et pas jamais à d'autres moments. (Testes de diverses Musiques, divers Sons en interaction avec la collecte des ITEMs etc..)
Le player en lui même fonctionne parfaitement selon moi. N'hésitez pas à vous en servir.
LE PLAYER (Isolé depuis Salamander"D" démo)
20000 '---------DEBUT DE SALAMANDER DEMO MODIFIE----------------
20010 'POKE&HFBB1,1: 'EMPECHE CONTROL+STOP
20030 BLOAD"1.006":DEFUSR4=&HD600:' CHARGE LE PLAYER ?
20040 BLOAD"1.007":U=USR4(1):' CHARGE SONS ET MUSIQUES
20050 BLOAD"1.008":U=USR4(2):' CHARGE SONS ET MUSIQUES
20060 BLOAD"1.009":U=USR4(3):' CHARGE SONS ET MUSIQUES
20070 BLOAD"1.010":U=USR4(4):' CHARGE SONS ET MUSIQUES
20080 BLOAD"1.011":FORT=0TO2000:NEXT
20090 DEFUSR=&HD000:A=USR(0): 'PREREQUIS ARRET LA MUSIQUE
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
20101 POKE&HFD9F,201
20105 POKE&HFDA0,&H6:POKE&HFDA1,&HD0:POKE&HFD9F,&HC3
20115 ' LISTE COMPLETE DES MUSIQUES ET SONS DANS POKE SALAMANDER
20117 '
20120 DEFUSR=&HD000:A=USR(0):POKE&HCFFF,32:A=USR2(0):' MUSIQUE STAGE 6
20750 'POKE&HCFFF,67:A=USR2(0):' EXPLOSION D'ENNEMI MOYENNE
20755 '
20760 'DEFUSR=&HD000:A=USR(0):FORP=0TO10:NEXT:POKE&HFD9F,201:'PERMET ACCES DISK ET ARRETE LA MUSIQUE AVANT
20770 GOTO 44:' RETOUR A L ANIMATION
20800 '
20810 '---------FIN DE SALAMANDER DEMO MODIFIE-------------------
LISTE DES MUSIQUES ET SONS (Listé par mes soins soins )
(Peut être utilisé n'importe ou et n'importe quand dans le programme de votre choix, sauf!!!????)
1010'DEFUSR=&HD000:A=USR(0):'STOPE MUSIQUE ET SON
1020'POKE&HCFFF,02:A=USR2(0):'PAUSE KONAMI
1030'POKE&HCFFF,03:A=USR2(0):'TIR PETIT
1040'POKE&HCFFF,04:A=USR2(0):'TIR FIN
1050'POKE&HCFFF,05:A=USR2(0):'TIR LASER
1030'POKE&HCFFF,06:A=USR2(0):'TIR RIPPLE
1070'POKE&HCFFF,08:A=USR2(0):'TIR GIGANTESQUE
1080'POKE&HCFFF,09:A=USR2(0):'TIR GIGANTESQUE AUTRE
1090'POKE&HCFFF,10:A=USR2(0):'TIR MINI BRUIT DE CANARD
1100'POKE&HCFFF,11:A=USR2(0):'IMPACT ENNEMI PETIT
1110'POKE&HCFFF,12:A=USR2(0):'UPGRADE DE L'OPTION
1120'POKE&HCFFF,13:A=USR2(0):'TIR LASER BRUIT BIDON
1130'POKE&HCFFF,14:A=USR2(0):'EXPLOSION D'ENNEMI BASIQUE
1140'POKE&HCFFF,15:A=USR2(0):'EXPLOSION D'ENNEMI PUISSANTE
1150'POKE&HCFFF,16:A=USR2(0):'RECUPERATION D'UN ITEM
1160'POKE&HCFFF,17:A=USR2(0):'EXPLOSION D'ENNEMI MOYENNE
1170'POKE&HCFFF,18:A=USR2(0):'UPGRADE UN CREDIT SUPPLEMENTAIRE
1180'POKE&HCFFF,19:A=USR2(0):'TIR BISARE COURT
1190'POKE&HCFFF,20:A=USR2(0):'BRUIT EFFRAYANT
1200'POKE&HCFFF,21:A=USR2(0):'EXPLOSION DE MONSTRE DE FIN DE NIVEAU
1210'POKE&HCFFF,22:A=USR2(0):'EXPLOSION DE MONSTRE DE FIN DE NIVEAU PLUS LONGUE
1220'POKE&HCFFF,23:A=USR2(0):'SON D'ALERTE
1230'POKE&HCFFF,24:A=USR2(0):'BRUIT DE DESTRUCTION COURT
1240'POKE&HCFFF,25:A=USR2(0):'MUSIQUE D'UN NIVEAU
1250'POKE&HCFFF,26:A=USR2(0):'ARRETE LA MUSIQUE
1260'POKE&HCFFF,27:A=USR2(0):'MUSIQUE STAGE 1
1270'POKE&HCFFF,28:A=USR2(0):'MUSIQUE STAGE 2
1280'POKE&HCFFF,29:A=USR2(0):'MUSIQUE STAGE 3
1290'POKE&HCFFF,30:A=USR2(0):'MUSIQUE STAGE 4
1300'POKE&HCFFF,31:A=USR2(0):'MUSIQUE STAGE 5
1310'POKE&HCFFF,32:A=USR2(0):'MUSIQUE STAGE 6
1320'POKE&HCFFF,33:A=USR2(0):'MUSIQUE COMBAT MONSTRE DE FIN DE NIVEAU
1330'POKE&HCFFF,34:A=USR2(0):'MUSIQUE INTERLUDE
1340'---POKE&HCFFF,35:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1350'POKE&HCFFF,36:A=USR2(0):'BRUITAGE D ASPIRATION PAR UN VAISSEAU MERE COMME NEMESIS 2
1360'POKE&HCFFF,37:A=USR2(0):'BRUITAGE DE DESTRUCTION DU VAISSEAU MERE
1370'---POKE&HCFFF,38:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1380'POKE&HCFFF,39:A=USR2(0):'DESTRUCTION DU VAISSEAU DU JOUEUR
1390'POKE&HCFFF,40:A=USR2(0):'DEMARRAGE DU VAISSEAU APRES DEMO ET AVANT LE JEU
1400'---POKE&HCFFF,41:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1410'---POKE&HCFFF,42:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1420'---POKE&HCFFF,43:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1430'---POKE&HCFFF,44:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1440'---POKE&HCFFF,45:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1450'POKE&HCFFF,46:A=USR2(0):'MUSIQUE DE DEMO D INTRODUCTION. SE TERMINE
1460'POKE&HCFFF,47:A=USR2(0):'MUSIQUE DE DEMO AUTRE INTERLUDE
1470'POKE&HCFFF,48:A=USR2(0):'MUSIQUE DE STAGE FINAL?
1480'POKE&HCFFF,49:A=USR2(0):'MUSIQUE DE DEMO DE FIN?
1490'POKE&HCFFF,50:A=USR2(0):'MUSIQUE GAME OVER
1500'---POKE&HCFFF,51:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1510'POKE&HCFFF,52:A=USR2(0):'BRUITAGE COUPLAGE DEUX VAISSEAUX
1520'---POKE&HCFFF,53:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1530'---POKE&HCFFF,54:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1540'---POKE&HCFFF,55:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1590 POKE&HCFFF,55:A=USR2(0):'BRUIT DE DESTRCTION DE CELLULES
1600 POKE&HCFFF,56:A=USR2(0):'BRUIT DE DESTRUCTION DE ROCHERS ?
1610 POKE&HCFFF,57:A=USR2(0):'BRUIT DE PETITE MITRAILLEUSE
1620'---POKE&HCFFF,58:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1630'---POKE&HCFFF,59:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1640'POKE&HCFFF,60:A=USR2(0):'BRUIT PETITE EXPLOSION SOURDE
1650'---POKE&HCFFF,61:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1660'POKE&HCFFF,62:A=USR2(0):'BRUIT PETIT IMPACT DE LASER
1670'---POKE&HCFFF,63:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1680'POKE&HCFFF,64:A=USR2(0):'EXPLOSION
1690'POKE&HCFFF,65:A=USR2(0):'EXPLOSION DE VELOUR
1700'POKE&HCFFF,66:A=USR2(0):'LASER TRES AIGU
1710'POKE&HCFFF,67:A=USR2(0):'OPTION COLLECTE SUPER ITEM GEANTE
1720'POKE&HCFFF,68:A=USR2(0):'COUPLAGE DE VAISSAU OU BRUIT DE SONAR
1730'POKE&HCFFF,69:A=USR2(0):'COUPLAGE DE VAISSAU OU BRUIT DE SONAR AVEC ECHO
1740'POKE&HCFFF,70:A=USR2(0):'BRUIT REPERCUTION NEGATIVE
1750'POKE&HCFFF,71:A=USR2(0):'BRUIT D IMPACTE SUR DU SABLE
1760'POKE&HCFFF,72:A=USR2(0):'BRUIT DECOLLAGE PRECIPITE DU VAISSEAU
1770'---POKE&HCFFF,73:A=USR2(0):'BRUIT DE PRISE D UN PETIT ITEM
1780'POKE&HCFFF,74:A=USR2(0):'OPTION UPGRADE D UNE OPTION NORMALE
1790'POKE&HCFFF,75:A=USR2(0):'BRUIT D ALERTE QUI PREND LA TETE ET SE REPETE
1800'POKE&HCFFF,76:A=USR2(0):'EXPLOSION D UN VAISSEAU APRES UN DISCOURS
1810'POKE&HCFFF,77:A=USR2(0):'BRUIT D UN PAVE DANS LA MARE
1820'POKE&HCFFF,78:A=USR2(0):'EXPLOSION BRUIT VIOLENTE AVEC ECHO
1830'POKE&HCFFF,79:A=USR2(0):'OPTION ITEM ABSORBTION DE GIGAS ITEMS
1840'POKE&HCFFF,80:A=USR2(0):'EXPLOSION PETITE PIERRE
1850'POKE&HCFFF,81:A=USR2(0):'EXPLOSION GROSSE PIERRE?
1860'POKE&HCFFF,82:A=USR2(0):'OPTION ITEM ABSORBTION DE GROS ITEMS
1870'---POKE&HCFFF,83:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1880'---POKE&HCFFF,84:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1890'POKE&HCFFF,85:A=USR2(0):'COUPLAGE DE VAISSEAU OU ARRIMAGE
1900'POKE&HCFFF,86:A=USR2(0):'MOTO QUI DOUBLE AVEC ECHO MULTIPLE
1910'POKE&HCFFF,87:A=USR2(0):'COUPLAGE DE VAISSEAU OU ARRIMAGE AUTRE
1920'---POKE&HCFFF,88:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1930'POKE&HCFFF,89:A=USR2(0):'COUPLAGE DE VAISSEAU OU ARRIMAGE AUTRE
1940'POKE&HCFFF,90:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
Voici maintenant WINNUSASALAMANDER WINNUSASALAMANDER.zip
Si vous avez une idée pour résoudre le BUG qui fait planter WINNIE, ou une idée à soumettre, je suis preneur.
Winnie en vadrouille dans l'univers Usas, est amusant, mais avec toute la bibliothèque Musicale et Sonore de Salamander en SCC, c'est encore mieux
J'ai donc isolé la partie "Player" contenu dans la démo SALAMANDERD et épuré le programme (avec mes connaissances limités) pour arriver à lancer des Musiques au choix (Pendant le jeu) et des sons en interaction avec les divers Items récoltés avec les sons désirés.
Il reste néanmoins un zone d'ombre.
Les musique(s) joué(es) font planter le MSX (Bluemsx), d'une façon assez surprenante, puisque le BUG a lieu lorsqu'un ITEM est collecté à moment précis de la partition musicale jouée
Après avoir procédé à de nombreux testes, en me servant d'une Image instantané du CPU, j'ai remarqué avec CERTITUDE, que le BUG à lieu lors de certaines Moments de la "partition musicale, et pas jamais à d'autres moments. (Testes de diverses Musiques, divers Sons en interaction avec la collecte des ITEMs etc..)
Le player en lui même fonctionne parfaitement selon moi. N'hésitez pas à vous en servir.
LE PLAYER (Isolé depuis Salamander"D" démo)
20000 '---------DEBUT DE SALAMANDER DEMO MODIFIE----------------
20010 'POKE&HFBB1,1: 'EMPECHE CONTROL+STOP
20030 BLOAD"1.006":DEFUSR4=&HD600:' CHARGE LE PLAYER ?
20040 BLOAD"1.007":U=USR4(1):' CHARGE SONS ET MUSIQUES
20050 BLOAD"1.008":U=USR4(2):' CHARGE SONS ET MUSIQUES
20060 BLOAD"1.009":U=USR4(3):' CHARGE SONS ET MUSIQUES
20070 BLOAD"1.010":U=USR4(4):' CHARGE SONS ET MUSIQUES
20080 BLOAD"1.011":FORT=0TO2000:NEXT
20090 DEFUSR=&HD000:A=USR(0): 'PREREQUIS ARRET LA MUSIQUE
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
20101 POKE&HFD9F,201
20105 POKE&HFDA0,&H6:POKE&HFDA1,&HD0:POKE&HFD9F,&HC3
20115 ' LISTE COMPLETE DES MUSIQUES ET SONS DANS POKE SALAMANDER
20117 '
20120 DEFUSR=&HD000:A=USR(0):POKE&HCFFF,32:A=USR2(0):' MUSIQUE STAGE 6
20750 'POKE&HCFFF,67:A=USR2(0):' EXPLOSION D'ENNEMI MOYENNE
20755 '
20760 'DEFUSR=&HD000:A=USR(0):FORP=0TO10:NEXT:POKE&HFD9F,201:'PERMET ACCES DISK ET ARRETE LA MUSIQUE AVANT
20770 GOTO 44:' RETOUR A L ANIMATION
20800 '
20810 '---------FIN DE SALAMANDER DEMO MODIFIE-------------------
LISTE DES MUSIQUES ET SONS (Listé par mes soins soins )
(Peut être utilisé n'importe ou et n'importe quand dans le programme de votre choix, sauf!!!????)
1010'DEFUSR=&HD000:A=USR(0):'STOPE MUSIQUE ET SON
1020'POKE&HCFFF,02:A=USR2(0):'PAUSE KONAMI
1030'POKE&HCFFF,03:A=USR2(0):'TIR PETIT
1040'POKE&HCFFF,04:A=USR2(0):'TIR FIN
1050'POKE&HCFFF,05:A=USR2(0):'TIR LASER
1030'POKE&HCFFF,06:A=USR2(0):'TIR RIPPLE
1070'POKE&HCFFF,08:A=USR2(0):'TIR GIGANTESQUE
1080'POKE&HCFFF,09:A=USR2(0):'TIR GIGANTESQUE AUTRE
1090'POKE&HCFFF,10:A=USR2(0):'TIR MINI BRUIT DE CANARD
1100'POKE&HCFFF,11:A=USR2(0):'IMPACT ENNEMI PETIT
1110'POKE&HCFFF,12:A=USR2(0):'UPGRADE DE L'OPTION
1120'POKE&HCFFF,13:A=USR2(0):'TIR LASER BRUIT BIDON
1130'POKE&HCFFF,14:A=USR2(0):'EXPLOSION D'ENNEMI BASIQUE
1140'POKE&HCFFF,15:A=USR2(0):'EXPLOSION D'ENNEMI PUISSANTE
1150'POKE&HCFFF,16:A=USR2(0):'RECUPERATION D'UN ITEM
1160'POKE&HCFFF,17:A=USR2(0):'EXPLOSION D'ENNEMI MOYENNE
1170'POKE&HCFFF,18:A=USR2(0):'UPGRADE UN CREDIT SUPPLEMENTAIRE
1180'POKE&HCFFF,19:A=USR2(0):'TIR BISARE COURT
1190'POKE&HCFFF,20:A=USR2(0):'BRUIT EFFRAYANT
1200'POKE&HCFFF,21:A=USR2(0):'EXPLOSION DE MONSTRE DE FIN DE NIVEAU
1210'POKE&HCFFF,22:A=USR2(0):'EXPLOSION DE MONSTRE DE FIN DE NIVEAU PLUS LONGUE
1220'POKE&HCFFF,23:A=USR2(0):'SON D'ALERTE
1230'POKE&HCFFF,24:A=USR2(0):'BRUIT DE DESTRUCTION COURT
1240'POKE&HCFFF,25:A=USR2(0):'MUSIQUE D'UN NIVEAU
1250'POKE&HCFFF,26:A=USR2(0):'ARRETE LA MUSIQUE
1260'POKE&HCFFF,27:A=USR2(0):'MUSIQUE STAGE 1
1270'POKE&HCFFF,28:A=USR2(0):'MUSIQUE STAGE 2
1280'POKE&HCFFF,29:A=USR2(0):'MUSIQUE STAGE 3
1290'POKE&HCFFF,30:A=USR2(0):'MUSIQUE STAGE 4
1300'POKE&HCFFF,31:A=USR2(0):'MUSIQUE STAGE 5
1310'POKE&HCFFF,32:A=USR2(0):'MUSIQUE STAGE 6
1320'POKE&HCFFF,33:A=USR2(0):'MUSIQUE COMBAT MONSTRE DE FIN DE NIVEAU
1330'POKE&HCFFF,34:A=USR2(0):'MUSIQUE INTERLUDE
1340'---POKE&HCFFF,35:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1350'POKE&HCFFF,36:A=USR2(0):'BRUITAGE D ASPIRATION PAR UN VAISSEAU MERE COMME NEMESIS 2
1360'POKE&HCFFF,37:A=USR2(0):'BRUITAGE DE DESTRUCTION DU VAISSEAU MERE
1370'---POKE&HCFFF,38:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1380'POKE&HCFFF,39:A=USR2(0):'DESTRUCTION DU VAISSEAU DU JOUEUR
1390'POKE&HCFFF,40:A=USR2(0):'DEMARRAGE DU VAISSEAU APRES DEMO ET AVANT LE JEU
1400'---POKE&HCFFF,41:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1410'---POKE&HCFFF,42:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1420'---POKE&HCFFF,43:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1430'---POKE&HCFFF,44:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1440'---POKE&HCFFF,45:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1450'POKE&HCFFF,46:A=USR2(0):'MUSIQUE DE DEMO D INTRODUCTION. SE TERMINE
1460'POKE&HCFFF,47:A=USR2(0):'MUSIQUE DE DEMO AUTRE INTERLUDE
1470'POKE&HCFFF,48:A=USR2(0):'MUSIQUE DE STAGE FINAL?
1480'POKE&HCFFF,49:A=USR2(0):'MUSIQUE DE DEMO DE FIN?
1490'POKE&HCFFF,50:A=USR2(0):'MUSIQUE GAME OVER
1500'---POKE&HCFFF,51:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1510'POKE&HCFFF,52:A=USR2(0):'BRUITAGE COUPLAGE DEUX VAISSEAUX
1520'---POKE&HCFFF,53:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1530'---POKE&HCFFF,54:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1540'---POKE&HCFFF,55:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1590 POKE&HCFFF,55:A=USR2(0):'BRUIT DE DESTRCTION DE CELLULES
1600 POKE&HCFFF,56:A=USR2(0):'BRUIT DE DESTRUCTION DE ROCHERS ?
1610 POKE&HCFFF,57:A=USR2(0):'BRUIT DE PETITE MITRAILLEUSE
1620'---POKE&HCFFF,58:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1630'---POKE&HCFFF,59:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1640'POKE&HCFFF,60:A=USR2(0):'BRUIT PETITE EXPLOSION SOURDE
1650'---POKE&HCFFF,61:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1660'POKE&HCFFF,62:A=USR2(0):'BRUIT PETIT IMPACT DE LASER
1670'---POKE&HCFFF,63:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1680'POKE&HCFFF,64:A=USR2(0):'EXPLOSION
1690'POKE&HCFFF,65:A=USR2(0):'EXPLOSION DE VELOUR
1700'POKE&HCFFF,66:A=USR2(0):'LASER TRES AIGU
1710'POKE&HCFFF,67:A=USR2(0):'OPTION COLLECTE SUPER ITEM GEANTE
1720'POKE&HCFFF,68:A=USR2(0):'COUPLAGE DE VAISSAU OU BRUIT DE SONAR
1730'POKE&HCFFF,69:A=USR2(0):'COUPLAGE DE VAISSAU OU BRUIT DE SONAR AVEC ECHO
1740'POKE&HCFFF,70:A=USR2(0):'BRUIT REPERCUTION NEGATIVE
1750'POKE&HCFFF,71:A=USR2(0):'BRUIT D IMPACTE SUR DU SABLE
1760'POKE&HCFFF,72:A=USR2(0):'BRUIT DECOLLAGE PRECIPITE DU VAISSEAU
1770'---POKE&HCFFF,73:A=USR2(0):'BRUIT DE PRISE D UN PETIT ITEM
1780'POKE&HCFFF,74:A=USR2(0):'OPTION UPGRADE D UNE OPTION NORMALE
1790'POKE&HCFFF,75:A=USR2(0):'BRUIT D ALERTE QUI PREND LA TETE ET SE REPETE
1800'POKE&HCFFF,76:A=USR2(0):'EXPLOSION D UN VAISSEAU APRES UN DISCOURS
1810'POKE&HCFFF,77:A=USR2(0):'BRUIT D UN PAVE DANS LA MARE
1820'POKE&HCFFF,78:A=USR2(0):'EXPLOSION BRUIT VIOLENTE AVEC ECHO
1830'POKE&HCFFF,79:A=USR2(0):'OPTION ITEM ABSORBTION DE GIGAS ITEMS
1840'POKE&HCFFF,80:A=USR2(0):'EXPLOSION PETITE PIERRE
1850'POKE&HCFFF,81:A=USR2(0):'EXPLOSION GROSSE PIERRE?
1860'POKE&HCFFF,82:A=USR2(0):'OPTION ITEM ABSORBTION DE GROS ITEMS
1870'---POKE&HCFFF,83:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1880'---POKE&HCFFF,84:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1890'POKE&HCFFF,85:A=USR2(0):'COUPLAGE DE VAISSEAU OU ARRIMAGE
1900'POKE&HCFFF,86:A=USR2(0):'MOTO QUI DOUBLE AVEC ECHO MULTIPLE
1910'POKE&HCFFF,87:A=USR2(0):'COUPLAGE DE VAISSEAU OU ARRIMAGE AUTRE
1920'---POKE&HCFFF,88:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
1930'POKE&HCFFF,89:A=USR2(0):'COUPLAGE DE VAISSEAU OU ARRIMAGE AUTRE
1940'POKE&HCFFF,90:A=USR2(0):'AUCUN SON NI MUSIQUE ET AUCUN EFFET
Voici maintenant WINNUSASALAMANDER WINNUSASALAMANDER.zip
Si vous avez une idée pour résoudre le BUG qui fait planter WINNIE, ou une idée à soumettre, je suis preneur.
igal
Membre non connecté
Conseiller Municipal
A la demande de Galine.
Un vaisseau, des étoiles et c'est l’Amérique
J'ai animé le vaisseau avec une rotation des options qui tient compte des mouvements du joueur.
Voici la disquette prète à l'emploi => RTYPE.zip
Seul bémol toujours ce fameux Bug qui fait tout planter!
Pour rappel, ce Bug est dû à l'utilisation des ITEMS "Objets à récupérer et qui s'affichent en bas de l'écran"
Ce bug est aléatoire sur cette action de collecte des Items.
J'ai pensé à supprimer la "Fonction Item" du programme, de sorte à éliminer le problème, mais cela réduirait considérablement l’intérêt.
Voici la source ( par Galine):
Prochainement, pour faire plaisir à ma fille, le mod Barbapapa Edité par igal Le 21/11/2010 à 01h56
Un vaisseau, des étoiles et c'est l’Amérique
J'ai animé le vaisseau avec une rotation des options qui tient compte des mouvements du joueur.
Voici la disquette prète à l'emploi => RTYPE.zip
Seul bémol toujours ce fameux Bug qui fait tout planter!
Pour rappel, ce Bug est dû à l'utilisation des ITEMS "Objets à récupérer et qui s'affichent en bas de l'écran"
Ce bug est aléatoire sur cette action de collecte des Items.
J'ai pensé à supprimer la "Fonction Item" du programme, de sorte à éliminer le problème, mais cela réduirait considérablement l’intérêt.
Voici la source ( par Galine):
Prochainement, pour faire plaisir à ma fille, le mod Barbapapa Edité par igal Le 21/11/2010 à 01h56
TurboSEB
Membre non connecté
Conseiller Municipal
une idée pour le Bug Winnie
ceci est une simple deduction, car mes compétences en programmation sont loin d'arrivé a ton niveau
la serie des POKE &HCFFF,xx correspondent peut etre a la simulation de l'appuie sur une touche du clavier qui induirait un BUG.
ONCE UPON A TIME , SO FAR AWAY, jadis, j'ai utilisé ces fichiers musicaux dans mes Mags ,et dans la demo sons on pouvait entendre ces sons en appuyant sur une touche, et effectivement certaines touches n'avaient aucuns sons (d'ou la deduction)
A savoir donc a quoi correspond exactement ce Poke et surtout cette ligne :
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
un probleme de conflit memoire, probablement
Felicitation pour ces Niveaux Igal
Mince, mais c'est l'heure de la Récré la , fault que je me planque moa Edité par TurboSEB Le 21/11/2010 à 07h30
ceci est une simple deduction, car mes compétences en programmation sont loin d'arrivé a ton niveau
la serie des POKE &HCFFF,xx correspondent peut etre a la simulation de l'appuie sur une touche du clavier qui induirait un BUG.
ONCE UPON A TIME , SO FAR AWAY, jadis, j'ai utilisé ces fichiers musicaux dans mes Mags ,et dans la demo sons on pouvait entendre ces sons en appuyant sur une touche, et effectivement certaines touches n'avaient aucuns sons (d'ou la deduction)
A savoir donc a quoi correspond exactement ce Poke et surtout cette ligne :
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
un probleme de conflit memoire, probablement
Felicitation pour ces Niveaux Igal
Mince, mais c'est l'heure de la Récré la , fault que je me planque moa Edité par TurboSEB Le 21/11/2010 à 07h30
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
igal
Membre non connecté
Conseiller Municipal
TurboSEB :
une idée pour le Bug Winnie
ceci est une simple deduction, car mes compétences en programmation sont loin d'arrivé a ton niveau
la serie des POKE &HCFFF,xx correspondent peut etre a la simulation de l'appuie sur une touche du clavier qui induirait un BUG.
ONCE UPON A TIME , SO FAR AWAY, jadis, j'ai utilisé ces fichiers musicaux dans mes Mags ,et dans la demo sons on pouvait entendre ces sons en appuyant sur une touche, et effectivement certaines touches n'avaient aucuns sons (d'ou la deduction)
A savoir donc a quoi correspond exactement ce Poke et surtout cette ligne :
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
un probleme de conflit memoire, probablement
Felicitation pour ces Niveaux Igal
Mince, mais c'est l'heure de la Récré la , fault que je me planque moa
ceci est une simple deduction, car mes compétences en programmation sont loin d'arrivé a ton niveau
la serie des POKE &HCFFF,xx correspondent peut etre a la simulation de l'appuie sur une touche du clavier qui induirait un BUG.
ONCE UPON A TIME , SO FAR AWAY, jadis, j'ai utilisé ces fichiers musicaux dans mes Mags ,et dans la demo sons on pouvait entendre ces sons en appuyant sur une touche, et effectivement certaines touches n'avaient aucuns sons (d'ou la deduction)
A savoir donc a quoi correspond exactement ce Poke et surtout cette ligne :
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
un probleme de conflit memoire, probablement
Felicitation pour ces Niveaux Igal
Mince, mais c'est l'heure de la Récré la , fault que je me planque moa
Lut turboSeb.
Merci de ta réponse.
Juste un petite précision, je n'y connais absolument rien en programmation, je pratique par contre allègrement le recyclage de routines par ci par là
J'essais de toujours citer mes sources, au moins lors de la première édition de mon recyclage
Pour ce qui est des Pokes, j'ai pensé que:
MOD CERTITUDE [ON]
Les adresses Hexadécimales HCFFF ne représentent pas ici des [Appuies] de touches, mais des "Blocs" conteneurs de Sons SCC.
L'ensemble de la bribe de programme [Demo salamanderD] ne contient pas de Bug.
L'ensemble du Moteur [WINNIE] de Msxosaure, ne contient pas de Bug.
La corrélation des programmes [WINNIE] et [DEMO SALAMANDERD] ne Bug pas!
Sauf Si ces trois conditions sont réunis.
1) Initialisation de tous les Poke de [SALAMANDERD DEMO]
2) Avec ou Sans Musique, Avec ou sans Sons
3) Ramassage ITEM => (Disparition ITEM).
Autre essais:
4) J'ai simplement initialisé tous les POKES sauf démarrage Musiques et/ou Sons, et le BUG est toujours présent.
5) L'item de [Mort] ne fait jamais BUGé => (Pas de disparition ITEM).
6) J'en conclu que la gestion de l'effacement des ITEMS en corrélation avec un moment cyclique précis du programme SalamanderD Créer le BUG.
MOD CERTITUDE [OFF]
Vais faire des essais en modifiant le programme de Msxosaure et te tiens au courant!
Ps: T'inquiète pour la récrée, deux carambars et on en parle plus
il faut essayer de mettre une instruction CLEAR200,&HC000 en début de programme
ça sert a définir le zone du basic et celle du machine afin de ne pas avoir de conflit
le programme machine est en 2 parties
la premiére 1.006 de &HD600 a &HD711 charge les sons en mémoire dans le mapper
la seconde 1.011 de &HD000 a &HDB7 initialise ( appel &HD000 ) et joue les sons ( appel &HD003 avec valeur dans &HCFFF )
les 4 autres parties de 8k chacune sont les données des sons et vont s'installer dans le mapper
ça sert a définir le zone du basic et celle du machine afin de ne pas avoir de conflit
le programme machine est en 2 parties
la premiére 1.006 de &HD600 a &HD711 charge les sons en mémoire dans le mapper
la seconde 1.011 de &HD000 a &HDB7 initialise ( appel &HD000 ) et joue les sons ( appel &HD003 avec valeur dans &HCFFF )
les 4 autres parties de 8k chacune sont les données des sons et vont s'installer dans le mapper
si on enléve les instructions POKE&HCFFF,79:A=USR2(0) de la ligne 5005 ça ne plante plus
si on fait un CTRL/STOP dans le jeu et que l'on tape ces instructions les 2 sons sont joués en même temps sans problémes
on peux tester tous les sons en changeant la valeur du POKE&HCFFF
si on met 1 on stoppe le son
en changeant la valeur de 79 par 50 ça plante toujours
aprés un CTRL/STOP il est impossible de redémarrer par un RUN ça bloque
il faut voir du coté interruptions vers &HD006 qui s'installent en &HFD9F
a suivre ......
si on fait un CTRL/STOP dans le jeu et que l'on tape ces instructions les 2 sons sont joués en même temps sans problémes
on peux tester tous les sons en changeant la valeur du POKE&HCFFF
si on met 1 on stoppe le son
en changeant la valeur de 79 par 50 ça plante toujours
aprés un CTRL/STOP il est impossible de redémarrer par un RUN ça bloque
il faut voir du coté interruptions vers &HD006 qui s'installent en &HFD9F
a suivre ......
igal
Membre non connecté
Conseiller Municipal
Salut Jipe.
Je te remercie pour tes indications, qui m'ont conduit à isoler la "Conjoncture Buggante " de WINNIE.BAS et SALAMANDER.BAS.
Voici la disquette avec le mod Spacemanbow
SPACEMANBOW.zip
Voici le listing original:
4901 ' SP gestion rencontre avec objet
4902 '
5000 IF P=10THEN6000 ' si trou -> SP tombe
5005 PSET(INT((X+15)/16),202+INT((Y+4)/16)),15:B=P*6:F=P*5
5010 COPY(240,191)-(255,206),1TO((INT((X+15)/16))*16,(INT((Y+36)/16))*16),2
5020 COPY(208,P*16-112)-(223,P*16-97),1TO(C*16+32,196),0
5040 C=C+1
5100 GOTO 310
5900 '
Voici le correctif:
5005 'PSET(INT((X+15)/16),202+INT((Y+4)/16)),15:B=P*6:F=P*5:
5010 'COPY(240,191)-(255,206),1TO((INT((X+15)/16))*16,(INT((Y+36)/16))*16),2
J'ai empêché l'exécution des lignes 5005 et 5010.
Il en résulte une répétition sans fin de la Collecte de l'item. Comme une jauge de carburant qui augmente dès que l'on est sur l'icone Carburant
Faute de connaissances, suffisantes, je n'ai pas pu trouver mieux
Je reste tout ouïe à tes indications!
Ps: J'espere que Msxosaure verra pas ca, j'en ai marre de m'prendre des coups de règles sur les doigts lol Edité par igal Le 22/11/2010 à 19h29
Je te remercie pour tes indications, qui m'ont conduit à isoler la "Conjoncture Buggante " de WINNIE.BAS et SALAMANDER.BAS.
Voici la disquette avec le mod Spacemanbow
SPACEMANBOW.zip
Voici le listing original:
4901 ' SP gestion rencontre avec objet
4902 '
5000 IF P=10THEN6000 ' si trou -> SP tombe
5005 PSET(INT((X+15)/16),202+INT((Y+4)/16)),15:B=P*6:F=P*5
5010 COPY(240,191)-(255,206),1TO((INT((X+15)/16))*16,(INT((Y+36)/16))*16),2
5020 COPY(208,P*16-112)-(223,P*16-97),1TO(C*16+32,196),0
5040 C=C+1
5100 GOTO 310
5900 '
Voici le correctif:
5005 'PSET(INT((X+15)/16),202+INT((Y+4)/16)),15:B=P*6:F=P*5:
5010 'COPY(240,191)-(255,206),1TO((INT((X+15)/16))*16,(INT((Y+36)/16))*16),2
J'ai empêché l'exécution des lignes 5005 et 5010.
Il en résulte une répétition sans fin de la Collecte de l'item. Comme une jauge de carburant qui augmente dès que l'on est sur l'icone Carburant
Faute de connaissances, suffisantes, je n'ai pas pu trouver mieux
Je reste tout ouïe à tes indications!
Ps: J'espere que Msxosaure verra pas ca, j'en ai marre de m'prendre des coups de règles sur les doigts lol Edité par igal Le 22/11/2010 à 19h29
igal
Membre non connecté
Conseiller Municipal
Jipe :
si on enléve les instructions POKE&HCFFF,79:A=USR2(0) de la ligne 5005 ça ne plante plus
si on fait un CTRL/STOP dans le jeu et que l'on tape ces instructions les 2 sons sont joués en même temps sans problémes
on peux tester tous les sons en changeant la valeur du POKE&HCFFF
si on met 1 on stoppe le son
en changeant la valeur de 79 par 50 ça plante toujours
aprés un CTRL/STOP il est impossible de redémarrer par un RUN ça bloque
il faut voir du coté interruptions vers &HD006 qui s'installent en &HFD9F
a suivre ......
si on fait un CTRL/STOP dans le jeu et que l'on tape ces instructions les 2 sons sont joués en même temps sans problémes
on peux tester tous les sons en changeant la valeur du POKE&HCFFF
si on met 1 on stoppe le son
en changeant la valeur de 79 par 50 ça plante toujours
aprés un CTRL/STOP il est impossible de redémarrer par un RUN ça bloque
il faut voir du coté interruptions vers &HD006 qui s'installent en &HFD9F
a suivre ......
Salut Jipe.
J'ai suivi ta voix et effectivement, la ligne 5005 pose problème, ainsi que 5010 d'ailleurs. J'ai complètement éludé ces deux lignes, cela a résolu le BUG.
La seule différence sans ces deux lignes, réside en la NON disparition des ITEMS de l'écran. Pour le reste, rien ne change.
Voici une Synthèse des différentes modification du moteur de Msxosaure ayant pour objectif d'animer un petit SPRITE dans le Genre Shoot Them Up
Les points suivants sont considérés comme résolus:
1) Un Sprite de 16X16 Suffit.
2) 4 Animations suffisent.
3) Vitesse d'animation de la position Statique Similaire aux autres positions (FORI=0TO15 au lieu de 90)
4) Bande Son attrayante et interactive.
1) Recalibrer la la taille du sprite de 26X38 en 16X16. (Affichage réadapté et Cohérent)
310 D=D+16:IFD=64THEND=0
1030 COPY(D,A)-(D+15,A+15),1TO(4,4),3,TPSET
2520 X=X-4*(P>6):A=16:RETURN
6030 COPY(D,A)-(D+15,A+15-I),1TO(4,4+I),3,TPSET
6050 A=A+16:IFA=192THENA=16
********RESOLU**********
2) Limiter le nombre d'animations de 8 à 4 "IFD=64 anciennement IFD=208" (Affichage réadapté et Cohérent)
310 D=D+16:IFD=64THEND=0
********RESOLU**********
3) Modifier la latence entre les différentes étapes d'animation statique de 90 à 15 Unités.
1500 FORI=0TO15:A=0:NEXTI:RETURN
********RESOLU**********
4) Insérer une Musique et des Sons Scc interactifs ( Interactivité en relation avec les ITEMS différenciés et émission d'un son spécifique à la création d'un nouveau décor)
45 DEFUSR=&HD000:A=USR(0):POKE&HCFFF,32:A=USR2(0):' MUSIQUE STAGE 6
5005 'PSET(INT((X+15)/16),202+INT((Y+4)/16)),15:B=P*6:F=P*5:' LIGNE DE COMMANDE ELUDEE - INCOMPATIBLE AVEC SALAMANDER AUDIO
5010 'COPY(240,191)-(255,206),1TO((INT((X+15)/16))*16,(INT((Y+36)/16))*16),2:'LIGNE DE COMMANDE ELUDEE - INCOMPATIBLE AVEC SALAMANDER AUDIO
5020 COPY(208,P*16-112)-(223,P*16-97),1TO(C*16+32,196),0:POKE&HCFFF,79:A=USR2(0):'OPTION ITEM ABSORBTION DE GIGAS ITEMS
6060 B=I+40:POKE&HCFFF,70:A=USR2(0):'BRUIT REPERCUTION NEGATIVE
10017 POKE&HCFFF,69:A=USR2(0):'COUPLAGE DE VAISSAU OU BRUIT DE SONAR AVEC ECHO
20000 '---------DEBUT DE SALAMANDER DEMO MODIFIE----------------
20010 'POKE&HFBB1,1: 'EMPECHE CONTROL+STOP
20030 BLOAD"1.006":DEFUSR4=&HD600:' CHARGE LE PLAYER ?
20040 BLOAD"1.007":U=USR4(1):' CHARGE SONS ET MUSIQUES
20050 BLOAD"1.008":U=USR4(2):' CHARGE SONS ET MUSIQUES
20060 BLOAD"1.009":U=USR4(3):' CHARGE SONS ET MUSIQUES
20070 BLOAD"1.010":U=USR4(4):' CHARGE SONS ET MUSIQUES
20080 BLOAD"1.011":FORT=0TO2000:NEXT
20090 DEFUSR=&HD000:A=USR(0): 'PREREQUIS ARRET LA MUSIQUE
20100 DEFUSR2=&HD003:' PREREQUIS FONCTION INCONNUE
20101 POKE&HFD9F,201
20105 POKE&HFDA0,&H6:POKE&HFDA1,&HD0:POKE&HFD9F,&HC3
20115 ' LISTE COMPLETE DES MUSIQUES ET SONS DANS POKE SALAMANDER
20117 '
20120 DEFUSR=&HD000:A=USR(0):POKE&HCFFF,32:A=USR2(0):' MUSIQUE STAGE 6
20750 'POKE&HCFFF,67:A=USR2(0):' EXPLOSION D'ENNEMI MOYENNE
20755 '
20760 'DEFUSR=&HD000:A=USR(0):FORP=0TO10:NEXT:POKE&HFD9F,201:'PERMET ACCES DISK MAIS ARRETER MUSIQUE AVANT
20770 GOTO 44:' RETOUR A L ANIMATION
20800 '
20810 '---------FIN DE SALAMANDER DEMO MODIFIE-------------------
********RESOLU**************
Voici un problème ouvert à tous. Si vous avez LA solution, n'hésitez pas
*****************************BESOIN D'AIDE****************************************
Je butte sur un problème depuis 3 jours, et je trouve pas la solution!!!!
Je n'arrive pas à réduire la Zone de Point d'Accroche Selon X et Y. (Concernant mon SPRITE VAISSEAU de 16 X 16 anciennement WINNIE de 26 X38)
Par Exemple, lorsque je déplace "MON SPRITE 16 X 16" vers une buté située dessous, "MON SPRITE 16 X 16" butte à une distance relative à WINNIE (26 X 38 "plus les espaces réservés par X et Y ) au lieu d'une distance de (16 X 16 + X et Y)
Je dois reconnaître que je me suis perdu dans les explications de Msxosaure. J'ai vraiment essayé de m'y reprendre, mais je suis dépassé.
Source => http://www.msxvillage.fr/forum/topic.php?pt=2&id=521#m7191
Début de Citation:
-----------------
En rouge ce sont les coordonnées du gabarit ayant permis d'afficher le niveau. Il faudra ajouter 200 à la valeur Y pour être bon!
En zone le point d'accroche en X et Y de notre Winnie (décalés de 4 points: valeur de déplacement).
En rose la "ligne de pieds de Winnie.
Le point vert est le point à scruter pour un déplacement sur la gauche :
- Sa valeur en X = INT ( (X+6) /16 )
- Sa valeur en Y = 200 +INT( (Y+41) /16)
On scrute le point obtenu:
- P= POINT ( INT ( (X+6) /16 ) , 200 +INT( (Y+41) /16))
On va faire un peu de math en comparant pour déterminer si ce n'est pas un obstacle; P>6 renvoie -1 si l'équation est vraie (pas d'obstacle) et 0 si elle est fausse (obstacle).
- X=X+ 4 * (P>6)
On aura bien X-4 c'est à dire X + 4*(-1) quand il n'y aura pas d'obstacle et X+0 c'est à dire X + 4*(0) quand il y a un obstacle.
Fin de sitation:
-------------
D'autre part, je souhaiterai augmenter la quantité de DECORS contenu dans cette page:
25 ' Chargement ecran des "sprites" en page 2
26 '
30 SETPAGE0,1:BLOAD"winnie.sc5",S
40 COLOR=RESTORE
41 '
En effet Winnie en 26X38 avec une animation en 8 étapes fois 5 positions prenait beaucoup de place. Soit: 208X190=39520 Pixels
Un Sprite Vaisseau en 16X16 avec une animation de 4 étapes fois 5 position prends beaucoup moins de place. Soit: 64X80=5120 Pixels
Soit un Gain de place de 34400 Pixels de décors en plus. Soit: 128 Blocs DECORS supplémentaires aux 16 premiers.
Comment "Plaquer" ces nouveaux décors sur la page visible, sachant que l'éditeur de niveau de MsxOsaure ne peut identifier que 16 Blocs en se référant à un code de 16 couleurs?
Idée farfelue "ON"
Superposer deux passes consécutives de décors
Une première passe conventionnelle:
Lecture du Premier Niveau Secteur ALPHA de FONDW => Interpétation => Affichage sur la page Visible!
Lecture du premier Niveau Secteur BETA de FONDW => Interprétation => Superposition par dessus la Page déjà visible! (N'effaçant pas les décors générés par ALPHA)
Lecture du premier Niveau Secteur GAMA de FONDW => etc etc...
Chaque passe ayant la capacité de choisir entre 16 Blocs différents!
Idée farfelue "OFF"
Turbo Seb
J'attends mes Bombecs Edité par igal Le 25/11/2010 à 18h03
TurboSEB
Membre non connecté
Conseiller Municipal
Plus je lis ce poste, moins je le comprend (hormis les deux dernieres phrases )
Besoins de plus de couleur : passe en SCREEN 8
probleme 2 pages dispo au lieu de 4 (possibilité de stocker en RAM ou d'optimisé une seul page avec decors/Sprites/Niveaux)
Besoins de plus de couleur : passe en SCREEN 8
probleme 2 pages dispo au lieu de 4 (possibilité de stocker en RAM ou d'optimisé une seul page avec decors/Sprites/Niveaux)
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
igal
Membre non connecté
Conseiller Municipal
TurboSEB :
Plus je lis ce poste, moins je le comprend (hormis les deux dernieres phrases )
Besoins de plus de couleur : passe en SCREEN 8
probleme 2 pages dispo au lieu de 4 (possibilité de stocker en RAM ou d'optimisé une seul page avec decors/Sprites/Niveaux)
Besoins de plus de couleur : passe en SCREEN 8
probleme 2 pages dispo au lieu de 4 (possibilité de stocker en RAM ou d'optimisé une seul page avec decors/Sprites/Niveaux)
Salut TruboSeb
Pas de soucis de couleurs! Tout va bien de ce coté là.
Mon seul problème actuellement:
Mon vaisseau ne descend pas jusqu'en bas, et ne monte pas jusqu'en haut (Et deux pléonasmes dans la même phrase, deux )
Pour le reste, c'est du bonus!
A) Augmenter le nombre de Blocs de décors affichables!
Une méthode claire dans ma tête serait de se servir de trois couches successives de décors au lieu d'une seule couche actuellement.
Sachant que le code de Msxosaure procède comme suit:
1) Lecture d'une première ZONE de FONDW identifiant grâce à 16 couleurs, 16 blocs disposés sur une ligne "CUCUL", créer un DECOR.
il suffit de répéter l'opération de la façon suivante:
2) Lecture d'une seconde ZONE de FONDW identifiant grâce à 16 couleurs, 16 blocs disposés sur une ligne "KIKI",superpose une seconde couche sur le même DECOR!
3) Lecture d'une troisième ZONE de FONDW identifiant grâce à 16 couleurs, 16 blocs disposés sur une ligne "POPOT",superpose une troisième couche sur le même DECOR!
Au total, au lieu de se retrouver avec un DECOR avec seulement un CUCUL, on a un DECOR riche de 48 blocs différents pouvant afficher CUCUL, KIKI et POPOT!
B) Modifier le code des commandes de déplacement.
Actuellement, le moteur Winnie, ne reconnait que les quatre points cardinaux!
Pour pouvoir déplacer librement un Vaisseau, il faut envisager les diagonales, donc huit direction au total.
Stapha à soumis quelques lignes de code assez intéressantes permettant les diagonales.
A suivre donc...
Ps:J'attends le code complet de Msxosaure qui à quelques peu changé depuis sa première diffusion.
TurboSEB
Membre non connecté
Conseiller Municipal
Ah avec des mots clair , on compend mieux MERCI
J'ai bien compris le principe general du prog, mais je l'imagine, car je ne peut pas l'observé, vue que l'emulateur plante sur mon EEEPC.
une solution, utilisé le code d'origine de MSXosaure , en modifiant au maximum les 'Sprites'
(pourquoi se bloqué a du 16x16, vu que ce ne sont pas des Vrais Sprites )
en utilisant la couleur transparente aux maximum, et en gardant les dimentions d'origine, mais effectivement ce ne sera pas optimisé
PS : J'ai compris le principe des 3 Couches : Cucul/Kiki,... et j'ai beaucoup appris avec ce post Edité par TurboSEB Le 25/11/2010 à 23h01
J'ai bien compris le principe general du prog, mais je l'imagine, car je ne peut pas l'observé, vue que l'emulateur plante sur mon EEEPC.
une solution, utilisé le code d'origine de MSXosaure , en modifiant au maximum les 'Sprites'
(pourquoi se bloqué a du 16x16, vu que ce ne sont pas des Vrais Sprites )
en utilisant la couleur transparente aux maximum, et en gardant les dimentions d'origine, mais effectivement ce ne sera pas optimisé
PS : J'ai compris le principe des 3 Couches : Cucul/Kiki,... et j'ai beaucoup appris avec ce post Edité par TurboSEB Le 25/11/2010 à 23h01
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
Citation :
Comme promis, pas de code pour l'instant mais je vais essayer de te répondre.*****************************BESOIN D'AIDE****************************************
Je butte sur un problème depuis 3 jours, et je trouve pas la solution!!!!
Je n'arrive pas à réduire la Zone de Point d'Accroche Selon X et Y.
Je butte sur un problème depuis 3 jours, et je trouve pas la solution!!!!
Je n'arrive pas à réduire la Zone de Point d'Accroche Selon X et Y.
Commençons par expliquer la méthode :
Le but est de pouvoir détecter un décor. La méthode adoptée par MSXosaure consiste à ne pas travailler avec le sprite mais avec le rectangle dans lequel il se trouve.
- Inconvenient : pas de détection au pixel près
- avantage : beaucoup plus rapide (de façon software). En basic, c'est essentiel...
Pourquoi est-ce plus rapide ? C'est simple : on ne s'occupe que de 4 points : les 4 bords du rectangle.
MSXosaure fait mieux : il ne teste que 2 point parce qu'il ne s'occupe que des premiers bords du rectangle. Premiers dans le sens ou le rectangle avance.
(On va a droite : on teste les 2 points haut et bas du bord droit. On va en bas : on teste les 2 points gauche et droit du bord inférieur. et ainsi de suite.)
Bien sur, la zone testée pour Winnie ne faisant qu'un pixel de haut, dans le cas d'un mouvement horizontal il n'y a plus qu'un point à tester (les 2 pixels haut et bas sont confondus...) et dans le cas d'un mouvement vertical, les 2 points à tester sont identiques qu'on aille vers le haut ou le bas.
Appliquons sur Winnie pour voir si ça marche :
Winnie fait 26x38 pixels. Les coordonnées de ses pixels vont de (0,0) à (25,37). La zone à tester est sur la dernière ligne. Comme les pieds sont moins larges, MSXosaure a choisit de la placer du 7eme au 18eme pixels (la ligne rose sur son dessin). Donc les coordonnées de la zone vont de (6,37) à (17,37). Il ne faut pas oublier que ça commence à 0...
Ensuite, à ces coordonnées, il faut ajouter 4 à cause des 4 pixels ajoutés pour effacer le précédent sprite. ça devient donc (10,41) à (21,41). Dans le code buggé que j'ai donné, ce sont les valeurs qu'on retrouve...
MSXosaure a travaillé différemment : il traite les bords AVANT de calculer les nouvelles coordonnées : il leur ajoute donc simplement le décalage que Winnie va subir : +4 ou -4 pixels vers le haut ou vers le bas.
Donc ça donne, pour les coordonnées à tester, selon que Winnie aille :
à gauche : -4 sur les X -> (6,41) à (17,41)
à droite : +4 sur les X -> (14,41) à (25,41)
en haut : -4 sur les Y -> (10,37) à (21,37)
en bas : +4 sur les Y -> (10,45) à (21,45)
Ce sont les valeurs qui se trouvent dans le code, avec seul la valeur de gauche ou de droite dans le cas d'un mouvement horizontal (revoir le point sur le rectangle plat plus haut...)
C'est ok ? Appliquons ça au vaisseau.
Cette fois la zone à tester n'est pas plate. On a un vrai rectangle qu'il faut définir sur 4 points. Place ce rectangle autour du vaisseau (tu le fais passer par tous les pixels exterieurs). Releve les coordonnées et notons ça (x1,y1) pour le point haut gauche et (x2,y2) pour le bas droit (haut droit = (x2,y1) et bas gauche = (x1,y2)). N'oublie pas de commencer à 0 et pas à 1...
Ensuite, Il faut ajouter 4 à toutes les coordonnées pour le bord. (le rectangle n'est pas plat). Enfin on applique le même principe qu'au-dessus et ça donne :
à gauche : -4 sur les X -> (X1,Y1+4) et (X1,Y2+4)
à droite : +4 sur les X -> (X2+8,Y1+4) et (X2+8,Y2+4)
en haut : -4 sur les Y -> (X1+4,Y1) à (X2+4,Y1)
en bas : +4 sur les Y -> (X1+4,Y2+8) à (X2+4,Y2+8)
N'oublie pas qu'il faut calculer P et Q (et tester les 2) dans tous les cas cette fois. Ce n'est pas une perte de vitesse car ce qui compte c'est le temps maximum. L'idéal étant de mettre un temps identique, ce qu'essayais de faire mon bout de code (1 seul code pour tous les cas). Dommage qu'il ne marchait pas...
J'espère que je ne me suis pas trompé dans les calculs mais le principe est là. Si tu as besoin que j'éclaircisse quelque chose n'hésite pas.
La prochaine fois, je t'explique une méthode pour gérer davantage de décor.
Elle sera simple et, bien que je ne connaisse pas l'architecture MSX, je suis sur qu'elle sera plus rapide.
Une question : j'adorais le jeu HERO sur 800 XL. Est-ce qu'il existe sur MSX ? ça ferait une bonne idée de jeux en basic, non ? Edité par Stapha Le 25/11/2010 à 23h57
Pour Igal:
Le plus simple pour augmenter le nombre de blocs c'est de coder sur 2pixels consécutif (facile avec un vpoke numéro du bloc désiré) et de lire le numéro du bloc par un vpeeek,tu as comme cela 256blocs possible(merci Stapha).Mais il faut modifier tout le code,ou alors lire les 2 pixels avec point(x,y) et creer un octet avec les 2valeurs de couleurs et tu retrouve ton numéros de bloc.
Pour Stapha:
Oui H.E.R.O existe sur MSX,moi j'ai jamais aimé ce jeu qui est un grand hit des années 80,il est sur ebay actuellement mais hors de prix http://cgi.ebay.fr/Jeu-MSX-H-E-R-O-HERO-/260683872526 .
Le plus simple pour augmenter le nombre de blocs c'est de coder sur 2pixels consécutif (facile avec un vpoke numéro du bloc désiré) et de lire le numéro du bloc par un vpeeek,tu as comme cela 256blocs possible(merci Stapha).Mais il faut modifier tout le code,ou alors lire les 2 pixels avec point(x,y) et creer un octet avec les 2valeurs de couleurs et tu retrouve ton numéros de bloc.
Pour Stapha:
Oui H.E.R.O existe sur MSX,moi j'ai jamais aimé ce jeu qui est un grand hit des années 80,il est sur ebay actuellement mais hors de prix http://cgi.ebay.fr/Jeu-MSX-H-E-R-O-HERO-/260683872526 .
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie