1

voila s est pour dire que de mon coté cela avance même si le sdk neodev n est pas aussi pointu que pour ceux qui code en assembler mais s est pas mal. il y a quelques points à changé et à approfondir .

- ajout de fonction de timer non inclue d'origine

-ajout d une fonction de loading (merci furrtek)

- la gestion de priorité de sprite ( codé pas mais d exemple pour comprendre son utilisation)

- la gestion des attribues de tile

- la gestion mirroir

- la gestion de palette sprite ( les palettes sont géré mais dans l etat actuel 1 sprite 1 palette or plusieurs sprites peuvent utilisés 1 seul palette)

- la gestion des tilemaps gourmande en memoire ( pour faire une gestion d animation il faut faire plusieurs tableau hélas la structure Tile en gére 32 de haut il n'y en pas besoin d autant dans certain cas ce qui occupe de la mémoire pour rien) vue qu il n y a que 64Ko faut faire la chasse smile

- des soucit de documentation de sdk neodev pas super précise

- pour ceux qui utilise mvstracker pour le son hélas l adpcm B n est pas utilisé cela sera peu etre modifier au besoin car faut voir avec la mémoire pcm sur neogeo AES s est moins un soucit

- toujours pas plus d info sur la puce GMA mais quelques hypothèses

-Toujours pas de solution pour l utilisation des pistes cdda

/!\ astuce: vue qu il n y a pas de gestion de la dram (voir quand le secret du gma sera révélé) il vaut mieux placé les sprites qui changent à chaque loading en fin de dram sprite, car la seul action actuel est l écrasement. Donc si vous changé juste les sprite de BG et que vous gardé les sprites (vaisseaux ennemies etc ..) chargé le bg à la fin car au moins quand vous en chargerait un nouveau vous n aurait aucun risque d écrasé vos autres sprites et vous gagnerais en temps de chargement, que de tous rechargé.

voila quelques infos qui vienne de moi pour neodev et pour une bonne parti grace à furrtek qui m aide et essayant de l aidé aussi dans certain domain

2

top
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

3



Avoir des outils de programmation sur neogeo qui fonctionne ca serait déjà un bon debut
Bon boulot tout ca
avatar
La 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/

4

Salut a tous ,

je profite egalement de ce message pour presenter mes voeux aux personnes de ce forum
Je vois que ProgFr est tres motivé pour cette nouvelle année ; j'espere que tu as bien recu mon dernier Email !

Concernant le SDK NeoDev, il est vrai qu'il sera necessaire de faire quelque chose pour que celui-ci soit plus accessible aux personnes qui desireraient toucher a la programmation sur NeoGeo ... cela pourrait se faire par des tutoriaux qui montraient tout doucement en puissance : Afficher un texte, afficher un ecran , afficher un sprite, faire bouger un sprite ... enfin vous voyez un peu le truc.

CeL pour sont projet 'Neo-pang' a créé tout un tas de nouvelles Fonctions dont entre autre celle concernant la gestion des collisions, et puis plusieurs nouvelles fonctions pour son Moteur concernant l'animation et la gestion des Sprites (création de structure , utilisation de pointeurs ...) fonctions de Debogage de son code (plutot pratique si l'on programme uniquement en C)

Sinon j'ai vu pour ceux qui voudrait programmé uniquement en ASM 68K qu'il existait entre autre un Build de MAME(D) comme MAME DEBUG ... sinon sous NeoRaine, l'emulateur dispose egalement d'un Debbuger 68000, mais ce qui me deplait est l'interface graphique de cet emulateur . Kawaks dispose egalement d'un puissant Debbuger 68000 , mais il manque manque d'autre fonctions le DUMP des voix FM ... le debugger Z80 .

... CeL m'avait confié vouloir 'Liberer' ses sources de Neo-Pang sans les sprites (pour le probleme de Copyright) ... mais il ne l'a pas encore fait ...

