1

Je presente ici un nouveau SDK pour la Neo Geo , le SDK est assez jeune ! (il a 12 jours ! )
Je voulais attendre un peu avant de le présenter ici , mais les nouvelle vont vite ^^'

Voici une démo que j'ai faite :



Il permet de gérer les format de Tiled le TMX , pour gérer 2 Backgrounds , il gérera aussi auto-anim (pour le BG).
Pour le moment ce qui est gerer : background, sprites (flip et dezoom) , animation, scroll, joypad.
Mais de façon optimisé et automatique , niveau prog le code est léger par exemple un affichage simple du fix et d'un sprite :
code :
https://github.com/Kannagi/NGDK/blob/master/Sample/example2.c
résultat :
https://image.noelshack.com/fichiers/2019/42/7/1571586235-capture-d-ecran-2019-10-20-17-40-44.png

Voici ma Todo List :
-bullet 0.7
-collision/hitbox 0.8
-Yorder(Zorder) 0.9
-sound driver 1.0

J'ai rajouté récemment la compression de map et le Hicolor (sprite de 30 couleurs)
La compression des map , c'est que la Neo Geo bouffe pas mal , par exemple la map actuel fait 14ko mais surtout que ça peut bouffer rapidement pour des map très grande ,donc j'ai compresser la map de Metal slug et elle me donne 1ko grin
Donc assez content que la moitié de la map de Metal Slug donne cette taille.
Et quelque fois , on a de sacré différence entre le C et l'asm (pourtant avec option -O3 donc optimisation maximun)
La décompression de map me prenait 100% de cpu en C
Je l'ai refaite en asm , elle me prend 30% !
Donc on peux décompresser à la volée avec des perfs comme ça (pour afficher des maps plus grande que le buffer ^^).

Un exemple de gestion du Hicolor :
https://image.noelshack.com/fichiers/2019/43/1/1571673161-hicolor.png

Cela reste encore une version Beta , tournant sur Linux , je n'ai pas pu faire plein de test pour les user Windows.
Pareil pour la lib , je l'ai pas forcément pousser encore plus que ça ^^
vous pouvez tester mon SDK ici :
https://github.com/Kannagi/NGDK

Mais c'est une version Beta avec ces bug wink
(comme une avec la gestion de la map actuellment avec Tiled lol) , je ferais une nouvelle version rapidement !

Discord :
https://discordapp.com/invite/2VCJN5c

2

Super Kannagi \o/

Bonne continuation pour ce superbe outil de dev smile
avatar
@originalfei
Homebrews Connexion
In pixels we trust.
ORE WO DARE DA TO OMOTTE YAGARU !

3

Wow! You are the man son! I was busy trying to get my google French to English translation going on!
Definitely alot of cool news in this post! It is really cool to see what you have accomplished in such a short period!
The compression stuff sounds amazing. I the hope a windows version will hit the mean streets! king

4

Salut.

Toujours bien de voir du nouveau taf et des gens qui s'investissent !

J'ai pas compris l'histoire de la compression, ça marche comment ?

5

@Fei
Merci pour ton soutient wink

@Mega Shocked
Thank you, the Windows version works apparently, some managed to compile and use my lib under windows
But I advise to wait a bit, it's a Beta version, and you'll have a new version again this weekend. wink

@totologic
Ben la plupart des BG (et pas forcément sur NG ,ça marche pareil pour SNES , MD ou autre), tu as quand meme pas mal de tile qui sont pareil (genre des tiles vide) soit des tiles qui vont se suivre , c'est moins courant sur SNES ou MD , mais sur NG vu que limite ce sont des images lol
Ben comme c'est une image toute les tuiles se suive quasiment , du coup ça compresse bien ^^

Il y'a juste une petite "contrainte" , j'utilise quelque bit du tile pour ça , donc la NG à 20 bits pour les tiles , j'utilise 2 pour la compression donc ça donne 18 bits de tiles
Mais bon je doute que ça soit une vrai contrainte.
20 bits de tiles signifie 132Mo , bon je doute que beaucoup de monde fera une ROM aussi grosse composé que de BG , le 18 bits permet quand meme 32Mo de BG , cela laisse une grosse marge sachant que tu peux faire plus pour les Sprite ensuite tongue
Pour comparer :
-MSlug 1 fait 16Mo de Sprites
-MSlug2 fait 32 Mo de Sprites
-MSlug3 fait 64 Mo de Sprites
-MSlug4 fait 48 Mo de Sprites
-MSlug5 fait 64 Mo de Sprites
-MSlugX fait 48Mo de Sprites
-Shock Trooper fait 32Mo de Sprites
Apres faut voir combien prend la part de BG tout ça (flemme de regarder) mais sur MS1 , la moitié était pour les sprites et l'autre pour le BG.

