*************************************************
* Nebulus Musics by JMP (1988).			*
* Adapted by Mr.STYCKX / Nicolas Pomarède	*
*						*
* Original replay was in $816.			*
*						*
* Ripped : 28/05/96				*
* Relocated : 28/05/96				*
* EaglePlayer / Delitracker port : 28/05/96	*
*	Volume					*
*	Balance					*
*	SubSong					*
*	EP_Voices				*
*	EP_StructInit (Analyzer)		*
*************************************************

	opt	o+

	output	ram:CUST.Nebulus


NEBU_TEST	=	0		; 0 => BUILD COMPLETE CUSTOM MODULE
					; 1 => BUILD SMALL CODE FOR TESTING

	section	Nebulus,code



	incdir	"Include:"
	include	"misc/DeliPlayer.i"
	include	"misc/EaglePlayer.i"


	IFEQ	NEBU_TEST-0			; COMPLETE VERSION


	PLAYERHEADER PlayerTagArray

	dc.b '$VER: Nebulus Musics (1988) custom player V1.0, '
	dc.b 'ripped and adapted by Mr.STYCKX (05/96)',0

	EVEN

PlayerTagArray
	dc.l	DTP_CustomPlayer,1		; CustomPlayer - Tag (important !!!)
	dc.l	DTP_Flags,PLYF_CUSTOM

	dc.l	DTP_PlayerVersion,1<<16+0	; v1.0
	dc.l	EP_PlayerVersion,1
	dc.l	DTP_PlayerName,PName
	dc.l	DTP_Creator,CName

	dc.l	DTP_InitPlayer,InitPlay		; alloc audio
	dc.l	DTP_EndPlayer,EndPlay		; free audio
	dc.l	DTP_InitSound,NEBU_init		; init custom data
	dc.l	DTP_EndSound,NEBU_end		; clear DMA

	dc.l	DTP_SubSongRange,NEBU_SubSongRange

	dc.l	DTP_Interrupt,NEBU_Play

	dc.l	DTP_Volume,NEBU_Volume
	dc.l	DTP_Balance,NEBU_Volume

	dc.l	EP_Voices,NEBU_SetVoices
	dc.l	EP_StructInit,NEBU_StructInit

	dc.l	EP_Flags,EPB_Voices!EPB_Analyzer!EPB_Volume!EPB_Balance

	dc.l	TAG_DONE


PName	dc.b	"Nebulus Custom v1.0",0
CName	dc.b	"Music by JMP (1988).",$a
	dc.b	"Adapted by Mr.STYCKX (28/05/96)",0

	EVEN


NEBU_StructAnalyzer			; transmis à EaglePlayer pour gérer
	ds.l	UPS_SizeOF		; les analyzers



*-----------------------------------------------------------------------*
;
; Init Player

InitPlay
	move.l	dtg_AudioAlloc(a5),a0		; Function
	jmp	(a0)


*-----------------------------------------------------------------------*
;
; End Player

EndPlay
	move.l	dtg_AudioFree(a5),a0		; Function
	jmp	(a0)


*-----------------------------------------------------------------------*
;
; Init Custom Replay Routine

NEBU_init
	move.w	dtg_SndNum(a5),d0	; sub song nbr (1..5)
	bsr	NEBU_InitSong

	rts


*-----------------------------------------------------------------------*
;
; Clear Audio Reg.

NEBU_end
	move.w	#$f,$dff096
	clr.w	$dff0a8
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8

	rts


*-----------------------------------------------------------------------*
;
; Interrupt routine called every 1/50 s

NEBU_Play
	bsr	NEBU_InterVBL
	rts


*-----------------------------------------------------------------------*
;
; Returns min and max sub song

NEBU_SubSongRange
	moveq	#1,d0			; min
	moveq	#5,d1			; max

	rts


*-----------------------------------------------------------------------*
;
; Set Volume

NEBU_Volume
	move.w	dtg_SndLBal(a5),d0	; Vol Left
	mulu	dtg_SndVol(a5),d0	; Vol Max
	lsr.w	#6,d0
	move.w	d0,NEBU_MasterVolA	; final Vol Left
	move.w	d0,NEBU_MasterVolD

	move.w	dtg_SndRBal(a5),d0
	mulu	dtg_SndVol(a5),d0
	lsr.w	#6,d0
	move.w	d0,NEBU_MasterVolB
	move.w	d0,NEBU_MasterVolC

	rts


*-----------------------------------------------------------------------*
;
; Set DMA Voices

NEBU_SetVoices
	or.w	#$8000,d0
	move.w	d0,NEBU_DMA_EP	; bit=1 <=> voice is ON

	rts


*-----------------------------------------------------------------------*
;
; Returns address of the UPS structure to EaglePlayer

NEBU_StructInit
	lea	NEBU_StructAnalyzer(pc),a0

	rts



*-----------------------------------------------------------------------*


	ELSEIF				; TESTVERSION


;-------
; Small code to test the player under a debugger


	moveq	#1,d0
	bsr	NEBU_InitSong

	move.l	$6c.w,Jmp+2
	move.l	#Vbl,$6c.w
	rts


End
	bsr	StopSong
	move.l	Jmp+2(pc),$6c.w
	rts


Vbl
	btst	#5,$dff01f
	beq.s	Jmp

.wa	cmp.b	#70,$dff006
	blt.s	.wa

	move.w	#$f00,$dff180

	movem.l	d0-a6,-(a7)
	bsr	NEBU_InterVBL
	movem.l	(a7)+,d0-a6

	move.w	#$345,$dff180

Jmp	jmp	0.l




NEBU_StructAnalyzer			; transmis à EaglePlayer pour gérer
	ds.l	UPS_SizeOF		; les analyzers


	ENDC



;------------------------------------------------------------------------
; Données pour EaglePlayer / Delitracker

NEBU_DMA_EP	dc.w	%1111+$8000	; voix actives depuis EaglePlayer

NEBU_MasterVolA	dc.w	64		; 0 .. 64
NEBU_MasterVolB	dc.w	64
NEBU_MasterVolC	dc.w	64
NEBU_MasterVolD	dc.w	64

NEBU_StructA	dc.l	NEBU_StructAnalyzer
NEBU_StructB	dc.l	NEBU_StructAnalyzer+UPS_Modulo
NEBU_StructC	dc.l	NEBU_StructAnalyzer+UPS_Modulo*2
NEBU_StructD	dc.l	NEBU_StructAnalyzer+UPS_Modulo*3

NEBU_OldPer1	dc.w	-1
NEBU_OldPer2	dc.w	-1
NEBU_OldPer3	dc.w	-1
NEBU_OldPer4	dc.w	-1



;-----------------------------------------------------------------------
; Nebulus Musics
; Original music by JMP (located in $816) in 1988.
; Relocated on 28/5/96 by Mr.STYCKX
;
; NEBU_InitSong : D0 = 1..5
; NEBU_InterVBL : called every VBL
;



;-----------------------------------------------------------------------
; Init la subsong D0 (1..5)

NEBU_InitSong
	move.w	d0,-(sp)
	clr.l	lbL000118
	move.w	#1,lbW00011E
	move.w	#3,lbW000114
	bsr	StopSong
	move.w	(sp)+,d0

	subq.w	#1,d0			; de 0 à 4
	lsl.w	#2,d0			; adresse mots longs
	lea	SongsAdr(pc),a0
	move.l	(a0,d0.w),a0
	bra	InitSong
	


;-----------------------------------------------------------------------
; Routine appelée à chaque VBL

NEBU_InterVBL
	movem.l	D0/A0,-(SP)

	lea	NEBU_StructAnalyzer(pc),a0
	move.w	#-1,UPS_Enabled(a0)
	move.w	#UPSB_Adr!UPSB_Len!UPSB_Per!UPSB_Vol!UPSB_DMACon,UPS_Flags(a0)

	move.w	UPS_Voice1Per(a0),NEBU_OldPer1
	move.w	UPS_Voice2Per(a0),NEBU_OldPer2
	move.w	UPS_Voice3Per(a0),NEBU_OldPer3
	move.w	UPS_Voice4Per(a0),NEBU_OldPer4

	clr.w	UPS_Voice1Per(a0)
	clr.w	UPS_Voice2Per(a0)
	clr.w	UPS_Voice3Per(a0)
	clr.w	UPS_Voice4Per(a0)

	move.w	NEBU_DMA_EP(pc),UPS_DMACon(a0)

	bsr	PlaySong

	; La replay de Nebulus remet la période à chaque VBL,ce qui perturbe
	; les analyzers. On ne transmet donc une période que si elle est
	; différente de la VBL précédente.

	lea	NEBU_StructAnalyzer(pc),a0
	move.w	UPS_Voice1Per(a0),d0
	cmp.w	NEBU_OldPer1(pc),d0	; nouvelle fréquence
	bne.s	.2			; oui
	clr.w	UPS_Voice1Per(a0)	; non, on remet a 0

