Rispondi 
[Gba] Guida avanzata di Sappy-By Шахтар e LD3005
Шахтар
Il mio nick si legge Shakhtar!
*****
Offline

Messaggi: 604
Registrato: 12-05-2017
Reputazione: 9
Mi Piace Ricevuti: 335
PokéMoney: 1,194.25₱
Messaggio: #1
Music Guida avanzata di Sappy-By Шахтар e LD3005
Ciao a tutti ^.^

Questa è una mia guida che avevo intenzione di fare perché mi piacerebbe far sapere un po' le varie funzioni di Sappy, e come funzionano i Suoni che il GBA riproduce tramite i MIDI.
Ci sarà anche un appoggio da parte di @LD3005 per quanto riguarda i MIDI e le composizioni musicali, oltre all'aggiunta di qualche sua spiegazione riguardante programmi esterni come FL Studio, Anvil Studio o Vgmtrans.
Ma apparte questo ecco che spiegherò in questa bella guida come usare i suoni su Sappy Rolleyes



Parte 1- IL SUONO

Come funzionano le tracce del GBA?
In pratica le tracce suonano a seconda del loro numero di strumento che ogni canale ha, ricordando anche che ogni canale ha la possibilità di cambiare strumento durante l'esecuzione della traccia(questo lo spiega LD, per il program change).
per fare un esempio, se un midi, in un suo canale ha come numero di strumento il 39, allora ciò che nel voicegroup si trova a 39 verrà suonato.
Molto semplice, no?
Mostro un'immagine per far comprendere meglio
[Immagine: 5fz5r9b.png]