Mais du coup avec une compression pareil , on peut esperer avoir l'ensemble des map de Metal Slug 1 sur 50KB (j'arrondi peut etre moins ) grin

6

Quelque nouvelle donc le NGDK permettra de gérer facilement le Hicolor+dezoom :



Mais attention les enfants il y'aura aussi la gestion des bullets intégrer :


Doit y'avoir environ 200 bullets max à l'écran mais le SDK peut gérer 256 max

Le code/algo vient de mon danmaku sur SNES (pour ceux qui connaisse pas : SuperDan )

7

Insane!!!!!!!! Too Good! Beautiful Work!

8

Thank you wink

J'ai pas pu finaliser donc la version 0.7 ^^'
(j'ai surtout finalisé les outils plus pratique à utiliser)
Je remet le lien de mon github :
Kannagi/NGDKGitHubSDK for Neo Geo. Contribute to Kannagi/NGDK development by creating an account on GitHub.


Et j'ai créer un Discord officiel pour toute demande d'aide/support du NGDK :
Join the NGDK Discord Server!DiscordCheck out the NGDK community on Discord - hang out with 12 other members and enjoy free voice and text chat.

9

Trop bien.
N'hésite pas à mettre le lien du Discord dans ton post ./1 wink
avatar
@originalfei
Homebrews Connexion
In pixels we trust.
ORE WO DARE DA TO OMOTTE YAGARU !

10

Hier soir avec Kannagi on a pas mal causé et le bougre est sympa smile
Venez sur le discord si vous avez un peu de temps on échangera tous ensemble
smile

11

Merci à vous deux !
@chuckdun
Merci , et sympa la discussion effectivement wink

Bon au moins j'ai appris une chose , la scene Neo Geo souffre d'un manque de driver sonore flagrant ,je crois que je vais devoir mettre la main à la patte grin

12

Oui cette partie là semble celle la plus en friche smile
Avec le boulot de Fabrice/Jeff/HPMan/Le tien, on commence à y voir clair sur la partie gestion graphique/mémoire/banque/roms
Le son, reste une forêt vierge ou presque, comme vu ensemble avec les tools de Blastar et de Jeff

13

Le Neo Sound Builder de Jeff fonctionne vraiment bien. A ma connaissance il manque juste une commande pour fadeout.

14

Hum, c'est plus que ca Totologic, ou sinon je n'ai pas suivi ...
On peut balancer une zic en trichant via un wav complet
Mais on est loin des zics via tracker + instruments .... le tout gérer via une partoche (un fichier .mus par exemple)
Je me trompe ?

Kannagi, au fait, j'ai regardé cette page hier longuement ... pour le driver son
http://www.ajworld.net/neogeodev/ym2610am2.html

15

Oui des samples qui peuvent durer presque 2mn de long si je ne me trompe pas.

Pourquoi c'est tricher ?

16

Parce qu'il y a plus efficace et tout aussi bon
Tu connais le monde des trackers (.mod .mus) etc ...
Les consoles de cette génération ont été conçues pour gérer la zic comme cela
Et c'est le travail qu'entame Kannagi bientôt ... et c'est carrément intéressant ...

17

Il faudra trouver des compositeurs capables de créer de la musique comme ça, je crois qu'ils sont tous morts, au mieux à la retraite boing

J'attends de juger sur pièce le ratio prise-de-tête/résultats . Je suis orienté résultat, la prise de tête n'est pas une fin en soi pour moi wink

18

C'est tricher parce que tu pourrais balancer du wav sur n'importe quel machine (SNES/NES/MD et j'y passe etc ) la souci des autres c'est qu'elle sont plus limité en ROM , mais la Neo Geo n'est pas sans limite (surtout si on veut faire ensuite une version Neo Geo CD).
Une musique ADPCM de 2 minute à 16 Khz te fait 1Mo , faudra pas y aller trop en nombre de track.
Enfin tu pourrait faire une technqiue de bankswitch sur les autres consoles pour la musique , apres ,c'est proprablement la pire technique pour gerer du son xD

Ensuite deja tu n'utilise pas les 7 autres caneaux avec la technique Neo Sound Builder.
Comme le dit chuckdun , faire un tracker c'est tout plus efficace et tout aussi bon wink
Et oui les consoles de cette gen ne sont pas faite pour jouer des musiques en wav , mais en utilisant des tracker (de toute façon quand tu met de la FM , c'est pas pour faire jolie ^^ )

Tu veux un exemple , voici une musique qui ne prendrait allez je dirais 10ko :

Cela change des 2Mo n'est ce pas ? grin
(Bon il a deux caneaux en plus que la NG , mais ça donne une bonne idée) , c'est sur un YM2608
Enfin je dis ça , mais je pense que c'était le cas aussi pour toute les musique des jeux NG , les musique de KOF , Metal slug et j'y passe , je pense que les musiques tournait à 4ko (vu qu'elle sont assez courte).
Deja rien que à l'oreille , tu sens que c'est de la FM le truc tongue

Il faudra trouver des compositeurs capables de créer de la musique comme ça, je crois qu'ils sont tous morts, au mieux à la retraite boing
Euh non , le lien que j'ai mis plus haut date de 2018
Toute la scene homebrew sur Nes/SNES/SMS/MD/PCE se fait via un tracker
Un de mes potes à fait ça pour un homebrew sur MD :

J'attends de juger sur pièce le ratio prise-de-tête/résultats . Je suis orienté résultat, la prise de tête n'est pas une fin en soi pour moi wink
Chaqu'un son truc wink
Moi je ne bidouille jamais question de principe ^^

@chuckdun
Merci pour le lien perso je regarde ici : https://wiki.neogeodev.org/index.php?title=Category:Audio_system

19

Et pour vous donnez une liste de zickos mod encore actifs sur la scene homebrew ...
Toute la bande des YmRockers par exemple
505
DMA Sc
DubMood
McLazer
Etc ...
Tous des gars vraiment sympas, ouvert d'esprit, avec qui j'ai déjà bossé sur des projets créatifs
Passion quand tu nous tiens smile

20

Je comprends bien les arguments, mais on peut aussi les inverser. Si la Neo est capable de recracher des mégas de sons sans problèmes, alors celui qui y renonce n'exploite alors pas les vrais capacités de la console wink

On peut imaginer que les devs de l'époque auraient rêvé de pouvoir bourrer les cartouches sans devoir compter les octets. Par ailleurs ils ne s'en sont pas privé concernant les graphismes...

J'ai l'impression que vous voulez absolument tout caser dans la boite à gants de votre voiture alors qu'il y a un grand coffre dispo à l'arrière tongue

21

L'image de la boite à gants m'a bien fait rire smile

22

Tu peux utiliser les mega octet de son pour mettre plus de SFX par exemple wink
De plus un tracker sur Neo Geo utilise aussi des Samples pour ça (d'ou l'interet de l'ADPCM-B pitchable).
Ce que je dis ,c'est que toi tu vas faire 10 track avec 20 Mo de donnée , alors que tu pourrais avoir mieux avec 1 Mo , ça te laisse 19Mo pour faire joujou avec les SFX smile

Et puis je me repete pour la Neo Geo CD ,tu peux pas te permettre autant , ou alors tu passe ton temps à charger les données x)

A l'époque , les trackers était bien maitrisé , les dev n'avait aucun soucis pour les mega octet de son , franchement je pense qu'il était tres à l'aise dessus , justement les jeux Neo Geo exploite bien les mega octet de son , mais c'est clairement pensé pour du SFX (d'ou pourquoi le ADPCM-A est fixe en fréquence de 18,5 KHZ).
Franchement en terme de SFX 1-2 Mo c'est deja énorme grin

Sinon je pense que ne terme d'exploiter la machine ,c'est mon domaine de prédilection (d'où la démo des 256 bullet wink )
Et justement si je veux faire un driver sonore ,c'est pour exploiter le YM2610 , si tu pense l'exploiter avec un seul ADPCM-B et ces 6 canaux ADPCM-A , effectivement tu n'aurais pas besoin de mon driver wink
Mais non , c'est clairement pas un exploit de balancer 2 minute de musique sur ADPCM-B , je vois pas ce que tu exploite au juste ?
C'est comme les gars qui te dise "j'ai fait une ROM de X MB" , ben si tu compresse rien oui tu peux te la raconter avec la taille de la ROM grin

23

Bon ben j'ai hâte de voir ça tourner wink Pour mon prochain projet tongue

24

En attendant amusons nous avec Neotris smile à quatre hein !!! smile

25

Cela me prendra un peu de temps , un peu long de partir de zéro sur un driver sonore ^^'
Bon aussi je déteste le Z80 , ça n'aide pas grin

26

Thanks for your effort Kannagi top !!
Great Work
RetroIsTheOnlyFuture!