Ensuite, je pense qu'il faut avoir en tete que les libraires ( par exemple pour les sprites et tout ce qui touche a la partie video) ne sont pas figées et qu'elles peuvent etre améliorées ou modifiées (sources de Fabrice Martinez livrées avec le Kit, d'ailleurs vous l'aurez peut -etre remarqué plusieures routines ASM provennient de son code source pour la VIP2 demo, sources que j'avais donné à KUT en 2006 ...)

Sinon, si vous regardez les Sources de C. Doty, pour son projet 'frog Feast' , ce dernier a prefere utiliser ses propres Routines ASM au lieu des libraires vidéo du Kit d'origine ... Ce que je veux dire par là, si Furrtek développe des Routines ASM pour ses prochaines créations, on peut tout a fait envisager les adapter pour de nouvelles fonctions : exemple de ProgFr pour le 'loading' de fichier CD je suppose

... Je ne sais pas si par exemples les fonctions existantes prenent en compte la notion de LAYER, pratique par exemple dans le cadre de routines de scrolling parallaxe , ou bien encore pour des astuces qui permette d'afficher des images 64 couleurs (4 layers * 16 couleurs plus ou moins ) a l'ecran (voir par exemple la demo de BLASTAR X (Neo 2500 Demo ) .

Question a Zerosquare : je crois savoir que tu developpes pour la JAGUAR qui elle aussi est architecturée autour d'un Processeur, Motorola 68000 ... ne pourait-on pas par exemple reprendre quelques librairies du Kit de Dev de la JAGUAR , je pense par exemple aux librairies concernant les collisions ? si toute fois les sources de ces libraires sont dispos et necessiteraient des modifications pour la Neo


Enfin, coté outil et plus particulierement 'MVStracker', il est vrai que celui -ci est visiblement est outil sympa mais qui n'a pas été finalisé : il est tout d'abord bridé : il n'est possible de créer des ROMs V que de 512 KO meme si cette limitation peut-etre détournée par des astuces du type Batch (fonction 'COPY' ) ou 'HJSPLIT' qui permet de couper et de recoller plusieurs fichiers pour n'en faire qu'un.

le seul probleme reste le 'calcule' des POINTEURS qui constituent les Datas PCM dont se sert le driver Z80 pour retrouver ses Billes ---> je passe un petit Message a FTK ; si tu pouvais nous expliquer comment l'on Calcule ces POINTEURs a la main par exemple si l'on connait l'adresse réelle du Sample que l'on veut jouer ????

Sinon pour terminer, il est vrai aussi qu'il manque la partie 'gestion du PSG' qui pourrait par exemple servir pour créer des SFX tout à fait honnorables ... et puis aussi la gestion de l'unique canal ADPCM-B qui permettrait comme cela sa fait maintenant de jouer des BGM en qualité CD sous AES et MVS mais cela reste une solution tres gourmande en memoire (tres couteux pour realiser des PCB) ... on peut preferer la solution CDDA

Cependant je pense que l'on peut trouver des solutions , tout d'abord pour créer ces fameux Fichiers Audios au Format ADPCM-B ... par exemple ces derniers Mois j'ai effectué quelques Recherches sur GOOGLE / mot Clé : PCMCONV (pour PCM converter ) --> on tombe la plus part du temps sur des Sites JAPONAIS
voici un de ces sites :


http://www.vector.co.jp/soft/dos/art/se004506.html

PCM is a major program to convert between formats.
.spb YM2608 (OPNA) of the ADPCM <<<<<<<<<<<<<<< pourrait peut-etre Convenir a la NEOGEO ????
.pcm MSM6258 (X68k) of the ADPCM
.snd RF5C68 (TOWNS) for PCM
.spk Macintosh of PCM
.spc 4bit unsigned PCM data
.pc8 signed the 8bit PCM
.p16 of 16bit signed PCM (Ian Ritoruente s)
.phl of 16bit signed PCM (an entity Ian s s s Kku hee)
.wav MS-Windows and the Wave Ditoneshon choose from any of these source files.

le circuit YM2608 est un cousin proche de celui de la NeoGeo et lui aussi utilise le DELTA-T (Enfin, DELTA-N pour etre précis), je n'ai pas effectué d essais en essayant de convertir un Fichier WAV/PCM en ADPCM-B meme a 22 Khz ... A SUIVRE

Petite Question que je me pose : le fichier ADPCM-A et B sont -ils oui ou non signés ??????? (*)

J'arrete là
Bye a tous,
Fred/FRONT


UPDATE(*): unsigned char !

PS grinésolé pour les FAUTES !

5

FRONT (./4) :
Question a Zerosquare : je crois savoir que tu developpes pour la JAGUAR qui elle aussi est architecturée autour d'un Processeur, Motorola 68000 ... ne pourait-on pas par exemple reprendre de librairie du Kit de Dev de la JAGUAR , je pense par exemple aux librairie concernant les collisions ? si toute fois les sources de ces libraires sont dispos et necessiteraient des modifications pour la Neo
Faudrait déjà qu'elle existe, cette librairie grin
Atari n'a fourni que des bouts de codes d'exemple d'une qualité pas terrible, et pas de vrai environnement de développement : c'était aux développeurs de se taper tout le boulot (pas étonnant qu'ils n'aimaient guère cette console !)

Par contre, tu peux essayer de contacter SebRmv, qui a créé un environnement de développement en C et écrit sa propre librairie pour développer facilement des jeux sur Jaguar : http://removers.free.fr/softs/download.php?lang=fr. Ça a d'ailleurs été utilisé par Charles Doty pour la version Jaguar de Frog Feast.
Il y aura certainement des modifs à faire vu que le hardware est différent, et que la Jaguar a deux processeurs RISC en plus du 68000, mais je pense qu'il y a des choses intéressantes à reprendre.

!call SebRmv
--- Call : SebRmv appelé(e) sur ce topic ...

Sinon, tu peux aussi chercher du côté des programmeurs Megadrive, on ne sait jamais.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

6

Mes meilleurs vœux pour 2011 également, et merci pour toutes ces infos smile
Je suis très coincé ASM c'est vrai, il faudrait que je passe un peu de temps à essayer de faire de nouvelles fonctions fiables pour Neodev. Avoir à "perdre du temps" en faisant tout en assembleur depuis zéro est pas du goût de tout le monde, et ça se comprend aisément. J'ai pas mal de petites fonctions courantes genre mapsprites, writetext, setx, sety, setzooms, mais il faut les formater et les nettoyer pour que ça aille bien.

PCMCONV me donne la même chose que Goldwave en sortie avec:
pcmconv /n pcm.bin 18500 /v test.wav 44100
Un gros offset et du grésillement, mais on devine très bien ce que c'est: http://furrtek.free.fr/noclass/neogeo/cdm3-2boot.mp3

La doc du YM2610 donne un exemple de source en C pour faire un décodeur, il faudra que je regarde si ça fait aussi la même chose. C'est du unsigned.
Pour calculer l'adresse d'un pointeur ADPCM A ou B, il suffit de diviser l'adresse de départ par 256. Le YM2610 veut des pointeurs 16 bits, et $FFFF*256 ça donne bien les 16Mo max adressables. Si on connait pas l'adresse de départ dans le rom, faut juste y aller avec (durée(s)*fréquence(Hz)) + l'éventuel décalage dû aux autres samples avant celui qui nous intéresse.
avatar
Je fais des trucs. Des fois ça marche, des fois ça marche pas.

7

Resalut

C'est encore moi ... coté ADPCM-B il y aurait quelques pistes a sonder vers la Scene DEV GENESIS
En effet j'ai cru comprendre que le Format VGM, soundrack audio etait proche de celui de la NEOGEO (ADPCM-B) ... en ce moment il y a un mec (valleyBell) qui n'arrete pas de créer des outils pour le VGM player basé autour de tous les emulateurs de Circuit sonore de la famille YAMAHA Ym2608, YM2651 ...basé sur les source MAME,mais il y a aussi le proc Audio du NeoGeo Pocket ...
bref c'est du délire et en ce moment il est en train de convertir pas mal de musiques NEOGEO (meme les voies FM , de facon a repiquer les Instruments ) au Format VGM ... Deplus il existe egalement le Format VGZ qui est une variante de VGM mais comprimée je crois ... l'outil en question : 'Vgm_sro' voir pour cela le FORUM
http://www.smspower.org/forums/viewtopic.php?t=12441

FTK tu pourras peut-etre trouver des Infos sur le Format ADPCM-B et ses DATA dans le fichier vgmspec160.txt
http://www.smspower.org/forums/viewtopic.php?p=64315

Bye
Fred/FRONT

8

J'avais trouvé un site ou il y avait ce fameux Kit de DEV (JAGUAR , j espere qd meme que je ne confond pas avec la Saturn...)
il faut que je consulte mes Archives ...
En tous les cas, merci pour ta reponse ... TOUS ENSEMBLE nous pourrons faire evoluer le Kit NeoDEv , et tout le monde sera gagnant au final ... meme FTK qui prefere developper en ASM

J'ai tanté mais les resultats n'etaient pas franchement concluant ... mais il n'est pas franchement facile de convertir une Source C en code ASM avec GCC surtout avec toute ces fichut librairies
Si vous avez des idées a me donner !

Bye
Fred/FRONT

9

FRONT (./8) :
J'avais trouvé un site ou il y avait de fameux Kit de DEV (JAGUAR
Oh, si tu veux, j'aurais pu te le filer... mais tu vas être déçu du contenu wink
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

10

Hi,

RATIO PCM-ADPCM
tromb Fichier joint : PocO (Ratio PCM-ADPCM.PNG)

11

Ouaip, beaucoup des (nombreuses) variantes d'ADPCM qui existent ont un taux de compression proche de 4:1, par rapport à du PCM 16 bits.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

12

Merci Zerosquare pour la reponse a ma question de pomper sur les librairies par exemple du Kit de Dev de la JAG
>>> c'etait exactement ce site que j'avais trouvé, avec quelques exemples et sources sympas dont les videos sont visibles , pratique pour se faire une idée

j'avais justement trouvé les fonctions sur les collisions dans la section :
http://removers.free.fr/doc/rmvlib/ La documentation en ligne est accessible ici.

Pixel precise collision
One common thing when you manipulate sprites is to check if two sprites collides. The file collision.h provides you this functionnality. This collision routine has some limitations but this should not be too annoying. Indeed, it only manages unscaled sprite that are not horizontally flipped and whose sprite::depth is DEPTH16. However, the sprites can be animated or not and use a hot spot or not.
To use the collision routine, you have first to use the display manager. Then, you have to initialise this routine with the function init_collision_routine. This last function copies the GPU subroutine is GPU ram at the address you give (for example &_GPU_FREE_RAM). You can then launch a collision test with launch_collision_routine and asynchrounously get the result of the test with get_collision_result. The collision routine not only determines if the two transparent sprite collide but also if their bounding box intersect.


Et puis, il y a ce fameux projet JAG abandonné ... Ou peut-on trouver les GFX ????
Je ne sais pas ce que vous en penser , mais il ne ferait pas tache parmi les titres NeoGeo !

tromb Fichier joint : TN3H (Native.jpg)

Bye, et encore merci à toi Zerosquare

13

Je suis d'accord, Native ferait un beau jeu Neo Geo smile

Je ne retrouve plus les sources originales de Native, mais il y a un projet dont le but est de reprendre le code et de changer les graphismes :
http://sourceforge.net/projects/nativespirit/
Peut-être que les graphismes d'origine sont toujours présents dans les premières versions.

Il faut aussi voir si les auteurs d'origine donnent leur accord pour la réutilisation. Tu peux les contacter ici : http://www.duranik.com/english/info.html

Par contre, il faut savoir que le jeu n'est pas fini : il n'y a qu'une partie des graphismes et des niveaux, et pas du tout de son ou de musique. D'autre part, il utilise les processeurs supplémentaires de la Jaguar qui n'existent pas sur Neo Geo, ainsi que des fonctionnalités spécifiques à la machine (les effets de transparence et de lumière en particulier).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

14

>FTK:

La doc du YM2610 donne un exemple de source en C pour faire un décodeur, il faudra que je regarde si ça fait aussi la même chose. C'est du unsigned.
Pour calculer l'adresse d'un pointeur ADPCM A ou B, il suffit de diviser l'adresse de départ par 256. Le YM2610 veut des pointeurs 16 bits, et $FFFF*256 ça donne bien les 16Mo max adressables. Si on connait pas l'adresse de départ dans le rom, faut juste y aller avec (durée(s)*fréquence(Hz)) + l'éventuel décalage dû aux autres samples avant celui qui nous intéresse.

Bizarre, ton site donne
http://furrtek.free.fr/YM2610.pdf ERREUR 404 ??

Mais il est vrai que j'ai vu dans une DATASHEET chopé ici : http://www.raregame.ru/file/15/YM2610.pdf chopé chez SERGI !!!


et il y avait 2 Fonctions pour Endode en ADPCM-B ...
int YM2610_ADPCM-B_Encode( short *src , unsigned char *dest , int len )
int YM2610_ADPCM-B_Decode( unsigned char *src , short *dest , int len )

ca serait super cool si tu pouvais vous faire un Outil en mode command, ou en Bisual Basic comme tu en as l'abitude

sinon, pour la partie ADPCM-A pour la partie ENcode tu pourrait geter un oeil sur les sources MVSTracker ,
du fameux 'V1 ROM Helper .Endodes 18500Hz. Mono , PCM WAV files to MVS ADPCM-A'

enfin pour la partie ADPCM-A Decode, il y a bien l'outil 'vx2Wav' que tout le monde connait je suppose , et que je trouve super pratique pour RIPPER les SFX (ADPCM-A) uniquement, pour les BGM c'est pas la peine
on le trouve ici

http://www.consolemul.com/rubriques.php?rub=2 section Utilitaires
http://download.consolemul.com/Utils/NeoGeo/vx2wav.zip

Archives du Net:
http://web.archive.org/web/20130325044213/http://download.consolemul.com/Utils/NeoGeo/vx2wav.zip

Il est super , puisque qu'il permet de recuperer les SFX qui pourraient se trouver dans le fichier PRG . Essayer pour voir le Jeu de BLASTAR X ; http://www.neogeocdworld.info/medias/iso/Codename_-_Blut_Engel_BETA_050423.iso mais attention aux oreilles , tout ce qui n'est pas du PCM est consideré comme du Bruit . he YA PAS les SOURCES !!!!

j'ai une bote secrète ! je possède la version (identique a vx2wav) de Fabrice MARTINEZ ... merci MAN
Y'A pas grand monde qui doit l'avoir celui la , mais je possede des Archives sur le sujet de 2004/2005

et je le partage avec vous tous :

**** ADPCM to PCM converter v 1.01

USAGE: adpcm <InputFile.pcm> <OutputFile.wav>

By MARTINEZ Fabrice aka SNK of SUPREMACY

ADPCM To WAV Converter
This simple utility converts ADPCM files from NeoGeo cartridge systems
(*_v?.rom) or NeoGeo CD systems (*.PCM). This tool converts ADPCM A type
samples (99% of the samples), ADPCM B type samples will sound distorted...


en effet les BGM ADPCM-B sortent pas terrible (Sound Distorted)

tromb Fichier joint : adpcm.zip

Merci qui ?
je rigole .... Bye
Fred/FRONT

PS ; je compte sur toi FTK pour nous faire un jolie joujou wink))

15

Mince en effet, c'est pour l'ADPCM-B... Je verrais vendredi pour faire un petit utilitaire de conversion.
(Merci d'avoir reporté le mauvais lien aussi, c'est corrigé)