.2	move.w	UPS_Voice2Per(a0),d0
	cmp.w	NEBU_OldPer2(pc),d0
	bne.s	.3
	clr.w	UPS_Voice2Per(a0)

.3	move.w	UPS_Voice3Per(a0),d0
	cmp.w	NEBU_OldPer3(pc),d0
	bne.s	.4
	clr.w	UPS_Voice3Per(a0)

.4	move.w	UPS_Voice4Per(a0),d0
	cmp.w	NEBU_OldPer4(pc),d0
	bne.s	.0
	clr.w	UPS_Voice4Per(a0)
.0

	clr.w	UPS_Enabled(a0)

	movem.l	(SP)+,D0/A0
	rts



;-----------------------------------------------------------------------

lbW000000
	dc.w	$12E,$11D,$10D,$FE,$F0,$E2,$D6,$CA,$BE,$B4,$AA
	dc.w	$A0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,$10,$11
	dc.w	$12,$13,$14,$15,$16,$17,$18
lbW00004A
	dc.w	0,$3F,1,$32,$10,$3F,11,$3F,5,10,$12,$3F,10,$3F
	dc.w	$12,$20,$13,$3F,$14,$3F,$11,$3F,15,$3F,4,$3F,4
	dc.w	$3F,14,$3F,$15,$3F,15,$3F,$11,$3F,4,$3F,$FFFF,$3F
	dc.w	$16,$3F,$16,$1F,6,$3F,$17,$20,7,$3F

lbL0000AE	dcb.l	$18,0
lbW00010E	dc.w	0
lbW000110	dc.w	0
lbW000112	dc.w	0
lbW000114	dc.w	0
lbW000116	dc.w	0
lbL000118	dc.l	0
lbW00011C	dc.w	0
lbW00011E	dc.w	0
lbW000120	dc.w	0



;----------------------------------------
; Arrete le son et init qq données générales

StopSong				; $938
lbC000122
	move.w	#15,$DFF096
	move.w	#$FF,$DFF09E
	move.w	#0,$DFF0A8
	move.w	#0,$DFF0B8
	move.w	#0,$DFF0C8
	move.w	#0,$DFF0D8
	movem.l	D0/A0,-(SP)
	lea	lbL0000AE,A0
	move.w	#3,D0
lbC000160	clr.w	$40(A0)
	move.w	#$FFFF,$38(A0)
	addq.w	#2,A0
	dbra	D0,lbC000160
	movem.l	(SP)+,D0/A0
	rts



lbC0001AC	clr.l	lbL000306
	cmp.w	#2,D2
	bcs.s	lbC0001D8
	move.w	#$FFFF,D3
	cmp.w	#3,D2
	bne.s	lbC0001D8
	cmp.w	#3,D0
	bne.s	lbC0001D8
	move.l	#$80,lbL000306
lbC0001D8	move.w	D0,lbW0002FC
	move.w	D3,lbW0002FE
	move.w	lbW0002FC,D0
	clr.w	D4
	bset	D0,D4
	move.w	D4,$DFF096

	lea	$DFF0A8,A0
	lsl.w	#4,D0
	clr.w	0(A0,D0.W)
	lea	NEBU_StructA(pc),a2
	lsr.w	#2,d0
	move.l	(a2,d0.w),a2		; D0 = lbW2FC * 4
	clr.w	UPS_Voice1Vol(a2)

	lea	lbW00004A,A0
	lsl.w	#2,D1
	add.w	D1,A0
	move.w	(A0)+,lbW000300
	bmi	lbC0002FA
	move.w	(A0),lbW000302
	cmp.w	#1,D2
	bcs	lbC0002FA
	move.w	lbW0002FE,D0
	cmp.w	#$FFFF,D0
	bne.s	lbC00024C
	move.w	#$1B2,lbW000304
	cmp.w	#2,D2
	beq.s	lbC000286
	move.w	#$12E,lbW000304
	bra.s	lbC000286

