Skip to content

SMPS2ASM: vcUnusedBits #19

Description

@Brainulator9

Looking at the Hidden Palace source code dump, I'm inclined to believe that tracks whose voices set the unused bits do so in error. Here's what I found on the 68000 version's dump, in a file called "mdmcr11.lib" (the Z80 version uses substantially the same code):

;=======================================;
;		FM VOICE		;
;=======================================;
;	CNF	ALG,FBK
;	MD	M1,D1,M2,D2,M3,D3,M4,D4
;	TL	T1,T2,T3,T4
;	RSAR	X1,X2,X3,X4
;	D1R	X1,X2,X3,X4
;	D2R	X1,X2,X3,X4
;	RRL	R1,DL1,R2,DL2,R3,DL3,R4,DL4

;----------------< CNF >----------------;
CNF	MACRO	ALG,FBK
cnect	set	ALG
	DB	ALG+FBK*8
	ENDM
;----------------< MD >-----------------;
MD	MACRO	M1,D1,M2,D2,M3,D3,M4,D4
	DB	D1*10H+M1,D2*10H+M2
	DB	D3*10H+M3,D4*10H+M4
	ENDM
;----------------< TL >-----------------;
TL	MACRO	T1,T2,T3,T4
	ifz	cnect
	db	T1,T2,T3,T4.or.80h
	endif
	ifz	cnect-1
	db	T1,T2,T3,T4.or.80h
	endif
	ifz	cnect-2
	db	T1,T2,T3,T4.or.80h
	endif
	ifz	cnect-3
	db	T1,T2,T3,T4.or.80h
	endif
	ifz	cnect-4
	db	T1,T2.or.80h,T3,T4.or.80h
	endif
	ifz	cnect-5
	db	T1,T2.or.80h,T3.or.80h,T4.or.80h
	endif
	ifz	cnect-6
	db	T1,T2.or.80h,T3.or.80h,T4.or.80h
	endif
	ifz	cnect-7
	db	T1.or.80h,T2.or.80h,T3.or.80h,T4.or.80h
	endif
	ENDM
;----------------< RSAR >---------------;
RSAR	MACRO	K1,A1,K2,A2,K3,A3,K4,A4
	DB	K1*40H+A1,K2*40H+A2,K3*40H+A3,K4*40H+A4
	ENDM
;----------------< D1R >----------------;
D1R	MACRO	X1,X2,X3,X4
	DB	X1,X2,X3,X4
	ENDM
;----------------< D2R >----------------;
D2R	MACRO	X1,X2,X3,X4
	DB	X1,X2,X3,X4
	ENDM
;----------------< RRL >----------------;
RRL	MACRO	R1,DL1,R2,DL2,R3,DL3,R4,DL4
	DB	R1+DL1*10H,R2+DL2*10H
	DB	R3+DL3*10H,R4+DL4*10H
	ENDM

The fact that D1R (the first delay rate, which also encompasses the AM bits...) is implemented as just 4 byte writes, with no other math involved, leads me to believe that, for instance, a value of $24 for one of the operators in Oil Ocean Zone's music was just a mistake.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions