EMU-NES #PL FORUM © 2004-2015

Nes/Pegasus/Famicom => Hacki i Romhacking/Programowanie => Wątek zaczęty przez: siudym Listopada 25, 2014, 11:45:41



Tytuł: FamiTracker - Export do ASM Source i użycie tego w NESASM
Wiadomość wysłana przez: siudym Listopada 25, 2014, 11:45:41
Dawno nie bylem w temacie i widze, ze FT ma export utworu do kodu zrodlowego.
Zrobilem na szybko prosta melodie, zapisalem do ASM.
Teraz jak to uzyc w kodzie NESASM? W kodzie nie widze rejestrow APU, wiec chyba
trzeba wiecej pokombinowac co i jak.

Pewnie nie raz bylo to juz na forach nesdev, ale z wygrzebaniem nie bedzie posto.
FT ma tez export do BIN - raw music data, moze latwiej jest taki export uzywac w NESASM?

Wczesniej uzywalem metody ladowania calego NSF - jednak to strata miejsca, bo np. prosta melodia napisana w FT2 po exporcie do BIN ma 60bajtow, a NSF 6000 bajtow.... Dlatego mocno interesuje mnie uzywanie exportow ASM lub BIN.

(http://s1.postimg.org/fhzrp07fj/famitrack.png)


Tu kod tej melodyjki prostej po exporcie.

Kod:
; FamiTracker exported music data
;

; Module header
.word ft_song_list
.word ft_instrument_list
.word ft_sample_list
.word ft_samples
.byte 0 ; flags
.word 3600 ; NTSC speed
.word 3000 ; PAL speed

; Instrument pointer list
ft_instrument_list:
.word ft_inst_0

; Instruments
ft_inst_0:
.byte 0

; Sequences

; DPCM instrument list (pitch, sample index)
ft_sample_list:

; DPCM samples list (location, size, bank)
ft_samples:


; Song pointer list
ft_song_list:
.word ft_song_0

; Song info
ft_song_0:
.word ft_s0_frames
.byte 1 ; frame count
.byte 64 ; pattern length
.byte 6 ; speed
.byte 150 ; tempo
.byte 0 ; initial bank


;
; Pattern and frame data for all songs below
;

ft_s0_frames:
.word ft_s0_f0
ft_s0_f0:
.word ft_s0_p0_c0, ft_s0_p0_c1, ft_s0_p0_c1, ft_s0_p0_c1, ft_s0_p0_c1
ft_s0_p0_c0:
.byte $B0, $03, $E0, $33, $3F, $35, $3D, $36, $3C, $38, $3A, $38, $3C, $36, $3D, $35, $3F, $33, $B2, $41
.byte $03
ft_s0_p0_c1:
.byte $00, $3F

; DPCM samples (located at DPCM segment)

.segment "DPCM"


Tytuł: Odp: FamiTracker - Export do ASM Source i użycie tego w NESASM
Wiadomość wysłana przez: Verteks Listopada 26, 2014, 21:04:17
Najłatwiej użyć gotowych silników muzycznych - na przykład Famitone2: http://shiru.untergrund.net/files/src/famitone2.zip albo tego od GradualGames - http://www.gradualgames.com/p/sound-engine.html - obydwa używają danych wyeksportowanych z Famitrackera.


Tytuł: Odp: FamiTracker - Export do ASM Source i użycie tego w NESASM
Wiadomość wysłana przez: Dizzy9 Listopada 28, 2014, 18:45:23
Eksport w ASM to eksport danych w formacie asm :} Na ich podstawie możesz zbudować własny silnik muzyczny lub możesz dane zmodyfikować by pasowały do innego silnika.

FamiTone2 jest ograniczony, w readme jest napisane jakiś efektów nie ma zaimplementowanych. Silnik Gradual Games podobno, choć jego nie używałem.
Silnik Famitrackera obsługuje wszystkie efekty, ale ma minus-zajmuje MNÓSTWO miejsca w ROMie i DUŻO czasu CPU+nie obsługuje efektów dźwiękowych i DPCM.
Jeśli masz muzyka który umie robić muzykę z ograniczeniami FamiTone2, to używaj tego silnika, w przeciwnym razie będziesz się męczył, wiem po sobie ;]