Cerchiato in blu si vede l'offset in cui il suono inizia, nel canale a destra si vede lo strumento che esso chiama(appunto, il suono che parte dall'offset) e cerchiato in rosso si trova la posizione del pointer sottolineato in blu, e il pointer infatti è quello dell'offset.
Questo perché il voicegroup funziona così, esso ha una voicetable dove ci sono tantissimi pointer per ogni suono che si vuole chiamare,i vari metodi di richiamo del suono li vedremo più avanti.
In conclusione, il suono viene richiamato dalla posizione scelta dal MIDI (tipo 61 come nell'esempio) nel voicegroup che noi decidiamo di dargli.


Si può inserire un suono?

Certo. Si può inserire qualsiasi suono, tuttavia va differenziato dall'idea che il suono sia un MIDI, quindi quando volete inserire un MIDI ricordatevi che non state inserendo nessun suono! State solo inserendo ciò che ti chiede dei suoni in quelle posizioni, infatti alcuni voicegroup sono differenti a seconda dei suoni che una traccia MIDI richiede.
Inoltre il formato dei suoni che vengono inseriti può essere solo di 3 tipi, .WAV .Raw .s
Consiglio personale, il migliore da usare è il .WAV, anche se occupa molto.
Potete trovare anche dei convertitori online, ceh convertono l'mp3 in wav, e quindi inserire quello che volete.
Ma torniamo al discorso dell'inserimento del suono.
Può essere inserito qualunque suono, che sia uno snare, un pezzettino di un flauto, un rumorino, o anche una parola! Infatti nella mia Hack ho inserito molti suoni che in realtà sono parole.
E questi suoni come si possono usare? In molti modi. Si può sostituire la melodia di Violapoli con dei "Mooseca", si possono utilizzare come suono unico come i suoni delle mosse, e quindi si deve utilizzare sia il suono che un midi lungo quanto il suono.
Ma poi si possono utilizzare i suoni anche nei Cry, e quindi si può sostituire i versi dei Pokémon con dei suoni(O altri versi).
Passiamo alla spiegazione pratica, per prima cosa bisogna aprire la ROM su Sappy, e poi cliccare su Import sample, apparirà questa finestrella:


[Immagine: M4fNABR.png]


Non c'è molto da spiegare, se cliccate su "Browse..." potrete scegliere che suono inserire (Solo formati WAV, s, raw)
E fin qui anche le tartarughe sanno farlo.
Ho cerchiato l'address in quanto quello è l'offset da cui il suono inserito partirà.
Per trovare un offset nella ROM vi dò un consiglio, utilizzate un Hex Editor. (Tipo HxD)
Conviene di più trovare spazio libero necessario nella ROM, dal fondo(Per chi non lo sapesse lo spazio libero è rappresentato da una bella fila di FF)
I WAV occupano molto (non 30mb sia chiaro, ma tipo 50kb si), e Sappy sovrascrive quello che trova, quindi se decidete di inserire il suono a 0x000000 saluterete la ROM.
Dunque, trovato molto spazio libero (consiglio in fondo alla ROM, dove c'è il vuoto, o in alternativa espandete la ROM con XSE) potrete mettere il vostro offset scelto nell'address, e il suono verrà inserito.(Segnatevi però l'offset)

E adesso? come si utilizza questo suono inserito?
In maniera molto semplice potrete andare nella posizione di uno strumento del voicegroup, e mettere l'offset scelto da dove parte il suono.
In questo modo Sappy automaticamente crea il pointer verso quel suono, infatti dovreste vedere nella tabellina della voicetable che i byte cambiano.
E per usarlo come verso di un Pokémon?
Bisogna trovare il pointer del cry del Pokémon.
Un programma che ha gli offset dei versi è "Pokémon Game Editor", lì potrete vedere ogni offset, e mettendoli in little endian potrete trovare il pointer.
Cercandolo con HxD, lo troverete e dovrete inserire il pointer dell'offset che avete scelto per il suono inserito.

Esempio:

20 3C 00 00 C4 FB 50 08

questa è la rappresentazione del pointer del cry di Bulbasaur
20 è la compressione del suono, 3C fa capire che questo è un suono, poi c'è il pointer C4 FB 50 08.

Cambiato il pointer dovrete fare un'ultima cosa, se si tratta del Cry dovrete sostituire 20 con 00, in quanto il suono inserito potrebbe non essere compresso.

Altra cosa sono i Growl, quelli che si sentono quando appunto i Pokémon usano la mossa Growl.

30 3C 00 00 C4 FB 50 08

In questo caso vi basterà solo cambiare il pointer. Il 30 deve rimanere tale poiché è un effetto del Growl che modifica il suono.

E con questo si conclude l'inserimento di un suono, vorrei aggiungere che si può prelevare in byte anche i suoni da altri giochi, e inserirli in uno spazio libero della ROM per utilizzarli. Per farlo basta vedere l'offset del suono, isolate i suoni per vedere quale va scelto e poi nella voicetable cercate l'offset, con l'Hex Editor andate a prelevare i byte che partono da quel punto e poi incollateli dove volete, segnandovi l'offset di partenza, poiché lo userete nella vostra traccia.

Questo video mostra una traccia (Amarantopoli) prelevata direttamente dall'nds, e inserita in due Hack Rom differenti Smile




Notate che i voicegroup cambiano, e anche la Songtable è differente(Per il cambio di Rom).
Questo per farvi capire che i voicegroup sono solo pointer verso i suoni, e questi suoni possono stare ovunque.
Inserendo con molta calma i suoni potrete ottenere questo risultato.



Parte 2-Voicegroup



Il voicegroup inizialmente può sembrare qualcosa di impossibile per come si presenta, ma alla fine compreso come funziona non è un problema applicarsi.
A cosa serve il Voicegroup? Serve per decidere quali suoni dare a una traccia.
In pratica è una tabella fatta da pointer che si dirigono verso i suoni.
La tabella del voicegroup è fatta da 0-127 strumenti, tuttavia va detto che per strumenti non intendo che il limite sia di 128 suoni, ma che qui ci sono varie tipologie di richiamo dei suoni.






Questo video mostra come due Voicegroup facciano suonare una traccia midi in maniera diversa, la prima volta che parte utilizza il Voice 0x1318CB0
La seconda, quella da me adattata al midi, utilizza il voice 0x1858EC0.
Spero che così sia chiaro quale sia la differenza tra i voicegroup.

Parte 3- Come si richiamano i suoni?


Con il Directsound, Drumkit, Multisample.



Directsound

Il Direct è semplicemente il suono unico in sè che viene utilizzato dal MIDI, le note del direct aumentano e diminuiscono la tonalità del suono utilizzato, quindi occhio quando usate alcuni directsound poiché non tutti i suoni si sentono bene a note troppo alte/basse.


Drumkit

Il Drumkit permette di contenere per ogni nota un suono differente, possiamo usare i Directsound, e ogni nota diversa suonerà lo strumento nel suo offset, tecnicamente si può anche inserire da 0 a 127 lo stesso suono, ma verrebbe suonato sempre come se fosse sulla stessa nota (dipende anche dal base note) quindi questo serve per avere molti suoni diversi che a ogni nota cambiano, rimanendo però sempre originali.

Si presenta così il Drumkit

[Immagine: 9QPy78U.png]

Cliccando su edit si aprirà un'altra finestra in cui ci saranno dei Directsound.

Multi Sample

Il multi è simile al Drumkit, tuttavia dà la possibilità ai suoni di seguire le note, si possono assegnare suoni diversi per certe note, così per esempio se un suono diventa troppo irreale a una nota molto alta se ne può mettere un'altra in quella posizione e farla proseguire fin quanto si vuole.
Si presenta così il multi

[Immagine: BslN8jc.png]

In questo caso, il midi che contiene la richiesta dell'instrument numero 30, suonerà il multi sample che contiene una certa quantità di suoni.
Quindi al suo interno cliccando su edit address 1 vedremo alcuni sample che il numero 30 usa, vi do un consiglio, per vedere quali sample usa guardate l'address 2, così saprete cosa modificare, poiché il multisample porta verso altri pointer, e quindi per esempio il multisample numero 45 potrebbe portare ai pointer che nel numero 30 sono il numero 7 e il numero 8 della sua tabella multi.

L'address 2 si presenta così:
[Immagine: 6SlemXh.png]

In alto potrete vedere quale strumento suona certe note, e quindi se scegliete il numero 2 potrete, pigiando sul pianoforte, fargli capire che alla nota (per esempio) "D#1" deve suonare il sample 2, e automaticamente verrà utilizzato quel sample in quella nota.

Square Wave 1 e 2 e Noise
Non c'è molto da dire, gli square wave sono suoni che riprendono quello che a me ricorda il Gb, e il Noise fa un rumore come per esempio un interferenza radio...

Si può creare da 0 un voicegroup? E anche Multi Sample e Drumkit?


Sì, ovviamente, il mio consiglio è di cercare con l'hex editor un voicegroup già pronto, copiarlo, e incollarlo in uno spazio libero della ROM.
Così avete creato un voicegroup, che però usa comunque gli stessi suoni di prima, tuttavia c'è un vantaggio, il voicegroup può essere modificato senza interferire con quello precedente, così vi fate un voicegroup tutto vostro inserendo i suoni e cambiando gli offset.

E per il Multi? Per il multi va fatta una cosa.
Bisogna prendere i byte di un address2 qualunque e metterlo in uno spazio libero, mettendo l'offset scelto nell'Address 2 (Chiaramente possiamo scegliere dove metterlo poiché il voicegroup è tutto vostro, e così potrete decidere da voi cosa far suonare a un midi)
scelto il numero che sarà un multi sample (tipo 22) mettete un offset con spazio libero per i pointer verso i directsound, potete metterlo anche vuoto poiché poi verrà composto da sè con Sappy, che inserirà per voi i byte che servono.
Dato che non è facile comprendere, metto un immagine.
[Immagine: YHcDwyw.png]

Fate conto che se inserite un offset nell'address 1 che porta verso una fila di FF comparirà semplicemente "Unknown Param"
Nel mio caso c'è altro, ma non importa.

Se scegliete di mettere directsound, all'update verranno sovrascritti i byte per mettere quelli che rappresentano un direct. Poi vi basterà mettere l'offset del suono che volete ed è fatta.
In questo modo vi create un Multi Sample.



Parte 4-Editare il suono con Sappy


Osservando le immagini avrete sicuramente notato alcune caselle con dei numeri, bene con quelle possiamo decidere come rilasciare un suono.
Andiamo più nel dettaglio;



Cosa sono Atk Dec Sus Rel?
ATK- Più è alto questo valore, e più velocemente il suono raggiungerà il volume massimo.

DEC- Il Decay va un po' in collaborazione con il Sustain, ovvero che questo ti dà a seconda del sustain la durata del suono in potenza, nel senso che se si mette 255 al Decay e 0 al Sustain, la nota si abbasserà molto rapidamente, mentre se si mettono entrambe a 255 la nota rimarrà dello stesso livello di potenza fino alla fine.

SUS- il sustain come già detto collabora col Decay per decidere il passaggio della nota dal valore minimo a quello massimo.

REL- più è alto questo valore e più lungo sarà il rilascio del suono alla fine.

Fixed frequency- Fa suonare il suono sempre allo stesso modo, qualunque sia la nota che lo suoni, questo lo si può usare per il drumkit.

Reverse Playback-tecnicamente dovrebbe suonare il suono al contrario, ma non sono riuscito ad accertarlo.

Forced Pan- Questo dà la possibilità di spostare il suono a destra o sinistra, a seconda del valore inserito.


Base note- questo almeno secondo le mie esperienze su Polyphone dovrebbe essere il punto in cui la nota suona come "base", ovvero originale.
Tuttavia suppongo sia un po' diverso sul GBA, infatti questo funziona solo nel drumkit a quanto ho capito.
Se si mette un Base note alto sul drum, e si inserisce nota 120 il suono suonerà come se fosse a 120.

Va aggiunta una cosa, quando si crea un voicegroup bisogna tenere a mente che i multisample rimangono gli stessi di prima, ergo se si modificano i multisample di un voicegroup si fa per tutti i voicegroup che lo usano, quindi bisogna ricrearlo per poter modificare dei suoni, anche solo per gli ATK DEC SUS REL.




Parte 5- I MIDI su GBA


I midi sono ciò che rendono la collaborazione dei suoni una canzone, ogni traccia su gba è un midi, sebbene il loro formato sia .s, ma quello è per un fatto di conversione.
Inserire un midi non è difficile, tuttavia è difficile farlo suonare bene, difatti il Gba di suo può suonare massimo 5 tracce Directsound, ma con la guida di Stygian potrete aumentarle.
Altra cosa molto importante è la differenza tra GBA e NDS, i midi nell'NDS al loop leggono quello che trovano in quell'esatto momento, mentre il GBA al loop legge ciò che c'era esattamente prima del loop, quindi per esempio alcuni program change, bilanci di volume o velocità potrebbero non cambiare al loop, e dunque dovrete modificarlo voi su fl studio.
In più c'è un problema riguardante la potenza dei suoni, se il volume del midi è troppo alto potrebbe iniziare a gracchiare un po', quindi le soluzioni sono due, o utilizzare la patch di Ipatix per aumentare la qualità audio, o abbassare il volume.
Per abbassare il volume generale basta aprire il file .s e cercare la riga
".equ nometraccia_mlv, 127" o quello che c'è.
Cambiate il numero 127 in uno qualunque, io uso il 70 se il volume è troppo alto XD.
Ma passiamo alla fase pratica, ovvero inserire un midi.
Su Sappy esiste un'opzione chiamata Assemble Song, con quella potrete inserire la traccia che volete utilizzare.

Ecco un'immagine di come si presenta la finestrella:
[Immagine: 9X7d5No.png]

Innanzitutto noterete che richiede solo file .s, quindi dovrete convertire il midi utilizzando il programma mid2agb, si trova assieme a Sappy, basta trascinare sopra di esso il midi e convertirà il file, ma dovrete tenere sia il midi che il file .s convertito nella cartella del Mid2agb altrimenti Sappy non lo compila.
Con il programma Anvil studio si possono fare anche i loop, basta fare "New Cue" e inserire "[" all inizio e "]"alla fine, poi salvare facendo export format 0 file.
Sotto c'è base destination offset, che è il punto da dove parte il midi.
Questo a seconda della lunghezza del midi potrete cambiarlo, e inserire un offset con spazio libero a sufficenza.
Voicegroup offset è dove voi potete scegliere il voicegroup che il midi deve utilizzare, cambiando questo potrete scegliere suoni diversi.
Song num, è dove verrà deciso quale numero della songtable avrà la traccia midi. L'offset accanto è la posizione nella songtable.
Cliccando su Cook it compilerete la traccia, ma attenzione, Advance Map con l'hack aperta potrebbe far chiudere Sappy.
Ad ogni modo esiste una guida molto completa di Stygian per inserire i midi:
Inserire un midi con Sappy


Un'altra guida utile è quella per espandere la Songtable
http://www.pokemonhacking.it/showthread....ight=sappy
Ampliando la Songtable potremo inserire più tracce midi.

Ultima cosa, potete estrarre le tracce trasformandole in midi e poi inserirle in un'altra ROM Wink Ricordando che va fatto il loop, e che potrebbe esserci il rischio di perdere qualche regolarità dei pitch, ma dei problemi del midi in sè dovrebbe parlarne LD3005 Smile


Seguono aggiornamenti, non si sa mai che abbia dimenticato qualcosa.

La mia Hack Rom:
Pokémon DAVD Edition

Guida sui suoni GBA, inserire tracce di quinta e quarta gen nella terza:
Guida avanzata di Sappy by Шахтар e LD3005


[Immagine: zpmfVKU.gif]
Shakhtar Donetsk
[Immagine: XoEvjk8.gif]

Supportiamo Pokémon: La vendetta di Mew (by eMMe97)^.^
[Immagine: 51ppxl.png]
(Questo messaggio è stato modificato l'ultima volta il: 27-02-2018 03:09 PM da Шахтар.)
27-02-2018 01:17 AM
Cerca Cita
 Mi piace ricevuti da: eMMe97 , Carl_J90 , EddyHg80 , Stygian , marf7y , LD3005
Half shadow
Genio
****
Offline

Messaggi: 397
Registrato: 06-10-2014
Reputazione: 2
Mi Piace Ricevuti: 191
PokéMoney: 696.00₱
Messaggio: #2
RE: Guida avanzata di Sappy-By Шахтар e LD3005
Bella guida, io ero un music hacker anni fa, fui il primo italiano credo. XD

Ricordo che quando esportavo i midi poi non erano compatibili con mid2agb per convertirli in file .s, allora li aprivo con un midi editor e li esportavo, in quel modo cambiando l'header finalmente diventavano compatibili... Ed esportarli e riconvertirli in file .s era una funzione molto utile per poter lavorare sugli strumenti ed altre cose della musica.
27-02-2018 04:02 AM
Cerca Cita
 Mi piace ricevuti da: LD3005 , Шахтар
Шахтар
Il mio nick si legge Shakhtar!
*****
Offline

Messaggi: 604
Registrato: 12-05-2017
Reputazione: 9
Mi Piace Ricevuti: 335
PokéMoney: 1,194.25₱
Messaggio: #3
RE: Guida avanzata di Sappy-By Шахтар e LD3005
Io ogni volta che esporto midi li edito subito Big Grin

La mia Hack Rom:
Pokémon DAVD Edition

Guida sui suoni GBA, inserire tracce di quinta e quarta gen nella terza:
Guida avanzata di Sappy by Шахтар e LD3005


[Immagine: zpmfVKU.gif]
Shakhtar Donetsk
[Immagine: XoEvjk8.gif]

Supportiamo Pokémon: La vendetta di Mew (by eMMe97)^.^
[Immagine: 51ppxl.png]
27-02-2018 08:49 AM
Cerca Cita
eMMe97
Professione: Genio
******
Offline

Messaggi: 1,409
Registrato: 09-10-2014
Reputazione: 22
Mi Piace Ricevuti: 1431
PokéMoney: 1,744.00₱
Messaggio: #4
RE: Guida avanzata di Sappy-By Шахтар e LD3005
Guida incredibile e veramente ben fatto! Molto molto bravo ^^
27-02-2018 09:42 AM
Cerca Cita
 Mi piace ricevuti da: Шахтар , Carl_J90
Carl_J90
The Administrator!
******
Online

Messaggi: 4,595
Registrato: 12-06-2014
Reputazione: 25
Mi Piace Ricevuti: 793
PokéMoney: 10,385.25₱
Messaggio: #5
RE: Guida avanzata di Sappy-By Шахтар e LD3005
Quoto il buon eMMe, guida veramente ben fatta e abbastanza facile da comprendere e seguire...grazie per averla postata! ^.^

P.S. Una piccola segnalazione: una delle immagini nella "Parte 3" della guida qui sopra non si vede, non so se è solo una cosa mia o di tutti!
27-02-2018 02:25 PM
Cerca Cita
 Mi piace ricevuti da: Шахтар
Шахтар
Il mio nick si legge Shakhtar!
*****
Offline

Messaggi: 604
Registrato: 12-05-2017
Reputazione: 9
Mi Piace Ricevuti: 335
PokéMoney: 1,194.25₱
Messaggio: #6
RE: Guida avanzata di Sappy-By Шахтар e LD3005
Tranquillo la sistemo subito Wink

La mia Hack Rom:
Pokémon DAVD Edition

Guida sui suoni GBA, inserire tracce di quinta e quarta gen nella terza:
Guida avanzata di Sappy by Шахтар e LD3005


[Immagine: zpmfVKU.gif]
Shakhtar Donetsk
[Immagine: XoEvjk8.gif]

Supportiamo Pokémon: La vendetta di Mew (by eMMe97)^.^
[Immagine: 51ppxl.png]
27-02-2018 02:33 PM
Cerca Cita
 Mi piace ricevuti da: Carl_J90
Carl_J90
The Administrator!
******
Online

Messaggi: 4,595
Registrato: 12-06-2014
Reputazione: 25
Mi Piace Ricevuti: 793
PokéMoney: 10,385.25₱
Messaggio: #7
RE: Guida avanzata di Sappy-By Шахтар e LD3005
Di nulla, volevo solo segnalarti questo problemino e tornarti un pochino d'aiuto! XD
27-02-2018 02:42 PM
Cerca Cita
 Mi piace ricevuti da: Шахтар
Rispondi 




Utente(i) che stanno guardando questa discussione: 1 Ospite(i)
Powered by MyBB, © 2002-2019 MyBB Group. Copyright © | 2019 Pokémon Hacking