Tu dis qu'il y a du son dans les .PRG de Blastar ?
C'est le premier jeu que je vois uploader des données vers la mémoire PCM !
avatar
Je fais des trucs. Des fois ça marche, des fois ça marche pas.

16

bas pk pas au moins tu peu mettre à jour ta mémoire pcm pour avoir du soundFX différent cela parait plutot logique smile

17

Remplir les 1Mo de code avec plein de sons parce que les 1Mo de mémoire PCM est pleine, alors que tu avais toi même vu que les .PCM et les .PAT étaient justement faits pour être chargés quand le programme en a besoin ? Hmmm....
avatar
Je fais des trucs. Des fois ça marche, des fois ça marche pas.

18

Salut à tous !

pour faire ECHO à ton dernier Msg , FTK:
Tu dis qu'il y a du son dans les .PRG de Blastar ?
C'est le premier jeu que je vois uploader des données vers la mémoire PCM !


Oui, c'est tout a fait ca! il y a toutes les DATAs (SPR, FIX, PCM) dans le PRG ... je suis qd meme etonné de voir que cela t' etonne
Bon il y est vrai que cette technique est pour la premiere fois (je pense utilisée) pour un jeu HomeBrew.

Pour la petite Histoire, je tiens tout d'abord a preciser qu' au niveau ASM 68K je suis une Bille , mais que en matiere d'ASM j'ai qd meme quelques residus de mes connaissances acquises durant mes etudes qui remonte a pas mal d'années maintenant (Putain que le temps passe vite) et durant mes Etudes de BTS Electrotechnique j'ai pu m'initier a l'Assembleur sur des Kit (Hardware) 6809 (he oui ...c'est pour vous dire que ca remonte a loin) pour commander des cartes d'entree/sorties (PIA 8255 pour de l' Electronique de puissance) qui nous permettait de controler la vitesse de nos moteurs avec des tables que nous avion pré-calculé ... je ferme la paranthese.

Donc je suis une bille en ASM 68K, mais cela ne m'empeche pas de jeter mon nez dans le code source (PRG déssasembler avec le très bonne outil d'ANTIRIAD) de facon a apprendre par moi meme ... Petit Message a FTK : j'attend qd meme tes futurs Tutoriaux sur les differentes tests + sources que tu as pu mettre a Disposition.

Bon, je disais donc que j'essaye d'apprendre par moi meme, et dans le cadre de nos recherches sur le SON et ses differents modes de Controle/ Initialisation (Cela fera sans doute l'objet d'un autre message qd l'heure viendra) j'ai decidé de me pencher sur le Jeu de BLASTAR X , en l'occurence BLUT ENGEL... après de Multiples Echanges d'Email entre KUK et CeL pour trouver une Solution de probleme de SON sur son projet 'NeoPANG' nous nous somme appercu qu'en fin de compte cet Homebrew EST LE SEUL a sortir du SON sur la Console NEOCD (uniquement des SFX, y'a pas de musique FM ni PCM)

J'ai constaté que BLASTARX utilisait quelques unes des routines de C.DOTY et aussi celles de F.MARTINEZ, dont entre autre celles de la VIP2 (que tu possedes FTK !) Dans cette Demo Fabrice utilisait deja cette Technique d' Upload' comme il l'a nomme dans les Fiches techniques qui me restaient dans mes Archives de 2005/2006 et que j'ai donné à KUK :
http://www.neogeocdworld.info/html/aide/programmation/docmartinez.htm

Les sources sont livrées avec les SPR et les FIX (qui ne servent à Rien) donc la Demo VIP2 pourrait tournée uniquement sur le PRG (qui contient le SPR egalement)

pour rappel des sources Originals de Fabrice :

* Transfert des sprites
move.w #$1200,$7eda(a5)
lea spr(pc),a0
move.l a0,$7ef8(a5)
clr.l $7ef4(a5)
move.l #81920,$7efc(a5) ;
jsr $c00546

spr incbin "c:\vip\intro.spr" // pour Info le fichier intro.spr' =80,0 KB (81 920 Octets)

>>>verif avec 'Frhed.exe' :OFFSET 0=0x0 vers 81919=0x13fff (81920 octets) ca colle !. Fred/FRONT


le probleme de ces Sources, est qu' elles ne sont pas commentées (UNE AME CHARITABLE pourrait nous faire ce travail ?)


Ensuite dans un de Mes Email (FTK , tu l'avais lu au moins ?) , je t'ai filé la seule Source commentée et liberée par BLASTAR X, celle du Homebrew 'NGEM2K'.

Voici les routines d 'Upload ou de transfert si vous préferé qu'il a repris de la 'VIP2' et quelque peut remaniée (et comme y'a les sources , c'est plus facile a comprendre vous en conviendrez)

; transfer sprite-data to sprite-ram
move.w #$0200, $10FEDA ; target area (0200=sprite)
lea spr_start, a0 ; data
move.l a0, $10FEF8 ; (Dword)
clr.l $10FEF4 ;
move.l #128,$10FEFC ; size
jsr $c00546 ; doit

;---------------------------------------
; transfer fix-data to fix-ram
move.w #$0100, $10FEDA ; target area (0100=fix/text)
lea fix_start, a0 ; data
move.l a0, $10FEF8 ;
clr.l $10FEF4 ;
move.l #320, $10FEFC ; Block Size
jsr $c00546 ; doit


ALIGN 4
fix_start incbin "gfx\font_2k.fix" 288 bytes (288 octets)
spr_start incbin "gfx\sprt_2k.spr" 128 bytes (128 octets)

Je balance le texte avant de tout perdre
la Suite >>>>>

19

>>>>
et voici ce que j'ai trouvé dans le code de BLUT ENGEL
; Transfert vers RAM des DATAs SPR, FIX, Z80, PCM
;upload data from main PRG memory to other zones by calling BIOS (Entry point is C00546)
;0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT
; transfer sprite-data to sprite-ram
move #$0200,EXT_019D ; Dest Zone (0200=sprite)
lea EXT_011E,a0 ; data EXT_011E=$67FC ;DATAs SPR (184 KB)
move.l a0,EXT_019F ;
clr.l EXT_019E ;
move.l #$0002E000,EXT_01A0 ; Block Size (Byte) 188416 octets > range :$67FC -> $67FC+$2E000=$347FC ??
jsr EXT_01B1 ; C00546
;---------------------------------------
move #$0300,EXT_019D ; Dest Zone (0300=Z80)
lea EXT_012F,a0 ; data EXT_012F=$2C4FC ;DATAs Z80 (20 KB)
move.l a0,EXT_019F ;
move.l #$00000000,EXT_019E ; en plus !!!! >>clr.l $10FEF4
move.l #$00005000,EXT_01A0 ; Block Size 20480 octets > range :$2C4FC -> $2C4FC+$5000=$314FC ??
jsr EXT_01B1 ; C00546
;---------------------------------------
move #$0400,EXT_019D ; Dest Zone (0400=PCM)
lea EXT_0130,a0 ; data EXT_0130=$314FC ;DATAs PCM
move.l a0,EXT_019F ;
move.l #$00000000,EXT_019E ; en plus !!!! >>clr.l $10FEF4
move.l #$000186A0,EXT_01A0 ; Block Size 100000 octets > range :$314FC -> $314FC+$186A0=$49B9C ??
jsr EXT_01B1 ; C00546
;---------------------------------------
; transfer fix-data to fix-ram
move #$0100,EXT_019D ; Dest Zone (0100=fix/text)
lea EXT_0131,a0 ; data EXT_0131=$3FDFC ;DATAs FIX (8 KB)
move.l a0,EXT_019F ;
move.l #$00000000,EXT_019E ; en plus !!!! >>clr.l $10FEF4
move.l #$00002000,EXT_01A0 ; Block Size 8192 octets > range :$3FDFC ->$3FDFC+$2000=$41DFC ??
jsr EXT_01B1 ; C00546

;--------------------------------------------------------------------------

Désolé , ce sont des infos BRUT de Fonte , pas retravaillé ...


20

Enfin, je pense que BLASTAR X a utilisé cette technique dans une optique de 'protection' contre les bidouilleurs du DIMANCHE (dont je fais partie) , sauf que moi je suis un bidouilleur averti ...qd meme !

Comme vous le savez très certainements, ces derniers année il y a eu tout une phase de CONVERSION qui se sont faites : CD to MVS , et pour le plus grand plaisir de KUK ...MVS to CD ... Avec un Editeur HEXA il est relativement facile d'effectuer certaines Modif sur les 'Headers' qui sont different entre la version CD et AES/MVS

Mais lorsque vous tomber sur un Iso , qu'avec le PRG , et que vous vouler en faire une version AES/MVS , il faut rentrer dans le code source

Et bien evidement, y a des Mecs qui ont réussi a faire des HACKs de ces HomeBrew, sans lui en parler et je pense que cela ne lui a pas plu (je peux comprendre) et SELON MOI, c'est la raison pour la quelle il a quitté la scene DEV NeoGeo internationale (pour toujours, je ne l'espere pas ... mais ca fait 4 ans qu'il ne donne plus signe de lui)
Voila pour la petite Histoire ... Corrigé moi qd meme , si je me suis trompé ... car je peux me trompé dans mes interpretations

Bye
Fred/FRONT

21

Question Bete ?

Vous pouriez créer une nouvelle fonction pour le Kit NeoDev , du type
memcpy(DestZone, SourceDATA, Block_Size) (Neo GEO Only) ... EN EFFET ce genre de routine ne sert pas sur MVS (c'est sur ? )
... meme si le nom des arguments reste a preciser !

Fred


PS : je regarde le PDF de 'Devkit'
et je vois ca

1.2.6. memcpy
Syntax
#include <string.h>
void *memcpy(void *dest, const void *src, int num);

RIEN A VOIR ???

22

bah ca c'est le memcpy de la libc, tu lui donne un pointeur de destination, un de source et le nombre d'octets a copier.
Peace Unity Love et Having Fun!!!

23

Et les uploads vers la DRAM on sait comment ça marche... Y'a pas de problème avec ça.

Ce qui m'étonne, c'est pourquoi un jeu aurait besoin de passer par l'upload pour placer ses données, au lieu de charger un fichier (ça me parait une question légitime).
Dans la source de NeoCD, je me souviens que l'auteur avait justement indiqué qu'il y avait que deux jeux commerciaux qui utilisaient l'upload pour les données du FIX et qu'il comprenait pas pourquoi ils faisaient ça.

Je les aient tous lus tes mails et l'upload ça marche déjà très bien.
http://furrtek.free.fr/index.php?p=crea&a=neogeo&ng=5 "BIOS CD", "C00546: Transfert vers un type de mémoire"
Et dans ma petite tentative de commentaire du BIOS, il y a toute la routine d'initialisation des mémoires qui utilisent également cette méthode.

Also "::[Éditer]"
avatar
Je fais des trucs. Des fois ça marche, des fois ça marche pas.

24

Salut FTK !

en Echo a ton Message
"Ce qui m'étonne, c'est pourquoi un jeu aurait besoin de passer par l'upload pour placer ses données, au lieu de charger un fichier (ça me parait une question légitime). "


Moi je disais ''Enfin, je pense que BLASTAR X a utilisé cette technique dans une optique de 'PROTECTION' !


Je suis d'accord avec toi le chargement de ces fichiers pourraient très bien etre chargé (LOADING) directement de la piste O (piste des Données c'est bien Ca ?) directement dans la Zone 2=SPR si je prend l'exemple des DATAs SPR

pour rappel : SPR Loaded in SPR memory. Banksize = 1Mo. adressable donc entre offset 0x0 et 0xFFFFF (1048576 octets) par l'intermediaire du fichier IPL.TXT

Voir pour ceux qu'ils veulent suivre la Doc F. MARTINEZ

IPL.TXT:
NeoGeo CD processes a file named IPL.TXT (Initial Program Load) before starting the game.
Each line consists of filename, bank, offset and is terminated by a CR/LF
Ex: FOO.SPR, 4, 3C000


PS: tiens y'aurais pas une Erreur par hasard ds cette exemple de FABRICE : FOO.SPR, 4, 3C000 c'est pas plutot
FOO.SPR, 2, 3C000 ??? Zone et bank c'est pas la meme chose ?


Fred

25

Ah oui, si il a "crypté" les données graphiques ou sonores qu'il upload, c'est bien pensé comme sorte de protection anti-portage. Sinon il suffirait juste de passer le .PRG dans un éditeur graphique qui connaisse le format Neogeo, ou un lecteur audio pour deviner où commencent et s'arrêtent les données.

Bref maintenant je vois l'utilité, d'accord smile

Quand le bios s'occupe de l'IPL, il se réfère à l'extension des fichiers pour savoir dans quelle mémoire (Zone) les copier.
Les Banks c'est juste des sortes de segments. Pour les .SPR par exemple, il y en a 4 qui correspondent à 4 banks de 1Mo comme tu l'as écrit (qui font bien en tout les 4Mo). Donc l'adresse absolue pour les .SPR c'est OFFSET+(BANK*1024*1024) octets. C'est 512ko pour les .PCM je crois, pour les .Z80 et les .FIX c'est toujours bank 0.
Donc sa bank 4 est un peu bizarre oui.

Je sais pas trop à quoi servent les banks pour les jeux. Les tiles sont toujours numérotés comme sur MVS...
Au début je pensais que c'était plutôt quelque chose pour simplifier le hardware, mais comme les DRAMs ont été agencées différemment dans les consoles au fil des versions, c'est peut être pas ça.
avatar
Je fais des trucs. Des fois ça marche, des fois ça marche pas.

26

Concernant les infos sur le DELTA-T et l' ADPCM-B qui sont en fait liés:

j' ai effectué des recherches sur le calcul des Valeurs HEXA a renseigner aux Registres $1A et $19 (sur 2 Octets = 16 Bits)

ld a,#19 ; REG#19 ADPCM-B Delta-T (L)
ld b,#47 ; Frequency =22,050 KHz
call SendPortA
ld a,#1a ; REG#1A ADPCM-B Delta-T (H)
ld b,#65 ; Frequency = 22,050 KHz
call SendPortA


le DATASHEET YM2610 nous donnait :
avec les exemples :
Frequency ADPCM-B = [(Delta-T (H)+Delta-T (L)) / 256] x 55.5 KHz

(Example: Delta-T (H)=85, Delta-T (L)=33, Frequency = 18,050 KHz)
(Example: Delta-T (H)=101 /$65, Delta-T (L)=71/ $47, Frequency = 22,050 KHz)
(Example: Delta-T (H)=203 (Dec) /$CB (Hexa), Delta-T (L)=42 / $2A (Hexa), Frequency = 44,100 KHz)


le DATASHEET YM2608 nous donnait une autre formule (page 49)
http://www.raregame.ru/file/15/YM2608.pdf

DELTA-N = (fsample/55.5kHz) * 2^16

Fichier joint :[/b] JOTQ (YM2608-DELTA-N.PNG)

pour le calcule du DELTA-T (sur 2 Octets = 16 Bits) l' YM2610, je prencherais plus pour la seconde qui me parrait mieux fonctionner :

avec la deuxieme formule , si je decide dencoder a 22.05 KHz mes Samples (BGM par exemple) : voici ce que j' obtiens : DELTA-T = 22.05 /55.5 * 65 536 = 26037.27 (Dec) soit en HEX : $65B5 alors que le DATASHEET me donne pour l' exemple à 22.05 KHz: $6547 ...il semble donc evident que pour le Delta-T (L) il faille arrondir .

dans les HACK de SERGI de LH et sa demo 'Robocop Intro' j' avais relevé ces valeurs de Registres
Delta-T (H)=$65 in REG $1A, Delta-T (L)=$47 in REG $19) , qui correspondent en fait a : sampling frequency: 22,050 KHz - IMPORTANT : le Delta-T doit resté FIXE dans ce cas de figure

et pour 'Robocop Intro ':
Delta-T (H)=$CB in REG $1A, Delta-T (L)=$2A in REG $19) , qui correspondent en fait a : sampling frequency: 44,100 KHz
RQ: ces valeurs de REGISTRES collent parfaitement avec les exemples donnés par le DATASHEET YM2610

Les Codecs ADPCM-B /DELTA-T pour YM2610 et YM2608 (DELTA-N) : ils sont identiques
(ADPCM-B - 1 channel 1.8-55.5 KHz, 16 MB Sample ROM size, 256 B min size of sample, 16 MB max, compatable with YM2608)
tromb Fichier joint : adpcmb_src.zip

tromb Fichier joint : ym2608adpcm.c.ziptromb [b]

Fred/FRONT
PS: sinon, je suis enfin arrivé a faire jouer les musiques NEO-GEO avec 'HOOT'
je vous en parlerais une prochaine fois .

Update : Je m' appercois egalement en lisant la Doc Officielle SNK (page 180/220) que je ne racontais pas trop de connerie
Ca me rassure qd meme ...


tromb Fichier joint : vro0 (Pitch=DELTA-T.PNG)

27

bonsoir a tous
suis de retour parmi vous ...


Concernant l' Encoder et le Decodeur ADPCM-B, voici la solution que m' a proposé ValleyBell (projet VGM Logging) ...un grand merci à lui!

http://www.smspower.org/forums/download.php?id=3996 ADPCM_Encode.zip Version 1

Perso, je n' ai testé que le décodeur et j' ai constaté un probleme avec la vitesse de lecture
Deplus, ValleyBell a Oculté la Partie 'Options' en rapport au SampleRate : InputRate et OutputRate ... il faudra suivre suivre ca plus tard ...

Mes essais je les ai effectué avec un titre Neo qui utilise uniquement des BGM en ADPCM-B : 'blazstar.zip' (mais s1945p.zip aurait pu faire l' affaire ou d'autres ...) Rappel : Le Delta-T ou Pitch si vous préféré doit resté FIXE

"As soon as I have been able to download this utility, I've tested It with some games that only use ADPCM-B Type for their BackGround Music (BGM) : Blazing Star (Filename: blazstar.zip -20.6 mb - ROM N°239) or Strikers 1945 Plus (Filename: s1945p.zip -73.78 mb /Psikyo 1999 - Neo-Geo ROM N°254) ... "

1/ ADPCM_Encode.exe -d 239-V1.bin Output.wav >> output.wav = 03:00 minutes - Pour moi le resultat est Bon, sauf ce probleme de vitesse !!!!


2/ j' ai ensuite utilisé le decodeur ADPCM-A : le resultat est plus cohérent (meme si le son n'est pas terrible en ce qui concerne les BGM' mais le fichier obtenu fait :
usage : vx2wav.exe 239-V1.bin Output.wav >> output.wav = 07:33 minutes.<<

>>>> les Pros du code C, pouvez vous jeter un Oeil sur ce qui pourrait ne pas coller SVP ? <<<<<<

Bye a tous !
Fred /FRONT

PS: qd à l' encodeur , il faudra faire des tests aussi ... je compte sur vous les gars ! wink

KUK , tu as vraiment fait un bon boulot sur la nouvelle monture de ton site !
Bon, je file au Cinoche ! Bye

28

tromb Fichier joint : 7vc9 (Hoot pack.PNG)


Bon, pour aujourd' hui je vais commencer ma presentation de 'HOOT' en vous parlant de ce qu' il faut recuperer pour faire joujou avec les ZICs NEO ou autres (d' autant plus qu'il y a du choix: Fm7, Fmtowns, GB, MSX, Nes, PC, Pc88, Pc88va,Pc98, Sega MegaDrive, Snes,Arcade/ROMS, TG16,X68K ...)
Hoot est donc un lecteur musical dédié aux puces japonaises.

HOOT en action, ici 'Neo-Turf Masters' / Nazca
Fichier joint : Rwie (HOOT.PNG)

Après avoir recuperé 'Hoot' (Site Officiel, voir topics/127038-moved-le-sdk-neodev/6 -mon Post du 02/03/11)
Le programme n'a pas besoin d'une installation, il est portable
il peut prendre place sur votre clef usb

Aller ensuite sur http://hoot.joshw.info/ recuperer les Drivers (XML) qui vont bien : hoot_xml_2010-07-04.7z 04-Jul-2010 09:39 1.3M

RQ: ce dernier contient le fichier 'Hoot.xml' et le Repertoire 'XML' indispensable au bon fonctionnement de Hoot car il contient tous les Drivers : Pour la Neo , il y en existe plusieurs : snk.xml, taito.xml, visco.xml ...

En voici un exemple :

Fichier joint : WikK (snk.xml.png)

On constate qu' un driver Neo est constitué de 3 parties : 1/ La taille des Roms V* + 2/ tout ce qui concerne les Offset pour le driver Z80/M1 et les Roms V* + Nom des Roms (c' est la meme principe avec les fichiers XML d' un autre 'Sound Emulateur' : M1) et enfin 3/ tout ce qui concerne les Sound Code (BGM, SFX) -> 'Range' possible : 0x00 à 0xFF

Fichier joint : ZoYk (M1 NAM-1975 XML.png)

PS: petite question pour Elbarto : comment génère t-on les infos SHA1 que l'on retrouve egalement souvent dans les drivers MAME ?
A quoi ca sert ?

Pour effectuer des tests, il nous faut des fichiers Sonores (pour la Neo, aller dans le repertoire 'roms/')

Fichier joint : G3JH (HOOT- index OF.PNG)

L'émulateur étant en japonais, il est difficile d'expliquer toutes ses fonctions mais néanmoins il reste utilisable pour une bonne partie.
Pour avoir le Menu en Anglais, il faut modifier le 'Hoot.ini', soit en modifiant la ligne >language=japanese.lng< en y mettant un ' ;' soit en supprimant tout simplement le fichier 'japanese.lng'
Les menus :
- 1er = quitter
- 2ème = plein écran / changer le skin / scan pilotes & sons / export WAV
- 3ème = à propos


[config]
data_dir=roms;x68k;msx;nes;snes;gb;pce;md;smd;pce;pc88;pc98;x1;mucom88;pc;pc9821;pc88va;fm7;fmtowns;w:\muzyka\players\m1\roms
wave_dir=outs -> chemin pour la conversion en wav.
sampling_rate=55466 -> fréquence d'échantillonnage utilisé pour la lecture et conversion
;PC98 sampling_rate=55466
;X68k sampling_rate=62400
;Megadrive sampling_rate=44100
buffer=16 -> taille du buffer pour la lecture.
language=japanese.lng

Je conseille de changer le parametre sampling_rate à une autre Fréquence, car la taille du fichier Wave risque d' etre trop importante
(44100, 22050, 18500 ...)
Rappel pour demarrer un 'Export Wave' : Ctrl +W et une Seconde fois pour le terminer

Interface et commandes :Utilisez les flèches directionnelles pour la navigation dans les listes en bas.
Enter: valider et lancer la lecture.
Backspace,ESC: Retour menu précédent.
Space: Piste suivante.
O: Muter toutes les pistes.
9: Activer toutes les pistes.
1-8: Activer/désactiver les pistes YM (ch0-7).
QWERTYUI Activer/désactiver les pistes YM (ch8-15).
0: Jouer les sons PCM.
CTRL+S: Ralentir la lecture.
CRTL+F: Accélérer la lecture.
CRTL+R: Recharger le hoot.xml (si modification).
CRTL+W: Activer/désactiver la conversion en WAV.
L: Filtre Passe Bas ON/OFF

P: Coupe tous les Canaux -> pratique dans le cas on l'on n'arrive pas a stopper une BGM ou un SFX joué en mode 'LOOP'


PS: L'ajout de drivers autres que ceux intégrés se fait via des DLL (Snesapu.dll par exemple) ainsi que les fichiers XML associés.
Si l' un d' entre vous arrive a faire jouer des Titres SNES -> Ca m' interesse, car je n' ai pas pas réellement pris le temps pour trouver la solution mais une chose est sure : il faut la DLL Snesapu.dll !!!


Pour le Wiki NeoDEv: dans cette section http://wiki.neogeodev.org/index.php?title=YM2610
Hoot pourrait servir pour illustrer les particularités de certains Drivers ...

RQ: dans mon Post du 26-01-2011 ( topics/127038-moved-le-sdk-neodev/5 ) , je vous avais parlé d' un Forum ou Dr Wily nous présentait un exemple de Driver Nazca 'Metal Slug X' : je suis certain maintenant, qu' il a utilisé HOOT pour séparer les differents Canaux de l' YM2610.

je comprends un peut mieux le terme 'streaming' que Dr Wily utilisait en parlant des BGM de Blazing Star, qui comme je vous en ai déja parlé sont uniquement des BGM jouées sur le Canal ADPCM-B (qui peuvent etre des Converts CDDA To ADPCM-B).
Par contre le terme n' est peut-etre pas le plus approprié dans le cas présent ....
On parle plus de musique CD (CDDA) lue en streaming n' est ce pas ?

