Posté le 16/07/2017 à 20:25 Membre depuis le 16/07/2017, 10 messages
Hello!
Une petite présentation avant d'entrer dans le vif du sujet!
Je suis pixel artist et gamedesigner de métier depuis 15 ans, j'ai bossé sur pas mal de console, GBA, DS, les telephones mobiles etc... Et je continue a très bien en vivre. Mais ma grande frustration et de n'avoir jamais rien fait sur Neo Geo alors que les jeux de cette machine sont mon inspiration principale.
J'ai en Tête un jeu de Runner assez simple que normalement les libs disponible devraient rendre faisable. J'ai quelque connaissance rudimentaire en C et j'ai codé plusieurs jeu complexe en java et android, je pense avoir en algo de jeu un niveau "correcte" mais là ou la bas blesse... C'est qu’étant auto-didacte, il me manque les bases... C'est a dire savoir set un IDE pour le développement, set le projet etc... Sur les jeux que j'ai developé, un collegue avait tout set pour moi... Je n'avais plus qu'a faire joujou...
En 2010 j'avais déjà installé la lib C de l’époque ( je ne sais plus quel version c’était) et a l’époque miraculeusement, j'avais réussi a tripatouiller les exemples rapidement et je m’étais même amusé a faire quelques essais avec l'exemple des boules en me disant que si y'avait un bon tool d'anim je me lancerais dans un jeu complet.
Ayant du temps libre et voyant l'incroyable évolution des tools d'animation et de musique, je me suis dit, allez on s'y remet, j'installe donc avec joie la dernière version de la lib, télécharge DatLib en salivant sur le potentiel de l'outil... Et là c'est le drame.
Impossible de juste compiler les exemples de bases via

build-libs
build-samples

et makerom me rit au nez forcement en disant ne trouver aucun éléments...
cry
J'ai pourtant setmvs correctement... Mais la ou cette étape m'a pris 5 min en 2009 la je galère.
Le .bat m'indique pour chaque Make " make n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande"

Donc bref quelques questions...
[*] Qu'ai je oublié de faire?
[*] Quel logiciel ( ide, autre) me conseillez vous d'installer pour avoir un environnement de travail convenable?
[*] En IDE Visual studio est-il un bon choix? La gestion du C ne semble plus disponible...
[*] y'a t'il un step by step dispo quel que part que j'ai raté?

Merci a ceux qui accepteront de perdre leur temps avec le noob en environnement de développement natif que je suis mais très motivé!

Si du coup quelqu'un souhaite collaborer avec moi pour créer un projet original... Je serais ravi d'en discuter

F.
avatar
Posté le 17/07/2017 à 00:32 Membre depuis le 16/07/2017, 10 messages
I swap To english
Good I made some progress from my own
It seems that the setmvs.bat to set local environement does not work for some reason, I modified the build
build-libs
build-Sample
and
Makerom by adding

@set NEODEV=c:\NeoDev

@set path=%NEODEV%\m68k\bin;%path%

It did the tricks! So I moved right away on the DatLib Sample, I manage to build the code, understood the different files. And finally succeded in display the demo in mame but with some problems.
It seems that the palette are missing are poor mary is displayer in strange colors... So I read again the pdf files and found this:

"Output
‐ char.bin
Your tile data, linear binary output.
Convert to cart or CD format if needed by using the CharSplit tool.
‐ maps.s
Tilemaps data, add to makefile to compile and link into your project.
‐ palettes.s
Palettes data, add to makefile to compile and link into your project.
‐ externs.h
Extern definitions of your data. Include into your C program to use data."

I checked the Makefile of the sample and I don't see how to add palette.s in it... Is it normal to be missing from the makefile of the sample folder?

Thanks for any answer of my noobish questions

F.
avatar
Posté le 17/07/2017 à 01:30 Membre depuis le 16/07/2017, 10 messages
Yes! I finally understood, The splitting of the C rom for the art was not done correctly I needed to adjust the final size for it to works
Like this

charsplit char.bin -cart game


romwak /p game.c1 202-c1.bin 1024 255
romwak /p game.c2 202-c2.bin 1024 255