lbC00024C	cmp.w	#$20,D0
	blt	lbC0002FA
	cmp.w	#$43,D0
	bgt	lbC0002FA
	sub.w	#$20,D0
lbC000260	sub.w	#12,D0
	bcs.s	lbC000272
	addq.w	#1,lbW000300
	bra.s	lbC000260

lbC000272	add.w	#12,D0
	lea	lbW000000,A0
	add.w	D0,D0
	move.w	0(A0,D0.W),lbW000304
lbC000286	lea	$DFF0A0,A0
	move.w	lbW0002FC,D0
	lsl.w	#4,D0
	add.w	D0,A0

	lea	NEBU_StructA(pc),a2
	lsr.w	#2,d0
	move.l	(a2,d0.w),a2		; D0 = lbW2FC * 4

	lea	l2370A(pc),A1
	move.w	lbW000300,D0

;	lea	$70000,a1		; pour tester les samples utilisés
;	st	(a1,d0.w)
;	lea	l2370A,A1

	cmp.w	(A1)+,D0
	bcc.s	lbC0002FA
	lsl.w	#3,D0
	add.w	D0,A1
	move.l	(A1)+,D2
;;	add.l	#l2370A,D2
	add.l	lbL000306,D2
	move.l	D2,(A0)
	move.l	D2,UPS_Voice1Adr(a2)
	move.l	(A1),D2
	sub.l	lbL000306,D2
	lsr.w	#1,D2
	move.w	D2,4(A0)
	move.w	D2,UPS_Voice1Len(a2)
	move.w	lbW000304(pc),6(A0)
	move.w	lbW000304(pc),UPS_Voice1Per(a2)

	move.w	lbW000302(pc),d0
	move.w	d0,UPS_Voice1Vol(a2)
	lea	NEBU_MasterVolA(pc),a2
	move.w	lbW0002FC(pc),D1	; No voix
	lsl.w	#1,d1
	mulu	(a2,d1.w),d0
	lsr.w	#6,d0
	move.w	d0,8(A0)

	move.w	lbW0002FC(pc),D0
	move.w	#$8000,D1
	bset	D0,D1
	and.w	NEBU_DMA_EP(pc),d1
	move.w	D1,$DFF096
	lea	lbL0000AE,A0
	add.w	D0,D0
	move.w	#1,$30(A0,D0.W)
lbC0002FA	rts

lbW0002FC	dc.w	0
lbW0002FE	dc.w	0
lbW000300	dc.w	0
lbW000302	dc.w	0
lbW000304	dc.w	0
lbL000306	dc.l	0



;----------------------------------------
; Routine VBL principale

PlaySong				; $b20
	movem.l	D0-D7/A0-A6,-(SP)
	bsr.s	lbC000376
	lea	lbL0000AE,A5
	move.w	#0,D7
	tst.l	lbL000118
	beq.s	lbC000350
	subq.w	#1,lbW000116
	bne.s	lbC00034C
lbC000332	bsr	lbC0005BC
	addq.w	#2,A5
	addq.w	#1,D7
	cmp.w	#3,D7
	bne.s	lbC000332
	move.w	lbW00010E,lbW000116
lbC00034C	bsr.s	lbC0003B8
lbC000350	bsr	lbC000414
	lea	lbL0000AE,A0
	move.w	$10(A0),D0
	or.w	$12(A0),D0
	or.w	$14(A0),D0
	bne.s	lbC000370
	clr.l	lbL000118
lbC000370	movem.l	(SP)+,D0-D7/A0-A6
	rts

lbC000376	lea	lbL0000AE,A0
	lea	$DFF0A0,A1
	move.w	#0,D7
lbC000386	tst.w	$30(A0)
	beq.s	lbC00039E
	clr.w	$30(A0)
	move.l	#EmptySample,(A1)
	move.w	#1,4(A1)
lbC00039E	addq.w	#2,A0
	add.w	#$10,A1
	addq.w	#1,D7
	cmp.w	#4,D7
	bne.s	lbC000386
	rts


;;lbL0003B0	dcb.l	2,0		; EmptySample