Bon, c'est bien tout ca, mais Hoot en dehors du fait qu' il est capable de jouer une large gamme de musiques (souvent d' origine japonaise, sur des puces Japonaises) , de RIPPER des ZICs , des SFX des Samples d' Instruments (trop Cool Ca!) peut servir a autre chose

En effet, mes recherches sur le Net m' ont permis de découvrire qu' il existait des ADDONs a HOOT, permettant de s' en servir comme d' un outil a part entière

C'est ainsi que j' ai découvers 'HVR' comme 'HOOT Voice Ripper'

Fichier joint : D6tr (FM NeoGeo Logo.PNG)


En fait j' avais dans l' idée de refaire la musique FM du fameux 'NeoGeo logo' (Sound Code 02) sous MVSTRACKER.
Je precise que je ne suis pas du tout musicien, mais simple bidouilleur du Dimanche Matin (qd je ne me lève pas trop tard wink )
Je pensais partir d' un fichier MIDI et de le convertir en MOD pour avoir l' equivalence Partition / pattern par la suite ... Mes premiers essais ne sont pas concluant pour le moment

Les MIDI NeoGeo, on peut pas dire que cela court les Rues, mais y' a differentes solutions qd meme :
1/ Site VIDEO GAME Music Archive : SNK Neo-Geo (226 MID) : j' ai peché le seul 'Neo-Geo BIOS' dispo ...VGM archive: Cool pour les sonneries de portable !
http://www.vgmusic.com/music/console/snk/neogeo/neogeoBIOS_zb.mid

2/ comme il est maintenant possible de RIPPER chaque Musique NEO avec le Projet 'VGM Logging', j' ai simplement convertis les VGM des 'Neo-Geo BIOS' en MID avec l' outil 'vgm2mid.rar' (Updaté par ValleyBell avec les dernieres Specifications du format VGM)
Ci-joint le resultat :
tromb Fichier joint : Neo-Geo SNK BIOS - MIDI.zip

voila en gros pour la partie MIDI , la 'Methode Feignasse' , mais ca me va très bien

3/ il y a ensuite la methode de recréer 'à la mano' la partition (ca c'est celle que j' appellerais 'methode bagnard' si vous permettez)
HOOT, Là peut encore nous aider grace cette fois-ci a son Interface graphique ... aux 'KeyBoards'

Le 'KeyBoard' pour chaque Canal (FM, SSG, ADPCMA-B) s' étalonne sur 8 Octaves d' une manière générale : de 1 à 8 (meme si ca peut pour certaine Musique aller de l' Octave 0 (Freq les plus basses) à 9 (Freq les plus Hautes) -> ces dernieres je les ai effacé sur la Figure ci-dessous)
Nota: pour qu' il n' y ait pas d' ambiguité par rapport à cette figure: il n' ai pas possible de jouer plusieures Notes (ici, en Vert) en meme temps sur le meme Canal !!!)

[/b] 9AQa (KeyBoard - 8 octaves.PNG)

Zoom sur Octave 3 : une Octave est constituée de 7 Notes 'Blanches' : do,ré,mi,fa,sol,la, si (Notation Anglaise :CDEFGAB)
+ 5 Notes 'Noires' (Notation Anglaise :C+ D+ F+ G+ A+) RQ: sur un Tracker cela differe un peu : + devient un #

Je reviens au but que je me suis fixé : recreer la Musique du NG logo sous MVSTracker (dans quelle galère je me suis mis ???)

Avec Hoot ( encore !); j' ai pu constaté qu' il existait plusieures versions de ce 'Jingle'
Il y en a en FM sur 4 voies (la plus repandue), sur 3 voies , en ADPCM-A, et ADPCM-B ... bref il y en a pour tous les gouts

le thème principal qui permet de reconnaitre ce Jingle : 8 Notes suffisent : sol,mi,si,la,do (à l'Octave supérieure),si,sol,la

*Baseball Stars Professionnal, Puzzled, Top Hunter, Viewpoint : Ch00/Ch01 : 5G,5E,5B,5A,___________6C,5B,5G, 5A

*Neo Turf Masters, Mslugx ...: CH00/CH01/CH03: 5G,5E,5B,5A,___________6C,5B,5G,5A

* Gururin (le Jingle est joué rapidement et sur 3 Voies FM uniquement) : CH00/CH03 !!: 4G,4E,4B,4A,5C,4B,4G,4A

*s1945p/psikyo' est EN ADPCM-B (Note 4A Fixe ) ... INTERESSANT !(*) car cette Note est la meme que celle des Canaux ADPCM-A (4A Fixe - là c'est plus normal)

*Calcul du 'Pitch' pour plusieures frequences:
Probleme, je ne sais pas s' il y a un rapport entre l' Octave 4(*) et la Frequence d' enchantillonnage (18.5 KHz) des Samples PCM Type A ???
(*) en musique, L'octave par défaut est le numéro 4.


Ce que dit la Doc officelle (page 180/220) : 'If the sound created by YM2610 ACQUISITION UNIT & OPNB SYNTHESIZE
UNIT is divided into 16 kHz, 8 kHz, and 18 kHz sampling frequency; calculate and enter the sampling rate values for 16 kHz, 8 kHz, and 18 kHz sampling frequency and enter it as shown above.
The "K8" in front defines the sampling frequency as "8 kHz."


Ce que je comprends ici, c'est que SNK preconise d' utiliser des Samples encodés à 8, 16 et 18 Khz pour le canal ADPCM-B
J' essaye de trouver des reponses et des exemples concrets, et cela sera peut-etre l' occasion pour moi encore de reparler avec vous (dans de prochains Post) de HOOT et de son 'Driver Work' qui pourrait servir a comprendre certaines choses (Format des Datas des Drivers M1 SNK & Co) meme si la Doc officielle nous apporte pas mal d' infos (pas toujours faciles a comprendre ... je parle pour moi) ... A SUIVRE

J' avais trouvé aussi à l' epoque sur le Site de KUK, dans la section 'Dossier /developpement Neo Geo Pocket
' un tableau des Correspondance Octaves/Frequences (Tone Generator Output Frequency) dans une Doc Officelle de SNK pour la NGPC ... Ca pourrait marcher pour la NEO-GEO (Octaves/Frequences /pitchs)? (*)
http://www.neogeocdworld.info/html/dossiers/NGPC.html 'Sound.rar' !!!

(*) de mémoire, le 'LA' traditionnel : sa fréquence est de 440 Hz

j' avais trouvé ce site très interessant (il y en a plein sur le Net) sur 'Une note, le LA'
http://www.crdp.ac-grenoble.fr/imel/jlj/son_et_lumiere/son/note.htm

tromb Fichier joint : Mv8H (FREQ NGPC.PNG)tromb Fichier joint : fXKy (Notes_LA.PNG)

On remarquera au passage que le 'LA traditionnel' pour la NGPC a été placé de facon 'arbitraire' sur l' octave 5 (A5)

Au passage Dans le Sound user's Manuel, on constate qu' SNK utilisait déja le MIDI pour faire du son sur la NGPC
Bon, j' arrete là ce tres long post (Désolé) ... dans les prochaines semaines je présenterais mes résultats !

Question pour un Champion, car cette Doc à un peu piqué ma curiosité : le Son sur NGPC, c'est 6 canaux (?) de quel type : plutot SSG, plutot FM ???
J' ai cru lire quelque part, qu' il existait une certaine compatibilté avec le SSG de SEGA ? C'est vrai ?
Si Oui, cela signifirait alors que le SoundChip de la NGPC serait peut-etre compatible aussi avec le PSG AY ! Non ... oui ?

Bye,

Fred /FRONT !

http://www.modplug.com/modfaq/4-2-1.html FROM MID : converts MID to MOD


29

J' ai effectué quelques tests ce Week-End ( je me suis levé tot cette fois-ci ; )

Il en resulte que, ...c' est quasi une certitude que la derniere Version en date (2006) proposé par 'NeoBitz' de MVStracker est buggée !!!
http://neobitz.com/Pages/DevTools/MVSTracker.aspx MVSTracker 0.6b

Perso, je lui prefere encore la Version Modifiée de KanedaFr, car elle l' est moins ... mais il reste des Bugs qd meme ...

http://gendev.spritesmind.net/page-mvst.html MVSTracker Suite (NEO/MD)

D' après les tests de CeL (il est en fait le seul ici (si je ne me trompe pas) a avoir effectué des tests sur le Vrai Hardware dans le cadre de son projet 'NeoPang') ... Meme si pour CeL la partie FM est ce qui marche le mieux, je peux dire avec certitude que les Notes , les octaves ne sont absolument pas respectés !!! (premier Bug, que j' ai pu identifier)...

J' ai egalement pu constaté qu' il y avait un 'petit bug' sans trop de conséquence (je pense) sur 2 operators (de memoire sorry Slot 2 et 4) sur le Registre SL (Sus Level ou Sustain Level) de ces 2 Slots

Dès que je le peux, je vous ferais un petit compte rendu de ces tests ...
une chose est certaine : je ne suis vraiment pas un musicien (mon idée de refaire la Musique FM du Neo Geo Logo, tombe à l' eau) ... je vous joindrais mes fichiers de test dès que j' aurais du temps devant moi... So, Wait & See !

Bye
Fred /FRONT !

1/ le RIP des Voices (Instruments FM)
Il nous faut tout d' abord recuperer l' Outil 'HVR' ... C'est encore à un Developpeur /Musicos Japonais que nous le devons : NARUTO
http://nrtdrv.sakura.ne.jp/arc/hvr/ Rev.5 (2009/04/13) HVR05.LZH

Commande : Rip Voice -> CTRL + C pendant que Hoot joue une Musique FM.
Il est parfois nécessaire d' effectuer cette commande à plusieurs reprise si il existe plusieurs INStruments d' utilisés sur le meme canal FM -> pour cela, on peut s' aider des graphiques des enveloppes ...

Il est important de le noter: il semble que la derniere version en date de HVR (v0.5) est sortie au moment ou HOOT ne supportait pas encore les ROMS NEO-GEO -> c'est pourquoi, ce que moi j' appelle le 'Filtre' (OPN,OPNA,OPN2 et OPM) il n' y a pas l' option OPNB (YM2610).
Il est donc necessaire de bidouiller (pile poil dans mes cordes !) wink

tromb Fichier joint : ynjw (OPN2__FM_AndroDunos.png)

En echo a l' un de mes anciens Post ( Posté : 25-01-2011 ) : topics/127038-moved-le-sdk-neodev/5
'' about operator combination... naming convention (M1,C1,M2,C2 or OP1, OP3, OP2, Op4 or S1, S2, S3, S4) "



Je me suis permis de corriger sur la Figure ci-dessus , les Canaux (du moins l' equivalence avec l' OPNB) FM.
En effet si l' on regarde les 'designations' de HOOT et d' HVR, Naruto n'a pas suivi la correspondance CH#0 FM#0, CH#1 FM#1, ... mais plutot Ch.1 FM#0 ... du coup ce n' est plus cohérent avec l' equivalence des Canaux FM entre OPN2 et OPNB: 1, 2, 4 et 5 [/b]

(Zip non definitif !)

Mise a jour 13/10/11 - 10:18

EN CONSTRUCTION ...

tromb Fichier joint : Etapes_pour_RIP_FM.zip

30

Salut

j' ouvre en meme temps un nouveau Post qui traitera du 'Driver Work' de HOOT
celui -ci peut s' averer utile pour la compréhension, et savoir comment SNK & Co utilisaient le DELTA-T/Pitch dans leurs differents jeux...

En Echo a mon Post du 19/09
...'*s1945p/psikyo' est EN ADPCM-B (Note 4A Fixe ) ... INTERESSANT !(*) car cette Note est la meme que celle des Canaux ADPCM-A (4A Fixe - là c'est plus normal) '...

Cela me chagrinait et je voulais y voir de plus près ... et j' avais raison (enfin dans le cas de S1945+, car c'est pas la meme chose ds le cas de Blazing Star voir plus bas) ... il y avait bien une corrélation avec la Note 4A des ADPCM-A et celle de certain Sound Code du Jeu 's1945Plus' (je veux parler du Code 0x02 en ADPCM-B ... oui, oui )


Jeu S1945 plus... BGM & BIOS Logo sont jouées uniquement sur le canal ADPCM-B avec le Pitch FIXE !!!

code 0x02 (BIOS Logo) : Note 4A = 46,55 (Lo/Hi)* -> Delta-T=$5546 ( 21830 Dec) -> fsample = 18.48 KHz

code 0x20 : Note c6+ = 40,DD (Lo/Hi) -> Delta-T=$DD40 ( 56640 Dec) -> fsample = 47.96 KHz

code 0x24 : Note c6 = D0,CA (Lo/Hi) -> Delta-T=$CAD0 ( 51920 Dec) -> fsample = 43.96 KHz

tromb Fichier joint : YsUv (S1945_Plus-PITCH.PNG)

Question : concernant le Code 0x02, pourrait-on penser qu' il s' agisse d' un Sample ADPCM-A (18.5 KHz) joué sur le canal ADPCM-B ?? Quel serait l' interet de faire cela ... Le son est bon, pas déformé
FTK : cela serait interessant de faire l' essai
De mon coté je verifirais avec 'Vx2V' le décodeur ADPCM-A ce que cela donne
en ce qui concerne ce 'Sample du Jingle' Bios Logo

Il est etonnant également de voir que plusieurs Pitch sont utilisés : 44KHz, 48KHz

le jeu Blazing Star concernant toutes les BGM, utilise lui aussi le canal ADPCM Type B : avec la Note unique 4A (encore !!!)

code 0x2f (Loop 'Opening') : Note 4A = C5,57 (Lo/Hi) -> Delta-T=$57C5 ( 22469 Dec) -> fsample = 19.03KHz
J'ai donc une reponse à ma propre question :... "Probleme, je ne sais pas s' il y a un rapport entre l' Octave 4(*) et la Frequence d' enchantillonnage (18.5 KHz) des Samples PCM Type A ???'' -> NON !!!!

pour ce jeu, j' ai egalement constaté que pour toutes les Loops, le Registre 10 (ADPCM-B Control 1) n' etait pas utilisé comme j' ai pu le constaté sur d' autres titres ... c'est a dire avec la Data 0x90 avec le Bit 'Repeat' actif ...

Ce qui me laisse a penser que Visco utilise une 'Commande Loop' que j' appellerais 'Loop Soft' (necessitant une Routine CMD_LOOP) en opposition a 'Loop Hard' (cette dernière utilisant un Registre Dédié de l' YM2610, le registre 10).

