MSX Village forum

La Place des Développeurs Do The Same - MSX

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 09/05/2021 à 22h10

Reprise du message précédent

Il est très joli ton jeu :)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 12/05/2021 à 16h51
Arf mince je l'aimait bien mon fond feuillus façon 'The maze of Galious'
En tout cas Rico nous a fait un passe passe des plus ingénieux pour afficher les fruits et légumes avec plusieurs couleurs :top


Il faut cultiver notre jardin.
   
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 12/05/2021 à 17h44
@Guillaume, Je vais bosser sur le nombre de coups (rotation) et le timer + une petite histoire d'étoiles hein Gfx ;)

@Igal, Merci :)

@Gfx, yes Sir ;)
Comme je le disais sur Msx.org, pour la version précédente, ce 'trick' était invisible parce que les items-tiles et les items-sprites étaient de la même couleurs. Dans cette version, il y a plusieurs couleurs pour les tiles. Donc quand ca 'rotationne' hihihi, les fruits sont en une seule couleur puisqu'ils passent en sprites. Dès que la rotation s'arrête, on voit le passage du sprite au tile.
C'est à peine visible, c'est fluide et ca rend super bien avec tes gfx, Gfx ;) Edité par Ricco59 Le 12/05/2021 à 17h45


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2695

Le 12/05/2021 à 22h26
Je confirme, c'est nickel :top
Je l'avais pas vu avant que tu expliques la ruse.


On est toujours ignorant avant de savoir.
Github    
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 19/05/2021 à 23h44
Merci pour vos retours les zamis :)

La route, bien que plus courte vers Msxdev'21, reste sinueuse ;)
Il me reste encore des trucs à faire et à voir avec Gfx (quel talent ! )

A+ Edité par Ricco59 Le 19/05/2021 à 23h44


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 22/05/2021 à 10h22
Salut les Potos ;)

Il me reste encore un peu de travail (graphs, + 2,3 trucs à ajouter, corriger)
En attendant la version finale, voici quelques screens. N'hésitez pas à me faire un retour.

Excellent week-end de Pentecôte à tous









Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 22/05/2021 à 10h58
Super !
Merci pour le compliment ^^


Il faut cultiver notre jardin.
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2695

Le 22/05/2021 à 11h30
Un jeu qui donne faim :D


On est toujours ignorant avant de savoir.
Github    
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 22/05/2021 à 13h40
C'est mérité Gfx :)

:lol :top Edité par Ricco59 Le 24/05/2021 à 10h02


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 30/05/2021 à 18h56
Faut qu'on pense à faire la version avec Bouteilles de pinards, saucissons, pots de rillette et j'en passe :lol


Il faut cultiver notre jardin.
   
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 30/05/2021 à 23h39
:lol :lol :tchin

Ce que j'ai fait depuis... :)
- pouvoir saisir moins de 5 caractères
- le password a été supprimé
- la rotation n'est plus continue si le joueur laisse une touche appuyée. Il faut relâcher celle-ci pour pouvoir effectuer la rotation des 'fruits'. J'ai peur que le jeu perde un peu de son rythme. Il faut essayer ;)

ce qu'il reste à faire :
- ajouter les gfx de Gfx (Fioles et animations correspondantes)
- corriger un bug
- gerer le 50/60hz
- reorganiser certains niveaux
- les sfx
- cryptage du nb de coups/time dans le jeu
et la gestion du webscore

Voili, voilou

A+ les potos Edité par Ricco59 Le 30/05/2021 à 23h41


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2695

Le 31/05/2021 à 10h39
Ricco59 :
- la rotation n'est plus continue si le joueur laisse une touche appuyée. Il faut relâcher celle-ci pour pouvoir effectuer la rotation des 'fruits'. J'ai peur que le jeu perde un peu de son rythme. Il faut essayer ;)


Pour le clavier et les manettes 2 boutons, tu as au pire 2 rotations à faire pour atteindre n'importe quel combinaison. Avec une manette 1 bouton (rotation dans un sens seulement) tu auras au pire 3 rotations.
Ca me semble pas grand chose par rapport au gain de plus tourner sans le vouloir. ^^

Après, tu peux pousser plus loin :
Quand le joueur appuis sur un bouton, tu déclenches un timer et tu invalides les inputs pendant un temps donné (tu reset le timer à chaque validation).
Comme ça tu autorises à laisser le bouton appuyé mais tu maitrises la fréquence de validation des inputs.
Ce qui sera d'autant plus important quand tu t'occuperas du 60 Hz (la version actuelle doit être beaucoup trop sensible vu que je galère déjà parfois en 50 Hz).


On est toujours ignorant avant de savoir.
Github    
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 01/07/2021 à 21h20
Salut les potos ;)

Bon, j'ai corrigé quelques bricoles et implémenté le cryptage (je vais m'attaquer à sa gestion sur le net un peu plus tard).

J'ai essayé sur mon msx2 et ... buggg ;) fallait s'en douter mais le plus embattant pour moi reste la couleur et l'impression que le balayage est devient visible en haut du tableau des items et dans le menu lors du scroll du background (Pour ce dernier point ça se voit plus sur emu - meisei en 60hz- que sur MSX2). Ma synchro est un simple HALT, ca vient surement de là... et/ou que ma routine d'affichage des tiles et effacement est trop lente... :)

En ce qui concerne la couleur, sur un MSX1 (idem sur emu), les couleurs ont l'air plus 'pastel' alors que sur un MSX2, les couleurs sont plus vives. De ce fait, la transition au niveau des couleurs tiles>sprites est plus visible, par moment on a l'impression que ca flash même...
Je pensais que le mode screen2 ainsi que ses couleurs étaient identiques du MSX1 vers MSX2, que l'on avait pas besoin de changer la palette
Il faut donc changer la palette ??

