
	{Falcom	FMD98 f[^tH[}bg


̎́ATAB=Xy[X8ŋLqĂ܂B


(1) wb_[

========================================
Address		type		e
+-------+-------+-------+-------+-------
0x0000`0x0001	WORD		V[PXf[^ւ̑΃AhX@ch 1
0x0002`0x0003	WORD		V[PXf[^ւ̑΃AhX@ch 2
EEE		WORD	EEE
0x001E`0x001F	WORD		V[PXf[^ւ̑΃AhX@ch16
+-------+-------+-------+-------+-------
0x0020`0x0021	WORD		V[PXŎgp鉹@ch 1		c (2)Q
0x0022`0x0023	WORD		V[PXŎgp鉹@ch 2		c (2)Q
EEE		WORD	EEE
0x003E`0x003F	WORD		V[PXŎgp鉹@ch16		c (2)Q
+-------+-------+-------+-------+-------
0x0040`0x0041	WORD		ADSRGx[vf[^ւ̑΃AhX	c (3)Q
+-------+-------+-------+-------+-------
0x0042`0x0043	
0x0044`0x0045	
0x0046`0x0047	
0x0048`0x0049	
0x004A`0x004B	
0x004C`0x004D	
0x004D`0x004F	
+-------+-------+-------+-------+-------
0x0050`	char(0x20)	FMF`i32byte ~ F̌j	c (4)Q
+-------+-------+-------+-------+-------
0x????`	char(?)		V[PXf[^			c (5)Q
========================================
΃AhXƂ́ÄʒũItZbgʂB





(2) V[PXŎgp鉹ɂ	i0x0020`0x003FԒnj

0x0000 c FM ch1
0x0002 c FM ch2
0x0004 c FM ch3
0x0006 c FM ch4
0x0008 c FM ch5
0x000A c FM ch6
0x000C c SSG ch1
0x000E c SSG ch2
0x0010 c SSG ch3
0x0012 c YM2608̃Y
0x0014 c MIDI ch1
0x0016 c MIDI ch2
0x0018 c MIDI ch3
0x001A c MIDI ch4
0x001C c MIDI ch5
0x001E c MIDI ch6
0x0020 c MIDI ch7
0x0022 c MIDI ch8
0x0024 c MIDI ch9
0x0026 c MIDI ch10
0x0028 c MIDI ch11
0x002A c MIDI ch12
0x002C c MIDI ch13
0x002E c MIDI ch14
0x0030 c MIDI ch15
0x0032 c MIDI ch16
0x0034 c BEEP





(3) ADSRGx[vɂ		i0x0040Ԓn̎j

0x90R}hŎw肳Gx[vf[^ĂAhXB
0x0000̏ꍇAf[^B

AhX̃f[^́A6bytePʁB
ŏ́AGx[vԍ0ԂŁA1,2,3ƃCNgB

Mucom(FMP, FSP)Gx[v֕ϊvŹAȉB
iMucomŉ\Ȕ͈͂̋ߎlƂȂBj
n1`n6̃p[^́A7biti0`127j
First Level	 in1{1j~2|P
Attack Rate	 i255|[First Level]jn2
Decay Rate	 i255|[Decay Level]jn3
Decay Level	 in4{1j~2|Pj
Sustaion Level	 [Decay Level]Table(n5)
Release Rate	 [Decay Level]n6


(1) Sustaion RateTable(n5)̊Z\

Table(n5)́Aȉ̒ʂBĩhCo[Aȉ̃e[uĂBj
MUCOMȂ蒷TXeB\Ȑ݌vɂȂĂB
;		+0    +1    +2    +3    +4    +5    +6    +7
	dw	0001h,0002h,0003h,0004h,0005h,0006h,0008h,000ah	;+00(  0)
	dw	000ch,000eh,0010h,0012h,0014h,0018h,001ch,001eh	;+08(  8)
	dw	0034h,0036h,0038h,003ch,0040h,0044h,0048h,004ch	;+10( 16)
	dw	0050h,0054h,0058h,005ch,0060h,0064h,006eh,0078h	;+18( 24)
	dw	0080h,0088h,0090h,0098h,00a0h,00a8h,00b0h,00b8h	;+20( 32)
	dw	00bch,00c0h,00d8h,00f0h,0108h,0120h,0138h,0150h	;+28( 40)
	dw	0168h,0180h,0198h,01b0h,01c8h,01e0h,01f8h,0210h	;+30( 48)
	dw	0228h,0224h,0258h,0270h,0288h,02a0h,02b8h,02d0h	;+38( 56)
	dw	02e8h,0300h,0318h,0330h,0348h,0360h,0378h,0390h	;+40( 64)
	dw	03a8h,03c0h,03d8h,03f0h,0408h,0420h,0438h,0450h	;+48( 72)
	dw	0468h,0480h,0498h,04b0h,04c8h,04e0h,04f8h,0510h	;+50( 80)
	dw	0528h,0540h,0558h,0570h,0588h,05a0h,05b8h,05d0h	;+58( 88)
	dw	05e8h,0600h,0618h,0630h,0648h,0660h,0678h,0690h	;+60( 96)
	dw	06a8h,06c0h,06d8h,06f0h,0708h,0720h,0738h,0750h	;+68(104)
	dw	0768h,0bb8h,1388h,1b58h,2710h,4e20h,7530h,9999h	;+70(112)
	dw	9999h,9999h,9999h,9999h,9999h,9999h,9999h,9999h	;+78(120)

(2) hCo[SSGGx[vp^[iSSG:0x9AR}hj

		   fl  ar  dr  sl  sr  rr
	DB	127,  1,  1,127,127,  5		;00h
	DB	127,  1,  1,120,127,  5		;01h
	DB	 80, 10,100,120,127,  5		;02h
	DB	127,  1,  1,110,127,  5		;03h
	DB	127,  1,  1,110, 50,  5		;04h
	DB	127,  1,  1,110, 10,  5		;05h
	DB	127,  1,  1,110, 58,  5		;06h
	DB	127,  1,  1,120, 26,  5		;07h
	DB	 80, 10, 10,127, 78,  5		;08h
	DB	 80, 10, 10,127, 62,  5		;09h
	DB	 96,  4, 48,100,100,  5		;0ah





(4) FMFf[^		i0x0050Ԓnȍ~j

00h	Detune				*4	Multiple	(op 1,3,2,4)
04h	Total Level						(op 1,3,2,4)
08h	Keyscal				*6	Attack Rate	(op 1,3,2,4)
0ch	LFO AMS Enable Switch		*8	Decay Rate	(op 1,3,2,4)
10h	Sustain Rate						(op 1,3,2,4)
14h	Sustain Level			*4	Release Rate	(op 1,3,2,4)
18h	Feed Back			*3	Algorithm
19h	Amplitude Modulation Sensitivity*4	Phase Modulation Sensitivity
1ah	Freq.
1bh	s
1ch	s
1dh	s
1eh	s
1fh	s


OPN/OPNÃWX^[lƂẮAȉ̒ʂB
ȂNo̕\L͂krhɂ̓ANZXȂԂŃf[^ƂĂ00h ƂȂĂB

	40h,44h,48h,4Ch,30h,34h,38h,3Ch,
	50h.54h,58h,5Ch,60h,64h,68h,6Ch,
	70h,74h,78h,7Ch,80h,84h,88h,8Ch,
	B0h,No ,No ,No ,No ,No ,No ,No ,





(5) V[PXf[^			i0x0000`0x001FԒn̎j

gpĂ鉹ɂAႤR}hLB
ϊ̍ۂ́AvӁB
========================================
0x00`0x7E			î܂܁ANote No.j
	bLength		c	(0xFF̏ꍇ́A2byteŉB)
	(wLength)	c	2byte(1word)Ŏꍇ̉

0x7F				x
	bLength		c	(0xFF̏ꍇ́A2byteŉB)
	(wLenth)	c	2byte(1word)Ŏꍇ̉



+-------+-------+-------+-------+-------
Command	param		MML	@\
+-------+-------+-------+-------+-------
0x80			[	Loop start
	bCounter	c	JE^[([ṽJEgpɒڃfNg)
	bCount		c	[v

0x81			:	Loop exit
	wAddress		Loop̔(΃AhX)

0x82			]	Loop end
	wAddress		Loop̖߂(΃AhX)

+-------+-------+-------+-------+-------
0x83			&	^CEX^[
				̓Iȏ́AỎKey Off (Note off) ȂB

+-------+-------+-------+-------+-------
0x84				NOP

+-------+-------+-------+-------+-------
0x85			t	e|
	bTempo			

+-------+-------+-------+-------+-------
0x86			D	fB`[
	wDetune			iLSIo͒lx[Xj

+-------+-------+-------+-------+-------
0x87				Q[g^C
	wGate	bit 0-13@c	
		bit14-15@c	1x	q	납[ticks]Ŏw
				01	u	̒[ticks]Ŏw
				00	U	̒Ŏw

+-------+-------+-------+-------+-------
0x88			m	LFO
	bDecay		c	LFOJn܂ł̎[ticks]
	bSpeed		c	LFO  992  bSpeed[ticks]
	bDepth		c	LFOUi48=100centj
	bForm		c	LFOg`i0:Opg^1:gj

	o͒lPitchBend{[bDepth]~PMD(bForm,(([bSpeed]*[t(*1)]^31) and 0x1F))^256

	t(*1)		Key On(Note On)̌oߎ
	PMD(bForm,n)	ken̔g`e[u

		ken@g`e[uit16bitj
	;Opg(bForm=0)
	dw	0020h,0040h,0060h,0080h,00a0h,00c0h,00e0h,00ffh
	dw	00e0h,00c0h,00a0h,0080h,0060h,0040h,0020h,0000h
	dw	ffe0h,ffc0h,ffa0h,ff80h,ff60h,ff40h,ff20h,ff01h
	dw	ff20h,ff40h,ff60h,ff80h,ffa0h,ffc0h,ffe0h,0000h
	;g(bForm=1)
	dw	001bh,004fh,0080h,00abh,00cfh,00eah,00fah,00ffh
	dw	00fah,00eah,00cfh,00abh,0080h,004fh,001bh,0000h
	dw	ffe5h,ffb1h,ff80h,ff55h,ff31h,ff16h,ff06h,ff01h
	dw	ff06h,ff16h,ff31h,ff55h,ff80h,ffb1h,ffe5h,0000h

+-------+-------+-------+-------+-------
0x89				|^g
	bNote			ڕW
	bDiv			ὠx[]

+-------+-------+-------+-------+-------
0x8A			*	LFO^Gx[v XCb`
	bType		c	ǂLFÕXCb`
				0 : LFOXCb`
				1 :  1shot LFOXCb`
				2 : LFOXCb`
				3 : Gx[vXCb`
	bSwitch		c	XCb`(0:on^1:off)

+-------+-------+-------+-------+-------
0x8B			L	End of Channel
	wAddress	c	[vւ̑΃AhX

+-------+-------+-------+-------+-------
0x8C			p	p|bg
	bPanpot			

+-------+-------+-------+-------+-------
0x8D			v	
	bVolume		c	

0x8E				Ή
	bVolume		c	



		el ʂTL(Total Level)Ze[u
	db	7fh,73h,6eh,6bh,68h,65h,63h,61h	; 0h
	db	5eh,5dh,5bh,59h,57h,56h,54h,53h	;
	db	51h,50h,4eh,4dh,4ch,4bh,49h,48h	;10h
	db	47h,46h,45h,44h,43h,42h,41h,40h	;
	db	3eh,3eh,3dh,3ch,3bh,3ah,39h,38h	;20h
	db	37h,36h,35h,34h,33h,33h,32h,31h	;
	db	30h,2fh,2fh,2eh,2eh,2dh,2ch,2bh	;30h
	db	2bh,2ah,29h,28h,28h,27h,26h,25h	;
	db	25h,24h,23h,23h,22h,21h,21h,20h	;40h
	db	1fh,1fh,1eh,1dh,1dh,1ch,1bh,1bh	
	db	1ah,19h,19h,18h,17h,17h,16h,16h	;50h
	db	15h,14h,14h,13h,13h,12h,11h,11h	
	db	10h,10h,0fh,0fh,0eh,0dh,0dh,0ch	;60h
	db	0ch,0bh,0bh,0ah,09h,09h,08h,08h	;
	db	07h,07h,06h,06h,05h,05h,04h,04h	;70h
	db	03h,03h,02h,02h,01h,01h,01h,01h	;

		rrf@ʂƃWX^[lZe[u
	db	00h,00h,01h,01h,02h,04h,06h,07h
	db	08h,09h,0ah,0bh,0ch,0dh,0eh,0fh

	Y, MIDI͊ZB

+-------+-------+-------+-------+-------
0x8F				NOP
				ȂB

+-------+-------+-------+-------+-------
0x90			@	F, Gx[v
	bVoice		c	FM	cFԍ
				MIDI	cFԍ
				SSG	cGx[vԍ

+-------+-------+-------+-------+-------
0x91			w	SSG̃mCY
	bNoise		c	

+-------+-------+-------+-------+-------
0x92			E	Gx[vw
	bFL		c	Fiest Level (0`255)
	bAR		c	Attack Rate (0`255)
	bDR		c	Decay Rate (0`255)
	bDL		c	Decay Level (0`255)
	bSR		c	Sustain Rate (0`255)
	bRR		c	Release Rate (0`255)

+-------+-------+-------+-------+-------
0x93			p	SSGg[^mCYXCb`
	bSwitch		c	XCb`

+-------+-------+-------+-------+-------
0x94				H@炭AQ[{̗p̃tO
	b			

+-------+-------+-------+-------+-------
0x95				1shot LFO
	bDelay			LFOJn܂ł̎[ticks]
	bLevel			1[tick] ̕ωʁiLSIo͒lx[Xj

+-------+-------+-------+-------+-------
0x96				FVeB[
	bVelocity	bit 7	: ȌAp̃FVeB[
				@݂̉̂̃FVeB[
			bit 6-0	: FVeB[

+-------+-------+-------+-------+-------
0x97			y	Rg[`FW
	bCC1		c	WX^
	bCC2		c	f[^

+-------+-------+-------+-------+-------
0x98				LFO
	bDelay		c	LFOJn܂ł̎[ticks]
	bSpeed		c	LFO  240bSpeed [ticks]
	bDepth1		c	LFOU
	bDepth2		c	LFOU

	LSIo͒l([bDepth2]^255)~([bVolume(*2)]{[bDepth1]*AMD(([bSpeed]*[t(*1)]^15) and 0x0F)^256 )

	t(*1)		Key On(Note On)̌oߎ
	bVolume(*2)	0x8DR}hł̎wl
	AMD(n)		LFO̔g`e[ui16Bytẽe[uj

+-------+-------+-------+-------+-------
0x99			y	FMWX^w
	bRegister	c	WX^
	bData		c	f[^

+-------+-------+-------+-------+-------
0x9A
	FM	bVoice[25]	Fw(25Byte)
	SSG	bVoice		hCo[SSGGx[vp^[
	Y	bMasterVolume	Ỹ}X^[{[
	MIDI	bData[?]	GNXN[Vui0xF7܂őMj
	BEEP			

+-------+-------+-------+-------+-------
0x9B				JnH	炭fobOp

+-------+-------+-------+-------+-------
0x9C				IH	炭fobOp

========================================




	ele[u

|^gALFOA1shot LFÓÃe[u̎QƑOɏsB

@@@[NoteNo.]~48 { [|^gψ] { [LFOψ]
LSIo͉ @e[u(48) ~ ȉe[ui mod 48j  0x1000  { [1shotLFOψ] { Detune

	dw	1000h,1005h,100ah,100fh,1014h,1019h,101eh,1023h
	dw	1028h,102dh,1032h,1037h,103ch,1041h,1046h,104bh
	dw	1050h,1055h,105ah,105fh,1064h,1069h,106eh,1073h
	dw	1078h,107dh,1082h,1087h,108ch,1092h,1097h,109ch
	dw	10a1h,10a6h,10abh,10b0h,10b5h,10bbh,10c0h,10c5h
	dw	10cah,10cfh,10d4h,10dah,10dfh,10e4h,10e9h,10eeh

	́Ả~(0x10F30x1000)ŁAɂȂB