On remarque aussi que certaines BGM (code 0x2d, 0x2e et 0x26) ont leurs pointeurs (Start Address, Reg 12 & 13) qui se modifient a la deuxieme lecture de la BGM -> Intro + main Loop ...


tromb Fichier joint : EDKV (Blazing-PITCH.PNG)


Concernant les Pointeurs , j' ai toujours du mal a savoir ou se trouve a peu près les Samples dans les ROMs V*
C'est pourquoi, je me suis fais une petite 'AIDE' ...
Ex : pour le jeu S1945plus (ROM 254, constitué de 4 Rom V1 à V4 de 4 MB chacune, soit 16 MB), si je reprends les pointeurs du Sound Code 0x 02 (pointeurs fc,FE , f7, FF) je sais que le sample se trouve dans la Zone des 16 MB entre les Offset 0x0f00000 et 0x0ffffff, a la toute fin de la Rom V4.
et pour etre précis , entre les Adresses 0x0fefc00 et 0x0fff7ff : je couperais le Sample (avec mon Editeur Hexa) du Jingle du NeoGeo Bios au format PCM-TypeB (avec Pitch à 18.5 KHz)

tromb Fichier joint : Jingle 18.5KHz_TypeB.zip

RQ: ce jingle reste tout à fait audible à l' aide d' un décodeur TypeA :Vx2wav.exe jingle.pcm jingle.wav , mais pour moi il s' agit bien d'un sample PCM de Type B...

AIDE : ROM REGION
FE = MSB Start Address
FF = MSB End Address
---------------------------------
512 KB [ 524288 Bytes ] (07) : offset 0=0x0 To 524287=0x007ffff
(Bytes possibles : 00,01,02,03,04,05,06,07)

1 MB [ 1048576 Bytes ] (0f) : offset 0=0x0 To 1048575=0x00fffff
(Bytes possibles : 08,09,0a,0b,0c,0d,0e,0f)

2 MB [ 2097152 Bytes ] (1f) : offset 0=0x0 To 2097151=0x01fffff
(Bytes possibles : 10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f)

3 MB [ 3145728 Bytes ] (2f) : offset 0=0x0 To 3145727=0x02fffff
(Bytes possibles : 20,21,22,23,24,25,26,27,28,29,2a,2b,2c,2d,2e,2f)

4 MB [ 4194304 Bytes ] (3f) : offset 0=0x0 To 4194303=0x03fffff
(Bytes possibles : 30,31,32,33,34,35,36,37,38,39,3a,3b,3c,3d,3e,3f)

5 MB [ 5242880 Bytes ] (4f) : offset 0=0x0 To 5242879=0x04fffff
(Bytes possibles : 40,41,42,43,44,45,46,47,48,49,4a,4b,4c,4d,4e,4f)

6 MB [ 6291456 Bytes ] (5f) : offset 0=0x0 To 6291455=0x05fffff
(Bytes possibles : 50,51,52,53,54,55,56,57,58,59,5a,5b,5c,5d,5e,5f)

7 MB [ 7340032 Bytes ] (6f) : offset 0=0x0 To 7340031=0x06fffff
(Bytes possibles : 60,61,62,63,64,65,66,67,68,69,6a,6b,6c,6d,6e,6f)

8 MB [ 8388608 Bytes ] (7f) : offset 0=0x0 To 8388607=0x07fffff
(Bytes possibles : 70,71,72,73,74,75,76,77,78,79,7a,7b,7c,7d,7e,7f)

9 MB [ 9437184 Bytes ] (8f) : offset 0=0x0 To 9437183=0x08fffff
(Bytes possibles : 80,81,82,83,84,85,86,87,88,89,8a,8b,8c,8d,8e,8f)

10 MB [ 10485760 Bytes ] (9f) : offset 0=0x0 To 10485759=0x09fffff
(Bytes possibles : 90,91,92,93,94,95,96,97,98,99,9a,9b,9c,9d,9e,9f)

11 MB [ 11534336 Bytes] (af) : offset 0=0x0 To 11534335=0x0afffff
(Bytes possibles : a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,aa,ab,ac,ad,ae,af)

12 MB [ 12582912 Bytes] (bf) : offset 0=0x0 To 12582911=0x0bfffff
(Bytes possibles : b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf)

13 MB [ 13631488 Bytes] (cf) : offset 0=0x0 To 13631487=0x0cfffff
(Bytes possibles : c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,ca,cb,cc,cd,ce,cf)

14 MB [ 14680064 Bytes] (df) : offset 0=0x0 To 14680063=0x0dfffff
(Bytes possibles : d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,da,db,dc,dd,de,df)

15 MB [ 15728640 Bytes] (ef) : offset 0=0x0 To 15728639=0x0efffff
(Bytes possibles : e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,ea,eb,ec,ed,ee,ef)

16 MB [ 16777216 Bytes] (ff) : offset 0=0x0 To 16777215=0x0ffffff
(Bytes possibles : f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,fa,fb,fc,fd,fe,ff)
------------------------------------------

je vais egalement parler des BGM de 'Captain Tomaday' : celles-ci sont toutes en ADPCM Type A (18.5 KHz donc) ... j' en profiterais pour vous reparler des Conversions VGM ... a suivre

tromb Fichier joint : REJK (ctomaday.zip BGM TypeA.png)

Avec mon AIDE je sais que :
Ex : pour le jeu 'Captain Tomaday' (ROM 249, constituée d' une V1 de 4 MB et d'une V2 de 1MB, soit 5 MB), si je reprends les pointeurs du Sound Code 0x 22 (pointeurs 00,40 , fb, 43) je sais que le sample se trouve dans la Zone des 5 MB, entre les Adresses 0x0400000 et 0x043fbff, au tout début de la Rom V2, soit un sample PCM de 255 KB (261120 octets) ... ce qui est très peu au passage

Rappel sur les MSB Pointeurs :
5 MB [ 5242880 Bytes ] (4f) : offset 0=0x0 To 5242879=0x04fffff
(Bytes possibles : 40,41,42,43,44,45,46,47,48,49,4a,4b,4c,4d,4e,4f).

tromb Fichier joint : 249_BGM_Speed_Limit.zip


Dans le projet VGM logging, Mills avait d' ailleurs réalisé le RIP de cette BGM :
>Mills:
Posted: Wed Sep 29, 2010 5:09 pm
'Cool! I tested some games smile
I ripped another Neo Geo game using DELTA T, it's called Captain Tomaday, here's the first stage music (it has a little
click, also present when you play the game). Well this song is just a stream pcm but anyway it sounds very good to be just
250 Kb...
'

Il c'etait qd meme trompé sur le Type de PCM : ce n' etait pas du DELTA-T (Type B), mais du Type A

je me suis donc pour la toute première fois essayé a créer mon premier VGM à partir de 'M1 VGM logging'
(voir captFront.vgm 255 KB et pour essayer de comprendre et de 'LIRE' le VGM obtenue j' ai utilisé l' outil 'vgm2txt' -> captainFront.txt)
Bon, je n' ai pas le talent de Mills (Captain Tomaday 1999 Neo-Geo.vgm + CaptainMills.txt) au niveau du gros boulot d' edition et de nettoyage du VGM ainsi obtenue (recherche de LOOP + CUT et autre) mais heureusement qu'il existe des Tutos pour cela...

Liens VGM Tutos :
http://project2612.org/tutorial/01-getting_started.htm
ou
http://www.smspower.org/Music/Help plus recent !
ou
http://www.smspower.org/Music/HowToMakeVGMs

These are the steps in making a VGM pack:
1. Logging
How to make raw, unedited VGM files using an emulator
2. Trimming
How to correctly trim VGM files, with examples to download and try yourself
3. Tagging
How to add top-quality GD3 tags to your VGMs
4. Optimising
Extra things you can do to your VGM files to improve them even more
5. File Naming
Standardising the filenames
6. Additional Files
Creating extra files to complete the pack
7. Packing
Putting the files together
8. Submission
How to get your pack added to the site


tromb Fichier joint : SpeedLimit_Sound Pack VGM.zip

très rapidement voici comment j' ai procèdé (ne prennez pas exemple sur moi SVP) pour ripper le Sound Code 0x22 (34 en Décimal) 'Stage 1 Speed Limit' de Captain Tomaday (ROM ctomaday.zip)

>>>>m1.exe -g ctomaday 34

J' obtiens un BIG fichier ctomaday.vgm de 10 255 KB ... Enorme !!!!

je le passe a travers 'vgm_cmp.exe' : vgm_cmp.exe -justtmr ctomaday.vgm captTemp.vgm
J' obtiens un nouveau VGM de 10 241 KB (pas terrible en terme de compression !)
Mais avec l' outil 'VGM SRO' attention, on retrouve une taille de fichier plus raisonnable :

vgm_sro.exe captTemp.vgm captFront.vgm -> j'obtiens moi aussi un VGM de 256 KB
mais SANS les infos pour la LOOP (need Edition)
Loop Point Offset: 0x00000000 (absolute)
Loop Start: 0 samples (00:00.00 s)
Loop Length: 0 samples (00:00.00 s)

RQ:
petite verif. avec le Decoder ADPCM-A : Vx2wav.exe captFront.vgm capt21.wav (car les Datas de ce BGM sont ADPCM-A) ... on remarque que la Compression de VGM SRO n' a pas trop altéré les Datas PCM originales (VGM header + VGMDatas BGM : 256 KB contre 255 KB du Sample PCM-Type A original).

On remarquera aussi que mon 'RIP VGM' n' a pas la meme Longueur (en terme de Lecture WAV) que celui de Mills
-le mien : Total Length: 1476613 samples (00:33.48 s)

-celui de Mills :
Total Length: 1355231 samples (00:30.73 s)
Loop Point Offset: 0x0003FF69 (absolute)
Loop Start: 111247 samples (00:02.52 s)
Loop Length: 1243984 samples (00:28.20 s)

Cela s' explique simplement : pour les BGM qui tournent en LOOP, il n' est pas facile d' arreter le LOGGER ( ici M1 avec la touche 'Echap') au bon moment...


Ensuite , si l' on y regarde d' un peu plus près on ce rencontre que l' on retrouve (heureusement) tous nos Registres et leurs Datas comme avec HOOT:

0x0003FF60: 59 08 DF YM2610: Reg 0x108 Data 0xDF ;Reg $08 ADPCM-A - Ch#0 Volume
0x0003FF75: 59 08 DF YM2610: Reg 0x108 Data 0xDF ;Data DF = au Maxi sur L et R (11011111B)
0x0003FF81: 59 08 DF YM2610: Reg 0x108 Data 0xDF
0x0003FF8D: 59 08 DF YM2610: Reg 0x108 Data 0xDF
0x0003FF99: 59 08 DF YM2610: Reg 0x108 Data 0xDF
0x0003FFA5: 59 08 DF YM2610: Reg 0x108 Data 0xDF
0x0003FFB1: 59 08 DF YM2610: Reg 0x108 Data 0xDF
0x0003FFBD: 59 08 DF YM2610: Reg 0x108 Data 0xDF
0x0003FFDF: 59 08 DF YM2610: Reg 0x108 Data 0xDF

0x0003FF00: 59 01 3F YM2610: Reg 0x101 Data 0x3F ;Reg $01 ADPCM-A - Total Level
0x0003FF3C: 59 01 3F YM2610: Reg 0x101 Data 0x3F ;Data 3F: xx111111B = ADPCM volume (max)

ici les Pointeurs (je ne suis pas sur que VGMPlay, le player sur PC les utilise)
0x0003FF4A: 59 10 00 YM2610: Reg 0x110 Data 0x00 ;Reg $10 Sample 'Start address LSB'
0x0003FF4E: 59 18 40 YM2610: Reg 0x118 Data 0x40 ;Reg $18 Sample 'Start address MSB
0x0003FF52: 59 20 FB YM2610: Reg 0x120 Data 0xFB ;Reg $20 Sample 'Stop address LSB'
0x0003FF56: 59 28 43 YM2610: Reg 0x128 Data 0x43 ;Reg $28 Sample 'Stop address MSB'

--- Loop Point ---
0x0003FFC9: 59 10 00 YM2610: Reg 0x110 Data 0x00
0x0003FFCD: 59 18 40 YM2610: Reg 0x118 Data 0x40
0x0003FFD1: 59 20 FB YM2610: Reg 0x120 Data 0xFB
0x0003FFD5: 59 28 43 YM2610: Reg 0x128 Data 0x43

PS: Pour Furrtek : je compte sur toi, pour nous parler de ces notions de delay, de 'Sample(s)', mais je pense avoir ma petite idée ...
0x0003FCA4: 71 Wait: 2 sample(s) ( 0.05 ms) (total 116 (00:00.00))


la plus petite taille d' un Sample est de 256 Octets :
4. ADPCM-A – 6 channels 18.5 KHz, 16 MB Sample ROM size, 256 B min size of sample, 1 MB max
5. ADPCM-B – 1 channel 1.8-55.5 KHz, 16 MB Sample ROM size, 256 B min size of sample, 16 MB max

je voulais donc savoir combien pouvait durer un WAV d' 1 sample de 256 Bytes : il en ressort que celui-ci dure 27 milli secondes ... donc 2 samples = 2 *0.027 = 0.054 secondes (A Confirmer)
Ce qui ne colle pas coté VGM log, c'est le 0.05 ms ... je pense qu' il veut dire 0.05 s. ou bien 50 msecondes !

tromb Fichier joint : Sample 256 Bytes.zip

NOTIONS de Taille & Durée d' ecoute : ces durées peuvent varier selon que le sample est du Type A ou du Type B. En effet la durée peut variée selon la frequence d' echantillonnage (fsample) ... Doc Officielle qui en parle très peu (p 110/220)

ci-dessous ces valeurs sont valables pour des Samples a 18.5 KHz (TYPE A et B)
Rom de 1MB = 01:53 en WAV ( 2 minutes en gros)
Rom de 2MB : durée du fichier WAVE : 4 min 08
ROM de 4 MB, durée du fichier WAVE : 07:33 minutes
ROM de 5 MB : 9.22 minutes
ROM de 6 MB :11.06 minutes
ROM de 7 MB: 13:30 minutes
ROM de 8 MB: 15:14 minutes
ROM de 9 MB: 17 minutes
ROM de 10 MB: 18:43 minutes
ROM de 11 MB : 20:27 minutes
ROM de 12 MB : 22:12 minutes
ROM de 13 MB : 24:36 minutes
ROM de 14 MB : 26:20 minutes
ROM de 15 MB : 28 minutes
et
ROM de 16 MB = 30:13 en WAV ... je dois le reconnaitre, c'est drolement peu !!!
un sample de 256 octets = 27 millisecondes en WAV (la plus petite taille possible) - ROM MAKER pointeurs (00,00,01,00)

petite verification, vite fait :
Rom de 1MB = 01:53 en WAV : 1048576 / 256 = 4096 samples de 256 octets chacun, et on sait que 1 Sample dure 27ms (0,027 secondes) -> 4096 samples x 0,027 = 110,592 secondes, soit en minutes: 110 - 60 = 1:50 (il y a 60 sec dans 1 minute)


Enfin, je terminerais cette serie de Jeux qui utilisent des BGM qui sortent un peut de l' ordinaire (c'est a dire pas de FM + samples ADPCM A /B format soundracker sur 3 ou 4 chanels) par le jeu 'Pochi and Nyaa' qui utilise des BGM sur un seul canal Type A au Format 'Digitrack' (a la base les Roms V* sont cryptées) ...
ROM 267-m1_decrypted.bin - Driver Z80 : Ver 3.0 by MAKOTO.04/03/10 to SK

Pour l' Exemple, je prendrais la BGM dont le Sound Code est 0x2d (pas de LOOP pour cette BGM)

dont voici La 'Sequence'/Tracks : S(ample)1, S2,S3,S4,S5, S6, S2,S3,S4,S5, S7

RQ :il y a +2 entre les Samples au niveau des Pointeurs... en temps normal c'est plutot +1 ... et je pense avoir coupé mes PCM (Type A) trop court !!!!
C'est pourquoi j' essayerais plus tard de couper par exemple mon sample 1 en prenant les pointeurs (4C,02,89+1,02) => START Addr 0x0024C00 /END Addr 0x0028AFF A SUIVRE


Sample 1 : 4C,89 + 02,02 ---> LES POINTEURS (4C,02,89,02) => START Addr 0x0024C00 /END Addr 0x00289FF
Sample 2 : 8B,E7 + 02,02 ---> LES POINTEURS (8B,02,E7,02) => START Addr 0x0028B00 /END Addr 0x002E7FF
Sample 3 : E9,07 + 02,03 ---> LES POINTEURS (E9,02,07,03) => START Addr 0x002E900 /END Addr 0x00307FF
Sample 4 : 09,83 + 03,03 ---> LES POINTEURS (09,03,83,03) => START Addr 0x0030900 /END Addr 0x00383FF
Sample 5 : 85,A3 + 03,03 ---> LES POINTEURS (85,03,A3,03) => START Addr 0x0038500 /END Addr 0x003A3FF
Sample 6 : A5,0F + 03,06 ---> LES POINTEURS (A5,03,0F,06) => START Addr 0x003A500 /END Addr 0x0060FFF
Sample 7 : 11,7B + 06,06 ---> LES POINTEURS (11,06,7b,06) => START Addr 0x0061100 /END Addr 0x0067BFF

Tailles des PCM Originaux :
Sample1 = 16 KB en PCM (original)
Sample2 = 24 KB en PCM
Sample3 = 8 KB en PCM
Sample4 = 31 KB en PCM
Sample5 = 8 KB en PCM
Sample6 = 155 KB en PCM
Sample7 = 27 KB en PCM

RQ: Neo-PCM2, 1999, SNK Corp. type encryption
comme je le signalais précèdement, les Roms V* sont cryptées pour 'Pochi & Nyaa' j' ai donc du les décrypter a l' aide de petits utilitaires en ligne de commande comme 'v2vjp_2.03.rar' (KLR) ou bien 'neoconv_v2.zip' (Codé par Iq_132 / projet IQ's neogeo Tools)

Ci-joint ZIP contenant les PCM originaux (trop court selon moi) et 'Module Implulse Tracker' vite bricolé (Module IT seule a accepter des Samples WAVE à 18.5 KHz)

tromb Fichier joint : POCHI NYAA_PCM_IT.zip

EN CONSTRUCTION:

38Zi (monkey[1].gif)


Fred/FRONT!

Ca commence a parler 'Neo Dev' ailleurs :
http://www.sega-16.com/forum/showthread.php?17301-How-capable-would-the-Neo-Geo-MVS-AES-be-in-3D-polygon-graphics avec entre autre TmEE (developpeur :jeux, Sound Driver Z80 , musicos )