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 KHzcode 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
Fichier joint : 
(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.03KHzJ'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 ...
Fichier joint : 
(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 0x0f0
0000 et 0x0ff
ffff, a la toute fin de la Rom V4.
et pour etre précis , entre les
Adresses 0x0fe
fc00 et 0x0ff
f7ff : je couperais le Sample (avec mon Editeur Hexa) du Jingle du NeoGeo Bios au format PCM-TypeB (avec Pitch à 18.5 KHz)
Fichier joint : Jingle 18.5KHz_TypeB.zipRQ: 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
Fichier joint : 
(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 0x040
0000 et 0x043
fbff, 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).
Fichier joint : 249_BGM_Speed_Limit.zipDans 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
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/HowToMakeVGMsThese 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
Fichier joint : SpeedLimit_Sound Pack VGM.ziptrè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 34J' 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 !
Fichier joint : Sample 256 Bytes.zipNOTIONS 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, S7RQ :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 0x002
8AFF A SUIVRE
Sample 1 : 4C,89 + 02,02 ---> LES POINTEURS (4C,02,
89,02) => START Addr 0x0024C00 /END Addr 0x002
89FFSample 2 : 8B,E7 + 02,02 ---> LES POINTEURS (
8B,02,
E7,02) => START Addr 0x0028B00 /END Addr 0x002
E7FFSample 3 : E9,07 + 02,03 ---> LES POINTEURS (
E9,02,
07,03) => START Addr 0x002E900 /END Addr 0x003
07FFSample 4 : 09,83 + 03,03 ---> LES POINTEURS (
09,03,
83,03) => START Addr 0x0030900 /END Addr 0x003
83FFSample 5 : 85,A3 + 03,03 ---> LES POINTEURS (
85,03,
A3,03) => START Addr 0x0038500 /END Addr 0x003
A3FFSample 6 : A5,0F + 03,06 ---> LES POINTEURS (
A5,03,
0F,06) => START Addr 0x003A500 /END Addr 0x006
0FFFSample 7 : 11,7B + 06,06 ---> LES POINTEURS (
11,06,7b,06) => START Addr 0x0061100 /END Addr 0x006
7BFFTailles 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 encryptioncomme 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)
Fichier joint : POCHI NYAA_PCM_IT.zipEN CONSTRUCTION:

(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 )