Does it seems to correct?
I was expecting Charsplit to do everything but i guess Mame does not like when files are not Square 2

I'm gland to manage this by my own,
I will come back next time with more usefull questions (I hope)
avatar
Posté le 18/07/2017 à 10:24 Membre depuis le 02/09/2008, 79 messages
Yep, c'est ça.
Tu as la doc de romwak là : https://github.com/freem/romwak

Ca te permet d'avoir la rom au bon format. Si tu as besoin de plus de place pour le graphisme genre 2048, tu devras tester avec un autre jeu qui à la même taille de roms sinon mame ne le lancera pas. Mais mame a peut-être évolué depuis.
Posté le 19/07/2017 à 20:25 Membre depuis le 16/07/2017, 10 messages
Ok! merci de la reponse
avatar
Posté le 20/07/2017 à 14:07 Membre depuis le 06/09/2002, 18630 messages
Ah intéressant tu as collaboré pour quels jeux ?
avatarLa Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/
Posté le 21/07/2017 à 08:27 Membre depuis le 16/07/2017, 10 messages
Pas mal smile Les plus notables/citables wink sont
En Gba Turok évolution
En Mobile java, Gun Fever, Knight Tales, Holy wars, crash of the titans... Il doit y avoir encore des videos qui trainent sur youtube
avatar
Posté le 21/07/2017 à 19:02 Membre depuis le 16/07/2017, 10 messages
Hello a tous,
Un truc m'échappe dans le fonctionnement de datlib, J'ai reproduit dans mon code quelque chose que j'ai trouvé dans datdemo et qui si je comprends bien la doc ne devrait pas marcher. ..

Au moment d'initialiser un asprite le 3 eme paramètres et le base sprite. la doc nous dit de bien faire attention a set un base sprite diff à chaque sprite à une distance logique par rapport à la largeur max en tile du sprite pour eviter les ecrasements ( logique) donc bref je m'apprêtais dans ma routine d'init des sprites à automatiser ceci en lisant les datas des .h met avant de m'y lettre je tombe sur ceci dans la demo en mode pool mode (que jutilise)

ifdef POOL_MODE
#ifdef LOTS
aSpriteInit(&demoSpr4,&bmary_spr,9,16,160+32,146,0,FLIP_NONE);
aSpriteInit(&demoSpr5,&bmary_spr,9,16,160-32,156,0,FLIP_NONE);
aSpriteInit(&demoSpr6,&bmary_spr,9,16,160+48,166,0,FLIP_NONE);



les sprites sont tous initialisés en basesprite 9!
et dans la demo tous comme dans mon code... aucun problème... Bref c'est cool mais quand quelque chose ne devrait pas marcher et marche quand meme c'est que jai raté une info. ..

Donc qu'en conclure? le mode pool se fiche du base sprite de chaque sprite et n'utilise que celui de la pool et recrée tout seul comme un grand toutes les indexations de chaque aSprite? Si c'est ça c'est vraiment impressionant et ultra permissif... Faut il du coup faire gaffe à quand meme lire les infos des datas pour donner un base sprite correct à chaque sprite ou avec la methode pool cela devient du code superflu dont je peux me passer et j'indique pour tous le base sprite de la pool?

Merci de toutes reponses!
avatar
Posté le 22/07/2017 à 01:39Edité par HPMAN le 23/07/2017 à 00:57 Membre depuis le 28/01/2003, 147 messages
En effet c'est peut être pas très explicite dans la doc mais le mode pool utilise les sprites du pool au fur et à mesure et ignore donc par définition la valeur de baseSprite.

Donc tu peux utiliser ton chiffre fétiche pour l'initialisation, à part le 0 qui va flag le aSprite en nodisplay.
C'est pas impossible que j'utilise le champ par la suite pour y caler quelques flags par exemple, je t'invite donc à faire un define pour pouvoir changer facilement par la suite si besoin.
Posté le 22/07/2017 à 09:49 Membre depuis le 16/07/2017, 10 messages
Ok! je comprends mieux et du coup cela m'epargne pas mal de code smile

vraiment un super systeme user friendly

Noté pour le define.
thx!
avatar