lbC0003B8	cmp.w	#1,lbW000116
	bne.s	lbC000412
	lea	lbL0000AE,A0
	lea	$DFF0A8,A1
	move.l	NEBU_StructA(pc),a2
	move.w	#0,D7
lbC0003D4	cmp.w	#1,(A0)
	bne.s	lbC000402
	clr.w	D0
	bset	D7,D0
	move.w	D0,$DFF096
	clr.w	(A1)
	clr.w	UPS_Voice1Vol(a2)
	cmp.w	#2,D7
	bne.s	lbC000402
	move.w	#8,$DFF096
	clr.w	$10(A1)
	clr.w	UPS_Voice1Vol+UPS_Modulo(a2)
lbC000402	addq.w	#2,A0
	add.w	#$10,A1
	lea	UPS_Modulo(a2),a2
	addq.w	#1,D7
	cmp.w	#3,D7
	bne.s	lbC0003D4
lbC000412	rts


lbC000414	tst.l	lbL000118
	bne.s	lbC000482
	lea	lbL0000AE,A0
	lea	$DFF0A8,A1
	move.l	NEBU_StructA(pc),a2
	move.w	#0,D7
lbC00042E	cmp.w	#1,$40(A0)
	bne.s	lbC00044E
	clr.w	D0
	bset	D7,D0
	move.w	D0,$DFF096
	clr.w	(A1)
	clr.w	UPS_Voice1Vol(a2)
	clr.w	$40(A0)
	bra.s	lbC000472

lbC00044E	tst.w	$38(A0)
	bmi.s	lbC000472
	movem.l	D7/A0-A2,-(SP)
	move.w	D7,D0
	move.w	$38(A0),D1
	move.w	#2,D2
	bsr	lbC0001AC
	movem.l	(SP)+,D7/A0-A2
	move.w	#$FFFF,$38(A0)
lbC000472	addq.w	#2,A0
	add.w	#$10,A1
	lea	UPS_Modulo(a2),a2
	addq.w	#1,D7
	cmp.w	#4,D7
	bne.s	lbC00042E
lbC000482	rts



;----------------------------------------
; Init les données propres à une subsong

InitSong				; $cb6
lbC0004A0
	tst.w	lbW00011E
	beq	lbC00053A
	lea	lbL0000AE,A5
	clr.l	lbL000118
	bsr	StopSong
	cmp.l	#0,A0
	beq.s	lbC000534
	move.w	(A0),D0
	addq.w	#1,D0
	move.w	D0,lbW000110
	clr.w	D1
	move.b	lbB00053C(PC,D0.W),D1
	move.w	D1,lbW000112
	cmp.w	#3,lbW000114
	beq.s	lbC0004E8
	move.w	D1,D0
lbC0004E8	move.w	D0,lbW00010E
	move.w	2(A0),lbW00011C
	move.w	4(A0),D0
	move.w	D0,8(A5)
	move.w	D0,$10(A5)
	move.w	#1,(A5)
	move.w	6(A0),D0
	move.w	D0,10(A5)
	move.w	D0,$12(A5)
	move.w	#1,2(A5)
	move.w	8(A0),D0
	move.w	D0,12(A5)
	move.w	D0,$14(A5)
	move.w	#1,4(A5)
	move.w	#2,lbW000116
lbC000534	move.l	A0,lbL000118
lbC00053A	rts

lbB00053C	dc.b	0,1,2,4,5,6,7,9,10,11,12,0




;----------------------------------------
; Change de note ?

lbC0005BC	tst.w	$10(A5)
	beq	lbC0006BE
	subq.w	#1,(A5)
	bne	lbC0006BE
	move.l	lbL000118,A4
	move.w	$10(A5),D6
lbC0005D8	clr.w	D0
	move.b	0(A4,D6.W),D0
	addq.w	#1,D6
	cmp.b	#$FF,D0
	bne.s	lbC000600
	tst.w	lbW00011C
	beq.s	lbC0005FA
	move.w	8(A5),D6
	bra.s	lbC0005D8

lbC0005FA	clr.w	$10(A5)
	rts

lbC000600	cmp.w	#$64,D0
	bcc.s	lbC000624
	move.w	D0,D3
	move.w	D7,D0
	move.w	$28(A5),D1
	move.w	#1,D2
	movem.l	D6/D7/A2/A4-A6,-(SP)
	bsr	lbC0001AC
	movem.l	(SP)+,D6/D7/A2/A4-A6
	bra.s	lbC0005D8