A bientôt les zamis

Eric


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2695

Le 01/07/2021 à 22h31
Pour la synchronisation, le problème du halt , c'est qu'il est interrompu par n'importe quel interruption, pas forcement celle venant du processeur graphique (VDP).
Ce n'est donc vraiment pas une méthode viable pour un vrai jeu (pour des tests, pourquoi pas).

La méthode "propre" pour la synchronisation avec le VDP, c'est de créer une fonction de hook, de l'enregistrer sur le hook H.TIMI qui est appelé à la fin de l'affichage de chaque image.
Dans cette fonction, tu set une variable qui te permet de synchroniser ton code.
Voici un exemple utilisant ma lib CMSX.

Code C :
 
bool g_VSync = false;
u8   g_Frame = 0;
 
// Vertical-synchronization hook handler
void VSyncHook()
{
    g_VSync = true;
}
 
// Wait for vertical-synchronization 
void WaitVSync()
{
    while(g_VSync == false) {} // le programme attends ici que le hook H.TIMI soit appelé
    g_VSync = false;
    g_Frame++;
}
 
// Main loop
void main()
{
    // ... code d'init ...
 
    Bios_SetHookDirectCallback(H_TIMI, VSyncHook); // enregistrer la fonction de synchro sur le hook H.TIMI
 
    while(1)
    {
        WaitVSync(); // attendre la fin du balayage de l'écran
 
        // ... code gameplay ...
    }
}
 


Il me semble que je t'avais déjà passé la fonction pour enregistrer un hook, mais si tu l'as plus, elle est dispo ici : https://github.com/aoineko-fr/CMSX/blob/master/cmsx/src/bios_hook.h


On est toujours ignorant avant de savoir.
Github    
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 01/07/2021 à 22h55
Merci

oui, tu m'avais passé un ensemble de procédures permettant d'utiliser des routines sous interruption :

typedef void (*callback)(void); ///< Callback default signature

/// Set a Hook to jump to given function
inline void Bios_SetHookDirectCallback(unsigned short hook, callback cb)
{
*((unsigned char*)hook) = 0xC3; // JUMP
*((callback*)++hook) = cb; // Callback address
}

/// Clear a Hook (set RET asm code)
inline void Bios_ClearHook(unsigned short hook)
{
*((unsigned char*)hook) = 0xC9; // RET
}

#define H_TIMI 0xFD9F

activer les interr
Bios_SetHookDirectCallback(H_TIMI, MonHook);


...
...
...
void MonHook(void)
{
Ze_X_Temps++;
}

Je vais étudier ce que tu as mis plus haut. Merci encore :)
Edité par Ricco59 Le 01/07/2021 à 22h56


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2695

Le 01/07/2021 à 22h56
Pour la palette, chaque puce graphique (VDP) a ses propres réglages de couleur.

La plupart des ordinateurs MSX1 sont équipés de la puce Texas Instruments TMS9918, mais certains utilisent des clones avec des réglages de couleurs légèrement différents (comme le Toshiba T6950 ou le Yamaha YM2220). Sur MSX1 on ne peut rien y faire.

Les MSX2 sont eux généralement équipés d'un Yamaha V9938 qui a effectivement des réglages de bases assez différent du TMS9918. Mais là, on y peut quelque chose puisqu'à partir du MSX2, la palette de 16 couleurs peut être redéfinie. Il est donc tout à fait possible pour un programme de détecter au démarrage si l'ordinateur est équipé d'un VDP MSX2 (ou plus) et si c'est le cas, de redéfinir les 16 couleurs pour les faire correspondre à des réglages proches de ceux des MSX1. Ce n'est pas trivial à faire, mais si ça t'intéresse, j'ai tout le code qu'il faut pour faire ça dans ma lib.

Les couleurs de la palette du MSX2 sont définies sur 9-bits (3-bits par canal rouge-vert-bleu) et stocker sur 16-bits dans le VDP.
On doit pouvoir trouver les valeurs à mettre pour s'approcher au plus près des couleurs du MSX1.

EDIT: Pour visualiser la différence...
TMS9918 V9938


EDIT2: Voici les valeurs de la palette MSX2 d'origine et les valeurs pour s'approcher des couleurs du MSX1

Palette MSX2 d'origine Palette MSX2 style MSX1
Code TEXT :
 
   + R + G + B
0  | 0 | 0 | 0
1  | 0 | 0 | 0
2  | 1 | 6 | 1
3  | 3 | 7 | 3
4  | 1 | 1 | 7
5  | 2 | 3 | 7
6  | 5 | 1 | 1
7  | 2 | 6 | 7
8  | 7 | 1 | 1
9  | 7 | 3 | 3
10 | 6 | 6 | 1
11 | 6 | 6 | 4
12 | 1 | 4 | 1
13 | 6 | 2 | 5
14 | 5 | 5 | 5
15 | 7 | 7 | 7
 
Code TEXT :
 
   + R + G + B
0  | 0 | 0 | 0
1  | 0 | 0 | 0
2  | 1 | 5 | 1
3  | 3 | 6 | 3
4  | 2 | 2 | 6
5  | 3 | 3 | 7
6  | 5 | 2 | 2
7  | 2 | 6 | 7
8  | 6 | 2 | 2
9  | 6 | 3 | 3
10 | 5 | 5 | 2
11 | 6 | 6 | 3
12 | 1 | 4 | 1
13 | 5 | 2 | 5
14 | 5 | 5 | 5
15 | 7 | 7 | 7
 



On est toujours ignorant avant de savoir.
Github    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie