Vag/Xa enCOde/DECode subroutines version 0.04 1997.11.13


EVAG ENCODER

	SONY񋟂̃CuƓdliꕔʌ݊jłB
	ȉɃCut̃eLXgp܂B


--
 GR[h[`̒񋟌`

MetroWerks А Macintosh J CodeWarrior (CW11) ̃Cu
`

 GR[h[`̗

GR[h́A16 bit f[^ 28 Tv (56 oCg)   1 ubNPʂ
čs܂B[v́AVAG wb_ł͂ȂAg`f[^̂ɕt܂B

GR[hɍۂĂ͎Ŋ֐QgpAL̎菇ōs܂B

(1) EncVagInit() ɂă[hw肵AGR[h[`B
(2) 28 TvPʂ EncVag() R[AkϊsB
(3) (2) JԂB
(4) Ō̃ubN 0 pfBOAEncVag() R[B
(*) one shot g`̏ꍇ́AEncVagFin() R[B

 VAG t@C

{GR[_[`ł́AVAG wb_Ȃǂ̏o͂͂܂BVAG t@CƂďo
͂ۂ́A 'VAGp'  'pGAV' Ŏn܂ 30H  VAG wb_A16 oCg̔g
`JnubN(g͑S 0 )ɈAEncVag() ̏o̓f[^tĂ
BɁAone shot g`̍ۂɂ́AEncVagFin() œg`IubNŌ
ɉKv܂B

VAG wb_ ('VAGp'EEE)
30H (48 oCg)

g`JnubN(all 0)
10H (16oCg)

g`f[^
C

g`IubN(one shot ̏ꍇ̂)
10H (16oCg)


g`IubNȗƁASPU ݂듮삷邱Ƃ܂B[vg
`̏ꍇ́Ag`IubNtKv͂܂B

 ֐dl
____________________________________________________________
void EncVagInit ( short conv_mode )

GR[h[`̏VAGs܂Bg`f[^GR[h
ہA͂߂ɕKxR[Kv܂B

ϊ[h conv_mode A"Stndard"A"High Band"A"Low Band"A"4bit 
Straight" ̒w肵܂B

1: Standard
2: High Band (g𑽂܂ޔg`ɗL)
3: Low Band (𑽂͐܂ޔg`ɗL)
4: 4bit Straight (16 bit  4 bit ɒϊ)

____________________________________________________________
void EncVag ( short x[], short y[] , short block_attribute )

z x Ŏw肳ꂽ 28 Tv (56oCg) ̃f[^kϊA16 
oCg z y ɃXgA܂Bz y ́A8 short wordō\܂B

̍ہA[v̐ݒ block_attribute ɂĉL̒ʂw肵܂B

0 : [vg` (one shot)
1 : [vg`g`IubN
2 : [vLg`[vJnubN
3 : [vLg` (JnAIubN)
4 : [vLg`g`IubN

____________________________________________________________
void EncVagFin ( short y[] )

SE Ȃǂ one shot (񃋁[v) g`kϊۂ́AŌɂ̊֐Ă
Ŕg`IubN𕉉ׂKv܂Bz y ́A8 short word ō\
܂B

VAG GR[_[`dl Ver 1.00 (May 29, 1997)	CONFIDENTIAL

(C) 1997 Sony Computer Entertainment Inc. All Rights Reserved.		1


--
܂

	IWiEncVagFin֐ُ͈ȌʂԂ܂
	̔łł͏CĂ܂B

	EncVag֐Ŏw肷block_attributegĂ܂B
	
	5 : [vg` PubN̂
	6 : [vg` JnubN
	7 : [vLg` PubN̂


EXA ENCODER

	܂iKłVAG ENCODERč쐬XA ENCODERpӂ܂B

	________________________________________________________________________
	void EncXaInit(void)

	GR[h[`܂Bp[^̎w͂܂B

	________________________________________________________________________
	EncXa(WORD *x, UBYTE *y, UBYTE fn, UBYTE ch, UBYTE sm, UBYTE ci)

	1ZN^(28Tv~8jbg~18TEhO[v)
	16bit linear PCM ϊ܂Bt@CԍfnɁA`lchɁA
	Tu[h(ʏ0x64)smɁAR[fBOciɎw肵܂B

	XeIf[^̏ꍇ͂炩߁A1jbgɍE
	`lf[^zuĂKv܂(b)B
	1O[v͍`lAE`l̏4jbgÂ
	v8jbg\܂BB


EVAG/XA DECODE

	________________________________________________________________________
	void initWork(void)

	fR[h܂B(VAG/XA)


EVAG DECODER

	________________________________________________________________________
	LONG decodeVAG(UBYTE *s, WORD *d, LONG p_len)

	sp_lenubNVAGf[^16bit linear PCM ɕϊ
	dɊi[܂BԂl͎ۂɕϊꂽoCgłB

	________________________________________________________________________
	LONG decodeVAGf(UBYTE *s, WORD *d, LONG p_len)

	decodeVAG֐̎ZłłB


EXA DECODER

	________________________________________________________________________
	LONG decodeXA(UBYTE *s, WORD *d, LONG s_len)

	ss_lenZN^XAf[^16bit linear PCM ɕϊ
	dɊi[܂BԂl͎ۂɕϊꂽoCgłB

	________________________________________________________________________
	LONG decodeXAf(UBYTE *s, WORD *d, LONG s_len)

	decodeXA֐̎ZłłB


Eӓ_

	GR[h̍ۂɕt16bit-32768`+32767
	-30720`+30720͈̔͂ɋIɐ؂̂ĂĂ܂B
	g`m[}CYꍇɂ93.75%ȉɂȂ
	𒴂镔NbvĂ܂܂B
	gȂǂ̒Pg`gȂǂ͗vӂłB

	XeIf[^ϊꍇ̓fR[hEGR[h
	EꂼƗĕێKv܂B
	XȀꍇ͓ōEƗŏĂ܂
	̃`lɃGR[hEfR[h邱Ƃ͂ł܂B


Ȇ

	ϐ̌^錾ȂǕsȓ_vxcodec.hQƂĂB
	EoO񍐂Ȃǂ mizoguchi_toshiyuki@cobra.konami ܂ł肢܂B


(eof)