lbC000624	cmp.w	#$80,D0
	bcs.s	lbC0005D8
	cmp.w	#$A0,D0
	bcc.s	lbC000640
	and.w	#$1F,D0
	move.w	D0,$28(A5)
	bra.s	lbC0005D8

lbC000640	bne.s	lbC000656
	subq.w	#1,$20(A5)
	bmi.s	lbC0005D8
	move.w	$18(A5),D6
	bra.s	lbC0005D8

lbC000656	cmp.w	#$B0,D0
	bcc.s	lbC00066E
	and.w	#15,D0
	move.w	D0,$20(A5)
	move.w	D6,$18(A5)
	bra.s	lbC0005D8

lbC00066E	cmp.w	#$D0,D0
	bcc.s	lbC0006A6
	sub.w	#$B0,D0
	move.w	D0,D1
	move.w	D7,D0
	move.w	#$FFFF,D3
	move.w	#3,D2
	movem.l	D6/D7/A2/A4-A6,-(SP)
	movem.w	D1-D3,-(SP)
	bsr	lbC0001AC
	movem.w	(SP)+,D1-D3
	move.w	#3,D0
	bsr	lbC0001AC
	movem.l	(SP)+,D6/D7/A2/A4-A6
	bra	lbC0005D8

lbC0006A6	cmp.w	#$F0,D0
	bcc	lbC0005D8
	sub.w	#$D0,D0
	addq.w	#1,D0
	move.w	D0,(A5)
	move.w	D6,$10(A5)
lbC0006BE	rts



;----------------------------------------
; Données de la replay

l2313E					; $2313e, 1500 octets
	incbin	b:Nebulus/Nebulus.sng

Song1	=	l2313E			; Intro
Song2	=	l2313E-$2313E+$235F0	; In Game
Song3	=	l2313E-$2313E+$23614	; Get Ready
Song4	=	l2313E-$2313E+$23638	; Game Over
Song5	=	l2313E-$2313E+$23696	; Stage Completed


SongsAdr
	dc.l	Song1,Song2,Song3,Song4,Song5


l2370A					; 24 samples, start et len
	dc.w	$18			; seuls 9 samples servent réellement
	dc.l	smp_0,$00888		; $c2
	dc.l	smp_1,$02008		; $94a
	dc.l	smp_2,$02008		; $2952
	dc.l	$0495A,$02008		; inutilisé
	dc.l	$06962,$01308		; inutilisé
	dc.l	$07C6A,$00E08		; inutilisé
	dc.l	$08A72,$01F08		; inutilisé
	dc.l	smp_7,$02008		; $a97a
	dc.l	smp_8,$02008		; $c982
	dc.l	smp_9,$02008		; $e98a
	dc.l	$10992,$00A08		; inutilisé
	dc.l	smp_b,$02008		; $1139a
	dc.l	smp_c,$02008		; $133a2
	dc.l	$153AA,$02008		; inutilisé
	dc.l	$173B2,$00588		; inutilisé
	dc.l	$1793A,$00B28		; inutilisé
	dc.l	smp_10,$00888		; $18462
	dc.l	$18CEA,$01028		; inutilisé
	dc.l	$19D12,$00708		; inutilisé
	dc.l	$1A41A,$00F28		; inutilisé
	dc.l	$1B342,$01508		; inutilisé
	dc.l	$1C84A,$01008		; inutilisé
	dc.l	$1D852,$02208		; inutilisé
	dc.l	$1FA5A,$02008		; inutilisé



;-----------------------------------------------------------------------
; Données en CHIP


	section Samples,data_c

EmptySample				; lbL0003B0
	dcb.l	2,0

smp_0		incbin	b:Nebulus/0.smp
smp_1		incbin	b:Nebulus/1.smp
smp_2		incbin	b:Nebulus/2.smp
smp_7		incbin	b:Nebulus/7.smp
smp_8		incbin	b:Nebulus/8.smp
smp_9		incbin	b:Nebulus/9.smp
smp_b		incbin	b:Nebulus/b.smp
smp_c		incbin	b:Nebulus/c.smp
smp_10		incbin	b:Nebulus/10.smp



;-----------------------------------------------------------------------
; END
	end

