0,0 → 1,270 |
; MASM.ASM |
; -------- |
; uFMOD public source code release. Provided as-is. |
|
; *** This stub allows compiling uFMOD sources using MASM32. |
|
.386 |
.model flat |
|
ifdef f44100 |
FSOUND_MixRate = 44100 |
FREQ_40HZ_p = 1DB8Bh |
FREQ_40HZ_f = 3B7160h |
PCM_format = 3 |
else |
ifdef f22050 |
FSOUND_MixRate = 22050 |
FREQ_40HZ_p = 3B716h |
FREQ_40HZ_f = 76E2C0h |
PCM_format = 9 |
else |
ifndef f48000 |
echo UF_FREQ not specified (defaulting to 48KHz) |
endif |
FSOUND_MixRate = 48000 |
FREQ_40HZ_p = 1B4E8h |
FREQ_40HZ_f = 369D00h |
PCM_format = 1 |
endif |
endif |
|
RAMP_NONE = 0 |
RAMP_WEAK = 0 |
RAMP_STRONG = 0 |
ifdef NONE |
RAMP_NONE = 1 |
else |
ifdef WEAK |
RAMP_WEAK = 1 |
else |
ifndef STRONG |
echo UF_RAMP not specified (defaulting to STRONG) |
endif |
RAMP_STRONG = 1 |
endif |
endif |
|
UCODE = 0 |
DEBUG = 0 |
|
CHK4VALIDITY = 1 |
ifdef UNSAFE |
echo WARNING! Unsafe mod is ON. Library may crash while loading damaged XM tracks! |
CHK4VALIDITY = 0 |
endif |
|
AC97SND_ON = 0 |
ifdef AC97SND |
AC97SND_ON = 1 |
endif |
|
include eff.inc |
|
FSOUND_SAMPLE STRUC |
_length dd ? |
loopstart dd ? |
looplen dd ? |
defvol db ? |
finetune db ? |
bytes db ? |
defpan db ? |
relative db ? |
Resved db ? |
loopmode db ? |
_align db ? |
buff db ?,? |
FSOUND_SAMPLE ENDS |
|
FSOUND_CHANNEL STRUC |
actualvolume dd ? |
actualpan dd ? |
fsampleoffset dd ? |
leftvolume dd ? |
rightvolume dd ? |
mixpos dd ? |
speedlo dd ? |
speedhi dd ? |
ramp_lefttarget dw ? |
ramp_righttarget dw ? |
ramp_leftspeed dd ? |
ramp_rightspeed dd ? |
fsptr dd ? |
mixposlo dd ? |
ramp_leftvolume dd ? |
ramp_rightvolume dd ? |
ramp_count dw ? |
speeddir db ?,? |
FSOUND_CHANNEL ENDS |
|
FMUSIC_NOTE STRUC |
unote db ? |
number db ? |
uvolume db ? |
effect db ? |
eparam db ? |
FMUSIC_NOTE ENDS |
|
FMUSIC_PATTERN STRUC |
rows dw ? |
patternsize dw ? |
data dd ? |
FMUSIC_PATTERN ENDS |
|
FMUSIC_INSTRUMENT STRUC |
sample dd 16 dup (?) |
keymap db 96 dup (?) |
VOLPoints dw 24 dup (?) |
PANPoints dw 24 dup (?) |
VOLnumpoints db ? |
PANnumpoints db ? |
VOLsustain db ? |
VOLLoopStart db ? |
VOLLoopEnd db ? |
PANsustain db ? |
PANLoopStart db ? |
PANLoopEnd db ? |
VOLtype db ? |
PANtype db ? |
VIBtype db ? |
VIBsweep db ? |
iVIBdepth db ? |
VIBrate db ? |
VOLfade dw ? |
FMUSIC_INSTRUMENT ENDS |
|
FMUSIC_CHANNEL STRUC |
note db ? |
samp db ? |
notectrl db ? |
inst db ? |
cptr dd ? |
freq dd ? |
volume dd ? |
voldelta dd ? |
freqdelta dd ? |
pan dd ? |
envvoltick dd ? |
envvolpos dd ? |
envvoldelta dd ? |
envpantick dd ? |
envpanpos dd ? |
envpandelta dd ? |
ivibsweeppos dd ? |
ivibpos dd ? |
keyoff db ?,? |
envvolstopped db ? |
envpanstopped db ? |
envvolfrac dd ? |
envvol dd ? |
fadeoutvol dd ? |
envpanfrac dd ? |
envpan dd ? |
period dd ? |
sampleoffset dd ? |
portatarget dd ? |
patloopno db ?,?,?,? |
patlooprow dd ? |
realnote db ? |
recenteffect db ? |
portaupdown db ? |
db ? |
xtraportadown db ? |
xtraportaup db ? |
volslide db ? |
panslide db ? |
retrigx db ? |
retrigy db ? |
portaspeed db ? |
vibpos db ? |
vibspeed db ? |
vibdepth db ? |
tremolopos db ? |
tremolospeed db ? |
tremolodepth db ? |
tremorpos db ? |
tremoron db ? |
tremoroff db ? |
wavecontrol db ? |
finevslup db ? |
fineportaup db ? |
fineportadown db ? |
FMUSIC_CHANNEL ENDS |
|
FMUSIC_MODULE STRUC |
pattern dd ? |
instrument dd ? |
mixer_samplesleft dd ? |
globalvolume dd ? |
tick dd ? |
speed dd ? |
order dd ? |
row dd ? |
patterndelay dd ? |
nextorder dd ? |
nextrow dd ? |
unused1 dd ? |
numchannels dd ? |
Channels dd ? |
uFMOD_Ch dd ? |
mixer_samplespertick dd ? |
numorders dw ? |
restart dw ? |
numchannels_xm db ? |
globalvsl db ? |
numpatternsmem dw ? |
numinsts dw ? |
flags dw ? |
defaultspeed dw ? |
defaultbpm dw ? |
orderlist db 256 dup (?) |
FMUSIC_MODULE ENDS |
|
FMUSIC_MODULE_size = SIZE FMUSIC_MODULE |
FSOUND_CHANNEL_size = SIZE FSOUND_CHANNEL |
FMUSIC_CHANNEL_size = SIZE FMUSIC_CHANNEL |
FMUSIC_INSTRUMENT_size = SIZE FMUSIC_INSTRUMENT |
FMUSIC_PATTERN_size = SIZE FMUSIC_PATTERN |
FMUSIC_NOTE_size = SIZE FMUSIC_NOTE |
|
; FPU register stack |
st0 TEXTEQU <st(0)> |
st1 TEXTEQU <st(1)> |
|
.CODE |
include ufmod.asm |
include core.asm |
|
.DATA? |
_mod = $ |
FMUSIC_MODULE<> |
mmt dd ?,?,? |
ufmod_heap dd ?,? |
if AC97SND_ON |
EXTERN hSound:DWORD |
dd ? |
else |
hSound dd ? |
endif |
hBuff dd ? |
SW_Exit dd ? |
MixBuf db FSOUND_BlockSize*8 dup (?) |
ufmod_noloop db ? |
ufmod_pause_ db ? |
mix_endflag db ?,? |
mmf dd ?,?,?,? |
ufmod_vol dd ? |
uFMOD_fopen dd ? |
uFMOD_fread dd ? |
file_struct dd 7 dup (?) |
cache_offset dd ? |
if INFO_API_ON |
time_ms dd ? |
L_vol dw ? |
R_vol dw ? |
s_row dw ? |
s_order dw ? |
szTtl db 24 dup (?) |
endif |
DummySamp FSOUND_SAMPLE<> |
end |