You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
Probably should have specified: I'm wondering whether it would make more sense to just fix those bits in the improved copies, kind of like what was done to sound $BC in Sonic 1 (in which another bit was removed that the game ignores).
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):
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.
The text was updated successfully, but these errors were encountered: