|
|
Line 1: |
Line 1: |
− | {{GuideBy|Kram1024}}
| |
| | | |
− | You probably saw a quick and dirty way to do this on SSRG, but lets do it the proper way, the way that sonic team would do it.
| |
− |
| |
− | ==Overview==
| |
− | First off, Sonic 3's sound driver has the V_Int reloader built into it so it is not needed, some routines need replacement, sounds need fixing, and we need to replace the sounds and music. We will be using the hivebrain version, if you wish to do it via svn version, I am sure you can come up with a way that works by seeing what changes I made in the hivebrain version.
| |
− |
| |
− | ==Preparing to use Sonic 3/K/3K sound system==
| |
− | The Vertical Interrupt and Horizontal Interrupt need to be fixed, since the sonic 1/2 system uses them but the Sonic 3/K/3K system doesn't.
| |
− |
| |
− | ===Removal of master V_Int branch to s1driver point===
| |
− | first we will fix the vertical interrupt, by changing:
| |
− | <asm>
| |
− | loc_B5E: ; XREF: loc_B88
| |
− | jsr (sub_71B4C).l
| |
− | </asm>
| |
− |
| |
− | to:
| |
− | <asm>
| |
− | loc_B5E: ; XREF: loc_B88
| |
− | nop
| |
− | </asm>
| |
− |
| |
− | ===Removal of H_Int branch point to s1driver===
| |
− | Now we locate:
| |
− | <asm>
| |
− | loc_119E: ; XREF: PalToCRAM
| |
− | clr.b ($FFFFF64F).w
| |
− | movem.l d0-a6,-(sp)
| |
− | bsr.w Demo_Time
| |
− | jsr (sub_71B4C).l
| |
− | movem.l (sp)+,d0-a6
| |
− | rte
| |
− | ; End of function PalToCRAM
| |
− | </asm>
| |
− | See another familiar line? Yes, you've got it, do the same thing to it:
| |
− | <asm>
| |
− | loc_119E: ; XREF: PalToCRAM
| |
− | clr.b ($FFFFF64F).w
| |
− | movem.l d0-a6,-(sp)
| |
− | bsr.w Demo_Time
| |
− | nop
| |
− | movem.l (sp)+,d0-a6
| |
− | rte
| |
− | ; End of function PalToCRAM
| |
− | </asm>
| |
− | That effectively disables the sonic1 style v_int and h_int driver reloading that we will not need and prevents a nasty error down the road.
| |
− |
| |
− | ==Upgrading the Load Driver Routine==
| |
− | Okay, we disabled the sonic1 driver junk, wouldn't we want now to use the sonic3 driver instead? Here is where we start installing it. Locate:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to load the sound driver
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | SoundDriverLoad: ; XREF: GameClrRAM; TitleScreen
| |
− | nop
| |
− | move.w #$100,($A11100).l ; stop the Z80
| |
− | move.w #$100,($A11200).l ; reset the Z80
| |
− | lea (Kos_Z80).l,a0 ; load sound driver
| |
− | lea ($A00000).l,a1
| |
− | bsr.w KosDec ; decompress
| |
− | move.w #0,($A11200).l
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | move.w #$100,($A11200).l ; reset the Z80
| |
− | move.w #0,($A11100).l ; start the Z80
| |
− | rts
| |
− | ; End of function SoundDriverLoad
| |
− | </asm>
| |
− |
| |
− | and replace it all with:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to load the sound driver
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− | SoundDriverLoad: ; XREF: GameClrRAM; TitleScreen
| |
− | nop
| |
− | move.w #$100,($A11100).l ; Z80 bus request - Start
| |
− | move.w #$100,($A11200).l ; Z80 stop reset
| |
− | lea (DriverData).l,a0
| |
− | lea ($A00000).l,a1
| |
− | move.w #DriverDataEnd-DriverData,d0
| |
− |
| |
− | DriverLoadLoop:
| |
− | move.b (a0)+,(a1)+
| |
− | dbf d0,DriverLoadLoop
| |
− | lea (DriverPointers).l,a0
| |
− | lea ($A01300).l,a1
| |
− | move.w #DriverPointersEnd-DriverPointers,d0
| |
− |
| |
− | DriverPointersLoadLoop:
| |
− | move.b (a0)+,(a1)+
| |
− | dbf d0, DriverPointersLoadLoop
| |
− | lea (UniversalVoiceBank).l,a0
| |
− | lea ($A017D8).l,a1
| |
− | move.w #UniversalVoiceBankEnd-UniversalVoiceBank,d0
| |
− |
| |
− | UniversalVoiceBankLoadLoop:
| |
− | move.b (a0)+,(a1)+
| |
− | dbf d0,UniversalVoiceBankLoadLoop
| |
− | lea (DriverResetData).l,a0
| |
− | lea ($A01C00).l,a1
| |
− | move.w #DriverResetDataEnd-DriverResetData,d0
| |
− |
| |
− | DriverResetDataLoadLoop:
| |
− | move.b (a0)+,(a1)+
| |
− | dbf d0,DriverResetDataLoadLoop
| |
− | btst #6,($FFFFFFF8).w
| |
− | beq.s DriverAlreadyInitialized
| |
− | move.b #1,($A01C02).l
| |
− |
| |
− | DriverAlreadyInitialized:
| |
− | move.w #0,($A11200).l
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | move.w #$100,($A11200).l ; Z80 start reset
| |
− | move.w #0,($A11100).l ; Z80 bus request - Stop
| |
− | rts
| |
− | ; End of function SoundDriverLoad
| |
− |
| |
− | DriverResetData:
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | DriverResetDataEnd:
| |
− | </asm>
| |
− |
| |
− | ==Upgrading the Playback Routines==
| |
− | Now we have the code to load the new driver, time to add the new playback routines.
| |
− |
| |
− | ===Upgrade Music Routine===
| |
− | First the PlaySound routine, locate:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to play a sound or music track
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | PlaySound:
| |
− | move.b d0,($FFFFF00A).w
| |
− | rts
| |
− | ; End of function PlaySound
| |
− | </asm>
| |
− |
| |
− | and replace it completely with:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to play a sound or music track
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | PlaySound:
| |
− | cmpi.w #$FB,d0
| |
− | blt.s PlayNotSpecialFlag
| |
− | bhi.s TestForNormalSpeed
| |
− | move #8,d0
| |
− | jmp SetTempo
| |
− |
| |
− | TestForNormalSpeed:
| |
− | cmpi.w #$FC,d0
| |
− | bne.s PlayNotSpecialFlag
| |
− | clr.w d0
| |
− | jmp SetTempo
| |
− |
| |
− | PlayNotSpecialFlag:
| |
− | move.w #$100,($A11100).l
| |
− |
| |
− | PlaySoundZ80NotStopped:
| |
− | btst #0,($A11100).l
| |
− | bne.s PlaySoundZ80NotStopped ; loop until it says it's stopped
| |
− | move.b d0,($A01C0A).l
| |
− | move.w #0,($A11100).l
| |
− | rts
| |
− | ; End of function PlaySound
| |
− |
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Exclusive sound/music subroutine
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | PlaySound_Ex:
| |
− | tst.b 4(A0)
| |
− | bpl.s SkipPlaySound_Special
| |
− | </asm>
| |
− |
| |
− | ===Upgrade Sound Effects routines===
| |
− | Now we will replace that unused routine with something more appropriate as well as upgrade the PlaySound_Special routine, find:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to play a special sound/music (E0-E4)
| |
− | ;
| |
− | ; E0 - Fade out
| |
− | ; E1 - Sega
| |
− | ; E2 - Speed up
| |
− | ; E3 - Normal speed
| |
− | ; E4 - Stop
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | PlaySound_Special:
| |
− | move.b d0,($FFFFF00B).w
| |
− | rts
| |
− | ; End of function PlaySound_Special
| |
− |
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Unused sound/music subroutine
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | PlaySound_Unk:
| |
− | move.b d0,($FFFFF00C).w
| |
− | rts
| |
− | </asm>
| |
− |
| |
− | and replace it entirely with:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Unused sound/music subroutine
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | PlaySound_Unk:
| |
− | nop
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to play a special sound/music (FB-FF)
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | PlaySound_Special:
| |
− | move.w #$100,($A11100).l
| |
− |
| |
− | PlaySound_SpecialZ80NotStopped:
| |
− | btst #0,($A11100).l
| |
− | bne.s PlaySound_SpecialZ80NotStopped
| |
− | cmp.b ($A01C0B).l,d0
| |
− | beq.s PlaySound_Special1
| |
− | tst.b ($A01C0B).l
| |
− | bne.s PlaySound_Special0
| |
− | move.b d0,($A01C0B).l
| |
− | move.w #0,($A11100).l
| |
− | rts
| |
− |
| |
− | PlaySound_Special0:
| |
− | move.b d0,($A01C0C).l
| |
− |
| |
− | PlaySound_Special1:
| |
− | move.w #0,($A11100).l
| |
− |
| |
− | SkipPlaySound_Special:
| |
− | rts
| |
− | ; End of function PlaySound_Special
| |
− |
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to change the music tempo
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | SetTempo:
| |
− | move.w #$100,($A11100).l
| |
− |
| |
− | SetTempoZ80NotStopped:
| |
− | btst #0,($A11100).l
| |
− | bne.s SetTempoZ80NotStopped
| |
− | move.b D0,($A01C08).l
| |
− | move.w #0,($A11100).l
| |
− | rts
| |
− | </asm>
| |
− |
| |
− | ==Upgrading Pause / Resume routines==
| |
− | Now the playback routines are fixed and we have a routine to set the tempo the way the sneakers do, which we will elaberate later on, but we still have to update the pause / resume routines to the sonic 3 equivilents.
| |
− |
| |
− | Find:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to pause the game
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | PauseGame: ; XREF: Level_MainLoop; et al
| |
− | nop
| |
− | tst.b ($FFFFFE12).w ; do you have any lives left?
| |
− | beq.s Unpause ; if not, branch
| |
− | tst.w ($FFFFF63A).w ; is game already paused?
| |
− | bne.s loc_13BE ; if yes, branch
| |
− | btst #7,($FFFFF605).w ; is Start button pressed?
| |
− | beq.s Pause_DoNothing ; if not, branch
| |
− |
| |
− | loc_13BE:
| |
− | move.w #1,($FFFFF63A).w ; freeze time
| |
− | move.b #1,($FFFFF003).w ; pause music
| |
− |
| |
− | loc_13CA:
| |
− | move.b #$10,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | tst.b ($FFFFFFE1).w ; is slow-motion cheat on?
| |
− | beq.s Pause_ChkStart ; if not, branch
| |
− | btst #6,($FFFFF605).w ; is button A pressed?
| |
− | beq.s Pause_ChkBC ; if not, branch
| |
− | move.b #4,($FFFFF600).w ; set game mode to 4 (title screen)
| |
− | nop
| |
− | bra.s loc_1404
| |
− | ; ===========================================================================
| |
− |
| |
− | Pause_ChkBC: ; XREF: PauseGame
| |
− | btst #4,($FFFFF604).w ; is button B pressed?
| |
− | bne.s Pause_SlowMo ; if yes, branch
| |
− | btst #5,($FFFFF605).w ; is button C pressed?
| |
− | bne.s Pause_SlowMo ; if yes, branch
| |
− |
| |
− | Pause_ChkStart: ; XREF: PauseGame
| |
− | btst #7,($FFFFF605).w ; is Start button pressed?
| |
− | beq.s loc_13CA ; if not, branch
| |
− |
| |
− | loc_1404: ; XREF: PauseGame
| |
− | move.b #$80,($FFFFF003).w
| |
− |
| |
− | Unpause: ; XREF: PauseGame
| |
− | move.w #0,($FFFFF63A).w ; unpause the game
| |
− |
| |
− | Pause_DoNothing: ; XREF: PauseGame
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | Pause_SlowMo: ; XREF: PauseGame
| |
− | move.w #1,($FFFFF63A).w
| |
− | move.b #$80,($FFFFF003).w
| |
− | rts
| |
− | ; End of function PauseGame
| |
− | </asm>
| |
− |
| |
− | and replace it completely with:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to pause the game
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | PauseGame: ; XREF: Level_MainLoop; et al
| |
− | nop
| |
− | tst.b ($FFFFFE12).w
| |
− | beq Unpause
| |
− | tst.w ($FFFFF63A).w
| |
− | bne.s PauseGame_AlreadyPaused
| |
− | move.b ($FFFFF605).w,d0
| |
− | or.b ($FFFFF607).w,d0
| |
− | andi.b #$80,d0
| |
− | beq Pause_DoNothing
| |
− |
| |
− | PauseGame_AlreadyPaused:
| |
− | move.w #1,($FFFFF63A).w
| |
− | move.w #$100,($A11100).l
| |
− |
| |
− | PauseGameZ80NotStopped:
| |
− | btst #0,($A11100).l
| |
− | bne.s PauseGameZ80NotStopped
| |
− | move.b #1,($A01C10).l
| |
− | move.w #0,($A11100).l
| |
− |
| |
− | PauseGameLoop:
| |
− | move.b #$10,($FFFFF62A).w
| |
− | jsr DelayProgram
| |
− | tst.b ($FFFFFFE1).w ; Edit: the value is $FFFFFFE1 in Sonic 1
| |
− | beq.s Pause_ChkStart
| |
− | btst #6,($FFFFF605).w
| |
− | beq.s Pause_ChkBC
| |
− | move.b #$4,($FFFFF600).w ; Go To Title Screen
| |
− | nop
| |
− | bra.s PauseGame1
| |
− |
| |
− | Pause_ChkBC:
| |
− | btst #4,($FFFFF604).w
| |
− | bne.s Pause_SlowMo
| |
− | btst #5,($FFFFF605).w
| |
− | bne.s Pause_SlowMo
| |
− |
| |
− | Pause_ChkStart:
| |
− | cmpi.b #$E,($FFFFFE10).w
| |
− | bcs.s PauseGame0
| |
− | cmpi.b #$12,($FFFFFE10).w
| |
− | bhi.s PauseGame0
| |
− | tst.b ($FFFFFF8B).w
| |
− | bpl.s PauseGame0
| |
− | btst #4,($FFFFF605).w
| |
− | beq.s PauseGame0
| |
− | move.b #$C0,($FFFFF600).w
| |
− | bra.s PauseGame1
| |
− |
| |
− | PauseGame0:
| |
− | move.b ($FFFFF605).w,d0
| |
− | or.b ($FFFFF607).w,d0
| |
− | andi.b #$80,d0
| |
− | beq.s PauseGameLoop
| |
− |
| |
− | PauseGame1:
| |
− | move.w #$100,($A11100).l
| |
− |
| |
− | Pause_ChkStartZ80NotStopped:
| |
− | btst #0,($A11100).l
| |
− | bne.s Pause_ChkStartZ80NotStopped
| |
− | move.b #$80,($A01C10).l
| |
− | move.w #0,($A11100).l
| |
− |
| |
− | Unpause:
| |
− | move.w #0,($FFFFF63A).w
| |
− |
| |
− | Pause_DoNothing:
| |
− | rts
| |
− |
| |
− | Pause_SlowMo:
| |
− | move.w #1,($FFFFF63A).w
| |
− | move.w #$100,($A11100).l
| |
− |
| |
− | Pause_SlowMoZ80NotStopped:
| |
− | btst #0,($A11100).l
| |
− | bne.s Pause_SlowMoZ80NotStopped
| |
− | move.b #$80,($A01C10).l
| |
− | move.w #0,($A11100).l
| |
− | rts
| |
− | ; End of function PauseGame
| |
− | </asm>
| |
− |
| |
− | ==Replacing 68k driver with new Z80 driver==
| |
− | We need the sound driver itself if we are going to have any sound and music, so we locate:
| |
− | <asm>
| |
− | align 2
| |
− |
| |
− | Go_SoundTypes: dc.l SoundTypes ; XREF: Sound_Play
| |
− | Go_SoundD0: dc.l SoundD0Index ; XREF: Sound_D0toDF
| |
− | Go_MusicIndex: dc.l MusicIndex ; XREF: Sound_81to9F
| |
− | Go_SoundIndex: dc.l SoundIndex ; XREF: Sound_A0toCF
| |
− | off_719A0: dc.l byte_71A94 ; XREF: Sound_81to9F
| |
− | Go_PSGIndex: dc.l PSG_Index ; XREF: sub_72926
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; PSG instruments used in music
| |
− | ; ---------------------------------------------------------------------------
| |
− | PSG_Index: dc.l PSG1, PSG2, PSG3
| |
− | dc.l PSG4, PSG5, PSG6
| |
− | dc.l PSG7, PSG8, PSG9
| |
− | PSG1: binclude sound\psg1.bin
| |
− | PSG2: binclude sound\psg2.bin
| |
− | PSG3: binclude sound\psg3.bin
| |
− | PSG4: binclude sound\psg4.bin
| |
− | PSG6: binclude sound\psg6.bin
| |
− | PSG5: binclude sound\psg5.bin
| |
− | PSG7: binclude sound\psg7.bin
| |
− | PSG8: binclude sound\psg8.bin
| |
− | PSG9: binclude sound\psg9.bin
| |
− |
| |
− | byte_71A94: dc.b 7, $72, $73, $26, $15, 8, $FF, 5
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Music Pointers
| |
− | ; ---------------------------------------------------------------------------
| |
− | MusicIndex: dc.l Music81, Music82
| |
− | dc.l Music83, Music84
| |
− | dc.l Music85, Music86
| |
− | dc.l Music87, Music88
| |
− | dc.l Music89, Music8A
| |
− | dc.l Music8B, Music8C
| |
− | dc.l Music8D, Music8E
| |
− | dc.l Music8F, Music90
| |
− | dc.l Music91, Music92
| |
− | dc.l Music93
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Type of sound being played ($90 = music; $70 = normal sound effect)
| |
− | ; ---------------------------------------------------------------------------
| |
− | SoundTypes: dc.b $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90
| |
− | dc.b $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $90, $80
| |
− | dc.b $70, $70, $70, $70, $70, $70, $70, $70, $70, $68, $70, $70, $70, $60, $70, $70
| |
− | dc.b $60, $70, $60, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $7F, $60
| |
− | dc.b $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $70, $80
| |
− | dc.b $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80, $90
| |
− | dc.b $90, $90, $90, $90
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71B4C: ; XREF: loc_B10; PalToCRAM
| |
− | move.w #$100,($A11100).l ; stop the Z80
| |
− | nop
| |
− | nop
| |
− | nop
| |
− |
| |
− | loc_71B5A:
| |
− | btst #0,($A11100).l
| |
− | bne.s loc_71B5A
| |
− |
| |
− | btst #7,($A01FFD).l
| |
− | beq.s loc_71B82
| |
− | move.w #0,($A11100).l ; start the Z80
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | nop
| |
− | bra.s sub_71B4C
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71B82:
| |
− | lea ($FFF000).l,a6
| |
− | clr.b $E(a6)
| |
− | tst.b 3(a6) ; is music paused?
| |
− | bne.w loc_71E50 ; if yes, branch
| |
− | subq.b #1,1(a6)
| |
− | bne.s loc_71B9E
| |
− | jsr sub_7260C(pc)
| |
− |
| |
− | loc_71B9E:
| |
− | move.b 4(a6),d0
| |
− | beq.s loc_71BA8
| |
− | jsr sub_72504(pc)
| |
− |
| |
− | loc_71BA8:
| |
− | tst.b $24(a6)
| |
− | beq.s loc_71BB2
| |
− | jsr sub_7267C(pc)
| |
− |
| |
− | loc_71BB2:
| |
− | tst.w $A(a6) ; is music or sound being played?
| |
− | beq.s loc_71BBC ; if not, branch
| |
− | jsr Sound_Play(pc)
| |
− |
| |
− | loc_71BBC:
| |
− | cmpi.b #$80,9(a6)
| |
− | beq.s loc_71BC8
| |
− | jsr Sound_ChkValue(pc)
| |
− |
| |
− | loc_71BC8:
| |
− | lea $40(a6),a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71BD4
| |
− | jsr sub_71C4E(pc)
| |
− |
| |
− | loc_71BD4:
| |
− | clr.b 8(a6)
| |
− | moveq #5,d7
| |
− |
| |
− | loc_71BDA:
| |
− | adda.w #$30,a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71BE6
| |
− | jsr sub_71CCA(pc)
| |
− |
| |
− | loc_71BE6:
| |
− | dbf d7,loc_71BDA
| |
− |
| |
− | moveq #2,d7
| |
− |
| |
− | loc_71BEC:
| |
− | adda.w #$30,a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71BF8
| |
− | jsr sub_72850(pc)
| |
− |
| |
− | loc_71BF8:
| |
− | dbf d7,loc_71BEC
| |
− |
| |
− | move.b #$80,$E(a6)
| |
− | moveq #2,d7
| |
− |
| |
− | loc_71C04:
| |
− | adda.w #$30,a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71C10
| |
− | jsr sub_71CCA(pc)
| |
− |
| |
− | loc_71C10:
| |
− | dbf d7,loc_71C04
| |
− |
| |
− | moveq #2,d7
| |
− |
| |
− | loc_71C16:
| |
− | adda.w #$30,a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71C22
| |
− | jsr sub_72850(pc)
| |
− |
| |
− | loc_71C22:
| |
− | dbf d7,loc_71C16
| |
− | move.b #$40,$E(a6)
| |
− | adda.w #$30,a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71C38
| |
− | jsr sub_71CCA(pc)
| |
− |
| |
− | loc_71C38:
| |
− | adda.w #$30,a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_71C44
| |
− | jsr sub_72850(pc)
| |
− |
| |
− | loc_71C44:
| |
− | move.w #0,($A11100).l ; start the Z80
| |
− | rts
| |
− | ; End of function sub_71B4C
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71C4E: ; XREF: sub_71B4C
| |
− | subq.b #1,$E(a5)
| |
− | bne.s locret_71CAA
| |
− | move.b #$80,8(a6)
| |
− | movea.l 4(a5),a4
| |
− |
| |
− | loc_71C5E:
| |
− | moveq #0,d5
| |
− | move.b (a4)+,d5
| |
− | cmpi.b #-$20,d5
| |
− | bcs.s loc_71C6E
| |
− | jsr sub_72A5A(pc)
| |
− | bra.s loc_71C5E
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71C6E:
| |
− | tst.b d5
| |
− | bpl.s loc_71C84
| |
− | move.b d5,$10(a5)
| |
− | move.b (a4)+,d5
| |
− | bpl.s loc_71C84
| |
− | subq.w #1,a4
| |
− | move.b $F(a5),$E(a5)
| |
− | bra.s loc_71C88
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71C84:
| |
− | jsr sub_71D40(pc)
| |
− |
| |
− | loc_71C88:
| |
− | move.l a4,4(a5)
| |
− | btst #2,(a5)
| |
− | bne.s locret_71CAA
| |
− | moveq #0,d0
| |
− | move.b $10(a5),d0
| |
− | cmpi.b #$80,d0
| |
− | beq.s locret_71CAA
| |
− | btst #3,d0
| |
− | bne.s loc_71CAC
| |
− | move.b d0,($A01FFF).l
| |
− |
| |
− | locret_71CAA:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71CAC:
| |
− | subi.b #$88,d0
| |
− | move.b byte_71CC4(pc,d0.w),d0
| |
− | move.b d0,($A000EA).l
| |
− | move.b #$83,($A01FFF).l
| |
− | rts
| |
− | ; End of function sub_71C4E
| |
− |
| |
− | ; ===========================================================================
| |
− | byte_71CC4: dc.b $12, $15, $1C, $1D, $FF, $FF
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71CCA: ; XREF: sub_71B4C
| |
− | subq.b #1,$E(a5)
| |
− | bne.s loc_71CE0
| |
− | bclr #4,(a5)
| |
− | jsr sub_71CEC(pc)
| |
− | jsr sub_71E18(pc)
| |
− | bra.w loc_726E2
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71CE0:
| |
− | jsr sub_71D9E(pc)
| |
− | jsr sub_71DC6(pc)
| |
− | bra.w loc_71E24
| |
− | ; End of function sub_71CCA
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71CEC: ; XREF: sub_71CCA
| |
− | movea.l 4(a5),a4
| |
− | bclr #1,(a5)
| |
− |
| |
− | loc_71CF4:
| |
− | moveq #0,d5
| |
− | move.b (a4)+,d5
| |
− | cmpi.b #-$20,d5
| |
− | bcs.s loc_71D04
| |
− | jsr sub_72A5A(pc)
| |
− | bra.s loc_71CF4
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71D04:
| |
− | jsr sub_726FE(pc)
| |
− | tst.b d5
| |
− | bpl.s loc_71D1A
| |
− | jsr sub_71D22(pc)
| |
− | move.b (a4)+,d5
| |
− | bpl.s loc_71D1A
| |
− | subq.w #1,a4
| |
− | bra.w sub_71D60
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71D1A:
| |
− | jsr sub_71D40(pc)
| |
− | bra.w sub_71D60
| |
− | ; End of function sub_71CEC
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71D22: ; XREF: sub_71CEC
| |
− | subi.b #$80,d5
| |
− | beq.s loc_71D58
| |
− | add.b 8(a5),d5
| |
− | andi.w #$7F,d5
| |
− | lsl.w #1,d5
| |
− | lea word_72790(pc),a0
| |
− | move.w (a0,d5.w),d6
| |
− | move.w d6,$10(a5)
| |
− | rts
| |
− | ; End of function sub_71D22
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71D40: ; XREF: sub_71C4E; sub_71CEC; sub_72878
| |
− | move.b d5,d0
| |
− | move.b 2(a5),d1
| |
− |
| |
− | loc_71D46:
| |
− | subq.b #1,d1
| |
− | beq.s loc_71D4E
| |
− | add.b d5,d0
| |
− | bra.s loc_71D46
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71D4E:
| |
− | move.b d0,$F(a5)
| |
− | move.b d0,$E(a5)
| |
− | rts
| |
− | ; End of function sub_71D40
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71D58: ; XREF: sub_71D22
| |
− | bset #1,(a5)
| |
− | clr.w $10(a5)
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71D60: ; XREF: sub_71CEC; sub_72878; sub_728AC
| |
− | move.l a4,4(a5)
| |
− | move.b $F(a5),$E(a5)
| |
− | btst #4,(a5)
| |
− | bne.s locret_71D9C
| |
− | move.b $13(a5),$12(a5)
| |
− | clr.b $C(a5)
| |
− | btst #3,(a5)
| |
− | beq.s locret_71D9C
| |
− | movea.l $14(a5),a0
| |
− | move.b (a0)+,$18(a5)
| |
− | move.b (a0)+,$19(a5)
| |
− | move.b (a0)+,$1A(a5)
| |
− | move.b (a0)+,d0
| |
− | lsr.b #1,d0
| |
− | move.b d0,$1B(a5)
| |
− | clr.w $1C(a5)
| |
− |
| |
− | locret_71D9C:
| |
− | rts
| |
− | ; End of function sub_71D60
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71D9E: ; XREF: sub_71CCA; sub_72850
| |
− | tst.b $12(a5)
| |
− | beq.s locret_71DC4
| |
− | subq.b #1,$12(a5)
| |
− | bne.s locret_71DC4
| |
− | bset #1,(a5)
| |
− | tst.b 1(a5)
| |
− | bmi.w loc_71DBE
| |
− | jsr sub_726FE(pc)
| |
− | addq.w #4,sp
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71DBE:
| |
− | jsr sub_729A0(pc)
| |
− | addq.w #4,sp
| |
− |
| |
− | locret_71DC4:
| |
− | rts
| |
− | ; End of function sub_71D9E
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71DC6: ; XREF: sub_71CCA; sub_72850
| |
− | addq.w #4,sp
| |
− | btst #3,(a5)
| |
− | beq.s locret_71E16
| |
− | tst.b $18(a5)
| |
− | beq.s loc_71DDA
| |
− | subq.b #1,$18(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71DDA:
| |
− | subq.b #1,$19(a5)
| |
− | beq.s loc_71DE2
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71DE2:
| |
− | movea.l $14(a5),a0
| |
− | move.b 1(a0),$19(a5)
| |
− | tst.b $1B(a5)
| |
− | bne.s loc_71DFE
| |
− | move.b 3(a0),$1B(a5)
| |
− | neg.b $1A(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71DFE:
| |
− | subq.b #1,$1B(a5)
| |
− | move.b $1A(a5),d6
| |
− | ext.w d6
| |
− | add.w $1C(a5),d6
| |
− | move.w d6,$1C(a5)
| |
− | add.w $10(a5),d6
| |
− | subq.w #4,sp
| |
− |
| |
− | locret_71E16:
| |
− | rts
| |
− | ; End of function sub_71DC6
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_71E18: ; XREF: sub_71CCA
| |
− | btst #1,(a5)
| |
− | bne.s locret_71E48
| |
− | move.w $10(a5),d6
| |
− | beq.s loc_71E4A
| |
− |
| |
− | loc_71E24: ; XREF: sub_71CCA
| |
− | move.b $1E(a5),d0
| |
− | ext.w d0
| |
− | add.w d0,d6
| |
− | btst #2,(a5)
| |
− | bne.s locret_71E48
| |
− | move.w d6,d1
| |
− | lsr.w #8,d1
| |
− | move.b #-$5C,d0
| |
− | jsr sub_72722(pc)
| |
− | move.b d6,d1
| |
− | move.b #-$60,d0
| |
− | jsr sub_72722(pc)
| |
− |
| |
− | locret_71E48:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71E4A:
| |
− | bset #1,(a5)
| |
− | rts
| |
− | ; End of function sub_71E18
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71E50: ; XREF: sub_71B4C
| |
− | bmi.s loc_71E94
| |
− | cmpi.b #2,3(a6)
| |
− | beq.w loc_71EFE
| |
− | move.b #2,3(a6)
| |
− | moveq #2,d3
| |
− | move.b #-$4C,d0
| |
− | moveq #0,d1
| |
− |
| |
− | loc_71E6A:
| |
− | jsr sub_7272E(pc)
| |
− | jsr sub_72764(pc)
| |
− | addq.b #1,d0
| |
− | dbf d3,loc_71E6A
| |
− |
| |
− | moveq #2,d3
| |
− | moveq #$28,d0
| |
− |
| |
− | loc_71E7C:
| |
− | move.b d3,d1
| |
− | jsr sub_7272E(pc)
| |
− | addq.b #4,d1
| |
− | jsr sub_7272E(pc)
| |
− | dbf d3,loc_71E7C
| |
− |
| |
− | jsr sub_729B6(pc)
| |
− | bra.w loc_71C44
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71E94: ; XREF: loc_71E50
| |
− | clr.b 3(a6)
| |
− | moveq #$30,d3
| |
− | lea $40(a6),a5
| |
− | moveq #6,d4
| |
− |
| |
− | loc_71EA0:
| |
− | btst #7,(a5)
| |
− | beq.s loc_71EB8
| |
− | btst #2,(a5)
| |
− | bne.s loc_71EB8
| |
− | move.b #-$4C,d0
| |
− | move.b $A(a5),d1
| |
− | jsr sub_72722(pc)
| |
− |
| |
− | loc_71EB8:
| |
− | adda.w d3,a5
| |
− | dbf d4,loc_71EA0
| |
− |
| |
− | lea $220(a6),a5
| |
− | moveq #2,d4
| |
− |
| |
− | loc_71EC4:
| |
− | btst #7,(a5)
| |
− | beq.s loc_71EDC
| |
− | btst #2,(a5)
| |
− | bne.s loc_71EDC
| |
− | move.b #-$4C,d0
| |
− | move.b $A(a5),d1
| |
− | jsr sub_72722(pc)
| |
− |
| |
− | loc_71EDC:
| |
− | adda.w d3,a5
| |
− | dbf d4,loc_71EC4
| |
− |
| |
− | lea $340(a6),a5
| |
− | btst #7,(a5)
| |
− | beq.s loc_71EFE
| |
− | btst #2,(a5)
| |
− | bne.s loc_71EFE
| |
− | move.b #-$4C,d0
| |
− | move.b $A(a5),d1
| |
− | jsr sub_72722(pc)
| |
− |
| |
− | loc_71EFE:
| |
− | bra.w loc_71C44
| |
− |
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Subroutine to play a sound or music track
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | Sound_Play: ; XREF: sub_71B4C
| |
− | movea.l (Go_SoundTypes).l,a0
| |
− | lea $A(a6),a1 ; load music track number
| |
− | move.b 0(a6),d3
| |
− | moveq #2,d4
| |
− |
| |
− | loc_71F12:
| |
− | move.b (a1),d0 ; move track number to d0
| |
− | move.b d0,d1
| |
− | clr.b (a1)+
| |
− | subi.b #$81,d0
| |
− | bcs.s loc_71F3E
| |
− | cmpi.b #$80,9(a6)
| |
− | beq.s loc_71F2C
| |
− | move.b d1,$A(a6)
| |
− | bra.s loc_71F3E
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_71F2C:
| |
− | andi.w #$7F,d0
| |
− | move.b (a0,d0.w),d2
| |
− | cmp.b d3,d2
| |
− | bcs.s loc_71F3E
| |
− | move.b d2,d3
| |
− | move.b d1,9(a6) ; set music flag
| |
− |
| |
− | loc_71F3E:
| |
− | dbf d4,loc_71F12
| |
− |
| |
− | tst.b d3
| |
− | bmi.s locret_71F4A
| |
− | move.b d3,0(a6)
| |
− |
| |
− | locret_71F4A:
| |
− | rts
| |
− | ; End of function Sound_Play
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | Sound_ChkValue: ; XREF: sub_71B4C
| |
− | moveq #0,d7
| |
− | move.b 9(a6),d7
| |
− | beq.w Sound_E4
| |
− | bpl.s locret_71F8C
| |
− | move.b #$80,9(a6) ; reset music flag
| |
− | cmpi.b #$9F,d7
| |
− | bls.w Sound_81to9F ; music $81-$9F
| |
− | cmpi.b #$A0,d7
| |
− | bcs.w locret_71F8C
| |
− | cmpi.b #$CF,d7
| |
− | bls.w Sound_A0toCF ; sound $A0-$CF
| |
− | cmpi.b #$D0,d7
| |
− | bcs.w locret_71F8C
| |
− | cmpi.b #$E0,d7
| |
− | bcs.w Sound_D0toDF ; sound $D0-$DF
| |
− | cmpi.b #$E4,d7
| |
− | bls.s Sound_E0toE4 ; sound $E0-$E4
| |
− |
| |
− | locret_71F8C:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | Sound_E0toE4: ; XREF: Sound_ChkValue
| |
− | subi.b #$E0,d7
| |
− | lsl.w #2,d7
| |
− | jmp Sound_ExIndex(pc,d7.w)
| |
− | ; ===========================================================================
| |
− |
| |
− | Sound_ExIndex:
| |
− | bra.w Sound_E0
| |
− | ; ===========================================================================
| |
− | bra.w Sound_E1
| |
− | ; ===========================================================================
| |
− | bra.w Sound_E2
| |
− | ; ===========================================================================
| |
− | bra.w Sound_E3
| |
− | ; ===========================================================================
| |
− | bra.w Sound_E4
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Play "Say-gaa" PCM sound
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_E1: ; XREF: Sound_ExIndex
| |
− | move.b #$88,($A01FFF).l
| |
− | move.w #0,($A11100).l ; start the Z80
| |
− | move.w #$11,d1
| |
− |
| |
− | loc_71FC0:
| |
− | move.w #-1,d0
| |
− |
| |
− | loc_71FC4:
| |
− | nop
| |
− | dbf d0,loc_71FC4
| |
− |
| |
− | dbf d1,loc_71FC0
| |
− |
| |
− | addq.w #4,sp
| |
− | rts
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Play music track $81-$9F
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_81to9F: ; XREF: Sound_ChkValue
| |
− | cmpi.b #$88,d7 ; is "extra life" music played?
| |
− | bne.s loc_72024 ; if not, branch
| |
− | tst.b $27(a6)
| |
− | bne.w loc_721B6
| |
− | lea $40(a6),a5
| |
− | moveq #9,d0
| |
− |
| |
− | loc_71FE6:
| |
− | bclr #2,(a5)
| |
− | adda.w #$30,a5
| |
− | dbf d0,loc_71FE6
| |
− |
| |
− | lea $220(a6),a5
| |
− | moveq #5,d0
| |
− |
| |
− | loc_71FF8:
| |
− | bclr #7,(a5)
| |
− | adda.w #$30,a5
| |
− | dbf d0,loc_71FF8
| |
− | clr.b 0(a6)
| |
− | movea.l a6,a0
| |
− | lea $3A0(a6),a1
| |
− | move.w #$87,d0
| |
− |
| |
− | loc_72012:
| |
− | move.l (a0)+,(a1)+
| |
− | dbf d0,loc_72012
| |
− |
| |
− | move.b #$80,$27(a6)
| |
− | clr.b 0(a6)
| |
− | bra.s loc_7202C
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72024:
| |
− | clr.b $27(a6)
| |
− | clr.b $26(a6)
| |
− |
| |
− | loc_7202C:
| |
− | jsr sub_725CA(pc)
| |
− | movea.l (off_719A0).l,a4
| |
− | subi.b #$81,d7
| |
− | move.b (a4,d7.w),$29(a6)
| |
− | movea.l (Go_MusicIndex).l,a4
| |
− | lsl.w #2,d7
| |
− | movea.l (a4,d7.w),a4
| |
− | moveq #0,d0
| |
− | move.w (a4),d0
| |
− | add.l a4,d0
| |
− | move.l d0,$18(a6)
| |
− | move.b 5(a4),d0
| |
− | move.b d0,$28(a6)
| |
− | tst.b $2A(a6)
| |
− | beq.s loc_72068
| |
− | move.b $29(a6),d0
| |
− |
| |
− | loc_72068:
| |
− | move.b d0,2(a6)
| |
− | move.b d0,1(a6)
| |
− | moveq #0,d1
| |
− | movea.l a4,a3
| |
− | addq.w #6,a4
| |
− | moveq #0,d7
| |
− | move.b 2(a3),d7
| |
− | beq.w loc_72114
| |
− | subq.b #1,d7
| |
− | move.b #-$40,d1
| |
− | move.b 4(a3),d4
| |
− | moveq #$30,d6
| |
− | move.b #1,d5
| |
− | lea $40(a6),a1
| |
− | lea byte_721BA(pc),a2
| |
− |
| |
− | loc_72098:
| |
− | bset #7,(a1)
| |
− | move.b (a2)+,1(a1)
| |
− | move.b d4,2(a1)
| |
− | move.b d6,$D(a1)
| |
− | move.b d1,$A(a1)
| |
− | move.b d5,$E(a1)
| |
− | moveq #0,d0
| |
− | move.w (a4)+,d0
| |
− | add.l a3,d0
| |
− | move.l d0,4(a1)
| |
− | move.w (a4)+,8(a1)
| |
− | adda.w d6,a1
| |
− | dbf d7,loc_72098
| |
− | cmpi.b #7,2(a3)
| |
− | bne.s loc_720D8
| |
− | moveq #$2B,d0
| |
− | moveq #0,d1
| |
− | jsr sub_7272E(pc)
| |
− | bra.w loc_72114
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_720D8:
| |
− | moveq #$28,d0
| |
− | moveq #6,d1
| |
− | jsr sub_7272E(pc)
| |
− | move.b #$42,d0
| |
− | moveq #$7F,d1
| |
− | jsr sub_72764(pc)
| |
− | move.b #$4A,d0
| |
− | moveq #$7F,d1
| |
− | jsr sub_72764(pc)
| |
− | move.b #$46,d0
| |
− | moveq #$7F,d1
| |
− | jsr sub_72764(pc)
| |
− | move.b #$4E,d0
| |
− | moveq #$7F,d1
| |
− | jsr sub_72764(pc)
| |
− | move.b #-$4A,d0
| |
− | move.b #-$40,d1
| |
− | jsr sub_72764(pc)
| |
− |
| |
− | loc_72114:
| |
− | moveq #0,d7
| |
− | move.b 3(a3),d7
| |
− | beq.s loc_72154
| |
− | subq.b #1,d7
| |
− | lea $190(a6),a1
| |
− | lea byte_721C2(pc),a2
| |
− |
| |
− | loc_72126:
| |
− | bset #7,(a1)
| |
− | move.b (a2)+,1(a1)
| |
− | move.b d4,2(a1)
| |
− | move.b d6,$D(a1)
| |
− | move.b d5,$E(a1)
| |
− | moveq #0,d0
| |
− | move.w (a4)+,d0
| |
− | add.l a3,d0
| |
− | move.l d0,4(a1)
| |
− | move.w (a4)+,8(a1)
| |
− | move.b (a4)+,d0
| |
− | move.b (a4)+,$B(a1)
| |
− | adda.w d6,a1
| |
− | dbf d7,loc_72126
| |
− |
| |
− | loc_72154:
| |
− | lea $220(a6),a1
| |
− | moveq #5,d7
| |
− |
| |
− | loc_7215A:
| |
− | tst.b (a1)
| |
− | bpl.w loc_7217C
| |
− | moveq #0,d0
| |
− | move.b 1(a1),d0
| |
− | bmi.s loc_7216E
| |
− | subq.b #2,d0
| |
− | lsl.b #2,d0
| |
− | bra.s loc_72170
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7216E:
| |
− | lsr.b #3,d0
| |
− |
| |
− | loc_72170:
| |
− | lea dword_722CC(pc),a0
| |
− | movea.l (a0,d0.w),a0
| |
− | bset #2,(a0)
| |
− |
| |
− | loc_7217C:
| |
− | adda.w d6,a1
| |
− | dbf d7,loc_7215A
| |
− |
| |
− | tst.w $340(a6)
| |
− | bpl.s loc_7218E
| |
− | bset #2,$100(a6)
| |
− |
| |
− | loc_7218E:
| |
− | tst.w $370(a6)
| |
− | bpl.s loc_7219A
| |
− | bset #2,$1F0(a6)
| |
− |
| |
− | loc_7219A:
| |
− | lea $70(a6),a5
| |
− | moveq #5,d4
| |
− |
| |
− | loc_721A0:
| |
− | jsr sub_726FE(pc)
| |
− | adda.w d6,a5
| |
− | dbf d4,loc_721A0
| |
− | moveq #2,d4
| |
− |
| |
− | loc_721AC:
| |
− | jsr sub_729A0(pc)
| |
− | adda.w d6,a5
| |
− | dbf d4,loc_721AC
| |
− |
| |
− | loc_721B6:
| |
− | addq.w #4,sp
| |
− | rts
| |
− | ; ===========================================================================
| |
− | byte_721BA: dc.b 6, 0, 1, 2, 4, 5, 6, 0
| |
− | align 2
| |
− | byte_721C2: dc.b $80, $A0, $C0, 0
| |
− | align 2
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Play normal sound effect
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_A0toCF: ; XREF: Sound_ChkValue
| |
− | tst.b $27(a6)
| |
− | bne.w loc_722C6
| |
− | tst.b 4(a6)
| |
− | bne.w loc_722C6
| |
− | tst.b $24(a6)
| |
− | bne.w loc_722C6
| |
− | cmpi.b #$B5,d7 ; is ring sound effect played?
| |
− | bne.s Sound_notB5 ; if not, branch
| |
− | tst.b $2B(a6)
| |
− | bne.s loc_721EE
| |
− | move.b #$CE,d7 ; play ring sound in left speaker
| |
− |
| |
− | loc_721EE:
| |
− | bchg #0,$2B(a6) ; change speaker
| |
− |
| |
− | Sound_notB5:
| |
− | cmpi.b #$A7,d7 ; is "pushing" sound played?
| |
− | bne.s Sound_notA7 ; if not, branch
| |
− | tst.b $2C(a6)
| |
− | bne.w locret_722C4
| |
− | move.b #$80,$2C(a6)
| |
− |
| |
− | Sound_notA7:
| |
− | movea.l (Go_SoundIndex).l,a0
| |
− | subi.b #$A0,d7
| |
− | lsl.w #2,d7
| |
− | movea.l (a0,d7.w),a3
| |
− | movea.l a3,a1
| |
− | moveq #0,d1
| |
− | move.w (a1)+,d1
| |
− | add.l a3,d1
| |
− | move.b (a1)+,d5
| |
− | move.b (a1)+,d7
| |
− | subq.b #1,d7
| |
− | moveq #$30,d6
| |
− |
| |
− | loc_72228:
| |
− | moveq #0,d3
| |
− | move.b 1(a1),d3
| |
− | move.b d3,d4
| |
− | bmi.s loc_72244
| |
− | subq.w #2,d3
| |
− | lsl.w #2,d3
| |
− | lea dword_722CC(pc),a5
| |
− | movea.l (a5,d3.w),a5
| |
− | bset #2,(a5)
| |
− | bra.s loc_7226E
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72244:
| |
− | lsr.w #3,d3
| |
− | lea dword_722CC(pc),a5
| |
− | movea.l (a5,d3.w),a5
| |
− | bset #2,(a5)
| |
− | cmpi.b #$C0,d4
| |
− | bne.s loc_7226E
| |
− | move.b d4,d0
| |
− | ori.b #$1F,d0
| |
− | move.b d0,($C00011).l
| |
− | bchg #5,d0
| |
− | move.b d0,($C00011).l
| |
− |
| |
− | loc_7226E:
| |
− | movea.l dword_722EC(pc,d3.w),a5
| |
− | movea.l a5,a2
| |
− | moveq #$B,d0
| |
− |
| |
− | loc_72276:
| |
− | clr.l (a2)+
| |
− | dbf d0,loc_72276
| |
− |
| |
− | move.w (a1)+,(a5)
| |
− | move.b d5,2(a5)
| |
− | moveq #0,d0
| |
− | move.w (a1)+,d0
| |
− | add.l a3,d0
| |
− | move.l d0,4(a5)
| |
− | move.w (a1)+,8(a5)
| |
− | move.b #1,$E(a5)
| |
− | move.b d6,$D(a5)
| |
− | tst.b d4
| |
− | bmi.s loc_722A8
| |
− | move.b #$C0,$A(a5)
| |
− | move.l d1,$20(a5)
| |
− |
| |
− | loc_722A8:
| |
− | dbf d7,loc_72228
| |
− |
| |
− | tst.b $250(a6)
| |
− | bpl.s loc_722B8
| |
− | bset #2,$340(a6)
| |
− |
| |
− | loc_722B8:
| |
− | tst.b $310(a6)
| |
− | bpl.s locret_722C4
| |
− | bset #2,$370(a6)
| |
− |
| |
− | locret_722C4:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_722C6:
| |
− | clr.b 0(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− | dword_722CC: dc.l $FFF0D0
| |
− | dc.l 0
| |
− | dc.l $FFF100
| |
− | dc.l $FFF130
| |
− | dc.l $FFF190
| |
− | dc.l $FFF1C0
| |
− | dc.l $FFF1F0
| |
− | dc.l $FFF1F0
| |
− | dword_722EC: dc.l $FFF220
| |
− | dc.l 0
| |
− | dc.l $FFF250
| |
− | dc.l $FFF280
| |
− | dc.l $FFF2B0
| |
− | dc.l $FFF2E0
| |
− | dc.l $FFF310
| |
− | dc.l $FFF310
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Play GHZ waterfall sound
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_D0toDF: ; XREF: Sound_ChkValue
| |
− | tst.b $27(a6)
| |
− | bne.w locret_723C6
| |
− | tst.b 4(a6)
| |
− | bne.w locret_723C6
| |
− | tst.b $24(a6)
| |
− | bne.w locret_723C6
| |
− | movea.l (Go_SoundD0).l,a0
| |
− | subi.b #$D0,d7
| |
− | lsl.w #2,d7
| |
− | movea.l (a0,d7.w),a3
| |
− | movea.l a3,a1
| |
− | moveq #0,d0
| |
− | move.w (a1)+,d0
| |
− | add.l a3,d0
| |
− | move.l d0,$20(a6)
| |
− | move.b (a1)+,d5
| |
− | move.b (a1)+,d7
| |
− | subq.b #1,d7
| |
− | moveq #$30,d6
| |
− |
| |
− | loc_72348:
| |
− | move.b 1(a1),d4
| |
− | bmi.s loc_7235A
| |
− | bset #2,$100(a6)
| |
− | lea $340(a6),a5
| |
− | bra.s loc_72364
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7235A:
| |
− | bset #2,$1F0(a6)
| |
− | lea $370(a6),a5
| |
− |
| |
− | loc_72364:
| |
− | movea.l a5,a2
| |
− | moveq #$B,d0
| |
− |
| |
− | loc_72368:
| |
− | clr.l (a2)+
| |
− | dbf d0,loc_72368
| |
− |
| |
− | move.w (a1)+,(a5)
| |
− | move.b d5,2(a5)
| |
− | moveq #0,d0
| |
− | move.w (a1)+,d0
| |
− | add.l a3,d0
| |
− | move.l d0,4(a5)
| |
− | move.w (a1)+,8(a5)
| |
− | move.b #1,$E(a5)
| |
− | move.b d6,$D(a5)
| |
− | tst.b d4
| |
− | bmi.s loc_72396
| |
− | move.b #$C0,$A(a5)
| |
− |
| |
− | loc_72396:
| |
− | dbf d7,loc_72348
| |
− |
| |
− | tst.b $250(a6)
| |
− | bpl.s loc_723A6
| |
− | bset #2,$340(a6)
| |
− |
| |
− | loc_723A6:
| |
− | tst.b $310(a6)
| |
− | bpl.s locret_723C6
| |
− | bset #2,$370(a6)
| |
− | ori.b #$1F,d4
| |
− | move.b d4,($C00011).l
| |
− | bchg #5,d4
| |
− | move.b d4,($C00011).l
| |
− |
| |
− | locret_723C6:
| |
− | rts
| |
− | ; End of function Sound_ChkValue
| |
− |
| |
− | ; ===========================================================================
| |
− | dc.l $FFF100
| |
− | dc.l $FFF1F0
| |
− | dc.l $FFF250
| |
− | dc.l $FFF310
| |
− | dc.l $FFF340
| |
− | dc.l $FFF370
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | Snd_FadeOut1: ; XREF: Sound_E0
| |
− | clr.b 0(a6)
| |
− | lea $220(a6),a5
| |
− | moveq #5,d7
| |
− |
| |
− | loc_723EA:
| |
− | tst.b (a5)
| |
− | bpl.w loc_72472
| |
− | bclr #7,(a5)
| |
− | moveq #0,d3
| |
− | move.b 1(a5),d3
| |
− | bmi.s loc_7243C
| |
− | jsr sub_726FE(pc)
| |
− | cmpi.b #4,d3
| |
− | bne.s loc_72416
| |
− | tst.b $340(a6)
| |
− | bpl.s loc_72416
| |
− | lea $340(a6),a5
| |
− | movea.l $20(a6),a1
| |
− | bra.s loc_72428
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72416:
| |
− | subq.b #2,d3
| |
− | lsl.b #2,d3
| |
− | lea dword_722CC(pc),a0
| |
− | movea.l a5,a3
| |
− | movea.l (a0,d3.w),a5
| |
− | movea.l $18(a6),a1
| |
− |
| |
− | loc_72428:
| |
− | bclr #2,(a5)
| |
− | bset #1,(a5)
| |
− | move.b $B(a5),d0
| |
− | jsr sub_72C4E(pc)
| |
− | movea.l a3,a5
| |
− | bra.s loc_72472
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7243C:
| |
− | jsr sub_729A0(pc)
| |
− | lea $370(a6),a0
| |
− | cmpi.b #$E0,d3
| |
− | beq.s loc_7245A
| |
− | cmpi.b #$C0,d3
| |
− | beq.s loc_7245A
| |
− | lsr.b #3,d3
| |
− | lea dword_722CC(pc),a0
| |
− | movea.l (a0,d3.w),a0
| |
− |
| |
− | loc_7245A:
| |
− | bclr #2,(a0)
| |
− | bset #1,(a0)
| |
− | cmpi.b #$E0,1(a0)
| |
− | bne.s loc_72472
| |
− | move.b $1F(a0),($C00011).l
| |
− |
| |
− | loc_72472:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_723EA
| |
− |
| |
− | rts
| |
− | ; End of function Snd_FadeOut1
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | Snd_FadeOut2: ; XREF: Sound_E0
| |
− | lea $340(a6),a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_724AE
| |
− | bclr #7,(a5)
| |
− | btst #2,(a5)
| |
− | bne.s loc_724AE
| |
− | jsr loc_7270A(pc)
| |
− | lea $100(a6),a5
| |
− | bclr #2,(a5)
| |
− | bset #1,(a5)
| |
− | tst.b (a5)
| |
− | bpl.s loc_724AE
| |
− | movea.l $18(a6),a1
| |
− | move.b $B(a5),d0
| |
− | jsr sub_72C4E(pc)
| |
− |
| |
− | loc_724AE:
| |
− | lea $370(a6),a5
| |
− | tst.b (a5)
| |
− | bpl.s locret_724E4
| |
− | bclr #7,(a5)
| |
− | btst #2,(a5)
| |
− | bne.s locret_724E4
| |
− | jsr loc_729A6(pc)
| |
− | lea $1F0(a6),a5
| |
− | bclr #2,(a5)
| |
− | bset #1,(a5)
| |
− | tst.b (a5)
| |
− | bpl.s locret_724E4
| |
− | cmpi.b #-$20,1(a5)
| |
− | bne.s locret_724E4
| |
− | move.b $1F(a5),($C00011).l
| |
− |
| |
− | locret_724E4:
| |
− | rts
| |
− | ; End of function Snd_FadeOut2
| |
− |
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Fade out music
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_E0: ; XREF: Sound_ExIndex
| |
− | jsr Snd_FadeOut1(pc)
| |
− | jsr Snd_FadeOut2(pc)
| |
− | move.b #3,6(a6)
| |
− | move.b #$28,4(a6)
| |
− | clr.b $40(a6)
| |
− | clr.b $2A(a6)
| |
− | rts
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72504: ; XREF: sub_71B4C
| |
− | move.b 6(a6),d0
| |
− | beq.s loc_72510
| |
− | subq.b #1,6(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72510:
| |
− | subq.b #1,4(a6)
| |
− | beq.w Sound_E4
| |
− | move.b #3,6(a6)
| |
− | lea $70(a6),a5
| |
− | moveq #5,d7
| |
− |
| |
− | loc_72524:
| |
− | tst.b (a5)
| |
− | bpl.s loc_72538
| |
− | addq.b #1,9(a5)
| |
− | bpl.s loc_72534
| |
− | bclr #7,(a5)
| |
− | bra.s loc_72538
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72534:
| |
− | jsr sub_72CB4(pc)
| |
− |
| |
− | loc_72538:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_72524
| |
− |
| |
− | moveq #2,d7
| |
− |
| |
− | loc_72542:
| |
− | tst.b (a5)
| |
− | bpl.s loc_72560
| |
− | addq.b #1,9(a5)
| |
− | cmpi.b #$10,9(a5)
| |
− | bcs.s loc_72558
| |
− | bclr #7,(a5)
| |
− | bra.s loc_72560
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72558:
| |
− | move.b 9(a5),d6
| |
− | jsr sub_7296A(pc)
| |
− |
| |
− | loc_72560:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_72542
| |
− |
| |
− | rts
| |
− | ; End of function sub_72504
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_7256A: ; XREF: Sound_E4; sub_725CA
| |
− | moveq #2,d3
| |
− | moveq #$28,d0
| |
− |
| |
− | loc_7256E:
| |
− | move.b d3,d1
| |
− | jsr sub_7272E(pc)
| |
− | addq.b #4,d1
| |
− | jsr sub_7272E(pc)
| |
− | dbf d3,loc_7256E
| |
− |
| |
− | moveq #$40,d0
| |
− | moveq #$7F,d1
| |
− | moveq #2,d4
| |
− |
| |
− | loc_72584:
| |
− | moveq #3,d3
| |
− |
| |
− | loc_72586:
| |
− | jsr sub_7272E(pc)
| |
− | jsr sub_72764(pc)
| |
− | addq.w #4,d0
| |
− | dbf d3,loc_72586
| |
− |
| |
− | subi.b #$F,d0
| |
− | dbf d4,loc_72584
| |
− |
| |
− | rts
| |
− | ; End of function sub_7256A
| |
− |
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Stop music
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_E4: ; XREF: Sound_ChkValue; Sound_ExIndex; sub_72504
| |
− | moveq #$2B,d0
| |
− | move.b #$80,d1
| |
− | jsr sub_7272E(pc)
| |
− | moveq #$27,d0
| |
− | moveq #0,d1
| |
− | jsr sub_7272E(pc)
| |
− | movea.l a6,a0
| |
− | move.w #$E3,d0
| |
− |
| |
− | loc_725B6:
| |
− | clr.l (a0)+
| |
− | dbf d0,loc_725B6
| |
− |
| |
− | move.b #$80,9(a6) ; set music to $80 (silence)
| |
− | jsr sub_7256A(pc)
| |
− | bra.w sub_729B6
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_725CA: ; XREF: Sound_ChkValue
| |
− | movea.l a6,a0
| |
− | move.b 0(a6),d1
| |
− | move.b $27(a6),d2
| |
− | move.b $2A(a6),d3
| |
− | move.b $26(a6),d4
| |
− | move.w $A(a6),d5
| |
− | move.w #$87,d0
| |
− |
| |
− | loc_725E4:
| |
− | clr.l (a0)+
| |
− | dbf d0,loc_725E4
| |
− |
| |
− | move.b d1,0(a6)
| |
− | move.b d2,$27(a6)
| |
− | move.b d3,$2A(a6)
| |
− | move.b d4,$26(a6)
| |
− | move.w d5,$A(a6)
| |
− | move.b #$80,9(a6)
| |
− | jsr sub_7256A(pc)
| |
− | bra.w sub_729B6
| |
− | ; End of function sub_725CA
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_7260C: ; XREF: sub_71B4C
| |
− | move.b 2(a6),1(a6)
| |
− | lea $4E(a6),a0
| |
− | moveq #$30,d0
| |
− | moveq #9,d1
| |
− |
| |
− | loc_7261A:
| |
− | addq.b #1,(a0)
| |
− | adda.w d0,a0
| |
− | dbf d1,loc_7261A
| |
− |
| |
− | rts
| |
− | ; End of function sub_7260C
| |
− |
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Speed up music
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_E2: ; XREF: Sound_ExIndex
| |
− | tst.b $27(a6)
| |
− | bne.s loc_7263E
| |
− | move.b $29(a6),2(a6)
| |
− | move.b $29(a6),1(a6)
| |
− | move.b #$80,$2A(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7263E:
| |
− | move.b $3C9(a6),$3A2(a6)
| |
− | move.b $3C9(a6),$3A1(a6)
| |
− | move.b #$80,$3CA(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Change music back to normal speed
| |
− | ; ---------------------------------------------------------------------------
| |
− |
| |
− | Sound_E3: ; XREF: Sound_ExIndex
| |
− | tst.b $27(a6)
| |
− | bne.s loc_7266A
| |
− | move.b $28(a6),2(a6)
| |
− | move.b $28(a6),1(a6)
| |
− | clr.b $2A(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7266A:
| |
− | move.b $3C8(a6),$3A2(a6)
| |
− | move.b $3C8(a6),$3A1(a6)
| |
− | clr.b $3CA(a6)
| |
− | rts
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_7267C: ; XREF: sub_71B4C
| |
− | tst.b $25(a6)
| |
− | beq.s loc_72688
| |
− | subq.b #1,$25(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72688:
| |
− | tst.b $26(a6)
| |
− | beq.s loc_726D6
| |
− | subq.b #1,$26(a6)
| |
− | move.b #2,$25(a6)
| |
− | lea $70(a6),a5
| |
− | moveq #5,d7
| |
− |
| |
− | loc_7269E:
| |
− | tst.b (a5)
| |
− | bpl.s loc_726AA
| |
− | subq.b #1,9(a5)
| |
− | jsr sub_72CB4(pc)
| |
− |
| |
− | loc_726AA:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_7269E
| |
− | moveq #2,d7
| |
− |
| |
− | loc_726B4:
| |
− | tst.b (a5)
| |
− | bpl.s loc_726CC
| |
− | subq.b #1,9(a5)
| |
− | move.b 9(a5),d6
| |
− | cmpi.b #$10,d6
| |
− | bcs.s loc_726C8
| |
− | moveq #$F,d6
| |
− |
| |
− | loc_726C8:
| |
− | jsr sub_7296A(pc)
| |
− |
| |
− | loc_726CC:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_726B4
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_726D6:
| |
− | bclr #2,$40(a6)
| |
− | clr.b $24(a6)
| |
− | rts
| |
− | ; End of function sub_7267C
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_726E2: ; XREF: sub_71CCA
| |
− | btst #1,(a5)
| |
− | bne.s locret_726FC
| |
− | btst #2,(a5)
| |
− | bne.s locret_726FC
| |
− | moveq #$28,d0
| |
− | move.b 1(a5),d1
| |
− | ori.b #-$10,d1
| |
− | bra.w sub_7272E
| |
− | ; ===========================================================================
| |
− |
| |
− | locret_726FC:
| |
− | rts
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_726FE: ; XREF: sub_71CEC; sub_71D9E; Sound_ChkValue; Snd_FadeOut1
| |
− | btst #4,(a5)
| |
− | bne.s locret_72714
| |
− | btst #2,(a5)
| |
− | bne.s locret_72714
| |
− |
| |
− | loc_7270A: ; XREF: Snd_FadeOut2
| |
− | moveq #$28,d0
| |
− | move.b 1(a5),d1
| |
− | bra.w sub_7272E
| |
− | ; ===========================================================================
| |
− |
| |
− | locret_72714:
| |
− | rts
| |
− | ; End of function sub_726FE
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72716: ; XREF: sub_72A5A
| |
− | btst #2,(a5)
| |
− | bne.s locret_72720
| |
− | bra.w sub_72722
| |
− | ; ===========================================================================
| |
− |
| |
− | locret_72720:
| |
− | rts
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72722: ; XREF: sub_71E18; sub_72C4E; sub_72CB4
| |
− | btst #2,1(a5)
| |
− | bne.s loc_7275A
| |
− | add.b 1(a5),d0
| |
− | ; End of function sub_72722
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_7272E: ; XREF: loc_71E6A
| |
− | move.b ($A04000).l,d2
| |
− | btst #7,d2
| |
− | bne.s sub_7272E
| |
− | move.b d0,($A04000).l
| |
− | nop
| |
− | nop
| |
− | nop
| |
− |
| |
− | loc_72746:
| |
− | move.b ($A04000).l,d2
| |
− | btst #7,d2
| |
− | bne.s loc_72746
| |
− |
| |
− | move.b d1,($A04001).l
| |
− | rts
| |
− | ; End of function sub_7272E
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7275A: ; XREF: sub_72722
| |
− | move.b 1(a5),d2
| |
− | bclr #2,d2
| |
− | add.b d2,d0
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72764: ; XREF: loc_71E6A; Sound_ChkValue; sub_7256A; sub_72764
| |
− | move.b ($A04000).l,d2
| |
− | btst #7,d2
| |
− | bne.s sub_72764
| |
− | move.b d0,($A04002).l
| |
− | nop
| |
− | nop
| |
− | nop
| |
− |
| |
− | loc_7277C:
| |
− | move.b ($A04000).l,d2
| |
− | btst #7,d2
| |
− | bne.s loc_7277C
| |
− |
| |
− | move.b d1,($A04003).l
| |
− | rts
| |
− | ; End of function sub_72764
| |
− |
| |
− | ; ===========================================================================
| |
− | word_72790: dc.w $25E, $284, $2AB, $2D3, $2FE, $32D, $35C, $38F, $3C5
| |
− | dc.w $3FF, $43C, $47C, $A5E, $A84, $AAB, $AD3, $AFE, $B2D
| |
− | dc.w $B5C, $B8F, $BC5, $BFF, $C3C, $C7C, $125E, $1284
| |
− | dc.w $12AB, $12D3, $12FE, $132D, $135C, $138F, $13C5, $13FF
| |
− | dc.w $143C, $147C, $1A5E, $1A84, $1AAB, $1AD3, $1AFE, $1B2D
| |
− | dc.w $1B5C, $1B8F, $1BC5, $1BFF, $1C3C, $1C7C, $225E, $2284
| |
− | dc.w $22AB, $22D3, $22FE, $232D, $235C, $238F, $23C5, $23FF
| |
− | dc.w $243C, $247C, $2A5E, $2A84, $2AAB, $2AD3, $2AFE, $2B2D
| |
− | dc.w $2B5C, $2B8F, $2BC5, $2BFF, $2C3C, $2C7C, $325E, $3284
| |
− | dc.w $32AB, $32D3, $32FE, $332D, $335C, $338F, $33C5, $33FF
| |
− | dc.w $343C, $347C, $3A5E, $3A84, $3AAB, $3AD3, $3AFE, $3B2D
| |
− | dc.w $3B5C, $3B8F, $3BC5, $3BFF, $3C3C, $3C7C
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72850: ; XREF: sub_71B4C
| |
− | subq.b #1,$E(a5)
| |
− | bne.s loc_72866
| |
− | bclr #4,(a5)
| |
− | jsr sub_72878(pc)
| |
− | jsr sub_728DC(pc)
| |
− | bra.w loc_7292E
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72866:
| |
− | jsr sub_71D9E(pc)
| |
− | jsr sub_72926(pc)
| |
− | jsr sub_71DC6(pc)
| |
− | jsr sub_728E2(pc)
| |
− | rts
| |
− | ; End of function sub_72850
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72878: ; XREF: sub_72850
| |
− | bclr #1,(a5)
| |
− | movea.l 4(a5),a4
| |
− |
| |
− | loc_72880:
| |
− | moveq #0,d5
| |
− | move.b (a4)+,d5
| |
− | cmpi.b #$E0,d5
| |
− | bcs.s loc_72890
| |
− | jsr sub_72A5A(pc)
| |
− | bra.s loc_72880
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72890:
| |
− | tst.b d5
| |
− | bpl.s loc_728A4
| |
− | jsr sub_728AC(pc)
| |
− | move.b (a4)+,d5
| |
− | tst.b d5
| |
− | bpl.s loc_728A4
| |
− | subq.w #1,a4
| |
− | bra.w sub_71D60
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_728A4:
| |
− | jsr sub_71D40(pc)
| |
− | bra.w sub_71D60
| |
− | ; End of function sub_72878
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_728AC: ; XREF: sub_72878
| |
− | subi.b #$81,d5
| |
− | bcs.s loc_728CA
| |
− | add.b 8(a5),d5
| |
− | andi.w #$7F,d5
| |
− | lsl.w #1,d5
| |
− | lea word_729CE(pc),a0
| |
− | move.w (a0,d5.w),$10(a5)
| |
− | bra.w sub_71D60
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_728CA:
| |
− | bset #1,(a5)
| |
− | move.w #-1,$10(a5)
| |
− | jsr sub_71D60(pc)
| |
− | bra.w sub_729A0
| |
− | ; End of function sub_728AC
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_728DC: ; XREF: sub_72850
| |
− | move.w $10(a5),d6
| |
− | bmi.s loc_72920
| |
− | ; End of function sub_728DC
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_728E2: ; XREF: sub_72850
| |
− | move.b $1E(a5),d0
| |
− | ext.w d0
| |
− | add.w d0,d6
| |
− | btst #2,(a5)
| |
− | bne.s locret_7291E
| |
− | btst #1,(a5)
| |
− | bne.s locret_7291E
| |
− | move.b 1(a5),d0
| |
− | cmpi.b #$E0,d0
| |
− | bne.s loc_72904
| |
− | move.b #$C0,d0
| |
− |
| |
− | loc_72904:
| |
− | move.w d6,d1
| |
− | andi.b #$F,d1
| |
− | or.b d1,d0
| |
− | lsr.w #4,d6
| |
− | andi.b #$3F,d6
| |
− | move.b d0,($C00011).l
| |
− | move.b d6,($C00011).l
| |
− |
| |
− | locret_7291E:
| |
− | rts
| |
− | ; End of function sub_728E2
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72920: ; XREF: sub_728DC
| |
− | bset #1,(a5)
| |
− | rts
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72926: ; XREF: sub_72850
| |
− | tst.b $B(a5)
| |
− | beq.w locret_7298A
| |
− |
| |
− | loc_7292E: ; XREF: sub_72850
| |
− | move.b 9(a5),d6
| |
− | moveq #0,d0
| |
− | move.b $B(a5),d0
| |
− | beq.s sub_7296A
| |
− | movea.l (Go_PSGIndex).l,a0
| |
− | subq.w #1,d0
| |
− | lsl.w #2,d0
| |
− | movea.l (a0,d0.w),a0
| |
− | move.b $C(a5),d0
| |
− | move.b (a0,d0.w),d0
| |
− | addq.b #1,$C(a5)
| |
− | btst #7,d0
| |
− | beq.s loc_72960
| |
− | cmpi.b #$80,d0
| |
− | beq.s loc_7299A
| |
− |
| |
− | loc_72960:
| |
− | add.w d0,d6
| |
− | cmpi.b #$10,d6
| |
− | bcs.s sub_7296A
| |
− | moveq #$F,d6
| |
− | ; End of function sub_72926
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_7296A: ; XREF: sub_72504; sub_7267C; sub_72926
| |
− | btst #1,(a5)
| |
− | bne.s locret_7298A
| |
− | btst #2,(a5)
| |
− | bne.s locret_7298A
| |
− | btst #4,(a5)
| |
− | bne.s loc_7298C
| |
− |
| |
− | loc_7297C:
| |
− | or.b 1(a5),d6
| |
− | addi.b #$10,d6
| |
− | move.b d6,($C00011).l
| |
− |
| |
− | locret_7298A:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7298C:
| |
− | tst.b $13(a5)
| |
− | beq.s loc_7297C
| |
− | tst.b $12(a5)
| |
− | bne.s loc_7297C
| |
− | rts
| |
− | ; End of function sub_7296A
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_7299A: ; XREF: sub_72926
| |
− | subq.b #1,$C(a5)
| |
− | rts
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_729A0: ; XREF: sub_71D9E; Sound_ChkValue; Snd_FadeOut1; sub_728AC
| |
− | btst #2,(a5)
| |
− | bne.s locret_729B4
| |
− |
| |
− | loc_729A6: ; XREF: Snd_FadeOut2
| |
− | move.b 1(a5),d0
| |
− | ori.b #$1F,d0
| |
− | move.b d0,($C00011).l
| |
− |
| |
− | locret_729B4:
| |
− | rts
| |
− | ; End of function sub_729A0
| |
− |
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_729B6: ; XREF: loc_71E7C
| |
− | lea ($C00011).l,a0
| |
− | move.b #$9F,(a0)
| |
− | move.b #$BF,(a0)
| |
− | move.b #$DF,(a0)
| |
− | move.b #$FF,(a0)
| |
− | rts
| |
− | ; End of function sub_729B6
| |
− |
| |
− | ; ===========================================================================
| |
− | word_729CE: dc.w $356, $326, $2F9, $2CE, $2A5, $280, $25C, $23A, $21A
| |
− | dc.w $1FB, $1DF, $1C4, $1AB, $193, $17D, $167, $153, $140
| |
− | dc.w $12E, $11D, $10D, $FE, $EF, $E2, $D6, $C9, $BE, $B4
| |
− | dc.w $A9, $A0, $97, $8F, $87, $7F, $78, $71, $6B, $65
| |
− | dc.w $5F, $5A, $55, $50, $4B, $47, $43, $40, $3C, $39
| |
− | dc.w $36, $33, $30, $2D, $2B, $28, $26, $24, $22, $20
| |
− | dc.w $1F, $1D, $1B, $1A, $18, $17, $16, $15, $13, $12
| |
− | dc.w $11, 0
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72A5A: ; XREF: sub_71C4E; sub_71CEC; sub_72878
| |
− | subi.w #$E0,d5
| |
− | lsl.w #2,d5
| |
− | jmp loc_72A64(pc,d5.w)
| |
− | ; End of function sub_72A5A
| |
− |
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72A64:
| |
− | bra.w loc_72ACC
| |
− | ; ===========================================================================
| |
− | bra.w loc_72AEC
| |
− | ; ===========================================================================
| |
− | bra.w loc_72AF2
| |
− | ; ===========================================================================
| |
− | bra.w loc_72AF8
| |
− | ; ===========================================================================
| |
− | bra.w loc_72B14
| |
− | ; ===========================================================================
| |
− | bra.w loc_72B9E
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BA4
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BAE
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BB4
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BBE
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BC6
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BD0
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BE6
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BEE
| |
− | ; ===========================================================================
| |
− | bra.w loc_72BF4
| |
− | ; ===========================================================================
| |
− | bra.w loc_72C26
| |
− | ; ===========================================================================
| |
− | bra.w loc_72D30
| |
− | ; ===========================================================================
| |
− | bra.w loc_72D52
| |
− | ; ===========================================================================
| |
− | bra.w loc_72D58
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E06
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E20
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E26
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E2C
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E38
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E52
| |
− | ; ===========================================================================
| |
− | bra.w loc_72E64
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72ACC: ; XREF: loc_72A64
| |
− | move.b (a4)+,d1
| |
− | tst.b 1(a5)
| |
− | bmi.s locret_72AEA
| |
− | move.b $A(a5),d0
| |
− | andi.b #$37,d0
| |
− | or.b d0,d1
| |
− | move.b d1,$A(a5)
| |
− | move.b #$B4,d0
| |
− | bra.w loc_72716
| |
− | ; ===========================================================================
| |
− |
| |
− | locret_72AEA:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72AEC: ; XREF: loc_72A64
| |
− | move.b (a4)+,$1E(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72AF2: ; XREF: loc_72A64
| |
− | move.b (a4)+,7(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72AF8: ; XREF: loc_72A64
| |
− | moveq #0,d0
| |
− | move.b $D(a5),d0
| |
− | movea.l (a5,d0.w),a4
| |
− | move.l #0,(a5,d0.w)
| |
− | addq.w #2,a4
| |
− | addq.b #4,d0
| |
− | move.b d0,$D(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72B14: ; XREF: loc_72A64
| |
− | movea.l a6,a0
| |
− | lea $3A0(a6),a1
| |
− | move.w #$87,d0
| |
− |
| |
− | loc_72B1E:
| |
− | move.l (a1)+,(a0)+
| |
− | dbf d0,loc_72B1E
| |
− |
| |
− | bset #2,$40(a6)
| |
− | movea.l a5,a3
| |
− | move.b #$28,d6
| |
− | sub.b $26(a6),d6
| |
− | moveq #5,d7
| |
− | lea $70(a6),a5
| |
− |
| |
− | loc_72B3A:
| |
− | btst #7,(a5)
| |
− | beq.s loc_72B5C
| |
− | bset #1,(a5)
| |
− | add.b d6,9(a5)
| |
− | btst #2,(a5)
| |
− | bne.s loc_72B5C
| |
− | moveq #0,d0
| |
− | move.b $B(a5),d0
| |
− | movea.l $18(a6),a1
| |
− | jsr sub_72C4E(pc)
| |
− |
| |
− | loc_72B5C:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_72B3A
| |
− |
| |
− | moveq #2,d7
| |
− |
| |
− | loc_72B66:
| |
− | btst #7,(a5)
| |
− | beq.s loc_72B78
| |
− | bset #1,(a5)
| |
− | jsr sub_729A0(pc)
| |
− | add.b d6,9(a5)
| |
− |
| |
− | loc_72B78:
| |
− | adda.w #$30,a5
| |
− | dbf d7,loc_72B66
| |
− | movea.l a3,a5
| |
− | move.b #$80,$24(a6)
| |
− | move.b #$28,$26(a6)
| |
− | clr.b $27(a6)
| |
− | move.w #0,($A11100).l
| |
− | addq.w #8,sp
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72B9E: ; XREF: loc_72A64
| |
− | move.b (a4)+,2(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BA4: ; XREF: loc_72A64
| |
− | move.b (a4)+,d0
| |
− | add.b d0,9(a5)
| |
− | bra.w sub_72CB4
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BAE: ; XREF: loc_72A64
| |
− | bset #4,(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BB4: ; XREF: loc_72A64
| |
− | move.b (a4),$12(a5)
| |
− | move.b (a4)+,$13(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BBE: ; XREF: loc_72A64
| |
− | move.b (a4)+,d0
| |
− | add.b d0,8(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BC6: ; XREF: loc_72A64
| |
− | move.b (a4),2(a6)
| |
− | move.b (a4)+,1(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BD0: ; XREF: loc_72A64
| |
− | lea $40(a6),a0
| |
− | move.b (a4)+,d0
| |
− | moveq #$30,d1
| |
− | moveq #9,d2
| |
− |
| |
− | loc_72BDA:
| |
− | move.b d0,2(a0)
| |
− | adda.w d1,a0
| |
− | dbf d2,loc_72BDA
| |
− |
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BE6: ; XREF: loc_72A64
| |
− | move.b (a4)+,d0
| |
− | add.b d0,9(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BEE: ; XREF: loc_72A64
| |
− | clr.b $2C(a6)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72BF4: ; XREF: loc_72A64
| |
− | bclr #7,(a5)
| |
− | bclr #4,(a5)
| |
− | jsr sub_726FE(pc)
| |
− | tst.b $250(a6)
| |
− | bmi.s loc_72C22
| |
− | movea.l a5,a3
| |
− | lea $100(a6),a5
| |
− | movea.l $18(a6),a1
| |
− | bclr #2,(a5)
| |
− | bset #1,(a5)
| |
− | move.b $B(a5),d0
| |
− | jsr sub_72C4E(pc)
| |
− | movea.l a3,a5
| |
− |
| |
− | loc_72C22:
| |
− | addq.w #8,sp
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72C26: ; XREF: loc_72A64
| |
− | moveq #0,d0
| |
− | move.b (a4)+,d0
| |
− | move.b d0,$B(a5)
| |
− | btst #2,(a5)
| |
− | bne.w locret_72CAA
| |
− | movea.l $18(a6),a1
| |
− | tst.b $E(a6)
| |
− | beq.s sub_72C4E
| |
− | movea.l $20(a5),a1
| |
− | tst.b $E(a6)
| |
− | bmi.s sub_72C4E
| |
− | movea.l $20(a6),a1
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72C4E: ; XREF: Snd_FadeOut1; et al
| |
− | subq.w #1,d0
| |
− | bmi.s loc_72C5C
| |
− | move.w #$19,d1
| |
− |
| |
− | loc_72C56:
| |
− | adda.w d1,a1
| |
− | dbf d0,loc_72C56
| |
− |
| |
− | loc_72C5C:
| |
− | move.b (a1)+,d1
| |
− | move.b d1,$1F(a5)
| |
− | move.b d1,d4
| |
− | move.b #$B0,d0
| |
− | jsr sub_72722(pc)
| |
− | lea byte_72D18(pc),a2
| |
− | moveq #$13,d3
| |
− |
| |
− | loc_72C72:
| |
− | move.b (a2)+,d0
| |
− | move.b (a1)+,d1
| |
− | jsr sub_72722(pc)
| |
− | dbf d3,loc_72C72
| |
− | moveq #3,d5
| |
− | andi.w #7,d4
| |
− | move.b byte_72CAC(pc,d4.w),d4
| |
− | move.b 9(a5),d3
| |
− |
| |
− | loc_72C8C:
| |
− | move.b (a2)+,d0
| |
− | move.b (a1)+,d1
| |
− | lsr.b #1,d4
| |
− | bcc.s loc_72C96
| |
− | add.b d3,d1
| |
− |
| |
− | loc_72C96:
| |
− | jsr sub_72722(pc)
| |
− | dbf d5,loc_72C8C
| |
− | move.b #$B4,d0
| |
− | move.b $A(a5),d1
| |
− | jsr sub_72722(pc)
| |
− |
| |
− | locret_72CAA:
| |
− | rts
| |
− | ; End of function sub_72C4E
| |
− |
| |
− | ; ===========================================================================
| |
− | byte_72CAC: dc.b 8, 8, 8, 8, $A, $E, $E, $F
| |
− |
| |
− | ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
| |
− |
| |
− |
| |
− | sub_72CB4: ; XREF: sub_72504; sub_7267C; loc_72BA4
| |
− | btst #2,(a5)
| |
− | bne.s locret_72D16
| |
− | moveq #0,d0
| |
− | move.b $B(a5),d0
| |
− | movea.l $18(a6),a1
| |
− | tst.b $E(a6)
| |
− | beq.s loc_72CD8
| |
− | movea.l $20(a6),a1
| |
− | tst.b $E(a6)
| |
− | bmi.s loc_72CD8
| |
− | movea.l $20(a6),a1
| |
− |
| |
− | loc_72CD8:
| |
− | subq.w #1,d0
| |
− | bmi.s loc_72CE6
| |
− | move.w #$19,d1
| |
− |
| |
− | loc_72CE0:
| |
− | adda.w d1,a1
| |
− | dbf d0,loc_72CE0
| |
− |
| |
− | loc_72CE6:
| |
− | adda.w #$15,a1
| |
− | lea byte_72D2C(pc),a2
| |
− | move.b $1F(a5),d0
| |
− | andi.w #7,d0
| |
− | move.b byte_72CAC(pc,d0.w),d4
| |
− | move.b 9(a5),d3
| |
− | bmi.s locret_72D16
| |
− | moveq #3,d5
| |
− |
| |
− | loc_72D02:
| |
− | move.b (a2)+,d0
| |
− | move.b (a1)+,d1
| |
− | lsr.b #1,d4
| |
− | bcc.s loc_72D12
| |
− | add.b d3,d1
| |
− | bcs.s loc_72D12
| |
− | jsr sub_72722(pc)
| |
− |
| |
− | loc_72D12:
| |
− | dbf d5,loc_72D02
| |
− |
| |
− | locret_72D16:
| |
− | rts
| |
− | ; End of function sub_72CB4
| |
− |
| |
− | ; ===========================================================================
| |
− | byte_72D18: dc.b $30, $38, $34, $3C, $50, $58, $54, $5C, $60, $68
| |
− | dc.b $64, $6C, $70, $78, $74, $7C, $80, $88, $84, $8C
| |
− | byte_72D2C: dc.b $40, $48, $44, $4C
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72D30: ; XREF: loc_72A64
| |
− | bset #3,(a5)
| |
− | move.l a4,$14(a5)
| |
− | move.b (a4)+,$18(a5)
| |
− | move.b (a4)+,$19(a5)
| |
− | move.b (a4)+,$1A(a5)
| |
− | move.b (a4)+,d0
| |
− | lsr.b #1,d0
| |
− | move.b d0,$1B(a5)
| |
− | clr.w $1C(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72D52: ; XREF: loc_72A64
| |
− | bset #3,(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72D58: ; XREF: loc_72A64
| |
− | bclr #7,(a5)
| |
− | bclr #4,(a5)
| |
− | tst.b 1(a5)
| |
− | bmi.s loc_72D74
| |
− | tst.b 8(a6)
| |
− | bmi.w loc_72E02
| |
− | jsr sub_726FE(pc)
| |
− | bra.s loc_72D78
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72D74:
| |
− | jsr sub_729A0(pc)
| |
− |
| |
− | loc_72D78:
| |
− | tst.b $E(a6)
| |
− | bpl.w loc_72E02
| |
− | clr.b 0(a6)
| |
− | moveq #0,d0
| |
− | move.b 1(a5),d0
| |
− | bmi.s loc_72DCC
| |
− | lea dword_722CC(pc),a0
| |
− | movea.l a5,a3
| |
− | cmpi.b #4,d0
| |
− | bne.s loc_72DA8
| |
− | tst.b $340(a6)
| |
− | bpl.s loc_72DA8
| |
− | lea $340(a6),a5
| |
− | movea.l $20(a6),a1
| |
− | bra.s loc_72DB8
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72DA8:
| |
− | subq.b #2,d0
| |
− | lsl.b #2,d0
| |
− | movea.l (a0,d0.w),a5
| |
− | tst.b (a5)
| |
− | bpl.s loc_72DC8
| |
− | movea.l $18(a6),a1
| |
− |
| |
− | loc_72DB8:
| |
− | bclr #2,(a5)
| |
− | bset #1,(a5)
| |
− | move.b $B(a5),d0
| |
− | jsr sub_72C4E(pc)
| |
− |
| |
− | loc_72DC8:
| |
− | movea.l a3,a5
| |
− | bra.s loc_72E02
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72DCC:
| |
− | lea $370(a6),a0
| |
− | tst.b (a0)
| |
− | bpl.s loc_72DE0
| |
− | cmpi.b #$E0,d0
| |
− | beq.s loc_72DEA
| |
− | cmpi.b #$C0,d0
| |
− | beq.s loc_72DEA
| |
− |
| |
− | loc_72DE0:
| |
− | lea dword_722CC(pc),a0
| |
− | lsr.b #3,d0
| |
− | movea.l (a0,d0.w),a0
| |
− |
| |
− | loc_72DEA:
| |
− | bclr #2,(a0)
| |
− | bset #1,(a0)
| |
− | cmpi.b #$E0,1(a0)
| |
− | bne.s loc_72E02
| |
− | move.b $1F(a0),($C00011).l
| |
− |
| |
− | loc_72E02:
| |
− | addq.w #8,sp
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E06: ; XREF: loc_72A64
| |
− | move.b #$E0,1(a5)
| |
− | move.b (a4)+,$1F(a5)
| |
− | btst #2,(a5)
| |
− | bne.s locret_72E1E
| |
− | move.b -1(a4),($C00011).l
| |
− |
| |
− | locret_72E1E:
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E20: ; XREF: loc_72A64
| |
− | bclr #3,(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E26: ; XREF: loc_72A64
| |
− | move.b (a4)+,$B(a5)
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E2C: ; XREF: loc_72A64
| |
− | move.b (a4)+,d0
| |
− | lsl.w #8,d0
| |
− | move.b (a4)+,d0
| |
− | adda.w d0,a4
| |
− | subq.w #1,a4
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E38: ; XREF: loc_72A64
| |
− | moveq #0,d0
| |
− | move.b (a4)+,d0
| |
− | move.b (a4)+,d1
| |
− | tst.b $24(a5,d0.w)
| |
− | bne.s loc_72E48
| |
− | move.b d1,$24(a5,d0.w)
| |
− |
| |
− | loc_72E48:
| |
− | subq.b #1,$24(a5,d0.w)
| |
− | bne.s loc_72E2C
| |
− | addq.w #2,a4
| |
− | rts
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E52: ; XREF: loc_72A64
| |
− | moveq #0,d0
| |
− | move.b $D(a5),d0
| |
− | subq.b #4,d0
| |
− | move.l a4,(a5,d0.w)
| |
− | move.b d0,$D(a5)
| |
− | bra.s loc_72E2C
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_72E64: ; XREF: loc_72A64
| |
− | move.b #$88,d0
| |
− | move.b #$F,d1
| |
− | jsr sub_7272E(pc)
| |
− | move.b #$8C,d0
| |
− | move.b #$F,d1
| |
− | bra.w sub_7272E
| |
− | ; ===========================================================================
| |
− | Kos_Z80: binclude sound\z80_1.bin
| |
− | dc.w ((SegaPCM&$FF)<<8)+((SegaPCM&$FF00)>>8)
| |
− | dc.b $21
| |
− | dc.w (((EndOfRom-SegaPCM)&$FF)<<8)+(((EndOfRom-SegaPCM)&$FF00)>>8)
| |
− | binclude sound\z80_2.bin
| |
− | align 2
| |
− | Music81: binclude sound\music81.bin
| |
− | align 2
| |
− | Music82: binclude sound\music82.bin
| |
− | align 2
| |
− | Music83: binclude sound\music83.bin
| |
− | align 2
| |
− | Music84: binclude sound\music84.bin
| |
− | align 2
| |
− | Music85: binclude sound\music85.bin
| |
− | align 2
| |
− | Music86: binclude sound\music86.bin
| |
− | align 2
| |
− | Music87: binclude sound\music87.bin
| |
− | align 2
| |
− | Music88: binclude sound\music88.bin
| |
− | align 2
| |
− | Music89: binclude sound\music89.bin
| |
− | align 2
| |
− | Music8A: binclude sound\music8A.bin
| |
− | align 2
| |
− | Music8B: binclude sound\music8B.bin
| |
− | align 2
| |
− | Music8C: binclude sound\music8C.bin
| |
− | align 2
| |
− | Music8D: binclude sound\music8D.bin
| |
− | align 2
| |
− | Music8E: binclude sound\music8E.bin
| |
− | align 2
| |
− | Music8F: binclude sound\music8F.bin
| |
− | align 2
| |
− | Music90: binclude sound\music90.bin
| |
− | align 2
| |
− | Music91: binclude sound\music91.bin
| |
− | align 2
| |
− | Music92: binclude sound\music92.bin
| |
− | align 2
| |
− | Music93: binclude sound\music93.bin
| |
− | align 2
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Sound effect pointers
| |
− | ; ---------------------------------------------------------------------------
| |
− | SoundIndex: dc.l SoundA0, SoundA1, SoundA2
| |
− | dc.l SoundA3, SoundA4, SoundA5
| |
− | dc.l SoundA6, SoundA7, SoundA8
| |
− | dc.l SoundA9, SoundAA, SoundAB
| |
− | dc.l SoundAC, SoundAD, SoundAE
| |
− | dc.l SoundAF, SoundB0, SoundB1
| |
− | dc.l SoundB2, SoundB3, SoundB4
| |
− | dc.l SoundB5, SoundB6, SoundB7
| |
− | dc.l SoundB8, SoundB9, SoundBA
| |
− | dc.l SoundBB, SoundBC, SoundBD
| |
− | dc.l SoundBE, SoundBF, SoundC0
| |
− | dc.l SoundC1, SoundC2, SoundC3
| |
− | dc.l SoundC4, SoundC5, SoundC6
| |
− | dc.l SoundC7, SoundC8, SoundC9
| |
− | dc.l SoundCA, SoundCB, SoundCC
| |
− | dc.l SoundCD, SoundCE, SoundCF
| |
− | SoundD0Index: dc.l SoundD0
| |
− | SoundA0: binclude sound\soundA0.bin
| |
− | align 2
| |
− | SoundA1: binclude sound\soundA1.bin
| |
− | align 2
| |
− | SoundA2: binclude sound\soundA2.bin
| |
− | align 2
| |
− | SoundA3: binclude sound\soundA3.bin
| |
− | align 2
| |
− | SoundA4: binclude sound\soundA4.bin
| |
− | align 2
| |
− | SoundA5: binclude sound\soundA5.bin
| |
− | align 2
| |
− | SoundA6: binclude sound\soundA6.bin
| |
− | align 2
| |
− | SoundA7: binclude sound\soundA7.bin
| |
− | align 2
| |
− | SoundA8: binclude sound\soundA8.bin
| |
− | align 2
| |
− | SoundA9: binclude sound\soundA9.bin
| |
− | align 2
| |
− | SoundAA: binclude sound\soundAA.bin
| |
− | align 2
| |
− | SoundAB: binclude sound\soundAB.bin
| |
− | align 2
| |
− | SoundAC: binclude sound\soundAC.bin
| |
− | align 2
| |
− | SoundAD: binclude sound\soundAD.bin
| |
− | align 2
| |
− | SoundAE: binclude sound\soundAE.bin
| |
− | align 2
| |
− | SoundAF: binclude sound\soundAF.bin
| |
− | align 2
| |
− | SoundB0: binclude sound\soundB0.bin
| |
− | align 2
| |
− | SoundB1: binclude sound\soundB1.bin
| |
− | align 2
| |
− | SoundB2: binclude sound\soundB2.bin
| |
− | align 2
| |
− | SoundB3: binclude sound\soundB3.bin
| |
− | align 2
| |
− | SoundB4: binclude sound\soundB4.bin
| |
− | align 2
| |
− | SoundB5: binclude sound\soundB5.bin
| |
− | align 2
| |
− | SoundB6: binclude sound\soundB6.bin
| |
− | align 2
| |
− | SoundB7: binclude sound\soundB7.bin
| |
− | align 2
| |
− | SoundB8: binclude sound\soundB8.bin
| |
− | align 2
| |
− | SoundB9: binclude sound\soundB9.bin
| |
− | align 2
| |
− | SoundBA: binclude sound\soundBA.bin
| |
− | align 2
| |
− | SoundBB: binclude sound\soundBB.bin
| |
− | align 2
| |
− | SoundBC: binclude sound\soundBC.bin
| |
− | align 2
| |
− | SoundBD: binclude sound\soundBD.bin
| |
− | align 2
| |
− | SoundBE: binclude sound\soundBE.bin
| |
− | align 2
| |
− | SoundBF: binclude sound\soundBF.bin
| |
− | align 2
| |
− | SoundC0: binclude sound\soundC0.bin
| |
− | align 2
| |
− | SoundC1: binclude sound\soundC1.bin
| |
− | align 2
| |
− | SoundC2: binclude sound\soundC2.bin
| |
− | align 2
| |
− | SoundC3: binclude sound\soundC3.bin
| |
− | align 2
| |
− | SoundC4: binclude sound\soundC4.bin
| |
− | align 2
| |
− | SoundC5: binclude sound\soundC5.bin
| |
− | align 2
| |
− | SoundC6: binclude sound\soundC6.bin
| |
− | align 2
| |
− | SoundC7: binclude sound\soundC7.bin
| |
− | align 2
| |
− | SoundC8: binclude sound\soundC8.bin
| |
− | align 2
| |
− | SoundC9: binclude sound\soundC9.bin
| |
− | align 2
| |
− | SoundCA: binclude sound\soundCA.bin
| |
− | align 2
| |
− | SoundCB: binclude sound\soundCB.bin
| |
− | align 2
| |
− | SoundCC: binclude sound\soundCC.bin
| |
− | align 2
| |
− | SoundCD: binclude sound\soundCD.bin
| |
− | align 2
| |
− | SoundCE: binclude sound\soundCE.bin
| |
− | align 2
| |
− | SoundCF: binclude sound\soundCF.bin
| |
− | align 2
| |
− | SoundD0: binclude sound\soundD0.bin
| |
− | align 2
| |
− | SegaPCM: binclude sound\segapcm.bin
| |
− | align 2
| |
− | </asm>
| |
− |
| |
− | and replace it completely with:
| |
− | <asm>
| |
− | align $8000
| |
− | DriverData:
| |
− | dc.b $F3,$F3,$ED,$56,$C3,$89,$00,$00
| |
− | dc.b $2A,$15
| |
− | dc.b $00,$06,$00,$09,$08,$7E
| |
− | dc.b $23,$66,$6F,$08,$C9
| |
− | dc.w ((($1300&$1FFF)>>$08)|(($1300&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$4F,$06,$00,$09,$09,$00,$00,$00
| |
− | dc.b $7E,$23,$66,$6F,$C9,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$F3,$F5,$FD,$E5,$D9,$ED,$5F,$32
| |
− | dc.b $17,$1C,$CD,$21,$01,$3A,$02,$1C,$B7,$28,$12,$3A,$04,$1C,$B7,$20
| |
− | dc.b $08,$3E,$06,$32,$04,$1C,$C3,$3D,$00,$3D,$32,$04,$1C,$AF,$32,$21
| |
− | dc.b $1C,$3A,$30,$1C,$E6,$7F,$4F,$06,$00,$21,$DC,$00,$09,$7E
| |
− | Z80_0x006E:
| |
− | dc.b $C3,$4C,$11
| |
− | dc.b $77,$0F,$77,$0F,$77,$0F,$77,$0F,$77,$0F,$77,$0F,$77,$0F,$77
| |
− | dc.b $AF,$77
| |
− | Z80_0x0082:
| |
− | dc.b $D9,$FD,$E1,$F1,$06,$01,$C9,$31,$00,$20,$0E,$00,$06,$00
| |
− | dc.b $10,$FE,$0D,$28,$F9,$CD,$29,$09,$3E,$80,$3E,$06,$32,$3E,$1C,$AF
| |
− | dc.b $32,$27,$1C,$32,$30,$1C,$32,$3F,$1C,$32,$28,$1C,$3E,$05,$32,$04
| |
− | dc.b $1C,$FB,$C3,$62,$10,$DD,$CB,$01,$7E,$C0,$DD,$CB,$00,$56,$C0,$DD
| |
− | dc.b $86,$01,$DD,$CB,$01,$56,$20,$09,$32,$00,$40,$00,$79,$32,$01,$40
| |
− | dc.b $C9,$D6,$04,$32,$02,$40,$00,$79,$32,$03,$40,$C9
| |
− | Z80_0x00DC:
| |
− | Dac_Sample_Selector:
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F))
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F))
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F))
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F))
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F))
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F))
| |
− | dc.b ((DacBank0>>$F)),((DacBank0>>$F)),((DacBank0>>$F)),((DacBank1>>$F))
| |
− | dc.b ((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F))
| |
− | dc.b ((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F))
| |
− | dc.b ((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F))
| |
− | dc.b ((DacBank1>>$F)),((DacBank1>>$F)),((DacBank1>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F)),((DacBank2>>$F))
| |
− | dc.b ((DacBank2>>$F))
| |
− | dc.b $CD,$E8,$07,$CD,$A2,$01,$CD,$B1,$09,$CD,$62,$08,$CD,$C6,$08
| |
− | dc.b $3A,$16,$1C,$FE,$29,$20,$18,$3A,$0A,$1C,$FE,$2A,$28,$04,$FE,$32
| |
− | dc.b $38,$04,$AF,$32,$0A,$1C,$AF,$32,$0B,$1C,$32,$0C,$1C,$18,$1F,$3A
| |
− | dc.b $16,$1C,$FE,$FF,$28,$18,$21,$0A,$1C,$5E,$23,$56,$23,$7E,$B2,$B3
| |
− | dc.b $28,$0C,$CD,$C7,$09,$CD,$DF,$04,$CD,$DF,$04,$CD,$DF,$04
| |
− | Z80_0x016E:
| |
− | dc.b $3A,$3E,$1C
| |
− | dc.b $FE,$00
| |
− | dc.b $C2
| |
− | dc.w (((Z80DefaultBankSwitch&$1FFF)>>$08)|((Z80DefaultBankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch0&$1FFF)>>$08)|((Z80BankSwitch0&$1FFF)<<$08))&$FFFF
| |
− | dc.b $18,$03
| |
− | Z80DefaultBankSwitch:
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00
| |
− | Z80_0x0183:
| |
− | dc.b $AF,$32,$19,$1C,$3A,$16,$1C,$FE,$FF,$CC,$05,$0A,$DD
| |
− | dc.b $21,$40,$1C,$DD,$CB,$00,$7E,$C4,$7A,$0B,$06,$08,$DD,$21,$70,$1C
| |
− | dc.b $18,$1A,$3E,$01,$32,$19,$1C
| |
− | Z80_0x01A7:
| |
− | dc.b $3E, ((SndBank>>$0F))
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | dc.b $DD,$21,$F0,$1D,$06,$07,$C5,$DD,$CB,$00
| |
− | dc.b $7E,$C4,$E6,$01,$11,$30,$00,$DD,$19,$C1,$10,$F0,$3A,$08,$1C,$B7
| |
− | dc.b $C8,$3A,$2F,$1C,$B7,$C2,$E1,$01,$3A,$08,$1C,$32,$2F,$1C,$C3,$27
| |
− | dc.b $01,$3D,$32,$2F,$1C,$C9,$DD,$CB,$01,$7E,$C2,$9C,$0F,$CD,$37,$03
| |
− | dc.b $20,$17,$CD,$74,$02,$DD,$CB,$00,$66,$C0,$CD,$9B,$03,$CD,$6C,$04
| |
− | dc.b $CD,$C6,$03,$CD,$28,$02,$C3,$3F,$03,$DD,$CB,$00,$66,$C0,$CD,$6A
| |
− | dc.b $03,$DD,$7E,$1E,$B7,$28,$06,$DD,$35,$1E,$CA,$58,$03,$CD,$6C,$04
| |
− | dc.b $DD,$CB,$00,$76,$C0,$CD,$C6,$03,$DD,$CB,$00,$56,$C0,$DD,$CB,$00
| |
− | dc.b $46,$C2,$41,$02,$3E,$A4,$4C,$CD,$B5,$00,$3E,$A0,$4D,$CD,$B5,$00
| |
− | dc.b $C9,$DD,$7E,$01,$FE,$02,$20,$EC,$06,$04,$21,$6F,$02,$C5,$7E,$23
| |
− | dc.b $E5,$EB,$4E,$23,$46,$23,$EB,$DD,$6E,$0D,$DD,$66,$0E,$09,$F5,$4C
| |
− | dc.b $CD,$C8,$00,$F1,$D6,$04,$4D,$CD,$C8,$00,$E1,$C1,$10,$DF,$C9,$AD
| |
− | dc.b $AE,$AC,$A6,$C9,$DD,$5E,$03,$DD,$56,$04,$DD,$CB,$00,$8E,$DD,$CB
| |
− | dc.b $00,$A6,$1A,$13,$FE,$E0,$D2,$CF,$0B,$08,$CD,$58,$03,$08,$DD,$CB
| |
− | dc.b $00,$5E,$C2,$E5,$02,$B7,$F2,$05,$03,$D6,$81,$F2,$A3,$02,$CD,$44
| |
− | dc.b $10,$18,$2E,$DD,$86,$05,$21,$88,$0A,$F5,$DF,$F1,$DD,$CB,$01,$7E
| |
− | dc.b $20,$19,$D5,$16,$08,$1E,$0C,$08,$AF,$08,$93,$38,$05,$08,$82,$18
| |
− | dc.b $F8,$08,$83,$21,$30,$0B,$DF,$08,$B4,$67,$D1,$DD,$75,$0D,$DD,$74
| |
− | dc.b $0E,$1A,$B7,$F2,$04,$03,$DD,$7E,$0C,$DD,$77,$0B,$18,$2D,$1A,$13
| |
− | dc.b $DD,$77,$11,$18,$1E,$67,$1A,$13,$6F,$B4,$28,$0C,$DD,$7E,$05,$06
| |
− | dc.b $00,$B7,$F2,$F6,$02,$05,$4F,$09,$DD,$75,$0D,$DD,$74,$0E,$1A,$13
| |
− | dc.b $DD,$77,$11,$1A,$13,$CD,$2D,$03,$DD,$77,$0C,$DD,$73,$03,$DD,$72
| |
− | dc.b $04,$DD,$7E,$0C,$DD,$77,$0B,$DD,$CB,$00,$4E,$C0,$AF,$DD,$77,$25
| |
− | dc.b $DD,$77,$22,$DD,$77,$17,$DD,$7E,$1F,$DD,$77,$1E,$C9,$DD,$46,$02
| |
− | dc.b $05,$C8,$4F,$81,$10,$FD,$C9,$DD,$7E,$0B,$3D,$DD,$77,$0B,$C9,$DD
| |
− | dc.b $7E,$0D,$DD,$B6,$0E,$C8,$DD,$7E,$00,$E6,$06,$C0,$DD,$7E,$01,$F6
| |
− | dc.b $F0,$4F,$3E,$28,$CD,$C8,$00,$C9,$DD,$7E,$00,$E6,$06,$C0,$DD,$4E
| |
− | dc.b $01,$CB,$79,$C0,$3E,$28,$CD,$C8,$00,$C9,$DD,$7E,$18,$B7,$C8,$F8
| |
− | dc.b $3D,$0E,$0A,$CF,$DF,$CD,$12,$10,$DD,$66,$1D,$DD,$6E,$1C,$11,$AE
| |
− | dc.b $04,$06,$04,$DD,$4E,$19,$F5,$CB,$29,$C5,$30,$08,$86,$E6,$7F,$4F
| |
− | dc.b $1A,$CD,$B5,$00,$C1,$13,$23,$F1,$10,$EC,$C9,$DD,$CB,$07,$7E,$C8
| |
− | dc.b $DD,$CB,$00,$4E,$C0,$DD,$5E,$20,$DD,$56,$21,$DD,$E5,$E1,$06,$00
| |
− | dc.b $0E,$24,$09,$EB,$ED,$A0,$ED,$A0,$ED,$A0,$7E,$CB,$3F,$12,$AF,$DD
| |
− | dc.b $77,$22,$DD,$77,$23,$C9,$DD,$7E,$07,$B7,$C8,$FE,$80,$20,$48,$DD
| |
− | dc.b $35,$24,$C0,$DD,$34,$24,$E5,$DD,$6E,$22,$DD,$66,$23,$DD,$5E,$20
| |
− | dc.b $DD,$56,$21,$D5,$FD,$E1,$DD,$35,$25,$20,$17,$FD,$7E,$01,$DD,$77
| |
− | dc.b $25,$DD,$7E,$26,$4F,$E6,$80,$07,$ED,$44,$47,$09,$DD,$75,$22,$DD
| |
− | dc.b $74,$23,$C1,$09,$DD,$35,$27,$C0,$FD,$7E,$03,$DD,$77,$27,$DD,$7E
| |
− | dc.b $26,$ED,$44,$DD,$77,$26,$C9,$3D,$EB,$0E,$08,$CF,$DF,$18,$03,$DD
| |
− | dc.b $77,$25,$E5,$DD,$4E,$25,$06,$00,$09,$7E,$E1,$CB,$7F,$CA,$5D,$04
| |
− | dc.b $FE,$82,$28,$12,$FE,$80,$28,$12,$FE,$84,$28,$11,$26,$FF,$30,$1F
| |
− | dc.b $DD,$CB,$00,$F6,$E1,$C9,$03,$0A,$18,$D5,$AF,$18,$D2,$03,$0A,$DD
| |
− | dc.b $86,$22,$DD,$77,$22,$DD,$34,$25,$DD,$34,$25,$18,$C5,$26,$00,$6F
| |
− | dc.b $DD,$46,$22,$04,$EB,$19,$10,$FD,$DD,$34,$25,$C9,$DD,$66,$0E,$DD
| |
− | dc.b $6E,$0D,$06,$00,$DD,$7E,$10,$B7,$F2,$7D,$04,$06,$FF,$4F,$09,$C9
| |
− | dc.b $2A,$37,$1C,$3A,$19,$1C,$B7,$28,$06,$DD,$6E,$2A,$DD,$66,$2B,$AF
| |
− | dc.b $B0,$C8,$11,$19,$00,$19,$10,$FD,$C9,$B0,$30,$38,$34,$3C,$50,$58
| |
− | dc.b $54,$5C,$60,$68,$64,$6C,$70,$78,$74,$7C,$80,$88,$84,$8C,$40,$48
| |
− | dc.b $44,$4C,$90,$98,$94,$9C,$11,$99,$04,$DD,$4E,$0A,$3E,$B4,$CD,$B5
| |
− | dc.b $00,$CD,$D7,$04,$DD,$77,$1B,$06,$14,$CD,$D7,$04,$10,$FB,$DD,$75
| |
− | dc.b $1C,$DD,$74,$1D,$C3,$9C,$0C,$1A,$13,$4E,$23,$CD,$B5,$00,$C9,$3A
| |
− | dc.b $05,$1C,$32,$09,$1C,$3A,$06,$1C,$32,$05,$1C,$3A,$07,$1C,$32,$06
| |
− | dc.b $1C,$AF,$32,$07,$1C,$3A,$09,$1C,$FE,$FF,$CA,$FB,$09,$FE,$33,$DA
| |
− | dc.b $4A,$05,$FE,$E0,$DA,$99,$06,$FE,$E1,$DA,$29,$09,$FE,$E6,$D2,$29
| |
− | dc.b $09,$D6,$E1,$21,$1C,$05,$DF,$AF,$32,$18,$1C,$E9,$45,$08,$29,$09
| |
− | dc.b $A1,$09,$26,$05,$45,$08,$DD,$21,$F0,$1D,$06,$07,$3E,$01,$32,$19
| |
− | dc.b $1C,$C5,$DD,$CB,$00,$7E,$C4,$45,$05,$11,$30,$00,$DD,$19,$C1,$10
| |
− | dc.b $F0,$CD,$80,$06,$C9,$E5,$E5,$C3,$61,$0C,$D6,$01,$F8,$F5,$FE,$29
| |
− | dc.b $C2,$CD,$05,$3A,$29,$1C,$B7,$CA,$72,$05,$AF,$32,$0A,$1C,$32,$0B
| |
− | dc.b $1C,$32,$0C,$1C,$32,$05,$1C,$32,$06,$1C,$32,$07,$1C,$32,$09,$1C
| |
− | dc.b $F1,$C9,$3A,$16,$1C,$FE,$29,$CA,$D0,$05,$AF,$32,$0A,$1C,$32,$0B
| |
− | dc.b $1C,$32,$0C,$1C,$32,$05,$1C,$32,$06,$1C,$32,$07,$1C,$3A,$3E,$1C
| |
− | dc.b $32,$2D,$1C,$3A,$08,$1C,$32,$2E,$1C,$AF,$32,$08,$1C,$21,$40,$1C
| |
− | dc.b $11,$F0,$1D,$01,$B0,$01,$ED,$B0,$21,$F0,$1D,$11,$30,$00,$06,$09
| |
− | dc.b $7E,$E6,$7F,$CB,$D6,$77,$19,$10,$F7,$3E,$29,$32,$16,$1C,$3A,$24
| |
− | dc.b $1C,$32,$2C,$1C,$2A,$37,$1C,$22,$2A,$1C,$C3,$D0,$05,$CD,$29,$09
| |
− | dc.b $F1,$F5
| |
− | Z80_0x05D2:
| |
− | dc.b $21,$48,$0B
| |
− | dc.b $85,$6F,$8C,$95,$67,$22,$DE,$05,$3A,$48,$0B
| |
− | dc.b $32,$3E,$1C
| |
− | Z80_0x05E3:
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | dc.b $3E,$B6,$32,$02,$40,$00,$3E,$C0,$32,$03,$40
| |
− | dc.b $F1,$0E,$04,$CF,$DF,$E5,$E5,$E7,$22,$37,$1C,$E1,$FD,$E1,$FD,$7E
| |
− | dc.b $05,$32,$13,$1C,$32,$24,$1C,$11,$06,$00,$19,$22,$33,$1C,$21,$85
| |
− | dc.b $06,$22,$35,$1C,$11,$40,$1C,$FD,$46,$02,$FD,$7E,$04,$C5,$2A,$35
| |
− | dc.b $1C,$ED,$A0,$ED,$A0,$12,$13,$22,$35,$1C,$2A,$33,$1C,$ED,$A0,$ED
| |
− | dc.b $A0,$ED,$A0,$ED,$A0,$22,$33,$1C,$CD,$AE,$07,$C1,$10,$DF,$FD,$7E
| |
− | dc.b $03,$B7,$CA,$80,$06,$47,$21,$93,$06,$22,$35,$1C,$11,$60,$1D,$FD
| |
− | dc.b $7E,$04,$C5,$2A,$35,$1C,$ED,$A0,$ED,$A0,$12,$13,$22,$35,$1C,$2A
| |
− | dc.b $33,$1C,$01,$06,$00,$ED,$B0,$22,$33,$1C,$CD,$B5,$07,$C1,$10,$E2
| |
− | dc.b $AF,$32,$09,$1C,$C9,$80,$06,$80,$00,$80,$01,$80,$02,$80,$04,$80
| |
− | dc.b $05,$80,$06,$80,$80,$80,$A0,$80,$C0,$D6,$33,$B7,$C2,$A7,$06,$3A
| |
− | dc.b $28,$1C,$EE,$01,$32,$28,$1C,$08
| |
− | Z80_0x06A8:
| |
− | dc.b $3E, ((SndBank>>$0F))
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | Z80_0x06B7:
| |
− | dc.b $AF,$0E,$06,$32,$19,$1C,$08,$FE,$78
| |
− | dc.b $CA,$F5,$06,$FE,$89,$DA,$EF,$06,$F5,$47,$3A,$25,$1C,$90,$C2,$E4
| |
− | dc.b $06,$3E,$80,$32,$26,$1C,$CF,$F1,$4F,$DF,$23,$23,$23,$7E,$32,$31
| |
− | dc.b $1C,$C3,$80,$06,$AF,$32,$26,$1C,$F1,$32,$25,$1C,$C3,$F5,$06,$F5
| |
− | dc.b $AF,$32,$27,$1C,$F1,$CF,$DF,$E5,$E7,$22,$39,$1C,$AF,$32,$15,$1C
| |
− | dc.b $E1,$E5,$FD,$E1,$FD,$7E,$02,$32,$3B,$1C,$11,$04,$00,$19,$FD,$46
| |
− | dc.b $03,$78,$32,$31,$1C,$C5,$E5,$23,$4E,$CD,$78,$07,$CB,$D6,$DD,$E5
| |
− | dc.b $3A,$19,$1C,$B7,$28,$03,$E1,$FD,$E5,$D1,$E1,$ED,$A0,$1A,$FE,$02
| |
− | dc.b $CC,$5E,$09,$ED,$A0,$3A,$3B,$1C,$12,$13,$ED,$A0,$ED,$A0,$ED,$A0
| |
− | dc.b $ED,$A0,$CD,$AE,$07,$DD,$CB,$00,$7E,$28,$0C,$DD,$7E,$01,$FD,$BE
| |
− | dc.b $01,$20,$04,$FD,$CB,$00,$D6,$E5,$2A,$39,$1C,$3A,$19,$1C,$B7,$28
| |
− | dc.b $04,$FD,$E5,$DD,$E1,$DD,$75,$2A,$DD,$74,$2B,$CD,$58,$03,$CD,$6B
| |
− | dc.b $09,$E1,$C1,$10,$A0,$C3,$80,$06,$CB,$79,$20,$08,$79,$CB,$57,$28
| |
− | dc.b $1A,$3D,$18,$17,$3E,$1F,$CD,$4D,$10,$3E,$FF,$32,$11,$7F,$79,$CB
| |
− | dc.b $3F,$CB,$3F,$CB,$3F,$CB,$3F,$CB,$3F,$C6,$02,$D6,$02,$32,$32,$1C
| |
− | dc.b $F5,$21,$C8,$07,$DF,$E5,$DD,$E1,$F1,$21,$D8,$07,$DF,$C9,$08,$AF
| |
− | dc.b $12,$13,$12,$13,$08,$EB,$36,$30,$23,$36,$C0,$23,$36,$01,$06,$24
| |
− | dc.b $23,$36,$00,$10,$FB,$23,$EB,$C9,$F0,$1D,$20,$1E,$50,$1E,$80,$1E
| |
− | dc.b $B0,$1E,$E0,$1E,$10,$1F,$10,$1F,$D0,$1C,$00,$1D,$30,$1D,$40,$1C
| |
− | dc.b $60,$1D,$90,$1D,$C0,$1D,$C0,$1D,$21,$10,$1C,$7E,$B7,$C8,$FA,$F9
| |
− | dc.b $07,$D1,$3D,$C0,$36,$02,$C3,$72,$09,$AF,$77,$3A,$0D,$1C,$B7,$C2
| |
− | dc.b $29,$09,$DD,$21,$70,$1C,$06,$06,$3A,$11,$1C,$B7,$20,$06,$DD,$CB
| |
− | dc.b $00,$7E,$28,$08,$DD,$4E,$0A,$3E,$B4,$CD,$B5,$00,$11,$30,$00,$DD
| |
− | dc.b $19,$10,$E5,$DD,$21,$40,$1F,$06,$07,$DD,$CB,$00,$7E,$28,$0E,$DD
| |
− | dc.b $CB,$01,$7E,$20,$08,$DD,$4E,$0A,$3E,$B4,$CD,$B5,$00,$11,$30,$00
| |
− | dc.b $DD,$19,$10,$E5,$C9,$3E,$28,$32,$0D,$1C,$3E,$06,$32,$0F,$1C,$32
| |
− | dc.b $0E,$1C,$AF,$32,$40,$1C,$32,$C0,$1D,$32,$60,$1D,$32,$90,$1D,$C3
| |
− | dc.b $A1,$09,$21,$0D,$1C,$7E,$B7,$C8,$FC,$52,$08,$CB,$BE,$3A,$0F,$1C
| |
− | dc.b $3D,$28,$04,$32,$0F,$1C,$C9,$3A,$0E,$1C,$32,$0F,$1C,$3A,$0D,$1C
| |
− | dc.b $3D,$32,$0D,$1C,$CA,$29,$09,$3A,$3E,$1C
| |
− | Z80_0x088A:
| |
− | dc.b $21,$00,$60
| |
− | dc.b $77,$1F,$77,$1F,$77,$1F,$77,$AF,$16,$01,$72,$77,$77,$77,$77
| |
− | Z80_0x089C:
| |
− | dc.b $DD,$21,$40,$1C
| |
− | dc.b $06,$06,$DD,$34,$06,$F2,$AD,$08,$DD,$35,$06,$18,$11,$DD,$CB,$00
| |
− | dc.b $7E,$28,$0B,$DD,$CB,$00,$56,$20,$05,$C5,$CD,$9C,$0C,$C1,$11,$30
| |
− | dc.b $00,$DD,$19,$10,$DD,$C9,$3A,$29,$1C,$B7,$C8,$3A,$3E,$1C
| |
− | Z80_0x08CE:
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | Z80_0x08E0:
| |
− | dc.b $3A,$0E,$1C,$3D,$32,$0E,$1C,$C0,$3A,$0F,$1C,$32,$0E,$1C,$06,$05
| |
− | dc.b $DD,$21,$70,$1C,$11,$30,$00,$DD,$7E,$06,$3D,$DD,$77,$06,$C5,$CD
| |
− | dc.b $9C,$0C,$C1,$DD,$19,$10,$F0,$3A,$29,$1C,$3D,$32,$29,$1C,$C0,$06
| |
− | dc.b $03,$DD,$21,$60,$1D,$11,$30,$00,$DD,$CB,$00,$96,$DD,$19,$10,$F8
| |
− | dc.b $DD,$21,$40,$1C,$DD,$CB,$00,$96,$C9,$21,$0D,$1C,$11,$0E,$1C,$01
| |
− | dc.b $C6,$03,$36,$00,$ED,$B0,$AF,$32,$08,$1C,$DD,$21,$85,$06,$06,$06
| |
− | dc.b $C5,$CD,$DB,$09,$CD,$6B,$09,$DD,$23,$DD,$23,$C1,$10,$F2,$06,$07
| |
− | dc.b $AF,$32,$0D,$1C,$CD,$A1,$09,$0E,$00,$3E,$2B,$CD,$C8,$00,$AF,$32
| |
− | dc.b $12,$1C,$4F,$3E,$27,$CD,$C8,$00,$C3,$80,$06,$3E,$90,$0E,$00,$C3
| |
− | dc.b $EF,$09,$CD,$A1,$09,$C5,$F5,$06,$03,$3E,$B4,$0E,$00,$F5,$CD,$C8
| |
− | dc.b $00,$F1,$3C,$10,$F8,$06,$02,$3E,$B4,$F5,$CD,$D3,$00,$F1,$3C,$10
| |
− | dc.b $F8,$0E,$00,$06,$06,$3E,$28,$F5,$CD,$C8,$00,$0C,$F1,$10,$F8,$F1
| |
− | dc.b $C1,$C5,$06,$04,$3E,$9F,$32,$11,$7F,$C6,$20,$10,$F9,$C1,$C3,$80
| |
− | dc.b $06,$3A,$24,$1C,$21,$13,$1C,$86,$77,$D0,$21,$4B,$1C,$11,$30,$00
| |
− | dc.b $06,$09,$34,$19,$10,$FC,$C9,$21,$0A,$1C,$11,$05,$1C,$ED,$A0,$ED
| |
− | dc.b $A0,$ED,$A0,$AF,$2B,$77,$2B,$77,$2B,$77,$C9,$CD,$EB,$09,$3E,$40
| |
− | dc.b $0E,$7F,$CD,$EF,$09,$DD,$4E,$01,$C3,$64,$03,$3E,$80,$0E,$FF,$06
| |
− | dc.b $04,$F5,$CD,$B5,$00,$F1,$C6,$04,$10,$F7,$C9,$CD,$29,$09,$3E,$01
| |
− | dc.b $32,$3F,$1C,$E1,$C9,$AF,$32,$16,$1C,$3A,$2C,$1C,$32,$24,$1C,$3A
| |
− | dc.b $2E,$1C,$32,$08,$1C,$2A,$2A,$1C,$22,$37,$1C
| |
− | Z80_0x0A1B:
| |
− | dc.b $3A,$2D,$1C,$32,$3E,$1C
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | Z80_0x0A33:
| |
− | dc.b $21,$F0,$1D,$11,$40,$1C,$01,$B0,$01,$ED,$B0,$3A,$40
| |
− | dc.b $1C,$F6,$84,$32,$40,$1C,$DD,$21,$70,$1C,$06,$08,$DD,$7E,$00,$F6
| |
− | dc.b $84,$DD,$77,$00,$DD,$CB,$01,$7E,$C2,$73,$0A,$DD,$CB,$00,$96,$DD
| |
− | dc.b $7E,$06,$C6,$40,$DD,$77,$06,$DD,$7E,$08,$C5,$47,$CD,$80,$04,$CD
| |
− | dc.b $B6,$04,$C1,$11,$30,$00,$DD,$19,$10,$D2,$3E,$40,$32,$29,$1C,$3E
| |
− | dc.b $02,$32,$0F,$1C,$32,$0E,$1C,$C9,$FF,$03,$FF,$03,$FF,$03,$FF,$03
| |
− | dc.b $FF,$03,$FF,$03,$FF,$03,$FF,$03,$FF,$03,$F7,$03,$BE,$03,$88,$03
| |
− | dc.b $56,$03,$26,$03,$F9,$02,$CE,$02,$A5,$02,$80,$02,$5C,$02,$3A,$02
| |
− | dc.b $1A,$02,$FB,$01,$DF,$01,$C4,$01,$AB,$01,$93,$01,$7D,$01,$67,$01
| |
− | dc.b $53,$01,$40,$01,$2E,$01,$1D,$01,$0D,$01,$FE,$00,$EF,$00,$E2,$00
| |
− | dc.b $D6,$00,$C9,$00,$BE,$00,$B4,$00,$A9,$00,$A0,$00,$97,$00,$8F,$00
| |
− | dc.b $87,$00,$7F,$00,$78,$00,$71,$00,$6B,$00,$65,$00,$5F,$00,$5A,$00
| |
− | dc.b $55,$00,$50,$00,$4B,$00,$47,$00,$43,$00,$40,$00,$3C,$00,$39,$00
| |
− | dc.b $36,$00,$33,$00,$30,$00,$2D,$00,$2B,$00,$28,$00,$26,$00,$24,$00
| |
− | dc.b $22,$00,$20,$00,$1F,$00,$1D,$00,$1B,$00,$1A,$00,$18,$00,$17,$00
| |
− | dc.b $16,$00,$15,$00,$13,$00,$12,$00,$11,$00,$10,$00,$00,$00,$00,$00
| |
− | dc.b $84,$02,$AB,$02,$D3,$02,$FE,$02,$2D,$03,$5C,$03,$8F,$03,$C5,$03
| |
− | dc.b $FF,$03,$3C,$04,$7C,$04,$C0,$04
| |
− | BankSelector:
| |
− | dc.b ((Bank1>>$0F)),((Bank1>>$0F)),((Bank1>>$0F)),((Bank1>>$0F))
| |
− | dc.b ((Bank1>>$0F)),((Bank1>>$0F)),((Bank1>>$0F)),((Bank1>>$0F))
| |
− | dc.b ((Bank1>>$0F)),((Bank1>>$0F)),((Bank2>>$0F)),((Bank2>>$0F))
| |
− | dc.b ((Bank2>>$0F)),((Bank2>>$0F)),((Bank2>>$0F)),((Bank2>>$0F))
| |
− | dc.b ((Bank2>>$0F)),((Bank2>>$0F)),((Bank2>>$0F)),((Bank2>>$0F))
| |
− | dc.b ((Bank2>>$0F)),((Bank2>>$0F)),((Bank2>>$0F)),((Bank2>>$0F))
| |
− | dc.b ((Bank2>>$0F)),((Bank1>>$0F)),((Bank2>>$0F)),((Bank2>>$0F))
| |
− | dc.b ((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F))
| |
− | dc.b ((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F))
| |
− | dc.b ((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F))
| |
− | dc.b ((Bank2>>$0F)),((Bank3>>$0F)),((Bank3>>$0F)),((Bank3>>$0F))
| |
− | dc.b ((Bank3>>$0F)),((Bank0>>$0F)),((Bank2>>$0F)),((Bank0>>$0F))
| |
− | dc.b ((Bank3>>$0F)),((Bank3>>$0F))
| |
− | dc.b $CD,$37,$03,$C0,$DD,$5E
| |
− | dc.b $03,$DD,$56,$04,$1A,$13,$FE,$E0,$D2,$C5,$0B,$B7,$FA,$93,$0B,$1B
| |
− | dc.b $DD,$7E,$0D,$DD,$77,$0D,$FE,$80,$CA,$B5,$0B,$CB,$BF,$D5,$08,$CD
| |
− | dc.b $58,$03,$CD,$5E,$09,$08,$DD,$21,$40,$1C,$DD,$CB,$00,$56,$C2,$B4
| |
− | dc.b $0B,$32,$30,$1C,$D1,$1A,$13,$B7,$F2,$05,$03,$1B,$DD,$7E,$0C,$DD
| |
− | dc.b $77,$0B,$C3,$0B,$03,$21,$CB,$0B,$C3,$D2,$0B,$13,$C3,$84,$0B,$21
| |
− | dc.b $DB,$0B,$E5,$D6,$E0,$21,$DF,$0B,$DF,$1A,$E9,$13,$C3,$82,$02,$33
| |
− | dc.b $0C,$59,$0C,$5D,$0C,$61,$0C,$67,$0C,$83,$0C,$85,$0C,$BD,$0C,$C3
| |
− | dc.b $0C,$47,$0C,$2F,$0C,$CD,$0C,$E3,$0C,$FD,$0C,$03,$0D,$10,$0D,$4F
| |
− | dc.b $0D,$5D,$0D,$69,$0D,$11,$0E,$65,$0D,$30,$0E,$39,$0E,$3F,$0E,$56
| |
− | dc.b $0E,$70,$0E,$83,$0E,$89,$0E,$90,$0E,$B2,$0E,$C0,$0E,$07,$0F,$0E
| |
− | dc.b $0F,$12,$0F,$1A,$0F,$55,$0F,$63,$0F,$72,$0F,$8D,$0F,$96,$0F,$32
| |
− | dc.b $30,$1C,$C9,$0E,$3F,$DD,$7E,$0A,$A1,$D5,$EB,$B6,$DD,$77,$0A,$4F
| |
− | dc.b $3E,$B4,$CD,$B5,$00,$D1,$C9,$21,$27,$1C,$7E,$DD,$86,$05,$DD,$77
| |
− | dc.b $05,$FE,$10,$CA,$57,$0C,$34,$1B,$C9,$DD,$77,$10,$C9,$32,$16,$1C
| |
− | dc.b $C9,$CD,$DB,$09,$C3,$69,$0D,$DD,$CB,$01,$7E,$28,$0D,$CB,$3F,$CB
| |
− | dc.b $3F,$CB,$3F,$EE,$0F,$E6,$0F,$C3,$F9,$0C,$EE,$7F,$E6,$7F,$DD,$77
| |
− | dc.b $06,$18,$19,$13,$1A,$DD,$CB,$01,$7E,$C0,$DD,$86,$06,$F2,$99,$0C
| |
− | dc.b $EA,$97,$0C,$AF,$C3,$99,$0C,$3E,$7F,$DD,$77,$06,$D5,$11,$AE,$04
| |
− | dc.b $DD,$6E,$1C,$DD,$66,$1D,$06,$04,$7E,$B7,$F2,$B0,$0C,$DD,$86,$06
| |
− | dc.b $E6,$7F,$4F,$1A,$CD,$B5,$00,$13,$23,$10,$ED,$D1,$C9,$DD,$CB,$00
| |
− | dc.b $CE,$1B,$C9,$CD,$2D,$03,$DD,$77,$1E,$DD,$77,$1F,$C9,$13,$C6,$28
| |
− | dc.b $4F,$06,$00,$DD,$E5,$E1,$09,$7E,$3D,$CA,$DE,$0C,$13,$C9,$AF,$77
| |
− | dc.b $C3,$39,$0E,$DD,$CB,$01,$7E,$C8,$DD,$CB,$00,$A6,$DD,$35,$17,$DD
| |
− | dc.b $86,$06,$FE,$0F,$DA,$F9,$0C,$3E,$0F,$DD,$77,$06,$C9,$D6,$40,$DD
| |
− | dc.b $77,$05,$C9,$CD,$0A,$0D,$CD,$C8,$00,$C9,$EB,$7E,$23,$4E,$EB,$C9
| |
− | dc.b $DD,$CB,$01,$7E,$20,$30,$CD,$EB,$09,$1A,$DD,$77,$08,$B7,$F2,$3C
| |
− | dc.b $0D,$13,$1A,$DD,$77,$0F,$D5,$DD,$7E,$0F,$D6,$81,$0E,$04,$CF,$DF
| |
− | dc.b $E7,$DD,$7E,$08,$E6,$7F,$47,$CD,$8F,$04,$18,$05,$D5,$47,$CD,$80
| |
− | dc.b $04,$CD,$B6,$04,$D1,$C9,$B7,$F2,$35,$0E,$13,$C3,$35,$0E,$C9,$DD
| |
− | dc.b $73,$20,$DD,$72,$21,$DD,$36,$07,$80,$13,$13,$13,$C9,$13,$DD,$CB
| |
− | dc.b $01,$7E,$20,$01,$1A,$DD,$77,$07,$C9,$DD,$CB,$00,$BE,$3E,$1F,$32
| |
− | dc.b $15,$1C,$CD,$58,$03,$DD,$4E,$01,$DD,$E5,$CD,$78,$07,$3A,$19,$1C
| |
− | dc.b $B7,$28,$77,$AF,$32,$18,$1C,$E5,$2A,$37,$1C,$DD,$E1,$DD,$CB,$00
| |
− | dc.b $96,$DD,$CB,$01,$7E,$20,$68,$DD,$CB,$00,$7E,$28,$5D,$3E,$02,$DD
| |
− | dc.b $BE,$01,$20,$0D,$3E,$4F,$DD,$CB,$00,$46,$20,$02,$E6,$0F,$CD,$E9
| |
− | dc.b $0E,$DD,$7E,$08,$B7,$F2,$BD,$0D,$CD,$26,$0D,$18,$3A,$47,$E5
| |
− | Z80_0x0DBF:
| |
− | dc.b $3A,$3E,$1C
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | Z80_0x0DD4:
| |
− | dc.b $E1,$CD,$8F,$04,$CD,$B6,$04
| |
− | Z80_0x0DDB:
| |
− | dc.b $3E,((SndBank>>$0F))
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | dc.b $DD,$7E,$18,$B7,$F2,$FA
| |
− | dc.b $0D,$DD,$5E,$19,$DD,$56,$1A,$CD,$7C,$0F,$DD,$E1,$E1,$E1,$C9,$DD
| |
− | dc.b $CB,$00,$46,$28,$F5,$DD,$7E,$1A,$B7,$F2,$0F,$0E,$32,$11,$7F,$18
| |
− | dc.b $E9,$DD,$CB,$01,$56,$C0,$3E,$DF,$32,$11,$7F,$1A,$DD,$77,$1A,$DD
| |
− | dc.b $CB,$00,$C6,$B7,$20,$06,$DD,$CB,$00,$86,$3E,$FF,$32,$11,$7F,$C9
| |
− | dc.b $DD,$CB,$01,$7E,$C8,$DD,$77,$08,$C9,$EB,$5E,$23,$56,$1B,$C9,$13
| |
− | dc.b $C6,$28,$4F,$06,$00,$DD,$E5,$E1,$09,$7E,$B7,$20,$02,$1A,$77,$13
| |
− | dc.b $35,$C2,$39,$0E,$13,$C9,$4F,$13,$1A,$47,$C5,$DD,$E5,$E1,$DD,$35
| |
− | dc.b $09,$DD,$4E,$09,$DD,$35,$09,$06,$00,$09,$72,$2B,$73,$D1,$1B,$C9
| |
− | dc.b $DD,$E5,$E1,$DD,$4E,$09,$06,$00,$09,$5E,$23,$56,$DD,$34,$09,$DD
| |
− | dc.b $34,$09,$C9,$DD,$CB,$07,$BE,$1B,$C9,$DD,$86,$05,$DD,$77,$05,$C9
| |
− | dc.b $3A,$26,$1C,$FE,$80,$CA,$A1,$0E,$AF,$32,$25,$1C,$32,$26,$1C,$13
| |
− | dc.b $C9,$3A,$31,$1C,$3D,$32,$31,$1C,$C2,$39,$0E,$AF,$32,$26,$1C,$C3
| |
− | dc.b $39,$0E,$FE,$01,$20,$05,$DD,$CB,$00,$DE,$C9,$DD,$CB,$00,$9E,$C9
| |
− | dc.b $DD,$7E,$01,$FE,$02,$20,$2C,$DD,$CB,$00,$C6,$EB,$CD,$73,$02,$06
| |
− | dc.b $04,$C5,$7E,$23,$E5,$21,$F7,$0E,$87,$4F,$06,$00,$09,$ED,$A0,$ED
| |
− | dc.b $A0,$E1,$C1,$10,$EC,$EB,$1B,$3E,$4F,$32,$12,$1C,$4F,$3E,$27,$CD
| |
− | dc.b $C8,$00,$C9,$13,$13,$13,$C9,$00,$00,$32,$01,$8E,$01,$E4,$01,$34
| |
− | dc.b $02,$7E,$02,$C2,$02,$F0,$02,$21,$1F,$0C,$DF,$13,$1A,$E9,$32,$24
| |
− | dc.b $1C,$C9,$DD,$E5,$CD,$F8,$04,$DD,$E1,$C9,$32,$11,$1C,$B7,$28,$1D
| |
− | dc.b $DD,$E5,$D5,$DD,$21,$40,$1C,$06,$09,$11,$30,$00,$DD,$CB,$00,$BE
| |
− | dc.b $CD,$5E,$03,$DD,$19,$10,$F5,$D1,$DD,$E1,$C3,$A1,$09,$DD,$E5,$D5
| |
− | dc.b $DD,$21,$40,$1C,$06,$09,$11,$30,$00,$DD,$CB,$00,$FE,$DD,$19,$10
| |
− | dc.b $F8,$D1,$DD,$E1,$C9,$EB,$5E,$23,$56,$23,$4E,$06,$00,$23,$EB,$ED
| |
− | dc.b $B0,$1B,$C9,$06,$09,$21,$42,$1C,$C5,$01,$30,$00,$77,$09,$C1,$10
| |
− | dc.b $F7,$C9,$DD,$36,$18,$80,$DD,$73,$19,$DD,$72,$1A,$21,$B2,$04,$06
| |
− | dc.b $04,$1A,$13,$4F,$7E,$23,$CD,$B5,$00,$10,$F6,$1B,$C9,$DD,$77,$18
| |
− | dc.b $13,$1A,$DD,$77,$19,$C9,$AF,$32,$27,$1C,$1B,$C9,$CD,$37,$03,$20
| |
− | dc.b $0D,$CD,$74,$02,$DD,$CB,$00,$66,$C0,$CD,$9B,$03,$18,$0C,$DD,$7E
| |
− | dc.b $1E,$B7,$28,$06,$DD,$35,$1E,$CA,$44,$10,$CD,$6C,$04,$CD,$C6,$03
| |
− | dc.b $DD,$CB,$00,$56,$C0,$DD,$4E,$01,$7D,$E6,$0F,$B1,$32,$11,$7F,$7D
| |
− | dc.b $E6,$F0,$B4,$0F,$0F,$0F,$0F,$32,$11,$7F,$DD,$7E,$08,$B7,$0E,$00
| |
− | dc.b $28,$09,$3D,$0E,$0A,$CF,$DF,$CD,$12,$10,$4F,$DD,$CB,$00,$66,$C0
| |
− | dc.b $DD,$7E,$06,$81,$CB,$67,$28,$02,$3E,$0F,$DD,$B6,$01,$C6,$10,$DD
| |
− | dc.b $CB,$00,$46,$20,$04,$32,$11,$7F,$C9,$C6,$20,$32,$11,$7F,$C9,$DD
| |
− | dc.b $77,$17,$E5,$DD,$4E,$17,$06,$00,$09,$7E,$E1,$CB,$7F,$28,$21,$FE
| |
− | dc.b $83,$28,$0C,$FE,$81,$28,$13,$FE,$80,$28,$0C,$03,$0A,$18,$E0,$DD
| |
− | dc.b $CB,$00,$E6,$E1,$C3,$44,$10,$AF,$18,$D5,$E1,$DD,$CB,$00,$E6,$C9
| |
− | dc.b $DD,$34,$17,$C9,$DD,$CB,$00,$E6,$DD,$CB,$00,$56,$C0,$3E,$1F,$DD
| |
− | dc.b $86,$01,$B7,$F0,$32,$11,$7F,$DD,$CB,$00,$46,$C8,$3E,$FF,$32,$11
| |
− | dc.b $7F,$C9,$F3,$3E,$2B,$0E,$00,$CD,$C8,$00,$FB,$3A,$3F,$1C,$B7,$C2
| |
− | dc.b $FE,$10,$3A,$30,$1C,$B7,$28,$F2,$3E,$2B,$0E,$80,$F3,$CD,$C8,$00
| |
− | dc.b $FB,$FD,$21,$EE,$10,$21,$30,$1C,$7E,$3D,$CB,$FE,$21,$00,$80,$DF
| |
− | dc.b $0E,$80,$7E,$32,$A3,$10,$32,$C0,$10,$23,$5E,$23,$56,$23,$7E,$23
| |
− | dc.b $66,$6F,$06,$0A,$FB,$10,$FE,$F3,$3E,$2A,$32,$00,$40,$7E,$07,$07
| |
− | dc.b $07,$07,$E6,$0F,$32,$BA,$10,$79,$FD,$86,$00,$32,$01,$40,$4F,$06
| |
− | dc.b $0A,$FB,$10,$FE,$F3,$3E,$2A,$32,$00,$40,$7E,$E6,$0F,$32,$D3,$10
| |
− | dc.b $79,$FD,$86,$00,$32,$01,$40,$FB,$4F,$3A,$30,$1C,$B7,$F2,$6A,$10
| |
− | dc.b $23,$1B,$7A,$B3,$C2,$A2,$10,$AF,$32,$30,$1C,$C3,$62,$10,$00,$01
| |
− | dc.b $02,$04,$08,$10,$20,$40,$80,$FF,$FE,$FC,$F8,$F0,$E0,$C0,$F3,$CD
| |
− | dc.b $C7,$09,$3E,$2B,$32,$00,$40,$00,$3E,$80,$32,$01,$40
| |
− | Z80_0x110D:
| |
− | dc.b $3E,((SegaPCMBank>>$0F))
| |
− | dc.b $CD
| |
− | dc.w (((Z80BankSwitch&$1FFF)>>$08)|((Z80BankSwitch&$1FFF)<<$08))&$FFFF
| |
− | dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00
| |
− | dc.b $21
| |
− | dc.w (((SegaSnd&$FFFF)|$8000>>$08)|((SegaSnd&$FFFF)|$8000<<$08))&$FFFF
| |
− | dc.b $11,$2F,$5E
| |
− | dc.b $3E,$2A,$32,$00,$40,$00,$7E,$32,$01,$40,$3A,$0A,$1C,$FE,$FE
| |
− | dc.b $28,$0C,$00,$00,$06,$0C,$10,$FE,$23,$1B,$7A,$B3,$20,$E9,$AF,$32
| |
− | dc.b $3F,$1C,$21,$0D,$1C,$CD,$D3,$09,$C3,$62,$10,$FF
| |
− | Z80_0x114C:
| |
− | dc.b $21,$00,$60
| |
− | dc.b $77,$0F,$77,$0F,$77,$0F,$77,$0F,$77,$0F,$77,$0F,$77,$0F,$77
| |
− | dc.b $AF,$77
| |
− | dc.b $C3,$82,$00
| |
− | Z80BankSwitch0:
| |
− | Z80_0x1170:
| |
− | dc.b $21,$00,$60
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $AF
| |
− | dc.b $16,$01
| |
− | dc.b $72
| |
− | dc.b $77
| |
− | dc.b $77
| |
− | dc.b $77
| |
− | dc.b $77
| |
− | dc.b $C9
| |
− | Z80BankSwitch:
| |
− | dc.b $21, $00, $60
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $1F
| |
− | dc.b $77
| |
− | dc.b $C9
| |
− | DriverDataEnd:
| |
− | ;-------------------------------------------------------------------------------
| |
− | ; Filler to align pointers at 1300h in Z80 Ram
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
| |
− | dc.b 0,0,0,0,0
| |
− | DriverPointers:
| |
− | dc.w (((MusicPointers&$1FFF)>>$08)|((MusicPointers&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((UniversalVoiceBank&$1FFF)>>$08)|((UniversalVoiceBank&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((MusicPointers&$1FFF)>>$08)|((MusicPointers&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((SndPointers&$1FFF)>>$08)|((SndPointers&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGNoisePointers&$1FFF)>>$08)|((PSGNoisePointers&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGTonePointers&$1FFF)>>$08)|((PSGTonePointers&$1FFF)<<$08))&$FFFF
| |
− | dc.w $3300
| |
− |
| |
− | ;credit goes to Varion Icaria for finding this index
| |
− | PSGNoisePointers:
| |
− | dc.w (((PSGN_0&$1FFF)>>$08)|((PSGN_0&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_1&$1FFF)>>$08)|((PSGN_1&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_2&$1FFF)>>$08)|((PSGN_2&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_3&$1FFF)>>$08)|((PSGN_3&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_4&$1FFF)>>$08)|((PSGN_4&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_5&$1FFF)>>$08)|((PSGN_5&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_6&$1FFF)>>$08)|((PSGN_6&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGN_7&$1FFF)>>$08)|((PSGN_7&$1FFF)<<$08))&$FFFF
| |
− |
| |
− | PSGN_1: binclude sound/PSGN1.bin
| |
− | PSGN_0: binclude sound/PSGN0.bin
| |
− | PSGN_2: binclude sound/PSGN2.bin
| |
− | PSGN_3: binclude sound/PSGN3.bin
| |
− | PSGN_4: binclude sound/PSGN4.bin
| |
− | PSGN_5: binclude sound/PSGN5.bin
| |
− | PSGN_6: binclude sound/PSGN6.bin
| |
− | PSGN_7: binclude sound/PSGN7.bin
| |
− |
| |
− | ;credit goes to Varion Icaria for finding this index
| |
− | PSGTonePointers:
| |
− | dc.w (((PSGT_00&$1FFF)>>$08)|((PSGT_00&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_01&$1FFF)>>$08)|((PSGT_01&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_02&$1FFF)>>$08)|((PSGT_02&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_03&$1FFF)>>$08)|((PSGT_03&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_04&$1FFF)>>$08)|((PSGT_04&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_05&$1FFF)>>$08)|((PSGT_05&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_06&$1FFF)>>$08)|((PSGT_06&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_07&$1FFF)>>$08)|((PSGT_07&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_08&$1FFF)>>$08)|((PSGT_08&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_09&$1FFF)>>$08)|((PSGT_09&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_0A&$1FFF)>>$08)|((PSGT_0A&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_0B&$1FFF)>>$08)|((PSGT_0B&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_0C&$1FFF)>>$08)|((PSGT_0C&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_0D&$1FFF)>>$08)|((PSGT_0D&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_0E&$1FFF)>>$08)|((PSGT_0E&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_0F&$1FFF)>>$08)|((PSGT_0F&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_10&$1FFF)>>$08)|((PSGT_10&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_11&$1FFF)>>$08)|((PSGT_11&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_12&$1FFF)>>$08)|((PSGT_12&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_13&$1FFF)>>$08)|((PSGT_13&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_14&$1FFF)>>$08)|((PSGT_14&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_15&$1FFF)>>$08)|((PSGT_15&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_16&$1FFF)>>$08)|((PSGT_16&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_17&$1FFF)>>$08)|((PSGT_17&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_18&$1FFF)>>$08)|((PSGT_18&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_19&$1FFF)>>$08)|((PSGT_19&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_1A&$1FFF)>>$08)|((PSGT_1A&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_1B&$1FFF)>>$08)|((PSGT_1B&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_1C&$1FFF)>>$08)|((PSGT_1C&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_1D&$1FFF)>>$08)|((PSGT_1D&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_1E&$1FFF)>>$08)|((PSGT_1E&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_1F&$1FFF)>>$08)|((PSGT_1F&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_20&$1FFF)>>$08)|((PSGT_20&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_21&$1FFF)>>$08)|((PSGT_21&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_22&$1FFF)>>$08)|((PSGT_22&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_23&$1FFF)>>$08)|((PSGT_23&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_24&$1FFF)>>$08)|((PSGT_24&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_25&$1FFF)>>$08)|((PSGT_25&$1FFF)<<$08))&$FFFF
| |
− | dc.w (((PSGT_26&$1FFF)>>$08)|((PSGT_26&$1FFF)<<$08))&$FFFF
| |
− |
| |
− | PSGT_00: binclude sound/PSGT00.bin
| |
− | PSGT_01: binclude sound/PSGT01.bin
| |
− | PSGT_02: binclude sound/PSGT02.bin
| |
− | PSGT_03: binclude sound/PSGT03.bin
| |
− | PSGT_04: binclude sound/PSGT04.bin
| |
− | PSGT_05: binclude sound/PSGT05.bin
| |
− | PSGT_06: binclude sound/PSGT06.bin
| |
− | PSGT_07: binclude sound/PSGT07.bin
| |
− | PSGT_08: binclude sound/PSGT08.bin
| |
− | PSGT_09: binclude sound/PSGT09.bin
| |
− | PSGT_0A: binclude sound/PSGT0A.bin
| |
− | PSGT_0B: binclude sound/PSGT0B.bin
| |
− | PSGT_0C: binclude sound/PSGT0C.bin
| |
− | PSGT_0D: binclude sound/PSGT0D.bin
| |
− | PSGT_0E: binclude sound/PSGT0E.bin
| |
− | PSGT_0F: binclude sound/PSGT0F.bin
| |
− | PSGT_10: binclude sound/PSGT10.bin
| |
− | PSGT_11: binclude sound/PSGT11.bin
| |
− | PSGT_12: binclude sound/PSGT12.bin
| |
− | PSGT_13: binclude sound/PSGT13.bin
| |
− | PSGT_14: binclude sound/PSGT14.bin
| |
− | PSGT_15: binclude sound/PSGT15.bin
| |
− | PSGT_16: binclude sound/PSGT16.bin
| |
− | PSGT_17: binclude sound/PSGT17.bin
| |
− | PSGT_18: binclude sound/PSGT18.bin
| |
− | PSGT_19: binclude sound/PSGT19.bin
| |
− | PSGT_1A: binclude sound/PSGT1A.bin
| |
− | PSGT_1B: binclude sound/PSGT1B.bin
| |
− | PSGT_1C: binclude sound/PSGT1C.bin
| |
− | PSGT_1D: binclude sound/PSGT1D.bin
| |
− | PSGT_1E: binclude sound/PSGT1E.bin
| |
− | PSGT_1F: binclude sound/PSGT1F.bin
| |
− | PSGT_20: binclude sound/PSGT20.bin
| |
− | PSGT_21: binclude sound/PSGT21.bin
| |
− | PSGT_22: binclude sound/PSGT22.bin
| |
− | PSGT_23: binclude sound/PSGT23.bin
| |
− | PSGT_24: binclude sound/PSGT24.bin
| |
− | PSGT_25: binclude sound/PSGT25.bin
| |
− | PSGT_26: binclude sound/PSGT26.bin
| |
− |
| |
− | MB_Ptr equ (Mini_Boss_Snd&$FFFF)|$8000 ; $C71A0
| |
− | FB_Ptr equ (Final_Boss_Snd&$FFFF)|$8000 ; $C7A61
| |
− | AIz1_Ptr equ (Angel_Island_1_Snd&$FFFF)|$8000 ; $C8000
| |
− | AIz2_Ptr equ (Angel_Island_2_Snd&$FFFF)|$8000 ; $C9B6D
| |
− | HCz1_Ptr equ (Hidrocity_1_Snd&$FFFF)|$8000 ; $CB0BC
| |
− | HCz2_Ptr equ (Hidrocity_2_Snd&$FFFF)|$8000 ; $CC0C6
| |
− | MGz1_Ptr equ (Marble_Garden_1_Snd&$FFFF)|$8000 ; $CD364
| |
− | MGz2_Ptr equ (Marble_Garden_2_Snd&$FFFF)|$8000 ; $CD97B
| |
− | CNz2_Ptr equ (Carnival_Night_2_Snd&$FFFF)|$8000 ; $CDDA9
| |
− | CNz1_Ptr equ (Carnival_Night_1_Snd&$FFFF)|$8000 ; $CE48F
| |
− | FBz1_Ptr equ (Flying_Battery_1_Snd&$FFFF)|$8000 ; $CEBF1
| |
− | FBz2_Ptr equ (Flying_Battery_2_Snd&$FFFF)|$8000 ; $CF189
| |
− | TDz_Ptr equ (The_Doomsday_Snd&$FFFF)|$8000 ; $CF6F0
| |
− | Iz2_Ptr equ (Icecap_2_Snd&$FFFF)|$8000 ; $D0000
| |
− | Iz1_Ptr equ (Icecap_1_Snd&$FFFF)|$8000 ; $D06AA
| |
− | LBz2_Ptr equ (Launch_Base_2_Snd&$FFFF)|$8000 ; $D0DC8
| |
− | LBz1_Ptr equ (Launch_Base_1_Snd&$FFFF)|$8000 ; $D1345
| |
− | MHz1_Ptr equ (Mushroom_Hill_1_Snd&$FFFF)|$8000 ; $D17A7
| |
− | MHz2_Ptr equ (Mushroom_Hill_2_Snd&$FFFF)|$8000 ; $D1DAF
| |
− | Sz1_Ptr equ (Sandopolis_1_Snd&$FFFF)|$8000 ; $D2331
| |
− | Sz2_Ptr equ (Sandopolis_2_Snd&$FFFF)|$8000 ; $D299B
| |
− | LRz1_Ptr equ (Lava_Reef_1_Snd&$FFFF)|$8000 ; $D2F8E
| |
− | LRz2_Ptr equ (Lava_Reef_2_Snd&$FFFF)|$8000 ; $D399C
| |
− | SCz_Ptr equ (Sky_Sanctuary_Snd&$FFFF)|$8000 ; $D4B29
| |
− | DEz1_Ptr equ (Death_Egg_1_Snd&$FFFF)|$8000 ; $D4F4F
| |
− | DEz2_Ptr equ (Death_Egg_2_Snd&$FFFF)|$8000 ; $D543A
| |
− | MB_SK_Ptr equ (Mini_Boss_SK_Snd&$FFFF)|$8000 ; $D584C
| |
− | Boss_Ptr equ (Boss_Snd&$FFFF)|$8000 ; $D5B7C
| |
− | GS_BS_Ptr equ (Glowing_Spheres_Bonus_Stage_snd&$FFFF)|$8000 ; $D6078
| |
− | SS_Ptr equ (Special_Stage_Snd&$FFFF)|$8000 ; $D65DB
| |
− | LR_Ptr equ (Level_Results_Snd&$FFFF)|$8000 ; $D6E73
| |
− | Menu_Ptr equ (Menu_Snd&$FFFF)|$8000 ; $D7027
| |
− | SM_BS_Ptr equ (Slot_Machine_Bonus_Stage_snd&$FFFF)|$8000 ; $D8000
| |
− | GBM_BS_Ptr equ (Gum_Ball_Machine_Bonus_Stage_snd&$FFFF)|$8000 ; $D8AE8
| |
− | KTE_Ptr equ (Knuckles_Theme_Snd&$FFFF)|$8000 ; $D97FD
| |
− | ALz_Ptr equ (Azure_Lake_Snd&$FFFF)|$8000 ; $D99F7
| |
− | BPz_Ptr equ (Balloon_Park_Snd&$FFFF)|$8000 ; $DA4FD
| |
− | DPz_Ptr equ (Desert_Palace_Snd&$FFFF)|$8000 ; $DB0EC
| |
− | CGz_Ptr equ (Chrome_Gadget_Snd&$FFFF)|$8000 ; $DC324
| |
− | EMz_Ptr equ (Endless_Mine_Snd&$FFFF)|$8000 ; $DDA47
| |
− | TS_Ptr equ (Title_Screen_Snd&$FFFF)|$8000 ; $DE18F
| |
− | Credits_Ptr equ (Credits_Snd&$FFFF)|$8000 ; $DE587
| |
− | TGOvr_Ptr equ (Time_Game_Over_Snd&$FFFF)|$8000 ; $DEA20
| |
− | Continue_Ptr equ (Continue_Snd&$FFFF)|$8000 ; $DEC7B
| |
− | _1_Up_Ptr equ (Extra_Life_Snd&$FFFF)|$8000 ; $DF095
| |
− | Emerald_Ptr equ (Emerald_Snd&$FFFF)|$8000 ; $DF298
| |
− | Invcblty_Ptr equ (Invencibility_Snd&$FFFF)|$8000 ; $DF364
| |
− | _2p_Menu_Ptr equ (Competition_Menu_Snd&$FFFF)|$8000 ; $DF5E4
| |
− | UT_Ptr equ (Underwater_Timming_Snd&$FFFF)|$8000 ; $DFABE
| |
− | PbS_Ptr equ (Presented_by_SEGA_Snd&$FFFF)|$8000 ; $DFBFE
| |
− |
| |
− | Sfx_34_Ptr equ (Sfx_34_Snd&$FFFF)|$8000 ; $FDE30
| |
− | Sfx_35_Ptr equ (Sfx_35_Snd&$FFFF)|$8000 ; $FDE5E
| |
− | Sfx_36_Ptr equ (Sfx_36_Snd&$FFFF)|$8000 ; $FDE6F
| |
− | Sfx_37_Ptr equ (Sfx_37_Snd&$FFFF)|$8000 ; $FDEA1
| |
− | Sfx_38_Ptr equ (Sfx_38_Snd&$FFFF)|$8000 ; $FDEC5
| |
− | Sfx_39_Ptr equ (Sfx_39_Snd&$FFFF)|$8000 ; $FDEF4
| |
− | Sfx_3A_Ptr equ (Sfx_3A_Snd&$FFFF)|$8000 ; $FDF2A
| |
− | Sfx_3B_Ptr equ (Sfx_3B_Snd&$FFFF)|$8000 ; $FDF6B
| |
− | Sfx_3C_Ptr equ (Sfx_3C_Snd&$FFFF)|$8000 ; $FDF96
| |
− | Sfx_3D_Ptr equ (Sfx_3D_Snd&$FFFF)|$8000 ; $FDFE5
| |
− | Sfx_3E_Ptr equ (Sfx_3E_Snd&$FFFF)|$8000 ; $FE023
| |
− | Sfx_3F_Ptr equ (Sfx_3F_Snd&$FFFF)|$8000 ; $FE05D
| |
− | Sfx_40_Ptr equ (Sfx_40_Snd&$FFFF)|$8000 ; $FE088
| |
− | Sfx_41_Ptr equ (Sfx_41_Snd&$FFFF)|$8000 ; $FE0AB
| |
− | Sfx_42_Ptr equ (Sfx_42_Snd&$FFFF)|$8000 ; $FE0CE
| |
− | Sfx_43_Ptr equ (Sfx_43_Snd&$FFFF)|$8000 ; $FE0F1
| |
− | Sfx_44_Ptr equ (Sfx_44_Snd&$FFFF)|$8000 ; $FE109
| |
− | Sfx_45_Ptr equ (Sfx_45_Snd&$FFFF)|$8000 ; $FE122
| |
− | Sfx_46_Ptr equ (Sfx_46_Snd&$FFFF)|$8000 ; $FE14F
| |
− | Sfx_47_Ptr equ (Sfx_47_Snd&$FFFF)|$8000 ; $FE177
| |
− | Sfx_48_Ptr equ (Sfx_48_Snd&$FFFF)|$8000 ; $FE1A4
| |
− | Sfx_49_Ptr equ (Sfx_49_Snd&$FFFF)|$8000 ; $FE1C4
| |
− | Sfx_4A_Ptr equ (Sfx_4A_Snd&$FFFF)|$8000 ; $FE1DE
| |
− | Sfx_4B_Ptr equ (Sfx_4B_Snd&$FFFF)|$8000 ; $FE206
| |
− | Sfx_4C_Ptr equ (Sfx_4C_Snd&$FFFF)|$8000 ; $FE22E
| |
− | Sfx_4D_Ptr equ (Sfx_4D_Snd&$FFFF)|$8000 ; $FE278
| |
− | Sfx_4E_Ptr equ (Sfx_4E_Snd&$FFFF)|$8000 ; $FE2A2
| |
− | Sfx_4F_Ptr equ (Sfx_4F_Snd&$FFFF)|$8000 ; $FE2CF
| |
− | Sfx_50_Ptr equ (Sfx_50_Snd&$FFFF)|$8000 ; $FE313
| |
− | Sfx_51_Ptr equ (Sfx_51_Snd&$FFFF)|$8000 ; $FE322
| |
− | Sfx_52_Ptr equ (Sfx_52_Snd&$FFFF)|$8000 ; $FE35A
| |
− | Sfx_53_Ptr equ (Sfx_53_Snd&$FFFF)|$8000 ; $FE38B
| |
− | Sfx_54_Ptr equ (Sfx_54_Snd&$FFFF)|$8000 ; $FE3A8
| |
− | Sfx_55_Ptr equ (Sfx_55_Snd&$FFFF)|$8000 ; $FE3E8
| |
− | Sfx_56_Ptr equ (Sfx_56_Snd&$FFFF)|$8000 ; $FE42B
| |
− | Sfx_57_Ptr equ (Sfx_57_Snd&$FFFF)|$8000 ; $FE453
| |
− | Sfx_58_Ptr equ (Sfx_58_Snd&$FFFF)|$8000 ; $FE463
| |
− | Sfx_59_Ptr equ (Sfx_59_Snd&$FFFF)|$8000 ; $FE481
| |
− | Sfx_5A_Ptr equ (Sfx_5A_Snd&$FFFF)|$8000 ; $FE49A
| |
− | Sfx_5B_Ptr equ (Sfx_5B_Snd&$FFFF)|$8000 ; $FE4F6
| |
− | Sfx_5C_Ptr equ (Sfx_5C_Snd&$FFFF)|$8000 ; $FE523
| |
− | Sfx_5D_Ptr equ (Sfx_5D_Snd&$FFFF)|$8000 ; $FE530
| |
− | Sfx_5E_Ptr equ (Sfx_5E_Snd&$FFFF)|$8000 ; $FE558
| |
− | Sfx_5F_Ptr equ (Sfx_5F_Snd&$FFFF)|$8000 ; $FE581
| |
− | Sfx_60_Ptr equ (Sfx_60_Snd&$FFFF)|$8000 ; $FE5B2
| |
− | Sfx_61_Ptr equ (Sfx_61_Snd&$FFFF)|$8000 ; $FE5DA
| |
− | Sfx_62_Ptr equ (Sfx_62_Snd&$FFFF)|$8000 ; $FE61B
| |
− | Sfx_63_Ptr equ (Sfx_63_Snd&$FFFF)|$8000 ; $FE64C
| |
− | Sfx_64_Ptr equ (Sfx_64_Snd&$FFFF)|$8000 ; $FE662
| |
− | Sfx_65_Ptr equ (Sfx_65_Snd&$FFFF)|$8000 ; $FE68C
| |
− | Sfx_66_Ptr equ (Sfx_66_Snd&$FFFF)|$8000 ; $FE6AB
| |
− | Sfx_67_Ptr equ (Sfx_67_Snd&$FFFF)|$8000 ; $FE6E1
| |
− | Sfx_68_Ptr equ (Sfx_68_Snd&$FFFF)|$8000 ; $FE730
| |
− | Sfx_69_Ptr equ (Sfx_69_Snd&$FFFF)|$8000 ; $FE75C
| |
− | Sfx_6A_Ptr equ (Sfx_6A_Snd&$FFFF)|$8000 ; $FE7B0
| |
− | Sfx_6B_Ptr equ (Sfx_6B_Snd&$FFFF)|$8000 ; $FE7DD
| |
− | Sfx_6C_Ptr equ (Sfx_6C_Snd&$FFFF)|$8000 ; $FE811
| |
− | Sfx_6D_Ptr equ (Sfx_6D_Snd&$FFFF)|$8000 ; $FE823
| |
− | Sfx_6E_Ptr equ (Sfx_6E_Snd&$FFFF)|$8000 ; $FE833
| |
− | Sfx_6F_Ptr equ (Sfx_6F_Snd&$FFFF)|$8000 ; $FE852
| |
− | Sfx_70_Ptr equ (Sfx_70_Snd&$FFFF)|$8000 ; $FE886
| |
− | Sfx_71_Ptr equ (Sfx_71_Snd&$FFFF)|$8000 ; $FE896
| |
− | Sfx_72_Ptr equ (Sfx_72_Snd&$FFFF)|$8000 ; $FE8E0
| |
− | Sfx_73_Ptr equ (Sfx_73_Snd&$FFFF)|$8000 ; $FE8EA
| |
− | Sfx_74_Ptr equ (Sfx_74_Snd&$FFFF)|$8000 ; $FE917
| |
− | Sfx_75_Ptr equ (Sfx_75_Snd&$FFFF)|$8000 ; $FE94B
| |
− | Sfx_76_Ptr equ (Sfx_76_Snd&$FFFF)|$8000 ; $FE978
| |
− | Sfx_77_Ptr equ (Sfx_77_Snd&$FFFF)|$8000 ; $FE9A7
| |
− | Sfx_78_Ptr equ (Sfx_78_Snd&$FFFF)|$8000 ; $FE9D1
| |
− | Sfx_79_Ptr equ (Sfx_79_Snd&$FFFF)|$8000 ; $FEA1B
| |
− | Sfx_7A_Ptr equ (Sfx_7A_Snd&$FFFF)|$8000 ; $FEA48
| |
− | Sfx_7B_Ptr equ (Sfx_7B_Snd&$FFFF)|$8000 ; $FEA93
| |
− | Sfx_7C_Ptr equ (Sfx_7C_Snd&$FFFF)|$8000 ; $FEAC7
| |
− | Sfx_7D_Ptr equ (Sfx_7D_Snd&$FFFF)|$8000 ; $FEAF7
| |
− | Sfx_7E_Ptr equ (Sfx_7E_Snd&$FFFF)|$8000 ; $FEB28
| |
− | Sfx_7F_Ptr equ (Sfx_7F_Snd&$FFFF)|$8000 ; $FEB55
| |
− | Sfx_80_Ptr equ (Sfx_80_Snd&$FFFF)|$8000 ; $FEB6D
| |
− | Sfx_81_Ptr equ (Sfx_81_Snd&$FFFF)|$8000 ; $FEB8B
| |
− | Sfx_82_Ptr equ (Sfx_82_Snd&$FFFF)|$8000 ; $FEBBA
| |
− | Sfx_83_Ptr equ (Sfx_83_Snd&$FFFF)|$8000 ; $FEC05
| |
− | Sfx_84_Ptr equ (Sfx_84_Snd&$FFFF)|$8000 ; $FEC32
| |
− | Sfx_85_Ptr equ (Sfx_85_Snd&$FFFF)|$8000 ; $FEC7E
| |
− | Sfx_86_Ptr equ (Sfx_86_Snd&$FFFF)|$8000 ; $FECAB
| |
− | Sfx_87_Ptr equ (Sfx_87_Snd&$FFFF)|$8000 ; $FECD8
| |
− | Sfx_88_Ptr equ (Sfx_88_Snd&$FFFF)|$8000 ; $FED05
| |
− | Sfx_89_Ptr equ (Sfx_89_Snd&$FFFF)|$8000 ; $FED3B
| |
− | Sfx_8A_Ptr equ (Sfx_8A_Snd&$FFFF)|$8000 ; $FED68
| |
− | Sfx_8B_Ptr equ (Sfx_8B_Snd&$FFFF)|$8000 ; $FED75
| |
− | Sfx_8C_Ptr equ (Sfx_8C_Snd&$FFFF)|$8000 ; $FEDA9
| |
− | Sfx_8D_Ptr equ (Sfx_8D_Snd&$FFFF)|$8000 ; $FEDDF
| |
− | Sfx_8E_Ptr equ (Sfx_8E_Snd&$FFFF)|$8000 ; $FEE10
| |
− | Sfx_8F_Ptr equ (Sfx_8F_Snd&$FFFF)|$8000 ; $FEE2A
| |
− | Sfx_90_Ptr equ (Sfx_90_Snd&$FFFF)|$8000 ; $FEE5B
| |
− | Sfx_91_Ptr equ (Sfx_91_Snd&$FFFF)|$8000 ; $FEE91
| |
− | Sfx_92_Ptr equ (Sfx_92_Snd&$FFFF)|$8000 ; $FEEC3
| |
− | Sfx_93_Ptr equ (Sfx_93_Snd&$FFFF)|$8000 ; $FEEF9
| |
− | Sfx_94_Ptr equ (Sfx_94_Snd&$FFFF)|$8000 ; $FEF2D
| |
− | Sfx_95_Ptr equ (Sfx_95_Snd&$FFFF)|$8000 ; $FEF77
| |
− | Sfx_96_Ptr equ (Sfx_96_Snd&$FFFF)|$8000 ; $FEFA6
| |
− | Sfx_97_Ptr equ (Sfx_97_Snd&$FFFF)|$8000 ; $FEFD5
| |
− | Sfx_98_Ptr equ (Sfx_98_Snd&$FFFF)|$8000 ; $FF009
| |
− | Sfx_99_Ptr equ (Sfx_99_Snd&$FFFF)|$8000 ; $FF01C
| |
− | Sfx_9A_Ptr equ (Sfx_9A_Snd&$FFFF)|$8000 ; $FF068
| |
− | Sfx_9B_Ptr equ (Sfx_9B_Snd&$FFFF)|$8000 ; $FF090
| |
− | Sfx_9C_Ptr equ (Sfx_9C_Snd&$FFFF)|$8000 ; $FF0AF
| |
− | Sfx_9D_Ptr equ (Sfx_9D_Snd&$FFFF)|$8000 ; $FF114
| |
− | Sfx_9E_Ptr equ (Sfx_9E_Snd&$FFFF)|$8000 ; $FF14B
| |
− | Sfx_9F_Ptr equ (Sfx_9F_Snd&$FFFF)|$8000 ; $FF17F
| |
− | Sfx_A0_Ptr equ (Sfx_A0_Snd&$FFFF)|$8000 ; $FF1C0
| |
− | Sfx_A1_Ptr equ (Sfx_A1_Snd&$FFFF)|$8000 ; $FF1FC
| |
− | Sfx_A2_Ptr equ (Sfx_A2_Snd&$FFFF)|$8000 ; $FF214
| |
− | Sfx_A3_Ptr equ (Sfx_A3_Snd&$FFFF)|$8000 ; $FF23C
| |
− | Sfx_A4_Ptr equ (Sfx_A4_Snd&$FFFF)|$8000 ; $FF274
| |
− | Sfx_A5_Ptr equ (Sfx_A5_Snd&$FFFF)|$8000 ; $FF2A1
| |
− | Sfx_A6_Ptr equ (Sfx_A6_Snd&$FFFF)|$8000 ; $FF2CE
| |
− | Sfx_A7_Ptr equ (Sfx_A7_Snd&$FFFF)|$8000 ; $FF2FB
| |
− | Sfx_A8_Ptr equ (Sfx_A8_Snd&$FFFF)|$8000 ; $FF313
| |
− | Sfx_A9_Ptr equ (Sfx_A9_Snd&$FFFF)|$8000 ; $FF33B
| |
− | Sfx_AA_Ptr equ (Sfx_AA_Snd&$FFFF)|$8000 ; $FF365
| |
− | Sfx_AB_Ptr equ (Sfx_AB_Snd&$FFFF)|$8000 ; $FF38F
| |
− | Sfx_AC_Ptr equ (Sfx_AC_Snd&$FFFF)|$8000 ; $FF3EA
| |
− | Sfx_AD_Ptr equ (Sfx_AD_Snd&$FFFF)|$8000 ; $FF42A
| |
− | Sfx_AE_Ptr equ (Sfx_AE_Snd&$FFFF)|$8000 ; $FF49C
| |
− | Sfx_AF_Ptr equ (Sfx_AF_Snd&$FFFF)|$8000 ; $FF4AB
| |
− | Sfx_B0_Ptr equ (Sfx_B0_Snd&$FFFF)|$8000 ; $FF4DA
| |
− | Sfx_B1_Ptr equ (Sfx_B1_Snd&$FFFF)|$8000 ; $FF507
| |
− | Sfx_B2_Ptr equ (Sfx_B2_Snd&$FFFF)|$8000 ; $FF582
| |
− | Sfx_B3_Ptr equ (Sfx_B3_Snd&$FFFF)|$8000 ; $FF5D7
| |
− | Sfx_B4_Ptr equ (Sfx_B4_Snd&$FFFF)|$8000 ; $FF603
| |
− | Sfx_B5_Ptr equ (Sfx_B5_Snd&$FFFF)|$8000 ; $FF67D
| |
− | Sfx_B6_Ptr equ (Sfx_B6_Snd&$FFFF)|$8000 ; $FF6AA
| |
− | Sfx_B7_Ptr equ (Sfx_B7_Snd&$FFFF)|$8000 ; $FF6D2
| |
− | Sfx_B8_Ptr equ (Sfx_B8_Snd&$FFFF)|$8000 ; $FF713
| |
− | Sfx_B9_Ptr equ (Sfx_B9_Snd&$FFFF)|$8000 ; $FF745
| |
− | Sfx_BA_Ptr equ (Sfx_BA_Snd&$FFFF)|$8000 ; $FF76C
| |
− | Sfx_BB_Ptr equ (Sfx_BB_Snd&$FFFF)|$8000 ; $FF794
| |
− | Sfx_BC_Ptr equ (Sfx_BC_Snd&$FFFF)|$8000 ; $FF7BE
| |
− | Sfx_BD_Ptr equ (Sfx_BD_Snd&$FFFF)|$8000 ; $FF7CE
| |
− | Sfx_BE_Ptr equ (Sfx_BE_Snd&$FFFF)|$8000 ; $FF7F9
| |
− | Sfx_BF_Ptr equ (Sfx_BF_Snd&$FFFF)|$8000 ; $FF837
| |
− | Sfx_C0_Ptr equ (Sfx_C0_Snd&$FFFF)|$8000 ; $FF86A
| |
− | Sfx_C1_Ptr equ (Sfx_C1_Snd&$FFFF)|$8000 ; $FF89C
| |
− | Sfx_C2_Ptr equ (Sfx_C2_Snd&$FFFF)|$8000 ; $FF8D1
| |
− | Sfx_C3_Ptr equ (Sfx_C3_Snd&$FFFF)|$8000 ; $FF907
| |
− | Sfx_C4_Ptr equ (Sfx_C4_Snd&$FFFF)|$8000 ; $FF91E
| |
− | Sfx_C5_Ptr equ (Sfx_C5_Snd&$FFFF)|$8000 ; $FF94E
| |
− | Sfx_C6_Ptr equ (Sfx_C6_Snd&$FFFF)|$8000 ; $FF97E
| |
− | Sfx_C7_Ptr equ (Sfx_C7_Snd&$FFFF)|$8000 ; $FF9B7
| |
− | Sfx_C8_Ptr equ (Sfx_C8_Snd&$FFFF)|$8000 ; $FF9F2
| |
− | Sfx_C9_Ptr equ (Sfx_C9_Snd&$FFFF)|$8000 ; $FFA21
| |
− | Sfx_CA_Ptr equ (Sfx_CA_Snd&$FFFF)|$8000 ; $FFA2B
| |
− | Sfx_CB_Ptr equ (Sfx_CB_Snd&$FFFF)|$8000 ; $FFA66
| |
− | Sfx_CC_Ptr equ (Sfx_CC_Snd&$FFFF)|$8000 ; $FFA9C
| |
− | Sfx_CD_Ptr equ (Sfx_CD_Snd&$FFFF)|$8000 ; $FFAD7
| |
− | Sfx_CE_Ptr equ (Sfx_CE_Snd&$FFFF)|$8000 ; $FFB12
| |
− | Sfx_CF_Ptr equ (Sfx_CF_Snd&$FFFF)|$8000 ; $FFB45
| |
− | Sfx_D0_Ptr equ (Sfx_D0_Snd&$FFFF)|$8000 ; $FFB60
| |
− | Sfx_D1_Ptr equ (Sfx_D1_Snd&$FFFF)|$8000 ; $FFB6A
| |
− | Sfx_D2_Ptr equ (Sfx_D2_Snd&$FFFF)|$8000 ; $FFBA1
| |
− | Sfx_D3_Ptr equ (Sfx_D3_Snd&$FFFF)|$8000 ; $FFBBE
| |
− | Sfx_D4_Ptr equ (Sfx_D4_Snd&$FFFF)|$8000 ; $FFBF4
| |
− | Sfx_D5_Ptr equ (Sfx_D5_Snd&$FFFF)|$8000 ; $FFC2D
| |
− | Sfx_D6_Ptr equ (Sfx_D6_Snd&$FFFF)|$8000 ; $FFC64
| |
− | Sfx_D7_Ptr equ (Sfx_D7_Snd&$FFFF)|$8000 ; $FFC9D
| |
− | Sfx_D8_Ptr equ (Sfx_D8_Snd&$FFFF)|$8000 ; $FFCCE
| |
− | Sfx_D9_Ptr equ (Sfx_D9_Snd&$FFFF)|$8000 ; $FFCFF
| |
− | Sfx_DA_Ptr equ (Sfx_DA_Snd&$FFFF)|$8000 ; $FFD32
| |
− | Sfx_DB_Ptr equ (Sfx_DB_Snd&$FFFF)|$8000 ; $FFD62
| |
− | Sfx_DC_Ptr equ (Sfx_DC_Snd&$FFFF)|$8000 ; $FFD94
| |
− |
| |
− | MusicPointers:
| |
− | dc.w ((AIz1_Ptr>>$08)|(AIz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((AIz2_Ptr>>$08)|(AIz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((HCz1_Ptr>>$08)|(HCz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((HCz2_Ptr>>$08)|(HCz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((MGz1_Ptr>>$08)|(MGz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((MGz2_Ptr>>$08)|(MGz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((CNz1_Ptr>>$08)|(CNz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((CNz2_Ptr>>$08)|(CNz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((FBz1_Ptr>>$08)|(FBz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((FBz2_Ptr>>$08)|(FBz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((Iz1_Ptr>>$08)|(Iz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((Iz2_Ptr>>$08)|(Iz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((LBz1_Ptr>>$08)|(LBz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((LBz2_Ptr>>$08)|(LBz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((MHz1_Ptr>>$08)|(MHz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((MHz2_Ptr>>$08)|(MHz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sz1_Ptr>>$08)|(Sz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sz2_Ptr>>$08)|(Sz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((LRz1_Ptr>>$08)|(LRz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((LRz2_Ptr>>$08)|(LRz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((SCz_Ptr>>$08)|(SCz_Ptr<<$08))&$FFFF
| |
− | dc.w ((DEz1_Ptr>>$08)|(DEz1_Ptr<<$08))&$FFFF
| |
− | dc.w ((DEz2_Ptr>>$08)|(DEz2_Ptr<<$08))&$FFFF
| |
− | dc.w ((MB_SK_Ptr>>$08)|(MB_SK_Ptr<<$08))&$FFFF
| |
− | dc.w ((Boss_Ptr>>$08)|(Boss_Ptr<<$08))&$FFFF
| |
− | dc.w ((TDz_Ptr>>$08)|(TDz_Ptr<<$08))&$FFFF
| |
− | dc.w ((GS_BS_Ptr>>$08)|(GS_BS_Ptr<<$08))&$FFFF
| |
− | dc.w ((SS_Ptr>>$08)|(SS_Ptr<<$08))&$FFFF
| |
− | dc.w ((SM_BS_Ptr>>$08)|(SM_BS_Ptr<<$08))&$FFFF
| |
− | dc.w ((GBM_BS_Ptr>>$08)|(GBM_BS_Ptr<<$08))&$FFFF
| |
− | dc.w ((KTE_Ptr>>$08)|(KTE_Ptr<<$08))&$FFFF
| |
− | dc.w ((ALz_Ptr>>$08)|(ALz_Ptr<<$08))&$FFFF
| |
− | dc.w ((BPz_Ptr>>$08)|(BPz_Ptr<<$08))&$FFFF
| |
− | dc.w ((DPz_Ptr>>$08)|(DPz_Ptr<<$08))&$FFFF
| |
− | dc.w ((CGz_Ptr>>$08)|(CGz_Ptr<<$08))&$FFFF
| |
− | dc.w ((EMz_Ptr>>$08)|(EMz_Ptr<<$08))&$FFFF
| |
− | dc.w ((TS_Ptr>>$08)|(TS_Ptr<<$08))&$FFFF
| |
− | dc.w ((Credits_Ptr>>$08)|(Credits_Ptr<<$08))&$FFFF
| |
− | dc.w ((TGOvr_Ptr>>$08)|(TGOvr_Ptr<<$08))&$FFFF
| |
− | dc.w ((Continue_Ptr>>$08)|(Continue_Ptr<<$08))&$FFFF
| |
− | dc.w ((LR_Ptr>>$08)|(LR_Ptr<<$08))&$FFFF
| |
− | dc.w ((_1_Up_Ptr>>$08)|(_1_Up_Ptr<<$08))&$FFFF
| |
− | dc.w ((Emerald_Ptr>>$08)|(Emerald_Ptr<<$08))&$FFFF
| |
− | dc.w ((Invcblty_Ptr>>$08)|(Invcblty_Ptr<<$08))&$FFFF
| |
− | dc.w ((_2p_Menu_Ptr>>$08)|(_2p_Menu_Ptr<<$08))&$FFFF
| |
− | dc.w ((MB_Ptr>>$08)|(MB_Ptr<<$08))&$FFFF
| |
− | dc.w ((Menu_Ptr>>$08)|(Menu_Ptr<<$08))&$FFFF
| |
− | dc.w ((FB_Ptr>>$08)|(FB_Ptr<<$08))&$FFFF
| |
− | dc.w ((UT_Ptr>>$08)|(UT_Ptr<<$08))&$FFFF
| |
− | dc.w ((PbS_Ptr>>$08)|(PbS_Ptr<<$08))&$FFFF
| |
− |
| |
− | SndPointers:
| |
− | dc.w ((Sfx_34_Ptr>>$08)|(Sfx_34_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_35_Ptr>>$08)|(Sfx_35_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_36_Ptr>>$08)|(Sfx_36_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_37_Ptr>>$08)|(Sfx_37_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_38_Ptr>>$08)|(Sfx_38_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_39_Ptr>>$08)|(Sfx_39_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_3A_Ptr>>$08)|(Sfx_3A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_3B_Ptr>>$08)|(Sfx_3B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_3C_Ptr>>$08)|(Sfx_3C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_3D_Ptr>>$08)|(Sfx_3D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_3E_Ptr>>$08)|(Sfx_3E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_3F_Ptr>>$08)|(Sfx_3F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_40_Ptr>>$08)|(Sfx_40_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_41_Ptr>>$08)|(Sfx_41_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_42_Ptr>>$08)|(Sfx_42_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_43_Ptr>>$08)|(Sfx_43_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_44_Ptr>>$08)|(Sfx_44_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_45_Ptr>>$08)|(Sfx_45_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_46_Ptr>>$08)|(Sfx_46_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_47_Ptr>>$08)|(Sfx_47_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_48_Ptr>>$08)|(Sfx_48_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_49_Ptr>>$08)|(Sfx_49_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_4A_Ptr>>$08)|(Sfx_4A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_4B_Ptr>>$08)|(Sfx_4B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_4C_Ptr>>$08)|(Sfx_4C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_4D_Ptr>>$08)|(Sfx_4D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_4E_Ptr>>$08)|(Sfx_4E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_4F_Ptr>>$08)|(Sfx_4F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_50_Ptr>>$08)|(Sfx_50_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_51_Ptr>>$08)|(Sfx_51_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_52_Ptr>>$08)|(Sfx_52_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_53_Ptr>>$08)|(Sfx_53_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_54_Ptr>>$08)|(Sfx_54_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_55_Ptr>>$08)|(Sfx_55_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_56_Ptr>>$08)|(Sfx_56_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_57_Ptr>>$08)|(Sfx_57_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_58_Ptr>>$08)|(Sfx_58_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_59_Ptr>>$08)|(Sfx_59_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_5A_Ptr>>$08)|(Sfx_5A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_5B_Ptr>>$08)|(Sfx_5B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_5C_Ptr>>$08)|(Sfx_5C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_5D_Ptr>>$08)|(Sfx_5D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_5E_Ptr>>$08)|(Sfx_5E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_5F_Ptr>>$08)|(Sfx_5F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_60_Ptr>>$08)|(Sfx_60_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_61_Ptr>>$08)|(Sfx_61_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_62_Ptr>>$08)|(Sfx_62_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_63_Ptr>>$08)|(Sfx_63_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_64_Ptr>>$08)|(Sfx_64_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_65_Ptr>>$08)|(Sfx_65_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_66_Ptr>>$08)|(Sfx_66_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_67_Ptr>>$08)|(Sfx_67_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_68_Ptr>>$08)|(Sfx_68_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_69_Ptr>>$08)|(Sfx_69_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_6A_Ptr>>$08)|(Sfx_6A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_6B_Ptr>>$08)|(Sfx_6B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_6C_Ptr>>$08)|(Sfx_6C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_6D_Ptr>>$08)|(Sfx_6D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_6E_Ptr>>$08)|(Sfx_6E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_6F_Ptr>>$08)|(Sfx_6F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_70_Ptr>>$08)|(Sfx_70_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_71_Ptr>>$08)|(Sfx_71_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_72_Ptr>>$08)|(Sfx_72_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_73_Ptr>>$08)|(Sfx_73_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_74_Ptr>>$08)|(Sfx_74_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_75_Ptr>>$08)|(Sfx_75_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_76_Ptr>>$08)|(Sfx_76_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_77_Ptr>>$08)|(Sfx_77_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_78_Ptr>>$08)|(Sfx_78_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_79_Ptr>>$08)|(Sfx_79_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_7A_Ptr>>$08)|(Sfx_7A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_7B_Ptr>>$08)|(Sfx_7B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_7C_Ptr>>$08)|(Sfx_7C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_7D_Ptr>>$08)|(Sfx_7D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_7E_Ptr>>$08)|(Sfx_7E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_7F_Ptr>>$08)|(Sfx_7F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_80_Ptr>>$08)|(Sfx_80_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_81_Ptr>>$08)|(Sfx_81_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_82_Ptr>>$08)|(Sfx_82_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_83_Ptr>>$08)|(Sfx_83_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_84_Ptr>>$08)|(Sfx_84_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_85_Ptr>>$08)|(Sfx_85_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_86_Ptr>>$08)|(Sfx_86_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_87_Ptr>>$08)|(Sfx_87_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_88_Ptr>>$08)|(Sfx_88_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_89_Ptr>>$08)|(Sfx_89_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_8A_Ptr>>$08)|(Sfx_8A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_8B_Ptr>>$08)|(Sfx_8B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_8C_Ptr>>$08)|(Sfx_8C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_8D_Ptr>>$08)|(Sfx_8D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_8E_Ptr>>$08)|(Sfx_8E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_8F_Ptr>>$08)|(Sfx_8F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_90_Ptr>>$08)|(Sfx_90_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_91_Ptr>>$08)|(Sfx_91_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_92_Ptr>>$08)|(Sfx_92_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_93_Ptr>>$08)|(Sfx_93_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_94_Ptr>>$08)|(Sfx_94_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_95_Ptr>>$08)|(Sfx_95_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_96_Ptr>>$08)|(Sfx_96_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_97_Ptr>>$08)|(Sfx_97_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_98_Ptr>>$08)|(Sfx_98_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_99_Ptr>>$08)|(Sfx_99_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_9A_Ptr>>$08)|(Sfx_9A_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_9B_Ptr>>$08)|(Sfx_9B_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_9C_Ptr>>$08)|(Sfx_9C_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_9D_Ptr>>$08)|(Sfx_9D_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_9E_Ptr>>$08)|(Sfx_9E_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_9F_Ptr>>$08)|(Sfx_9F_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A0_Ptr>>$08)|(Sfx_A0_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A1_Ptr>>$08)|(Sfx_A1_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A2_Ptr>>$08)|(Sfx_A2_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A3_Ptr>>$08)|(Sfx_A3_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A4_Ptr>>$08)|(Sfx_A4_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A5_Ptr>>$08)|(Sfx_A5_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A6_Ptr>>$08)|(Sfx_A6_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A7_Ptr>>$08)|(Sfx_A7_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A8_Ptr>>$08)|(Sfx_A8_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_A9_Ptr>>$08)|(Sfx_A9_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_AA_Ptr>>$08)|(Sfx_AA_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_AB_Ptr>>$08)|(Sfx_AB_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_AC_Ptr>>$08)|(Sfx_AC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_AD_Ptr>>$08)|(Sfx_AD_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_AE_Ptr>>$08)|(Sfx_AE_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_AF_Ptr>>$08)|(Sfx_AF_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B0_Ptr>>$08)|(Sfx_B0_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B1_Ptr>>$08)|(Sfx_B1_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B2_Ptr>>$08)|(Sfx_B2_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B3_Ptr>>$08)|(Sfx_B3_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B4_Ptr>>$08)|(Sfx_B4_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B5_Ptr>>$08)|(Sfx_B5_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B6_Ptr>>$08)|(Sfx_B6_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B7_Ptr>>$08)|(Sfx_B7_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B8_Ptr>>$08)|(Sfx_B8_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_B9_Ptr>>$08)|(Sfx_B9_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_BA_Ptr>>$08)|(Sfx_BA_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_BB_Ptr>>$08)|(Sfx_BB_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_BC_Ptr>>$08)|(Sfx_BC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_BD_Ptr>>$08)|(Sfx_BD_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_BE_Ptr>>$08)|(Sfx_BE_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_BF_Ptr>>$08)|(Sfx_BF_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C0_Ptr>>$08)|(Sfx_C0_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C1_Ptr>>$08)|(Sfx_C1_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C2_Ptr>>$08)|(Sfx_C2_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C3_Ptr>>$08)|(Sfx_C3_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C4_Ptr>>$08)|(Sfx_C4_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C5_Ptr>>$08)|(Sfx_C5_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C6_Ptr>>$08)|(Sfx_C6_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C7_Ptr>>$08)|(Sfx_C7_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C8_Ptr>>$08)|(Sfx_C8_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_C9_Ptr>>$08)|(Sfx_C9_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_CA_Ptr>>$08)|(Sfx_CA_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_CB_Ptr>>$08)|(Sfx_CB_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_CC_Ptr>>$08)|(Sfx_CC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_CD_Ptr>>$08)|(Sfx_CD_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_CE_Ptr>>$08)|(Sfx_CE_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_CF_Ptr>>$08)|(Sfx_CF_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D0_Ptr>>$08)|(Sfx_D0_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D1_Ptr>>$08)|(Sfx_D1_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D2_Ptr>>$08)|(Sfx_D2_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D3_Ptr>>$08)|(Sfx_D3_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D4_Ptr>>$08)|(Sfx_D4_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D5_Ptr>>$08)|(Sfx_D5_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D6_Ptr>>$08)|(Sfx_D6_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D7_Ptr>>$08)|(Sfx_D7_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D8_Ptr>>$08)|(Sfx_D8_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_D9_Ptr>>$08)|(Sfx_D9_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DA_Ptr>>$08)|(Sfx_DA_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DB_Ptr>>$08)|(Sfx_DB_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DC_Ptr>>$08)|(Sfx_DC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DC_Ptr>>$08)|(Sfx_DC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DC_Ptr>>$08)|(Sfx_DC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DC_Ptr>>$08)|(Sfx_DC_Ptr<<$08))&$FFFF
| |
− | dc.w ((Sfx_DC_Ptr>>$08)|(Sfx_DC_Ptr<<$08))&$FFFF
| |
− | DriverPointersEnd:
| |
− |
| |
− | UniversalVoiceBank:
| |
− | binclude "sound/uvb.bin"
| |
− | UniversalVoiceBankEnd:
| |
− | align $8000
| |
− |
| |
− | DacBank0:
| |
− | binclude "sound/dac_0.bin"
| |
− |
| |
− | align $8000
| |
− | DacBank1:
| |
− | binclude "sound/dac_1.bin"
| |
− | align $8000
| |
− |
| |
− | DacBank2:
| |
− | binclude "sound/dac_2.bin"
| |
− | align $8000
| |
− |
| |
− | Bank0:
| |
− | binclude "sound/filler.bin"
| |
− | Mini_Boss_Snd:
| |
− | binclude "sound/miniboss.snd"
| |
− | Final_Boss_Snd:
| |
− | binclude "sound/f_boss.snd"
| |
− | align $8000
| |
− |
| |
− | Bank1:
| |
− | Angel_Island_1_Snd:
| |
− | binclude "sound/aiz1.snd"
| |
− | Angel_Island_2_Snd:
| |
− | binclude "sound/aiz2.snd"
| |
− | Hidrocity_1_Snd:
| |
− | binclude "sound/hcz1.snd"
| |
− | Hidrocity_2_Snd:
| |
− | binclude "sound/hcz2.snd"
| |
− | Marble_Garden_1_Snd:
| |
− | binclude "sound/mgz1.snd"
| |
− | Marble_Garden_2_Snd:
| |
− | binclude "sound/mgz2.snd"
| |
− | Carnival_Night_2_Snd:
| |
− | binclude "sound/cnz2.snd"
| |
− | Carnival_Night_1_Snd:
| |
− | binclude "sound/cnz1.snd"
| |
− | Flying_Battery_1_Snd:
| |
− | binclude "sound/fbz1.snd"
| |
− | Flying_Battery_2_Snd:
| |
− | binclude "sound/fbz2.snd"
| |
− | The_Doomsday_Snd:
| |
− | binclude "sound/tdz.snd"
| |
− | align $8000
| |
− |
| |
− | Bank2:
| |
− | Icecap_2_Snd:
| |
− | binclude "sound/iz2.snd"
| |
− | Icecap_1_Snd:
| |
− | binclude "sound/iz1.snd"
| |
− | Launch_Base_2_Snd:
| |
− | binclude "sound/lbz2.snd"
| |
− | Launch_Base_1_Snd:
| |
− | binclude "sound/lbz1.snd"
| |
− | Mushroom_Hill_1_Snd:
| |
− | binclude "sound/mhz1.snd"
| |
− | Mushroom_Hill_2_Snd:
| |
− | binclude "sound/mhz2.snd"
| |
− | Sandopolis_1_Snd:
| |
− | binclude "sound/sz1.snd"
| |
− | Sandopolis_2_Snd:
| |
− | binclude "sound/sz2.snd"
| |
− | Lava_Reef_1_Snd:
| |
− | binclude "sound/lrz1.snd"
| |
− | Lava_Reef_2_Snd:
| |
− | binclude "sound/lrz2.snd"
| |
− | Sky_Sanctuary_Snd:
| |
− | binclude "sound/scz.snd"
| |
− | Death_Egg_1_Snd:
| |
− | binclude "sound/dez1.snd"
| |
− | Death_Egg_2_Snd:
| |
− | binclude "sound/dez2.snd"
| |
− | Mini_Boss_SK_Snd:
| |
− | binclude "sound/mb_sk.snd"
| |
− | Boss_Snd:
| |
− | binclude "sound/boss.snd"
| |
− | Glowing_Spheres_Bonus_Stage_snd:
| |
− | binclude "sound/gs_bs.snd"
| |
− | Special_Stage_Snd:
| |
− | binclude "sound/ss.snd"
| |
− | Level_Results_Snd:
| |
− | binclude "sound/lr.snd"
| |
− | Menu_Snd:
| |
− | binclude "sound/menu.snd"
| |
− | align $8000
| |
− |
| |
− | Bank3:
| |
− | Slot_Machine_Bonus_Stage_snd:
| |
− | binclude "sound/sm_bs.snd"
| |
− | Gum_Ball_Machine_Bonus_Stage_snd:
| |
− | binclude "sound/gbm_bs.snd"
| |
− | Knuckles_Theme_Snd:
| |
− | binclude "sound/kte.snd"
| |
− | Azure_Lake_Snd:
| |
− | binclude "sound/alz.snd"
| |
− | Balloon_Park_Snd:
| |
− | binclude "sound/bpz.snd"
| |
− | Desert_Palace_Snd:
| |
− | binclude "sound/dpz.snd"
| |
− | Chrome_Gadget_Snd:
| |
− | binclude "sound/cgz.snd"
| |
− | Endless_Mine_Snd:
| |
− | binclude "sound/emz.snd"
| |
− | Title_Screen_Snd:
| |
− | binclude "sound/ts.snd"
| |
− | Credits_Snd:
| |
− | binclude "sound/credits.snd"
| |
− | Time_Game_Over_Snd:
| |
− | binclude "sound/tgovr.snd"
| |
− | Continue_Snd:
| |
− | binclude "sound/continue.snd"
| |
− | Extra_Life_Snd:
| |
− | binclude "sound/1up.snd"
| |
− | Emerald_Snd:
| |
− | binclude "sound/emerald.snd"
| |
− | Invencibility_Snd:
| |
− | binclude "sound/invcblty.snd"
| |
− | Competition_Menu_Snd:
| |
− | binclude "sound/2p_menu.snd"
| |
− | Underwater_Timming_Snd:
| |
− | binclude "sound/panic.snd"
| |
− | Presented_by_SEGA_Snd:
| |
− | binclude "sound/p_sega.snd"
| |
− | align $8000
| |
− |
| |
− | SndBank:
| |
− | SegaPCMBank:
| |
− | SegaSnd:
| |
− | binclude "sound/sega.snd"
| |
− | Sfx_34_Snd:
| |
− | binclude "sound/sfx_34.snd"
| |
− | Sfx_35_Snd:
| |
− | binclude "sound/sfx_35.snd"
| |
− | Sfx_36_Snd:
| |
− | binclude "sound/sfx_36.snd"
| |
− | Sfx_37_Snd:
| |
− | binclude "sound/sfx_37.snd"
| |
− | Sfx_38_Snd:
| |
− | binclude "sound/sfx_38.snd"
| |
− | Sfx_39_Snd:
| |
− | binclude "sound/sfx_39.snd"
| |
− | Sfx_3A_Snd:
| |
− | binclude "sound/sfx_3A.snd"
| |
− | Sfx_3B_Snd:
| |
− | binclude "sound/sfx_3B.snd"
| |
− | Sfx_3C_Snd:
| |
− | binclude "sound/sfx_3C.snd"
| |
− | Sfx_3D_Snd:
| |
− | binclude "sound/sfx_3D.snd"
| |
− | Sfx_3E_Snd:
| |
− | binclude "sound/sfx_3E.snd"
| |
− | Sfx_3F_Snd:
| |
− | binclude "sound/sfx_3F.snd"
| |
− | Sfx_40_Snd:
| |
− | binclude "sound/sfx_40.snd"
| |
− | Sfx_41_Snd:
| |
− | binclude "sound/sfx_41.snd"
| |
− | Sfx_42_Snd:
| |
− | binclude "sound/sfx_42.snd"
| |
− | Sfx_43_Snd:
| |
− | binclude "sound/sfx_43.snd"
| |
− | Sfx_44_Snd:
| |
− | binclude "sound/sfx_44.snd"
| |
− | Sfx_45_Snd:
| |
− | binclude "sound/sfx_45.snd"
| |
− | Sfx_46_Snd:
| |
− | binclude "sound/sfx_46.snd"
| |
− | Sfx_47_Snd:
| |
− | binclude "sound/sfx_47.snd"
| |
− | Sfx_48_Snd:
| |
− | binclude "sound/sfx_48.snd"
| |
− | Sfx_49_Snd:
| |
− | binclude "sound/sfx_49.snd"
| |
− | Sfx_4A_Snd:
| |
− | binclude "sound/sfx_4A.snd"
| |
− | Sfx_4B_Snd:
| |
− | binclude "sound/sfx_4B.snd"
| |
− | Sfx_4C_Snd:
| |
− | binclude "sound/sfx_4C.snd"
| |
− | Sfx_4D_Snd:
| |
− | binclude "sound/sfx_4D.snd"
| |
− | Sfx_4E_Snd:
| |
− | binclude "sound/sfx_4E.snd"
| |
− | Sfx_4F_Snd:
| |
− | binclude "sound/sfx_4F.snd"
| |
− | Sfx_50_Snd:
| |
− | binclude "sound/sfx_50.snd"
| |
− | Sfx_51_Snd:
| |
− | binclude "sound/sfx_51.snd"
| |
− | Sfx_52_Snd:
| |
− | binclude "sound/sfx_52.snd"
| |
− | Sfx_53_Snd:
| |
− | binclude "sound/sfx_53.snd"
| |
− | Sfx_54_Snd:
| |
− | binclude "sound/sfx_54.snd"
| |
− | Sfx_55_Snd:
| |
− | binclude "sound/sfx_55.snd"
| |
− | Sfx_56_Snd:
| |
− | binclude "sound/sfx_56.snd"
| |
− | Sfx_57_Snd:
| |
− | binclude "sound/sfx_57.snd"
| |
− | Sfx_58_Snd:
| |
− | binclude "sound/sfx_58.snd"
| |
− | Sfx_59_Snd:
| |
− | binclude "sound/sfx_59.snd"
| |
− | Sfx_5A_Snd:
| |
− | binclude "sound/sfx_5A.snd"
| |
− | Sfx_5B_Snd:
| |
− | binclude "sound/sfx_5B.snd"
| |
− | Sfx_5C_Snd:
| |
− | binclude "sound/sfx_5C.snd"
| |
− | Sfx_5D_Snd:
| |
− | binclude "sound/sfx_5D.snd"
| |
− | Sfx_5E_Snd:
| |
− | binclude "sound/sfx_5E.snd"
| |
− | Sfx_5F_Snd:
| |
− | binclude "sound/sfx_5F.snd"
| |
− | Sfx_60_Snd:
| |
− | binclude "sound/sfx_60.snd"
| |
− | Sfx_61_Snd:
| |
− | binclude "sound/sfx_61.snd"
| |
− | Sfx_62_Snd:
| |
− | binclude "sound/sfx_62.snd"
| |
− | Sfx_63_Snd:
| |
− | binclude "sound/sfx_63.snd"
| |
− | Sfx_64_Snd:
| |
− | binclude "sound/sfx_64.snd"
| |
− | Sfx_65_Snd:
| |
− | binclude "sound/sfx_65.snd"
| |
− | Sfx_66_Snd:
| |
− | binclude "sound/sfx_66.snd"
| |
− | Sfx_67_Snd:
| |
− | binclude "sound/sfx_67.snd"
| |
− | Sfx_68_Snd:
| |
− | binclude "sound/sfx_68.snd"
| |
− | Sfx_69_Snd:
| |
− | binclude "sound/sfx_69.snd"
| |
− | Sfx_6A_Snd:
| |
− | binclude "sound/sfx_6A.snd"
| |
− | Sfx_6B_Snd:
| |
− | binclude "sound/sfx_6B.snd"
| |
− | Sfx_6C_Snd:
| |
− | binclude "sound/sfx_6C.snd"
| |
− | Sfx_6D_Snd:
| |
− | binclude "sound/sfx_6D.snd"
| |
− | Sfx_6E_Snd:
| |
− | binclude "sound/sfx_6E.snd"
| |
− | Sfx_6F_Snd:
| |
− | binclude "sound/sfx_6F.snd"
| |
− | Sfx_70_Snd:
| |
− | binclude "sound/sfx_70.snd"
| |
− | Sfx_71_Snd:
| |
− | binclude "sound/sfx_71.snd"
| |
− | Sfx_72_Snd:
| |
− | binclude "sound/sfx_72.snd"
| |
− | Sfx_73_Snd:
| |
− | binclude "sound/sfx_73.snd"
| |
− | Sfx_74_Snd:
| |
− | binclude "sound/sfx_74.snd"
| |
− | Sfx_75_Snd:
| |
− | binclude "sound/sfx_75.snd"
| |
− | Sfx_76_Snd:
| |
− | binclude "sound/sfx_76.snd"
| |
− | Sfx_77_Snd:
| |
− | binclude "sound/sfx_77.snd"
| |
− | Sfx_78_Snd:
| |
− | binclude "sound/sfx_78.snd"
| |
− | Sfx_79_Snd:
| |
− | binclude "sound/sfx_79.snd"
| |
− | Sfx_7A_Snd:
| |
− | binclude "sound/sfx_7A.snd"
| |
− | Sfx_7B_Snd:
| |
− | binclude "sound/sfx_7B.snd"
| |
− | Sfx_7C_Snd:
| |
− | binclude "sound/sfx_7C.snd"
| |
− | Sfx_7D_Snd:
| |
− | binclude "sound/sfx_7D.snd"
| |
− | Sfx_7E_Snd:
| |
− | binclude "sound/sfx_7E.snd"
| |
− | Sfx_7F_Snd:
| |
− | binclude "sound/sfx_7F.snd"
| |
− | Sfx_80_Snd:
| |
− | binclude "sound/sfx_80.snd"
| |
− | Sfx_81_Snd:
| |
− | binclude "sound/sfx_81.snd"
| |
− | Sfx_82_Snd:
| |
− | binclude "sound/sfx_82.snd"
| |
− | Sfx_83_Snd:
| |
− | binclude "sound/sfx_83.snd"
| |
− | Sfx_84_Snd:
| |
− | binclude "sound/sfx_84.snd"
| |
− | Sfx_85_Snd:
| |
− | binclude "sound/sfx_85.snd"
| |
− | Sfx_86_Snd:
| |
− | binclude "sound/sfx_86.snd"
| |
− | Sfx_87_Snd:
| |
− | binclude "sound/sfx_87.snd"
| |
− | Sfx_88_Snd:
| |
− | binclude "sound/sfx_88.snd"
| |
− | Sfx_89_Snd:
| |
− | binclude "sound/sfx_89.snd"
| |
− | Sfx_8A_Snd:
| |
− | binclude "sound/sfx_8A.snd"
| |
− | Sfx_8B_Snd:
| |
− | binclude "sound/sfx_8B.snd"
| |
− | Sfx_8C_Snd:
| |
− | binclude "sound/sfx_8C.snd"
| |
− | Sfx_8D_Snd:
| |
− | binclude "sound/sfx_8D.snd"
| |
− | Sfx_8E_Snd:
| |
− | binclude "sound/sfx_8E.snd"
| |
− | Sfx_8F_Snd:
| |
− | binclude "sound/sfx_8F.snd"
| |
− | Sfx_90_Snd:
| |
− | binclude "sound/sfx_90.snd"
| |
− | Sfx_91_Snd:
| |
− | binclude "sound/sfx_91.snd"
| |
− | Sfx_92_Snd:
| |
− | binclude "sound/sfx_92.snd"
| |
− | Sfx_93_Snd:
| |
− | binclude "sound/sfx_93.snd"
| |
− | Sfx_94_Snd:
| |
− | binclude "sound/sfx_94.snd"
| |
− | Sfx_95_Snd:
| |
− | binclude "sound/sfx_95.snd"
| |
− | Sfx_96_Snd:
| |
− | binclude "sound/sfx_96.snd"
| |
− | Sfx_97_Snd:
| |
− | binclude "sound/sfx_97.snd"
| |
− | Sfx_98_Snd:
| |
− | binclude "sound/sfx_98.snd"
| |
− | Sfx_99_Snd:
| |
− | binclude "sound/sfx_99.snd"
| |
− | Sfx_9A_Snd:
| |
− | binclude "sound/sfx_9A.snd"
| |
− | Sfx_9B_Snd:
| |
− | binclude "sound/sfx_9B.snd"
| |
− | Sfx_9C_Snd:
| |
− | binclude "sound/sfx_9C.snd"
| |
− | Sfx_9D_Snd:
| |
− | binclude "sound/sfx_9D.snd"
| |
− | Sfx_9E_Snd:
| |
− | binclude "sound/sfx_9E.snd"
| |
− | Sfx_9F_Snd:
| |
− | binclude "sound/sfx_9F.snd"
| |
− | Sfx_A0_Snd:
| |
− | binclude "sound/sfx_A0.snd"
| |
− | Sfx_A1_Snd:
| |
− | binclude "sound/sfx_A1.snd"
| |
− | Sfx_A2_Snd:
| |
− | binclude "sound/sfx_A2.snd"
| |
− | Sfx_A3_Snd:
| |
− | binclude "sound/sfx_A3.snd"
| |
− | Sfx_A4_Snd:
| |
− | binclude "sound/sfx_A4.snd"
| |
− | Sfx_A5_Snd:
| |
− | binclude "sound/sfx_A5.snd"
| |
− | Sfx_A6_Snd:
| |
− | binclude "sound/sfx_A6.snd"
| |
− | Sfx_A7_Snd:
| |
− | binclude "sound/sfx_A7.snd"
| |
− | Sfx_A8_Snd:
| |
− | binclude "sound/sfx_A8.snd"
| |
− | Sfx_A9_Snd:
| |
− | binclude "sound/sfx_A9.snd"
| |
− | Sfx_AA_Snd:
| |
− | binclude "sound/sfx_AA.snd"
| |
− | Sfx_AB_Snd:
| |
− | binclude "sound/sfx_AB.snd"
| |
− | Sfx_AC_Snd:
| |
− | binclude "sound/sfx_AC.snd"
| |
− | Sfx_AD_Snd:
| |
− | binclude "sound/sfx_AD.snd"
| |
− | Sfx_AE_Snd:
| |
− | binclude "sound/sfx_AE.snd"
| |
− | Sfx_AF_Snd:
| |
− | binclude "sound/sfx_AF.snd"
| |
− | Sfx_B0_Snd:
| |
− | binclude "sound/sfx_B0.snd"
| |
− | Sfx_B1_Snd:
| |
− | binclude "sound/sfx_B1.snd"
| |
− | Sfx_B2_Snd:
| |
− | binclude "sound/sfx_B2.snd"
| |
− | Sfx_B3_Snd:
| |
− | binclude "sound/sfx_B3.snd"
| |
− | Sfx_B4_Snd:
| |
− | binclude "sound/sfx_B4.snd"
| |
− | Sfx_B5_Snd:
| |
− | binclude "sound/sfx_B5.snd"
| |
− | Sfx_B6_Snd:
| |
− | binclude "sound/sfx_B6.snd"
| |
− | Sfx_B7_Snd:
| |
− | binclude "sound/sfx_B7.snd"
| |
− | Sfx_B8_Snd:
| |
− | binclude "sound/sfx_B8.snd"
| |
− | Sfx_B9_Snd:
| |
− | binclude "sound/sfx_B9.snd"
| |
− | Sfx_BA_Snd:
| |
− | binclude "sound/sfx_BA.snd"
| |
− | Sfx_BB_Snd:
| |
− | binclude "sound/sfx_BB.snd"
| |
− | Sfx_BC_Snd:
| |
− | binclude "sound/sfx_BC.snd"
| |
− | Sfx_BD_Snd:
| |
− | binclude "sound/sfx_BD.snd"
| |
− | Sfx_BE_Snd:
| |
− | binclude "sound/sfx_BE.snd"
| |
− | Sfx_BF_Snd:
| |
− | binclude "sound/sfx_BF.snd"
| |
− | Sfx_C0_Snd:
| |
− | binclude "sound/sfx_C0.snd"
| |
− | Sfx_C1_Snd:
| |
− | binclude "sound/sfx_C1.snd"
| |
− | Sfx_C2_Snd:
| |
− | binclude "sound/sfx_C2.snd"
| |
− | Sfx_C3_Snd:
| |
− | binclude "sound/sfx_C3.snd"
| |
− | Sfx_C4_Snd:
| |
− | binclude "sound/sfx_C4.snd"
| |
− | Sfx_C5_Snd:
| |
− | binclude "sound/sfx_C5.snd"
| |
− | Sfx_C6_Snd:
| |
− | binclude "sound/sfx_C6.snd"
| |
− | Sfx_C7_Snd:
| |
− | binclude "sound/sfx_C7.snd"
| |
− | Sfx_C8_Snd:
| |
− | binclude "sound/sfx_C8.snd"
| |
− | Sfx_C9_Snd:
| |
− | binclude "sound/sfx_C9.snd"
| |
− | Sfx_CA_Snd:
| |
− | binclude "sound/sfx_CA.snd"
| |
− | Sfx_CB_Snd:
| |
− | binclude "sound/sfx_CB.snd"
| |
− | Sfx_CC_Snd:
| |
− | binclude "sound/sfx_CC.snd"
| |
− | Sfx_CD_Snd:
| |
− | binclude "sound/sfx_CD.snd"
| |
− | Sfx_CE_Snd:
| |
− | binclude "sound/sfx_CE.snd"
| |
− | Sfx_CF_Snd:
| |
− | binclude "sound/sfx_CF.snd"
| |
− | Sfx_D0_Snd:
| |
− | binclude "sound/sfx_D0.snd"
| |
− | Sfx_D1_Snd:
| |
− | binclude "sound/sfx_D1.snd"
| |
− | Sfx_D2_Snd:
| |
− | binclude "sound/sfx_D2.snd"
| |
− | Sfx_D3_Snd:
| |
− | binclude "sound/sfx_D3.snd"
| |
− | Sfx_D4_Snd:
| |
− | binclude "sound/sfx_D4.snd"
| |
− | Sfx_D5_Snd:
| |
− | binclude "sound/sfx_D5.snd"
| |
− | Sfx_D6_Snd:
| |
− | binclude "sound/sfx_D6.snd"
| |
− | Sfx_D7_Snd:
| |
− | binclude "sound/sfx_D7.snd"
| |
− | Sfx_D8_Snd:
| |
− | binclude "sound/sfx_D8.snd"
| |
− | Sfx_D9_Snd:
| |
− | binclude "sound/sfx_D9.snd"
| |
− | Sfx_DA_Snd:
| |
− | binclude "sound/sfx_DA.snd"
| |
− | Sfx_DB_Snd:
| |
− | binclude "sound/sfx_DB.snd"
| |
− | Sfx_DC_Snd:
| |
− | binclude "sound/sfx_DC.snd"
| |
− | </asm>
| |
− |
| |
− | ===Driver data files===
| |
− | then unpack this:
| |
− | {{Download|file=s3driverdata.7z|filesize=131kb|title=The Sonic 3 Driver data files|plural=1}}
| |
− |
| |
− | ==Enabling Sonic 2 / 3 Level Music Memory==
| |
− | Doing this is optional as it has little to do with the driver itself, but is a very useful and quick hack that makes life a lot easier for the more painful phase of using a massively different sound system than before, fixing the freaken sound. Sonic1 uses a second index for restoring music as opposed to actually memorizing it like later sonic games do.
| |
− |
| |
− | First we will locate:
| |
− | <asm>
| |
− | Level_PlayBgm:
| |
− | lea (MusicList).l,a1 ; load music playlist
| |
− | move.b (a1,d0.w),d0 ; add d0 to a1
| |
− | bsr.w PlaySound ; play music
| |
− | move.b #$34,($FFFFD080).w ; load title card object
| |
− | </asm>
| |
− |
| |
− | and insert a new line to make it read:
| |
− | <asm>
| |
− | Level_PlayBgm:
| |
− | lea (MusicList).l,a1 ; load music playlist
| |
− | move.b (a1,d0.w),d0 ; add d0 to a1
| |
− | move.w d0,($FFFFFF90).w ; store level music
| |
− | bsr.w PlaySound ; play music
| |
− | move.b #$34,($FFFFD080).w ; load title card object
| |
− | </asm>
| |
− |
| |
− | Now we will locate:
| |
− | <asm>
| |
− | move.b ($FFFFFE10).w,d0
| |
− | cmpi.w #$103,($FFFFFE10).w ; check if level is SBZ3
| |
− | bne.s Obj01_PlayMusic
| |
− | moveq #5,d0 ; play SBZ music
| |
− |
| |
− | Obj01_PlayMusic:
| |
− | lea (MusicList2).l,a1
| |
− | move.b (a1,d0.w),d0
| |
− | jsr (PlaySound).l ; play normal music
| |
− | </asm>
| |
− |
| |
− | seems the invincibility stars conflict with music memory, so we will just make it use music list 1, so the result is:
| |
− | <asm>
| |
− | move.b ($FFFFFE10).w,d0
| |
− | cmpi.w #$103,($FFFFFE10).w ; check if level is SBZ3
| |
− | bne.s Obj01_PlayMusic
| |
− | moveq #5,d0 ; play SBZ music
| |
− |
| |
− | Obj01_PlayMusic:
| |
− | lea (MusicList).l,a1 ; load music playlist
| |
− | move.b (a1,d0.w),d0 ; add d0 to a1
| |
− | move.w d0,($FFFFFF90).w ; store level music
| |
− | jsr (PlaySound).l ; play normal music
| |
− | </asm>
| |
− |
| |
− | then remove:
| |
− | <asm>
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Music to play after invincibility wears off
| |
− | ; ---------------------------------------------------------------------------
| |
− | MusicList2: binclude misc\muslist2.bin
| |
− | </asm>
| |
− | now we want to fix the underwater counter music restore code, so locate:
| |
− | <asm>
| |
− | ResumeMusic: ; XREF: Obj64_Wobble; Sonic_Water; Obj0A_ReduceAir
| |
− | cmpi.w #$C,($FFFFFE14).w
| |
− | bhi.s loc_140AC
| |
− | move.w #$82,d0 ; play LZ music
| |
− | cmpi.w #$103,($FFFFFE10).w ; check if level is 0103 (SBZ3)
| |
− | bne.s loc_140A6
| |
− | move.w #$86,d0 ; play SBZ music
| |
− |
| |
− | loc_140A6:
| |
− | jsr (PlaySound).l
| |
− | </asm>
| |
− | and replace it with:
| |
− | <asm>
| |
− | ResumeMusic: ; XREF: Obj64_Wobble; Sonic_Water; Obj0A_ReduceAir
| |
− | cmpi.w #$C,($FFFFFE14).w
| |
− | bhi.s loc_140AC
| |
− | move.w ($FFFFFF90).w,d0 ;resume music
| |
− | jsr (PlaySound).l
| |
− | </asm>
| |
− | that sets up music memory for later.
| |
− |
| |
− | ==Fixing the Music Playlist==
| |
− | Okay, so we now have a working sonic3 driver, but we have yet to fix the music playlist it is still pointing to sound effects.
| |
− | Open ''misc\muslist1.bin'' in your favorite hex editor.<p>
| |
− | You will find that it reads:
| |
− | {| class="prettytable"
| |
− | ! Hex Data
| |
− | |-
| |
− | | '''81 82 83 84 85 86 8D 00'''
| |
− | |}
| |
− | Pick some new music for your game.
| |
− | ----
| |
− |
| |
− | I prefer to use:
| |
− | {| class="prettytable"
| |
− | ! Hex Data
| |
− | |-
| |
− | | '''01 04 13 0D 07 16 30 00'''
| |
− | |}
| |
− | Once you rebuild your rom, you will have some music on the levels, but sound effects and some other musics unrelated to the playlist will need fixing. This part is much easier fixing if you applied the sonic2 memory fix to your hack, otherwise edit ''misc/muslist2.bin'' and make the exact same changes.
| |
− |
| |
− | ==Fixing the Sneaker==
| |
− | We need to fix the sneaker in a different way than we normally do, because sonic3 uses a different means for speeding up or slowing down the music then its predecessors do.
| |
− | first we will locate:
| |
− | <asm>
| |
− | Obj2E_ChkShoes:
| |
− | cmpi.b #3,d0 ; does monitor contain speed shoes?
| |
− | bne.s Obj2E_ChkShield
| |
− | move.b #1,($FFFFFE2E).w ; speed up the BG music
| |
− | move.w #$4B0,($FFFFD034).w ; time limit for the power-up
| |
− | move.w #$C00,($FFFFF760).w ; change Sonic"s top speed
| |
− | move.w #$18,($FFFFF762).w
| |
− | move.w #$80,($FFFFF764).w
| |
− | move.w #$E2,d0
| |
− | jmp (PlaySound).l ; Speed up the music
| |
− | </asm>
| |
− | note that sonic1 plays a special sound to make the music speed up, our new driver does not do that, so we will change it to read:
| |
− | <asm>
| |
− | Obj2E_ChkShoes:
| |
− | cmpi.b #3,d0 ; does monitor contain speed shoes?
| |
− | bne.s Obj2E_ChkShield
| |
− | move.b #1,($FFFFFE2E).w ; speed up the BG music
| |
− | move.w #$4B0,($FFFFD034).w ; time limit for the power-up
| |
− | move.w #$C00,($FFFFF760).w ; change Sonic"s top speed
| |
− | move.w #$18,($FFFFF762).w
| |
− | move.w #$80,($FFFFF764).w
| |
− | move.w #8,d0
| |
− | jmp (SetTempo).l ; Speed up the music
| |
− | </asm>
| |
− | that speeds the music up properly, but we need to tell it how to slow the music back down. So we find:
| |
− | <asm>
| |
− | Obj01_ChkShoes:
| |
− | tst.b ($FFFFFE2E).w ; does Sonic have speed shoes?
| |
− | beq.s Obj01_ExitChk ; if not, branch
| |
− | tst.w $34(a0) ; check time remaining
| |
− | beq.s Obj01_ExitChk
| |
− | subq.w #1,$34(a0) ; subtract 1 from time
| |
− | bne.s Obj01_ExitChk
| |
− | move.w #$600,($FFFFF760).w ; restore Sonic"s speed
| |
− | move.w #$C,($FFFFF762).w ; restore Sonic"s acceleration
| |
− | move.w #$80,($FFFFF764).w ; restore Sonic"s deceleration
| |
− | move.b #0,($FFFFFE2E).w ; cancel speed shoes
| |
− | move.w #$E3,d0
| |
− | jmp (PlaySound).l ; run music at normal speed
| |
− | </asm>
| |
− | note that sonic1 also uses another sound to return the music to normal speed, sonic3 doesn't, so we will correct the sneaker wearing off effect, by changin it to:
| |
− | <asm>
| |
− | Obj01_ChkShoes:
| |
− | tst.b ($FFFFFE2E).w ; does Sonic have speed shoes?
| |
− | beq.s Obj01_ExitChk ; if not, branch
| |
− | tst.w $34(a0) ; check time remaining
| |
− | beq.s Obj01_ExitChk
| |
− | subq.w #1,$34(a0) ; subtract 1 from time
| |
− | bne.s Obj01_ExitChk
| |
− | move.w #$600,($FFFFF760).w ; restore Sonic"s speed
| |
− | move.w #$C,($FFFFF762).w ; restore Sonic"s acceleration
| |
− | move.w #$80,($FFFFF764).w ; restore Sonic"s deceleration
| |
− | move.b #0,($FFFFFE2E).w ; cancel speed shoes
| |
− | move.w #$0,d0
| |
− | jmp (SetTempo).l ; run music at normal speed
| |
− | </asm>
| |
− |
| |
− | ==Fixing the screen transition sound effects==
| |
− | ===Sega Screen Part 1===
| |
− | Don't we want music to fade out properly when changing screens? Well if that is true, then you are reading in the right place, first off, go and find:
| |
− | <asm>
| |
− | SegaScreen: ; XREF: GameModeArray
| |
− | move.b #$E4,d0
| |
− | bsr.w PlaySound_Special ; stop music
| |
− | </asm>
| |
− |
| |
− | we want it to change to:
| |
− | <asm>
| |
− | SegaScreen: ; XREF: GameModeArray
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; Sonic 3 prefers to fade out rather than stop the music.
| |
− | </asm>
| |
− |
| |
− | ===Title Screen playback fix===
| |
− | Good, the sega logo screen does with music what we want it to! now to fix the Title Screen, locate:
| |
− | <asm>
| |
− | TitleScreen: ; XREF: GameModeArray
| |
− | move.b #$E4,d0
| |
− | bsr.w PlaySound_Special ; stop music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | TitleScreen: ; XREF: GameModeArray
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; Sonic 3 prefers to fade out rather than stop the music.
| |
− | </asm>
| |
− |
| |
− | ===Ending Sequence music fix===
| |
− | Good, the title screen transition effect should be fixed now, but we still have a ways to go, so now lets fix the ending sequence transitioning, locate:
| |
− | <asm>
| |
− | EndingSequence: ; XREF: GameModeArray
| |
− | move.b #$E4,d0
| |
− | bsr.w PlaySound_Special ; stop music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | EndingSequence: ; XREF: GameModeArray
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; Sonic 3 prefers to fade out rather than stop the music.
| |
− | </asm>
| |
− |
| |
− | ===Fix the level select sound===
| |
− | Now that the screens fade music as they should, shouldn't we fix the rest of the fades throughout the game? I would think so, so lets do just that, locate:
| |
− | <asm>
| |
− | move.b #$E0,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | rts
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Level select - level pointers
| |
− | ; ---------------------------------------------------------------------------
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | rts
| |
− | ; ===========================================================================
| |
− | ; ---------------------------------------------------------------------------
| |
− | ; Level select - level pointers
| |
− | ; ---------------------------------------------------------------------------
| |
− | </asm>
| |
− |
| |
− | ===Music fade out on demo exit ala Sonic 3===
| |
− | that fixes a spot in the level select, which we will work on later. For now locate:
| |
− | <asm>
| |
− | loc_33E4: ; XREF: Demo
| |
− | andi.b #$80,($FFFFF605).w ; is Start button pressed?
| |
− | bne.w Title_ChkLevSel ; if yes, branch
| |
− | tst.w ($FFFFF614).w
| |
− | bne.w loc_33B6
| |
− | move.b #$E0,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_33E4: ; XREF: Demo
| |
− | andi.b #$80,($FFFFF605).w ; is Start button pressed?
| |
− | bne.w Title_ChkLevSel ; if yes, branch
| |
− | tst.w ($FFFFF614).w
| |
− | bne.w loc_33B6
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | </asm>
| |
− | ===Fade out music in prep of level===
| |
− | now find:
| |
− | <asm>
| |
− | Level: ; XREF: GameModeArray
| |
− | bset #7,($FFFFF600).w ; add $80 to screen mode (for pre level sequence)
| |
− | tst.w ($FFFFFFF0).w
| |
− | bmi.s loc_37B6
| |
− | move.b #$E0,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Level: ; XREF: GameModeArray
| |
− | bset #7,($FFFFF600).w ; add $80 to screen mode (for pre level sequence)
| |
− | tst.w ($FFFFFFF0).w
| |
− | bmi.s loc_37B6
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | </asm>
| |
− | ===Continue screen fade out===
| |
− | now find:
| |
− | <asm>
| |
− | Obj81_GetUp: ; XREF: Obj81_Animate
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_Sonic,4(a0)
| |
− | move.w #$780,2(a0)
| |
− | move.b #$1E,$1C(a0) ; use "getting up" animation
| |
− | clr.w $14(a0)
| |
− | subq.w #8,$C(a0)
| |
− | move.b #$E0,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj81_GetUp: ; XREF: Obj81_Animate
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_Sonic,4(a0)
| |
− | move.w #$780,2(a0)
| |
− | move.b #$1E,$1C(a0) ; use "getting up" animation
| |
− | clr.w $14(a0)
| |
− | subq.w #8,$C(a0)
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; fade out music
| |
− | </asm>
| |
− | okay, that should fix all the music fades between screens, but still there are yet more fixes to be made.
| |
− |
| |
− | ==Fixing the SEGA! sound==
| |
− | Want to hear the SEGA! pcm when you should? Well this section is for you then. Go find:
| |
− | <asm>
| |
− | Sega_WaitPallet:
| |
− | move.b #2,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | bsr.w PalCycle_Sega
| |
− | bne.s Sega_WaitPallet
| |
− |
| |
− | move.b #$E1,d0
| |
− | bsr.w PlaySound_Special ; play "SEGA" sound
| |
− | move.b #$14,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | move.w #$1E,($FFFFF614).w
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Sega_WaitPallet:
| |
− | move.b #2,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | bsr.w PalCycle_Sega
| |
− | bne.s Sega_WaitPallet
| |
− |
| |
− | move.b #$FF,d0
| |
− | bsr.w PlaySound_Special ; play "SEGA" sound
| |
− | move.b #$14,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | move.w #$1E,($FFFFF614).w
| |
− | </asm>
| |
− | That should fix the sega pcm sample on the sega logo screen.
| |
− |
| |
− | ==Fixing the Title Screen music==
| |
− | Want to get rid of that weird sound effect on the title screen? Then we need to fix the music. Find:
| |
− | <asm>
| |
− | move.b #$8A,d0 ; play title screen music
| |
− | bsr.w PlaySound_Special
| |
− | move.b #0,($FFFFFFFA).w ; disable debug mode
| |
− | move.w #$178,($FFFFF614).w ; run title screen for $178 frames
| |
− | lea ($FFFFD080).w,a1
| |
− | moveq #0,d0
| |
− | move.w #7,d1
| |
− |
| |
− | Title_ClrObjRam2:
| |
− | </asm>
| |
− |
| |
− | and change it to:
| |
− | <asm>
| |
− | move.b #$25,d0 ; play title screen music
| |
− | bsr.w PlaySound_Special
| |
− | move.b #0,($FFFFFFFA).w ; disable debug mode
| |
− | move.w #$178,($FFFFF614).w ; run title screen for $178 frames
| |
− | lea ($FFFFD080).w,a1
| |
− | moveq #0,d0
| |
− | move.w #7,d1
| |
− |
| |
− | Title_ClrObjRam2:
| |
− | </asm>
| |
− |
| |
− | that fixes the title screen's music so that it plays sonic 3 title screen music, or you can pick another music if you so choose.
| |
− |
| |
− | ==Fixing the Special Stage music==
| |
− | now that the title screen plays the right music, lets fix the special stage music. We simply want to locate:
| |
− | <asm>
| |
− | SS_ClrNemRam:
| |
− | move.l d0,(a1)+
| |
− | dbf d1,SS_ClrNemRam ; clear Nemesis buffer
| |
− |
| |
− | clr.b ($FFFFF64E).w
| |
− | clr.w ($FFFFFE02).w
| |
− | moveq #$A,d0
| |
− | bsr.w PalLoad1 ; load special stage pallet
| |
− | jsr (SS_Load).l
| |
− | move.l #0,($FFFFF700).w
| |
− | move.l #0,($FFFFF704).w
| |
− | move.b #9,($FFFFD000).w ; load special stage Sonic object
| |
− | bsr.w PalCycle_SS
| |
− | clr.w ($FFFFF780).w ; set stage angle to "upright"
| |
− | move.w #$40,($FFFFF782).w ; set stage rotation speed
| |
− | move.w #$89,d0
| |
− | bsr.w PlaySound ; play special stage BG music
| |
− | move.w #0,($FFFFF790).w
| |
− | lea (Demo_Index).l,a1
| |
− | moveq #6,d0
| |
− | lsl.w #2,d0
| |
− | movea.l (a1,d0.w),a1
| |
− | move.b 1(a1),($FFFFF792).w
| |
− | subq.b #1,($FFFFF792).w
| |
− | clr.w ($FFFFFE20).w
| |
− | clr.b ($FFFFFE1B).w
| |
− | move.w #0,($FFFFFE08).w
| |
− | move.w #1800,($FFFFF614).w
| |
− | tst.b ($FFFFFFE2).w ; has debug cheat been entered?
| |
− | beq.s SS_NoDebug ; if not, branch
| |
− | btst #6,($FFFFF604).w ; is A button pressed?
| |
− | beq.s SS_NoDebug ; if not, branch
| |
− | move.b #1,($FFFFFFFA).w ; enable debug mode
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | SS_ClrNemRam:
| |
− | move.l d0,(a1)+
| |
− | dbf d1,SS_ClrNemRam ; clear Nemesis buffer
| |
− |
| |
− | clr.b ($FFFFF64E).w
| |
− | clr.w ($FFFFFE02).w
| |
− | moveq #$A,d0
| |
− | bsr.w PalLoad1 ; load special stage pallet
| |
− | jsr (SS_Load).l
| |
− | move.l #0,($FFFFF700).w
| |
− | move.l #0,($FFFFF704).w
| |
− | move.b #9,($FFFFD000).w ; load special stage Sonic object
| |
− | bsr.w PalCycle_SS
| |
− | clr.w ($FFFFF780).w ; set stage angle to "upright"
| |
− | move.w #$40,($FFFFF782).w ; set stage rotation speed
| |
− | move.w #$1C,d0
| |
− | bsr.w PlaySound ; play special stage BG music
| |
− | move.w #0,($FFFFF790).w
| |
− | lea (Demo_Index).l,a1
| |
− | moveq #6,d0
| |
− | lsl.w #2,d0
| |
− | movea.l (a1,d0.w),a1
| |
− | move.b 1(a1),($FFFFF792).w
| |
− | subq.b #1,($FFFFF792).w
| |
− | clr.w ($FFFFFE20).w
| |
− | clr.b ($FFFFFE1B).w
| |
− | move.w #0,($FFFFFE08).w
| |
− | move.w #1800,($FFFFF614).w
| |
− | tst.b ($FFFFFFE2).w ; has debug cheat been entered?
| |
− | beq.s SS_NoDebug ; if not, branch
| |
− | btst #6,($FFFFF604).w ; is A button pressed?
| |
− | beq.s SS_NoDebug ; if not, branch
| |
− | move.b #1,($FFFFFFFA).w ; enable debug mode
| |
− | </asm>
| |
− | now we have sonic 3 special stage music on the sonic 1 special stage. Or you could choose a different song of your choice.
| |
− |
| |
− | ==Fixing the Ending Sequence music==
| |
− | now time to fix the music for the ending sequence. Find:
| |
− | <asm>
| |
− | End_LoadData:
| |
− | moveq #$1C,d0
| |
− | bsr.w RunPLC_ROM ; load ending sequence patterns
| |
− | jsr (Hud_Base).l
| |
− | bsr.w LevelSizeLoad
| |
− | bsr.w DeformBgLayer
| |
− | bset #2,($FFFFF754).w
| |
− | bsr.w MainLoadBlockLoad
| |
− | bsr.w LoadTilesFromStart
| |
− | move.l #Col_GHZ,($FFFFF796).w ; load collision index
| |
− | move #$2300,sr
| |
− | lea (Kos_EndFlowers).l,a0 ; load extra flower patterns
| |
− | lea ($FFFF9400).w,a1 ; RAM address to buffer the patterns
| |
− | bsr.w KosDec
| |
− | moveq #3,d0
| |
− | bsr.w PalLoad1 ; load Sonic"s pallet
| |
− | move.w #$8B,d0
| |
− | bsr.w PlaySound ; play ending sequence music
| |
− | btst #6,($FFFFF604).w ; is button A pressed?
| |
− | beq.s End_LoadSonic ; if not, branch
| |
− | move.b #1,($FFFFFFFA).w ; enable debug mode
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | End_LoadData:
| |
− | moveq #$1C,d0
| |
− | bsr.w RunPLC_ROM ; load ending sequence patterns
| |
− | jsr (Hud_Base).l
| |
− | bsr.w LevelSizeLoad
| |
− | bsr.w DeformBgLayer
| |
− | bset #2,($FFFFF754).w
| |
− | bsr.w MainLoadBlockLoad
| |
− | bsr.w LoadTilesFromStart
| |
− | move.l #Col_GHZ,($FFFFF796).w ; load collision index
| |
− | move #$2300,sr
| |
− | lea (Kos_EndFlowers).l,a0 ; load extra flower patterns
| |
− | lea ($FFFF9400).w,a1 ; RAM address to buffer the patterns
| |
− | bsr.w KosDec
| |
− | moveq #3,d0
| |
− | bsr.w PalLoad1 ; load Sonic"s pallet
| |
− | move.w #$32,d0
| |
− | bsr.w PlaySound ; play ending sequence music
| |
− | btst #6,($FFFFF604).w ; is button A pressed?
| |
− | beq.s End_LoadSonic ; if not, branch
| |
− | move.b #1,($FFFFFFFA).w ; enable debug mode
| |
− | </asm>
| |
− | that makes it so that sonic 3 ending sequence music plays. Or you could choose a different music.
| |
− |
| |
− | ==Fixing the Credits music==
| |
− | time to fix the credits music, this time it needs to be fixed in multiple places. First we find:
| |
− | <asm>
| |
− | LevSel_Credits: ; XREF: LevelSelect
| |
− | move.b #$1C,($FFFFF600).w ; set screen mode to $1C (Credits)
| |
− | move.b #$91,d0
| |
− | bsr.w PlaySound_Special ; play credits music
| |
− | move.w #0,($FFFFFFF4).w
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | LevSel_Credits: ; XREF: LevelSelect
| |
− | move.b #$1C,($FFFFF600).w ; set screen mode to $1C (Credits)
| |
− | move.b #$26,d0
| |
− | bsr.w PlaySound_Special ; play credits music
| |
− | move.w #0,($FFFFFFF4).w
| |
− | rts
| |
− | </asm>
| |
− | then we find:
| |
− | <asm>
| |
− | End_MainLoop:
| |
− | bsr.w PauseGame
| |
− | move.b #$18,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | addq.w #1,($FFFFFE04).w
| |
− | bsr.w End_MoveSonic
| |
− | jsr (ObjectsLoad).l
| |
− | bsr.w DeformBgLayer
| |
− | jsr (BuildSprites).l
| |
− | jsr (ObjPosLoad).l
| |
− | bsr.w PalCycle_Load
| |
− | bsr.w OscillateNumDo
| |
− | bsr.w ChangeRingFrame
| |
− | cmpi.b #$18,($FFFFF600).w ; is scene number $18 (ending)?
| |
− | beq.s loc_52DA ; if yes, branch
| |
− | move.b #$1C,($FFFFF600).w ; set scene to $1C (credits)
| |
− | move.b #$91,d0
| |
− | bsr.w PlaySound_Special ; play credits music
| |
− | move.w #0,($FFFFFFF4).w ; set credits index number to 0
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | End_MainLoop:
| |
− | bsr.w PauseGame
| |
− | move.b #$18,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | addq.w #1,($FFFFFE04).w
| |
− | bsr.w End_MoveSonic
| |
− | jsr (ObjectsLoad).l
| |
− | bsr.w DeformBgLayer
| |
− | jsr (BuildSprites).l
| |
− | jsr (ObjPosLoad).l
| |
− | bsr.w PalCycle_Load
| |
− | bsr.w OscillateNumDo
| |
− | bsr.w ChangeRingFrame
| |
− | cmpi.b #$18,($FFFFF600).w ; is scene number $18 (ending)?
| |
− | beq.s loc_52DA ; if yes, branch
| |
− | move.b #$1C,($FFFFF600).w ; set scene to $1C (credits)
| |
− | move.b #$26,d0
| |
− | bsr.w PlaySound_Special ; play credits music
| |
− | move.w #0,($FFFFFFF4).w ; set credits index number to 0
| |
− | rts
| |
− | </asm>
| |
− |
| |
− | That fixes the credits music with sonic 3 credits music, otherwise you could use a different song if you choose.
| |
− |
| |
− | ==Fixing Special Event sound==
| |
− | ===Chaos Emerald===
| |
− | time to fix sound for events that only happen in certain situations, i.e. end of level, game over / time over, extra life and such. first we will start with the chaos emerald collection sound, go and find:
| |
− | <asm>
| |
− | Obj09_NoEmer:
| |
− | move.w #$93,d0
| |
− | jsr (PlaySound_Special).l ; play emerald music
| |
− | moveq #0,d4
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_NoEmer:
| |
− | move.w #$2B,d0
| |
− | jsr (PlaySound_Special).l ; play emerald music
| |
− | moveq #0,d4
| |
− | rts
| |
− | </asm>
| |
− |
| |
− | ===Game Over / Time Over===
| |
− | next we will start with Game Over / Time Over, go and find:
| |
− | <asm>
| |
− | loc_138C2:
| |
− | move.w #$8F,d0
| |
− | jsr (PlaySound).l ; play game over music
| |
− | moveq #3,d0
| |
− | jmp (LoadPLC).l ; load game over patterns
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_138C2:
| |
− | move.w #$27,d0
| |
− | jsr (PlaySound).l ; play game over music
| |
− | moveq #3,d0
| |
− | jmp (LoadPLC).l ; load game over patterns
| |
− | </asm>
| |
− | ===Sonic has passed Music===
| |
− | that causes the Game Over and Time Over screens to use its sonic 3 version or you could choose a different song if you wish. Now we will go on to End of level Results. Find:
| |
− | <asm>
| |
− | move.w ($FFFFFE20).w,d0
| |
− | mulu.w #10,d0 ; multiply rings by 10
| |
− | move.w d0,($FFFFF7D4).w ; set rings bonus
| |
− | move.w #$8E,d0
| |
− | jsr (PlaySound_Special).l ; play end-of-level music
| |
− | lea ($FFFFD000).w,a1
| |
− | moveq #0,d0
| |
− | move.w #$7FF,d1
| |
− |
| |
− | SS_EndClrObjRam:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w ($FFFFFE20).w,d0
| |
− | mulu.w #10,d0 ; multiply rings by 10
| |
− | move.w d0,($FFFFF7D4).w ; set rings bonus
| |
− | move.w #$29,d0
| |
− | jsr (PlaySound_Special).l ; play end-of-level music
| |
− | lea ($FFFFD000).w,a1
| |
− | moveq #0,d0
| |
− | move.w #$7FF,d1
| |
− |
| |
− | SS_EndClrObjRam:
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | loc_ECD0:
| |
− | add.w d0,d0
| |
− | move.w TimeBonuses(pc,d0.w),($FFFFF7D2).w ; set time bonus
| |
− | move.w ($FFFFFE20).w,d0 ; load number of rings
| |
− | mulu.w #10,d0 ; multiply by 10
| |
− | move.w d0,($FFFFF7D4).w ; set ring bonus
| |
− | move.w #$8E,d0
| |
− | jsr (PlaySound_Special).l ; play "Sonic got through" music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_ECD0:
| |
− | add.w d0,d0
| |
− | move.w TimeBonuses(pc,d0.w),($FFFFF7D2).w ; set time bonus
| |
− | move.w ($FFFFFE20).w,d0 ; load number of rings
| |
− | mulu.w #10,d0 ; multiply by 10
| |
− | move.w d0,($FFFFF7D4).w ; set ring bonus
| |
− | move.w #$29,d0
| |
− | jsr (PlaySound_Special).l ; play "Sonic got through" music
| |
− | </asm>
| |
− | ===1up Sound===
| |
− | that fixes the end of level and end of special stage results music by using modern version, but you could use a different song if you wish. Next we will fix the extra life sound, so find:
| |
− | <asm>
| |
− | loc_9CA4:
| |
− | addq.b #1,($FFFFFE12).w ; add 1 to the number of lives you have
| |
− | addq.b #1,($FFFFFE1C).w ; add 1 to the lives counter
| |
− | move.w #$88,d0 ; play extra life music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_9CA4:
| |
− | addq.b #1,($FFFFFE12).w ; add 1 to the number of lives you have
| |
− | addq.b #1,($FFFFFE1C).w ; add 1 to the lives counter
| |
− | move.w #$2A,d0 ; play extra life music
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | ExtraLife:
| |
− | addq.b #1,($FFFFFE12).w ; add 1 to the number of lives you have
| |
− | addq.b #1,($FFFFFE1C).w ; add 1 to the lives counter
| |
− | move.w #$88,d0
| |
− | jmp (PlaySound).l ; play extra life music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | ExtraLife:
| |
− | addq.b #1,($FFFFFE12).w ; add 1 to the number of lives you have
| |
− | addq.b #1,($FFFFFE1C).w ; add 1 to the lives counter
| |
− | move.w #$2A,d0
| |
− | jmp (PlaySound).l ; play extra life music
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | Obj09_Get1Up:
| |
− | addq.b #1,($FFFFFE12).w ; add 1 to number of lives
| |
− | addq.b #1,($FFFFFE1C).w ; add 1 to lives counter
| |
− | move.w #$88,d0
| |
− | jsr (PlaySound).l ; play extra life music
| |
− | moveq #0,d4
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_Get1Up:
| |
− | addq.b #1,($FFFFFE12).w ; add 1 to number of lives
| |
− | addq.b #1,($FFFFFE1C).w ; add 1 to lives counter
| |
− | move.w #$2A,d0
| |
− | jsr (PlaySound).l ; play extra life music
| |
− | moveq #0,d4
| |
− | rts
| |
− | </asm>
| |
− | ===Stars Monitor===
| |
− | That fixes the extra life sound with the sonic3 version, though I am sure you could use a different one in a different slot if such thing exists. Time to fix the invincibinity music, so find:
| |
− | <asm>
| |
− | Obj2E_ChkInvinc:
| |
− | cmpi.b #5,d0 ; does monitor contain invincibility?
| |
− | bne.s Obj2E_ChkRings
| |
− | move.b #1,($FFFFFE2D).w ; make Sonic invincible
| |
− | move.w #$4B0,($FFFFD032).w ; time limit for the power-up
| |
− | move.b #$38,($FFFFD200).w ; load stars object ($3801)
| |
− | move.b #1,($FFFFD21C).w
| |
− | move.b #$38,($FFFFD240).w ; load stars object ($3802)
| |
− | move.b #2,($FFFFD25C).w
| |
− | move.b #$38,($FFFFD280).w ; load stars object ($3803)
| |
− | move.b #3,($FFFFD29C).w
| |
− | move.b #$38,($FFFFD2C0).w ; load stars object ($3804)
| |
− | move.b #4,($FFFFD2DC).w
| |
− | tst.b ($FFFFF7AA).w ; is boss mode on?
| |
− | bne.s Obj2E_NoMusic ; if yes, branch
| |
− | move.w #$87,d0
| |
− | jmp (PlaySound).l ; play invincibility music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj2E_ChkInvinc:
| |
− | cmpi.b #5,d0 ; does monitor contain invincibility?
| |
− | bne.s Obj2E_ChkRings
| |
− | move.b #1,($FFFFFE2D).w ; make Sonic invincible
| |
− | move.w #$4B0,($FFFFD032).w ; time limit for the power-up
| |
− | move.b #$38,($FFFFD200).w ; load stars object ($3801)
| |
− | move.b #1,($FFFFD21C).w
| |
− | move.b #$38,($FFFFD240).w ; load stars object ($3802)
| |
− | move.b #2,($FFFFD25C).w
| |
− | move.b #$38,($FFFFD280).w ; load stars object ($3803)
| |
− | move.b #3,($FFFFD29C).w
| |
− | move.b #$38,($FFFFD2C0).w ; load stars object ($3804)
| |
− | move.b #4,($FFFFD2DC).w
| |
− | tst.b ($FFFFF7AA).w ; is boss mode on?
| |
− | bne.s Obj2E_NoMusic ; if yes, branch
| |
− | move.w #$2C,d0
| |
− | jmp (PlaySound).l ; play invincibility music
| |
− | </asm>
| |
− | ===Extra Continue sound===
| |
− | that fixes the invincibility sound with the sonic3 version, but you could choose a different one if you wish. Next we will fix the get a continue sound, so find:
| |
− | <asm>
| |
− | Obj7E_Continue: ; XREF: Obj7E_Index
| |
− | move.b #4,($FFFFD6DA).w
| |
− | move.b #$14,($FFFFD6E4).w
| |
− | move.w #$BF,d0
| |
− | jsr (PlaySound_Special).l ; play continues music
| |
− | addq.b #2,$24(a0)
| |
− | move.w #360,$1E(a0) ; set time delay to 6 seconds
| |
− | bra.w DisplaySprite
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj7E_Continue: ; XREF: Obj7E_Index
| |
− | move.b #4,($FFFFD6DA).w
| |
− | move.b #$14,($FFFFD6E4).w
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play continues music
| |
− | addq.b #2,$24(a0)
| |
− | move.w #360,$1E(a0) ; set time delay to 6 seconds
| |
− | bra.w DisplaySprite
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj09_GetCont:
| |
− | jsr (CollectRing).l
| |
− | cmpi.w #50,($FFFFFE20).w ; check if you have 50 rings
| |
− | bcs.s Obj09_NoCont
| |
− | bset #0,($FFFFFE1B).w
| |
− | bne.s Obj09_NoCont
| |
− | addq.b #1,($FFFFFE18).w ; add 1 to number of continues
| |
− | move.w #$BF,d0
| |
− | jsr (PlaySound).l ; play extra continue sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_GetCont:
| |
− | jsr (CollectRing).l
| |
− | cmpi.w #50,($FFFFFE20).w ; check if you have 50 rings
| |
− | bcs.s Obj09_NoCont
| |
− | bset #0,($FFFFFE1B).w
| |
− | bne.s Obj09_NoCont
| |
− | addq.b #1,($FFFFFE18).w ; add 1 to number of continues
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound).l ; play extra continue sound
| |
− | </asm>
| |
− | ===Continue screen music===
| |
− | that fixes the extra continue sound that plays on both the end result screen and in the special stage. How about fixing the music for the continue screen itself? That is what we are doing next, so find:
| |
− | <asm>
| |
− | jsr (ContScrCounter).l ; run countdown (start from 10)
| |
− | moveq #$12,d0
| |
− | bsr.w PalLoad1 ; load continue screen pallet
| |
− | move.b #$90,d0
| |
− | bsr.w PlaySound ; play continue music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | jsr (ContScrCounter).l ; run countdown (start from 10)
| |
− | moveq #$12,d0
| |
− | bsr.w PalLoad1 ; load continue screen pallet
| |
− | move.b #$28,d0
| |
− | bsr.w PlaySound ; play continue music
| |
− | </asm>
| |
− | ===Special Stage entrance/exit===
| |
− | that fixes the continue screen music. Though you could choose a different song if you wish. Time to fix the special stage entry sound, so find:
| |
− | <asm>
| |
− | SpecialStage: ; XREF: GameModeArray
| |
− | move.w #$CA,d0
| |
− | bsr.w PlaySound_Special ; play special stage entry sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | SpecialStage: ; XREF: GameModeArray
| |
− | move.w #$AF,d0
| |
− | bsr.w PlaySound_Special ; play special stage entry sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | SS_NormalExit:
| |
− | bsr.w PauseGame
| |
− | move.b #$C,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | jsr (ObjectsLoad).l
| |
− | jsr (BuildSprites).l
| |
− | bsr.w RunPLC_RAM
| |
− | tst.w ($FFFFFE02).w
| |
− | beq.s SS_NormalExit
| |
− | tst.l ($FFFFF680).w
| |
− | bne.s SS_NormalExit
| |
− | move.w #$CA,d0
| |
− | bsr.w PlaySound_Special ; play special stage exit sound
| |
− | bsr.w Pal_MakeFlash
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | SS_NormalExit:
| |
− | bsr.w PauseGame
| |
− | move.b #$C,($FFFFF62A).w
| |
− | bsr.w DelayProgram
| |
− | jsr (ObjectsLoad).l
| |
− | jsr (BuildSprites).l
| |
− | bsr.w RunPLC_RAM
| |
− | tst.w ($FFFFFE02).w
| |
− | beq.s SS_NormalExit
| |
− | tst.l ($FFFFF680).w
| |
− | bne.s SS_NormalExit
| |
− | move.w #$AF,d0
| |
− | bsr.w PlaySound_Special ; play special stage exit sound
| |
− | bsr.w Pal_MakeFlash
| |
− | rts
| |
− | </asm>
| |
− | ===Boss music===
| |
− | on entry and exit, the special stage should now play the correct sound. Time to fix the boss music, so find:
| |
− | <asm>
| |
− | loc_6ED0:
| |
− | move.w #$8C,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_6ED0:
| |
− | move.w #$19,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_6F4A:
| |
− | move.w #$8C,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_6F4A:
| |
− | move.w #$19,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_70D0:
| |
− | move.w #$8C,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_70D0:
| |
− | move.w #$19,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_7144:
| |
− | move.w #$8C,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_7144:
| |
− | move.w #$8C,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_71EC:
| |
− | move.w #$19,d0
| |
− | bsr.w PlaySound ; play boss music
| |
− | </asm>
| |
− | ===GHZ3 music restore, the modern way===
| |
− | I not that long ago remembered that since sonic1 does not have music memory support, the game's way of playing the previous song is hard coded, so we need to fix that since we added memory support earlier, so find:
| |
− | <asm>
| |
− | oc_179E0:
| |
− | clr.w $12(a0)
| |
− | move.w #$81,d0
| |
− | jsr (PlaySound).l ; play GHZ music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | oc_179E0:
| |
− | clr.w $12(a0)
| |
− | move.w ($FFFFFF90).w,d0
| |
− | jsr (PlaySound).l ; play GHZ music
| |
− | </asm>
| |
− |
| |
− | ===LZ3 music restore, the modern way===
| |
− | now find:
| |
− | <asm>
| |
− | loc_18112:
| |
− | move.w #$82,d0
| |
− | jsr (PlaySound).l ; play LZ music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_18112:
| |
− | move.w ($FFFFFF90).w,d0
| |
− | jsr (PlaySound).l ; play LZ music
| |
− | </asm>
| |
− |
| |
− | ===MZ3 music restore, the modern way===
| |
− | now find:
| |
− | <asm>
| |
− | loc_1856C:
| |
− | clr.w $12(a0)
| |
− | move.w #$83,d0
| |
− | jsr (PlaySound).l ; play MZ music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_1856C:
| |
− | clr.w $12(a0)
| |
− | move.w ($FFFFFF90).w,d0
| |
− | jsr (PlaySound).l ; play MZ music
| |
− | </asm>
| |
− |
| |
− | ===SLZ3 music restore, the modern way===
| |
− | now find:
| |
− | <asm>
| |
− | loc_18BB4:
| |
− | clr.w $12(a0)
| |
− | move.w #$84,d0
| |
− | jsr (PlaySound).l ; play SLZ music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_18BB4:
| |
− | clr.w $12(a0)
| |
− | move.w ($FFFFFF90).w,d0
| |
− | jsr (PlaySound).l ; play SLZ music
| |
− | </asm>
| |
− |
| |
− | ===SYZ3 music restore, the modern way===
| |
− | find:
| |
− | <asm>
| |
− | loc_194E0:
| |
− | clr.w $12(a0)
| |
− | move.w #$85,d0
| |
− | jsr (PlaySound).l ; play SYZ music
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_194E0:
| |
− | clr.w $12(a0)
| |
− | move.w ($FFFFFF90).w,d0
| |
− | jsr (PlaySound).l ; play SYZ music
| |
− | </asm>
| |
− |
| |
− | ===SBZ2 Cut scene, Sonic & Knuckles style===
| |
− | that fixes the boss music, though you could choose different music per-level if you wish within this part of the how-to. Next we will fix the cut scene just before SBZ3, and I would choose to have that music be SBZ music, to have an effect like the cut scenes in s&k. So find:
| |
− | <asm>
| |
− | Obj3A_SBZ2: ; XREF: Obj3A_ChkPos2
| |
− | cmpi.b #4,$1A(a0)
| |
− | bne.w DeleteObject
| |
− | addq.b #2,$24(a0)
| |
− | clr.b ($FFFFF7CC).w ; unlock controls
| |
− | move.w #$8D,d0
| |
− | jmp (PlaySound).l ; play FZ music
| |
− | </asm>
| |
− | and change it to
| |
− | <asm>
| |
− | Obj3A_SBZ2: ; XREF: Obj3A_ChkPos2
| |
− | cmpi.b #4,$1A(a0)
| |
− | bne.w DeleteObject
| |
− | addq.b #2,$24(a0)
| |
− | clr.b ($FFFFF7CC).w ; unlock controls
| |
− | move.w ($FFFFFF90).w,d0
| |
− | jmp (PlaySound).l ; play level music
| |
− | </asm>
| |
− |
| |
− | ===Air countdown music===
| |
− | that causes the game to use whatever music the level started with, but now we need to fix the air counter music, so find:
| |
− | <asm>
| |
− | move.w #$92,d0
| |
− | jsr (PlaySound).l ; play countdown music
| |
− |
| |
− | loc_13F02:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$31,d0
| |
− | jsr (PlaySound).l ; play countdown music
| |
− |
| |
− | loc_13F02:
| |
− | </asm>
| |
− | this uses the sonic 3 version of the underwater counter music, or you can use a custom one in a location of your own choice. Now lets fix the sound effects.
| |
− |
| |
− | ==Fixing the sound effects so that they sound right, or at least close to right==
| |
− | So now we have all the music and a few sounds fixed, but what about the general sound effects (A0 - CF in sonic 1). Sound effects in sonic 3 start at 33 and end at DC, so lets fix them in sonic 1 order, starting with the jump sound, so find:
| |
− | ===Sound $A0===
| |
− | <asm>
| |
− | move.w #$A0,d0
| |
− | jsr (PlaySound_Special).l ; play jumping sound
| |
− | move.b #$13,$16(a0)
| |
− | move.b #9,$17(a0)
| |
− | btst #2,$22(a0)
| |
− | bne.s loc_13490
| |
− | move.b #$E,$16(a0)
| |
− | move.b #7,$17(a0)
| |
− | move.b #2,$1C(a0) ; use "jumping" animation
| |
− | bset #2,$22(a0)
| |
− | addq.w #5,$C(a0)
| |
− |
| |
− | locret_1348E:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$62,d0
| |
− | jsr (PlaySound_Special).l ; play jumping sound
| |
− | move.b #$13,$16(a0)
| |
− | move.b #9,$17(a0)
| |
− | btst #2,$22(a0)
| |
− | bne.s loc_13490
| |
− | move.b #$E,$16(a0)
| |
− | move.b #7,$17(a0)
| |
− | move.b #2,$1C(a0) ; use "jumping" animation
| |
− | bset #2,$22(a0)
| |
− | addq.w #5,$C(a0)
| |
− |
| |
− | locret_1348E:
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | move.w #$A0,d0
| |
− | jsr (PlaySound_Special).l ; play jumping sound
| |
− |
| |
− | Obj09_NoJump:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$62,d0
| |
− | jsr (PlaySound_Special).l ; play jumping sound
| |
− |
| |
− | Obj09_NoJump:
| |
− | </asm>
| |
− | ===Sound $A1===
| |
− | the jump sound should now be what it is supposed to be, so we fix the lamp post next, so find:
| |
− | <asm>
| |
− | Obj79_HitLamp:
| |
− | move.w ($FFFFD008).w,d0
| |
− | sub.w 8(a0),d0
| |
− | addq.w #8,d0
| |
− | cmpi.w #$10,d0
| |
− | bcc.w locret_16F90
| |
− | move.w ($FFFFD00C).w,d0
| |
− | sub.w $C(a0),d0
| |
− | addi.w #$40,d0
| |
− | cmpi.w #$68,d0
| |
− | bcc.s locret_16F90
| |
− | move.w #$A1,d0
| |
− | jsr (PlaySound_Special).l ; play lamppost sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj79_HitLamp:
| |
− | move.w ($FFFFD008).w,d0
| |
− | sub.w 8(a0),d0
| |
− | addq.w #8,d0
| |
− | cmpi.w #$10,d0
| |
− | bcc.w locret_16F90
| |
− | move.w ($FFFFD00C).w,d0
| |
− | sub.w $C(a0),d0
| |
− | addi.w #$40,d0
| |
− | cmpi.w #$68,d0
| |
− | bcc.s locret_16F90
| |
− | move.w #$63,d0
| |
− | jsr (PlaySound_Special).l ; play lamppost sound
| |
− | </asm>
| |
− | ===Sound $A2===
| |
− | Sound $A2 is not used in sonic 1, so it will be skipped.
| |
− | ===Sound $A3===
| |
− | that makes the lamp post sound correct, so lets fix the normal damage sound. Find:
| |
− | <asm>
| |
− | Hurt_ChkSpikes:
| |
− | move.w #0,$14(a0)
| |
− | move.b #$1A,$1C(a0)
| |
− | move.w #$78,$30(a0)
| |
− | move.w #$A3,d0 ; load normal damage sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Hurt_ChkSpikes:
| |
− | move.w #0,$14(a0)
| |
− | move.b #$1A,$1C(a0)
| |
− | move.w #$78,$30(a0)
| |
− | move.w #$35,d0 ; load normal damage sound
| |
− | </asm>
| |
− | ===Sound $A4===
| |
− | seems we have the hurt sound working, but now we fix the skid and stop sound, so find:
| |
− | <asm>
| |
− | move.w #$A4,d0
| |
− | jsr (PlaySound_Special).l ; play stopping sound
| |
− |
| |
− | locret_130E8:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$36,d0
| |
− | jsr (PlaySound_Special).l ; play stopping sound
| |
− |
| |
− | locret_130E8:
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | move.w #$A4,d0
| |
− | jsr (PlaySound_Special).l ; play stopping sound
| |
− |
| |
− | locret_1314E:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$36,d0
| |
− | jsr (PlaySound_Special).l ; play stopping sound
| |
− |
| |
− | locret_1314E:
| |
− | </asm>
| |
− | ===Sound $A5===
| |
− | now sonic skids right, but we need to fix another sound. Find:
| |
− | <asm>
| |
− | move.w #$A5,d0
| |
− | jsr (PlaySound_Special).l ; play explosion sound
| |
− |
| |
− | Obj24_Animate: ; XREF: Obj24_Index
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$67,d0
| |
− | jsr (PlaySound_Special).l ; play explosion sound
| |
− |
| |
− | Obj24_Animate: ; XREF: Obj24_Index
| |
− | </asm>
| |
− | ===Sound $A6===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$A6,d0 ; load spikes damage sound
| |
− |
| |
− | Hurt_Sound:
| |
− | jsr (PlaySound_Special).l
| |
− | moveq #-1,d0
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$37,d0 ; load spikes damage sound
| |
− |
| |
− | Hurt_Sound:
| |
− | jsr (PlaySound_Special).l
| |
− | moveq #-1,d0
| |
− | rts
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$A3,d0 ; play normal death sound
| |
− | cmpi.b #$36,(a2) ; check if you were killed by spikes
| |
− | bne.s Kill_Sound
| |
− | move.w #$A6,d0 ; play spikes death sound
| |
− |
| |
− | Kill_Sound:
| |
− | jsr (PlaySound_Special).l
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$35,d0 ; play normal death sound
| |
− | cmpi.b #$36,(a2) ; check if you were killed by spikes
| |
− | bne.s Kill_Sound
| |
− | move.w #$37,d0 ; play spikes death sound
| |
− |
| |
− | Kill_Sound:
| |
− | jsr (PlaySound_Special).l
| |
− | </asm>
| |
− | ===Sound $A7===
| |
− | now find:
| |
− | <asm>
| |
− | loc_C294:
| |
− | lea ($FFFFD000).w,a1
| |
− | add.w d0,8(a1)
| |
− | move.w d1,$14(a1)
| |
− | move.w #0,$10(a1)
| |
− | move.w d0,-(sp)
| |
− | move.w #$A7,d0
| |
− | jsr (PlaySound_Special).l ; play pushing sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_C294:
| |
− | lea ($FFFFD000).w,a1
| |
− | add.w d0,8(a1)
| |
− | move.w d1,$14(a1)
| |
− | move.w #0,$10(a1)
| |
− | move.w d0,-(sp)
| |
− | move.w #$69,d0
| |
− | jsr (PlaySound_Special).l ; play pushing sound
| |
− | </asm>
| |
− | ===Sound $A8===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$A8,d0
| |
− | jsr (PlaySound_Special).l ; play Special Stage "GOAL" sound
| |
− |
| |
− | Obj4A_Display:
| |
− | jmp (DisplaySprite).l
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$6A,d0
| |
− | jsr (PlaySound_Special).l ; play Special Stage "GOAL" sound
| |
− |
| |
− | Obj4A_Display:
| |
− | jmp (DisplaySprite).l
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$A8,d0
| |
− | jsr (PlaySound_Special).l ; play special stage GOAL sound
| |
− |
| |
− | locret_1B60C:
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$6A,d0
| |
− | jsr (PlaySound_Special).l ; play special stage GOAL sound
| |
− |
| |
− | locret_1B60C:
| |
− | rts
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | Obj09_GOAL:
| |
− | cmpi.b #$27,d0 ; is the item a "GOAL"?
| |
− | bne.s Obj09_UPblock
| |
− | addq.b #2,$24(a0) ; run routine "Obj09_ExitStage"
| |
− | move.w #$A8,d0 ; change item
| |
− | jsr (PlaySound_Special).l ; play "GOAL" sound
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_GOAL:
| |
− | cmpi.b #$27,d0 ; is the item a "GOAL"?
| |
− | bne.s Obj09_UPblock
| |
− | addq.b #2,$24(a0) ; run routine "Obj09_ExitStage"
| |
− | move.w #$6A,d0 ; change item
| |
− | jsr (PlaySound_Special).l ; play "GOAL" sound
| |
− | rts
| |
− | </asm>
| |
− | ===Sound $A9===
| |
− | now find:
| |
− | <asm>
| |
− | Obj09_UPsnd:
| |
− | move.w #$A9,d0
| |
− | jmp (PlaySound_Special).l ; play up/down sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_UPsnd:
| |
− | move.w #$6B,d0
| |
− | jmp (PlaySound_Special).l ; play up/down sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj09_DOWNsnd:
| |
− | move.w #$A9,d0
| |
− | jmp (PlaySound_Special).l ; play up/down sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_DOWNsnd:
| |
− | move.w #$6B,d0
| |
− | jmp (PlaySound_Special).l ; play up/down sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj09_RevStage:
| |
− | neg.w ($FFFFF782).w ; reverse stage rotation
| |
− | move.w #$A9,d0
| |
− | jmp (PlaySound_Special).l ; play sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_RevStage:
| |
− | neg.w ($FFFFF782).w ; reverse stage rotation
| |
− | move.w #$6B,d0
| |
− | jmp (PlaySound_Special).l ; play sound
| |
− | </asm>
| |
− | ===Sound $AA===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$AA,d0
| |
− | jmp (PlaySound_Special).l ; play splash sound
| |
− | ; ===========================================================================
| |
− |
| |
− | Obj01_OutWater:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$6C,d0
| |
− | jmp (PlaySound_Special).l ; play splash sound
| |
− | ; ===========================================================================
| |
− |
| |
− | Obj01_OutWater:
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_12E0E:
| |
− | move.w #$AA,d0
| |
− | jmp (PlaySound_Special).l ; play splash sound
| |
− | ; End of function Sonic_Water
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_12E0E:
| |
− | move.w #$57,d0
| |
− | jmp (PlaySound_Special).l ; play splash sound
| |
− | ; End of function Sonic_Water
| |
− | </asm>
| |
− | ===Sound $AB===
| |
− | Sound $AB is not used in Sonic 1, so we will skip it.
| |
− |
| |
− | ===Sound $AC===
| |
− | now we will find:
| |
− | <asm>
| |
− | bne.s locret_1784A
| |
− | tst.b $3E(a0)
| |
− | bne.s Obj3D_ShipFlash
| |
− | move.b #$20,$3E(a0) ; set number of times for ship to flash
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− |
| |
− | Obj3D_ShipFlash:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | bne.s locret_1784A
| |
− | tst.b $3E(a0)
| |
− | bne.s Obj3D_ShipFlash
| |
− | move.b #$20,$3E(a0) ; set number of times for ship to flash
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− |
| |
− | Obj3D_ShipFlash:
| |
− | then we will find:
| |
− | <asm>
| |
− | loc_17F48:
| |
− | tst.b $3D(a0)
| |
− | bne.s loc_17F8E
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_17F92
| |
− | tst.b $20(a0)
| |
− | bne.s locret_17F8C
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_17F70
| |
− | move.b #$20,$3E(a0)
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_17F48:
| |
− | tst.b $3D(a0)
| |
− | bne.s loc_17F8E
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_17F92
| |
− | tst.b $20(a0)
| |
− | bne.s locret_17F8C
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_17F70
| |
− | move.b #$20,$3E(a0)
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_1833E:
| |
− | move.w $38(a0),$C(a0)
| |
− | move.w $30(a0),8(a0)
| |
− | cmpi.b #4,$25(a0)
| |
− | bcc.s locret_18390
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_18392
| |
− | tst.b $20(a0)
| |
− | bne.s locret_18390
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_18374
| |
− | move.b #$28,$3E(a0)
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_1833E:
| |
− | move.w $38(a0),$C(a0)
| |
− | move.w $30(a0),8(a0)
| |
− | cmpi.b #4,$25(a0)
| |
− | bcc.s locret_18390
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_18392
| |
− | tst.b $20(a0)
| |
− | bne.s locret_18390
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_18374
| |
− | move.b #$28,$3E(a0)
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− |
| |
− | then find:
| |
− | <asm>
| |
− | loc_189FE:
| |
− | cmpi.b #6,$25(a0)
| |
− | bcc.s locret_18A44
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_18A46
| |
− | tst.b $20(a0)
| |
− | bne.s locret_18A44
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_18A28
| |
− | move.b #$20,$3E(a0)
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_189FE:
| |
− | cmpi.b #6,$25(a0)
| |
− | bcc.s locret_18A44
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_18A46
| |
− | tst.b $20(a0)
| |
− | bne.s locret_18A44
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_18A28
| |
− | move.b #$20,$3E(a0)
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_19202:
| |
− | move.w 8(a0),d0
| |
− | subi.w #$2C00,d0
| |
− | lsr.w #5,d0
| |
− | move.b d0,$34(a0)
| |
− | cmpi.b #6,$25(a0)
| |
− | bcc.s locret_19256
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_19258
| |
− | tst.b $20(a0)
| |
− | bne.s locret_19256
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_1923A
| |
− | move.b #$20,$3E(a0)
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_19202:
| |
− | move.w 8(a0),d0
| |
− | subi.w #$2C00,d0
| |
− | lsr.w #5,d0
| |
− | move.b d0,$34(a0)
| |
− | cmpi.b #6,$25(a0)
| |
− | bcc.s locret_19256
| |
− | tst.b $22(a0)
| |
− | bmi.s loc_19258
| |
− | tst.b $20(a0)
| |
− | bne.s locret_19256
| |
− | tst.b $3E(a0)
| |
− | bne.s loc_1923A
| |
− | move.b #$20,$3E(a0)
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_19F6A:
| |
− | move.w d0,($FFFFD010).w
| |
− | tst.b $35(a0)
| |
− | bne.s loc_19F88
| |
− | subq.b #1,$21(a0)
| |
− | move.b #$64,$35(a0)
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_19F6A:
| |
− | move.w d0,($FFFFD010).w
| |
− | tst.b $35(a0)
| |
− | bne.s loc_19F88
| |
− | subq.b #1,$21(a0)
| |
− | move.b #$64,$35(a0)
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | loc_1A1D4: ; XREF: off_19E80
| |
− | bset #0,$22(a0)
| |
− | jsr (SpeedToPos).l
| |
− | tst.w $30(a0)
| |
− | bne.s loc_1A1FC
| |
− | tst.b $20(a0)
| |
− | bne.s loc_1A216
| |
− | move.w #$1E,$30(a0)
| |
− | move.w #$AC,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_1A1D4: ; XREF: off_19E80
| |
− | bset #0,$22(a0)
| |
− | jsr (SpeedToPos).l
| |
− | tst.w $30(a0)
| |
− | bne.s loc_1A1FC
| |
− | tst.b $20(a0)
| |
− | bne.s loc_1A216
| |
− | move.w #$1E,$30(a0)
| |
− | move.w #$6E,d0
| |
− | jsr (PlaySound_Special).l ; play boss damage sound
| |
− | </asm>
| |
− | ===Sound $AD===
| |
− | lets fix the air bubble sound, so locate:
| |
− | <asm>
| |
− | bsr.w ResumeMusic ; cancel countdown music
| |
− | move.w #$AD,d0
| |
− | jsr (PlaySound_Special).l ; play collecting bubble sound
| |
− | lea ($FFFFD000).w,a1
| |
− | </asm>
| |
− | should not be very hard to do, it is part of object 64's wobble routine, and there is a single line it int to change so that it is like this:
| |
− | <asm>
| |
− | bsr.w ResumeMusic ; cancel countdown music
| |
− | move.w #$38,d0
| |
− | jsr (PlaySound_Special).l ; play collecting bubble sound
| |
− | lea ($FFFFD000).w,a1
| |
− | </asm>
| |
− | I used that same sound in a monitor that is in a hack that will enter the 2011 hacking contest this year thanks to the early notice.
| |
− |
| |
− | ===Sound $AE===
| |
− | now find:
| |
− | <asm>
| |
− | Obj14_PlaySnd:
| |
− | move.w #$AE,d0
| |
− | jsr (PlaySound_Special).l ; play lava ball sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj14_PlaySnd:
| |
− | move.w #$70,d0
| |
− | jsr (PlaySound_Special).l ; play lava ball sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj62_Sound:
| |
− | move.w #$AE,d0
| |
− | jsr (PlaySound_Special).l ; play lava ball sound
| |
− | </asm>
| |
− | then change it to:
| |
− | <asm>
| |
− | Obj62_Sound:
| |
− | move.w #$70,d0
| |
− | jsr (PlaySound_Special).l ; play lava ball sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_1870A:
| |
− | move.b #$1E,$29(a0)
| |
− | move.w #$AE,d0
| |
− | jsr (PlaySound_Special).l ; play lava sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_1870A:
| |
− | move.b #$1E,$29(a0)
| |
− | move.w #$70,d0
| |
− | jsr (PlaySound_Special).l ; play lava sound
| |
− | </asm>
| |
− | ===Sound $AF===
| |
− | now find:
| |
− | <asm>
| |
− | Obj2E_ChkShield:
| |
− | cmpi.b #4,d0 ; does monitor contain a shield?
| |
− | bne.s Obj2E_ChkInvinc
| |
− | move.b #1,($FFFFFE2C).w ; give Sonic a shield
| |
− | move.b #$38,($FFFFD180).w ; load shield object ($38)
| |
− | move.w #$AF,d0
| |
− | jmp (PlaySound).l ; play shield sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj2E_ChkShield:
| |
− | cmpi.b #4,d0 ; does monitor contain a shield?
| |
− | bne.s Obj2E_ChkInvinc
| |
− | move.b #1,($FFFFFE2C).w ; give Sonic a shield
| |
− | move.b #$38,($FFFFD180).w ; load shield object ($38)
| |
− | move.w #$71,d0
| |
− | jmp (PlaySound).l ; play shield sound
| |
− | </asm>
| |
− | ===Sound $B0===
| |
− | now find:
| |
− | <asm>
| |
− | loc_15A46:
| |
− | tst.b 1(a0)
| |
− | bpl.s locret_15A60
| |
− | move.w ($FFFFFE04).w,d0
| |
− | andi.w #$F,d0
| |
− | bne.s locret_15A60
| |
− | move.w #$B0,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_15A46:
| |
− | tst.b 1(a0)
| |
− | bpl.s locret_15A60
| |
− | move.w ($FFFFFE04).w,d0
| |
− | andi.w #$F,d0
| |
− | bne.s locret_15A60
| |
− | move.w #$D8,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | loc_15A96:
| |
− | tst.b 1(a0)
| |
− | bpl.s locret_15AB0
| |
− | move.b ($FFFFFE64).w,d0
| |
− | cmpi.b #$18,d0
| |
− | bne.s locret_15AB0
| |
− | move.w #$B0,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_15A96:
| |
− | tst.b 1(a0)
| |
− | bpl.s locret_15AB0
| |
− | move.b ($FFFFFE64).w,d0
| |
− | cmpi.b #$18,d0
| |
− | bne.s locret_15AB0
| |
− | move.w #$D8,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B0,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− |
| |
− | loc_15B02:
| |
− | addq.l #4,sp
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$D8,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− |
| |
− | loc_15B02:
| |
− | addq.l #4,sp
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B0,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− |
| |
− | loc_15B74:
| |
− | addq.l #4,sp
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$D8,d0
| |
− | jsr (PlaySound_Special).l ; play saw sound
| |
− |
| |
− | loc_15B74:
| |
− | addq.l #4,sp
| |
− | </asm>
| |
− | ===Sound $B1===
| |
− | the next sound is a little different. Sonic1 uses the same sound effect for both the shocker orb thingies and the balls of lightning in the final boss, but the sonic3 driver has a couple of sound effects that I see fitting better. shocker orbs will use the sound used for a certain badnik in carnival night zone because it sounds better in my opinion, while the balls of lightning from final boss will use the sound used for knux being shocked in hidden palace zone. This is how sonic 3d blast / flickies island used similar sound effects, so we will find:
| |
− | <asm>
| |
− | Obj6E_Shock: ; XREF: Obj6E_Index
| |
− | move.w ($FFFFFE04).w,d0
| |
− | and.w $34(a0),d0
| |
− | bne.s Obj6E_Animate
| |
− | move.b #1,$1C(a0) ; run "shocking" animation
| |
− | tst.b 1(a0)
| |
− | bpl.s Obj6E_Animate
| |
− | move.w #$B1,d0
| |
− | jsr (PlaySound_Special).l ; play electricity sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj6E_Shock: ; XREF: Obj6E_Index
| |
− | move.w ($FFFFFE04).w,d0
| |
− | and.w $34(a0),d0
| |
− | bne.s Obj6E_Animate
| |
− | move.b #1,$1C(a0) ; run "shocking" animation
| |
− | tst.b 1(a0)
| |
− | bpl.s Obj6E_Animate
| |
− | move.w #$79,d0
| |
− | jsr (PlaySound_Special).l ; play cnz shock and teleport sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_1A020:
| |
− | move.w #$B1,d0
| |
− | jmp (PlaySound_Special).l ; play electricity sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_1A020:
| |
− | move.w #$78,d0
| |
− | jmp (PlaySound_Special).l ; play shock knux sound
| |
− | </asm>
| |
− | ===Sound $B2===
| |
− | the next sound is a lot more like the others, it is the drowning sound. We will locate:
| |
− | <asm>
| |
− | Obj0A_ReduceAir:
| |
− | subq.w #1,($FFFFFE14).w ; subtract 1 from air remaining
| |
− | bcc.w Obj0A_GoMakeItem ; if air is above 0, branch
| |
− | bsr.w ResumeMusic
| |
− | move.b #$81,($FFFFF7C8).w ; lock controls
| |
− | move.w #$B2,d0
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj0A_ReduceAir:
| |
− | subq.w #1,($FFFFFE14).w ; subtract 1 from air remaining
| |
− | bcc.w Obj0A_GoMakeItem ; if air is above 0, branch
| |
− | bsr.w ResumeMusic
| |
− | move.b #$81,($FFFFF7C8).w ; lock controls
| |
− | move.w #$3B,d0
| |
− | </asm>
| |
− |
| |
− | ===Sound $B3===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B3,d0
| |
− | jsr (PlaySound_Special).l ; play flame sound
| |
− |
| |
− | loc_E57A:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$48,d0
| |
− | jsr (PlaySound_Special).l ; play flame sound
| |
− |
| |
− | loc_E57A:
| |
− | </asm>
| |
− | ===Sound $B4===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B4,d0
| |
− | jsr (PlaySound_Special).l ; play bumper sound
| |
− | lea ($FFFFFC00).w,a2
| |
− | moveq #0,d0
| |
− | move.b $23(a0),d0
| |
− | beq.s Obj47_Score
| |
− | cmpi.b #$8A,2(a2,d0.w) ; has bumper been hit $8A times?
| |
− | bcc.s Obj47_Display ; if yes, Sonic gets no points
| |
− | addq.b #1,2(a2,d0.w)
| |
− |
| |
− | Obj47_Score:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$AA,d0
| |
− | jsr (PlaySound_Special).l ; play bumper sound
| |
− | lea ($FFFFFC00).w,a2
| |
− | moveq #0,d0
| |
− | move.b $23(a0),d0
| |
− | beq.s Obj47_Score
| |
− | cmpi.b #$8A,2(a2,d0.w) ; has bumper been hit $8A times?
| |
− | bcc.s Obj47_Display ; if yes, Sonic gets no points
| |
− | addq.b #1,2(a2,d0.w)
| |
− |
| |
− | Obj47_Score:
| |
− | </asm>
| |
− | and find:
| |
− | <asm>
| |
− | Obj09_BumpSnd:
| |
− | move.w #$B4,d0
| |
− | jmp (PlaySound_Special).l ; play bumper sound
| |
− | ; ===========================================================================
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_BumpSnd:
| |
− | move.w #$AA,d0
| |
− | jmp (PlaySound_Special).l ; play bumper sound
| |
− | ; ===========================================================================
| |
− | </asm>
| |
− | ===Sound $B5===
| |
− | now find:
| |
− | <asm>
| |
− | Title_PlayRing:
| |
− | move.b #1,(a0,d1.w) ; activate cheat
| |
− | move.b #$B5,d0 ; play ring sound when code is entered
| |
− | bsr.w PlaySound_Special
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Title_PlayRing:
| |
− | move.b #1,(a0,d1.w) ; activate cheat
| |
− | move.b #$33,d0 ; play ring sound when code is entered
| |
− | bsr.w PlaySound_Special
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | CollectRing: ; XREF: Obj25_Collect
| |
− | addq.w #1,($FFFFFE20).w ; add 1 to rings
| |
− | ori.b #1,($FFFFFE1D).w ; update the rings counter
| |
− | move.w #$B5,d0 ; play ring sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | CollectRing: ; XREF: Obj25_Collect
| |
− | addq.w #1,($FFFFFE20).w ; add 1 to rings
| |
− | ori.b #1,($FFFFFE1D).w ; update the rings counter
| |
− | move.w #$33,d0 ; play ring sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj2E_RingSound:
| |
− | move.w #$B5,d0
| |
− | jmp (PlaySound).l ; play ring sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj2E_RingSound:
| |
− | move.w #$33,d0
| |
− | jmp (PlaySound).l ; play ring sound
| |
− | </asm>
| |
− | ===Sound $B6===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B6,d0
| |
− | jsr (PlaySound_Special).l ; play "spikes moving" sound
| |
− | bra.s locret_CFE6
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_CFA4:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$52,d0
| |
− | jsr (PlaySound_Special).l ; play "spikes moving" sound
| |
− | bra.s locret_CFE6
| |
− | ; ===========================================================================
| |
− |
| |
− | loc_CFA4:
| |
− | </asm>
| |
− | ===Sound $B7===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B7,d0
| |
− | bsr.w PlaySound_Special ; play sound $B7 (rumbling)
| |
− |
| |
− | loc_3D54:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$6F,d0
| |
− | bsr.w PlaySound_Special ; play sound $6F (rumbling)
| |
− |
| |
− | loc_3D54:
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B7,d0
| |
− | bsr.w PlaySound_Special ; play rumbling sound
| |
− |
| |
− | loc_6F28:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$6F,d0
| |
− | bsr.w PlaySound_Special ; play rumbling sound
| |
− |
| |
− | loc_6F28:
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$B7,d0
| |
− | jsr (PlaySound_Special).l ; play rumbling sound
| |
− |
| |
− | loc_19F10:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$6F,d0
| |
− | jsr (PlaySound_Special).l ; play rumbling sound
| |
− |
| |
− | loc_19F10:
| |
− | </asm>
| |
− | ===Sound $B8===
| |
− | sound $B8 is not used in sonic1, so we will skip it.
| |
− |
| |
− | ===Sound $B9===
| |
− | now find:
| |
− | <asm>
| |
− | loc_84F2:
| |
− | bsr.w DisplaySprite
| |
− | move.w #$B9,d0
| |
− | jmp (PlaySound_Special).l ; play collapsing sound
| |
− | </asm>
| |
− | and we change it to:
| |
− | <asm>
| |
− | loc_84F2:
| |
− | bsr.w DisplaySprite
| |
− | move.w #$59,d0
| |
− | jmp (PlaySound_Special).l ; play collapsing sound
| |
− | </asm>
| |
− | ===Sound $BA===
| |
− | '''note: the breaking and collapsing sounds in sonic3 are the same.'''<br>
| |
− | now we will find:
| |
− | <asm>
| |
− | Obj09_GlassSnd:
| |
− | move.w #$BA,d0
| |
− | jmp (PlaySound_Special).l ; play glass block sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj09_GlassSnd:
| |
− | move.w #$B5,d0
| |
− | jmp (PlaySound_Special).l ; play glass block sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $BB===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$BB,d0
| |
− | jsr (PlaySound_Special).l ; play door sound
| |
− |
| |
− | Obj0C_Solid:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$58,d0
| |
− | jsr (PlaySound_Special).l ; play door sound
| |
− |
| |
− | Obj0C_Solid:
| |
− | </asm>
| |
− |
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$BB,d0
| |
− | jsr (PlaySound_Special).l ; play door sound
| |
− |
| |
− | Obj69_Animate:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$58,d0
| |
− | jsr (PlaySound_Special).l ; play door sound
| |
− |
| |
− | Obj69_Animate:
| |
− | </asm>
| |
− | ===Sound $BC===
| |
− | '''note: this sound effect is used differently in sonic3 but is the closest to what we have here'''<br>
| |
− | now we find:
| |
− | <asm>
| |
− | move.w #$BC,d0
| |
− | jsr (PlaySound_Special).l ; play teleport sound
| |
− |
| |
− | locret_16796:
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$73,d0
| |
− | jsr (PlaySound_Special).l ; play teleport sound
| |
− |
| |
− | locret_16796:
| |
− | rts
| |
− | </asm>
| |
− |
| |
− | ===Sound $BD===
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$BD,d0
| |
− | jsr (PlaySound_Special).l ; play stomping sound
| |
− |
| |
− | Obj31_Restart:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$5F,d0
| |
− | jsr (PlaySound_Special).l ; play stomping sound
| |
− |
| |
− | Obj31_Restart:
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$BD,d0
| |
− | jsr (PlaySound_Special).l ; play stomping sound
| |
− |
| |
− | loc_B97C:
| |
− | bra.w Obj31_Restart
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$5F,d0
| |
− | jsr (PlaySound_Special).l ; play stomping sound
| |
− |
| |
− | loc_B97C:
| |
− | bra.w Obj31_Restart
| |
− | </asm>
| |
− | ===Sound $BE===
| |
− | '''note: this stomp sound is very different, though it is a stomping sound, the one from MGZ to be exact'''<br>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$BE,d0
| |
− | jsr (PlaySound_Special).l ; play rolling sound
| |
− | tst.w $14(a0)
| |
− | bne.s locret_133E8
| |
− | move.w #$200,$14(a0)
| |
− |
| |
− | locret_133E8:
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$3C,d0
| |
− | jsr (PlaySound_Special).l ; play rolling sound
| |
− | tst.w $14(a0)
| |
− | bne.s locret_133E8
| |
− | move.w #$200,$14(a0)
| |
− |
| |
− | locret_133E8:
| |
− | rts
| |
− | </asm>
| |
− | now find:
| |
− | <asm>
| |
− | move.w #$BE,d0
| |
− | jsr (PlaySound_Special).l ; play Sonic rolling sound
| |
− |
| |
− | locret_1675C:
| |
− | rts
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$3C,d0
| |
− | jsr (PlaySound_Special).l ; play Sonic rolling sound
| |
− |
| |
− | locret_1675C:
| |
− | rts
| |
− | </asm>
| |
− |
| |
− | ===Sound $BF===
| |
− | This sound should already be fixed if you were following the guide, please refer to special event sounds if it isn't by now.
| |
− |
| |
− | ===Sound $C0===
| |
− | Seems the sonic 3 driver does not have a sound for this, since the bat robot in CNZ (sonic 3) does not sound anywhere close to the MZ (sonic 1) variant, we will use a similar but close sound.<br>
| |
− | lets look at the code:
| |
− | <asm>
| |
− | Obj55_PlaySnd: ; XREF: Obj55_Index2
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$F,d0
| |
− | bne.s loc_101A0
| |
− | move.w #$C0,d0
| |
− | jsr (PlaySound_Special).l ; play flapping sound
| |
− | </asm>
| |
− | And we will do as we have always been doing (I hope you were not just simply copy/pasting in the sound corrections, but changing the sound number in the line above '''jsr (PlaySound_Special).l''' or similar to the value suggested in the "change it to:" part of the tutorial at each step so that you can actually learn something and '''not simply break your hack'''. I have seen a lot of people complaining about their hack being broken with this driver, I assume that the hacker did not check to see if what they did effected their work. i.e. if you have code added to the sonic 1 driver for your hack, it is either obsolete and will be removed, of it it is unrelated to sound, either use another guide, or update your code so that you don't lose it.<p>
| |
− |
| |
− | I use the hivebrain 2005 disassembly with asw, so you may need to apply fixes to make it work with a different disassembly. Expect later, a svn sonic1 version of this tutorial later on. Now that what was said is out of the way, lets change it:
| |
− | <asm>
| |
− | Obj55_PlaySnd: ; XREF: Obj55_Index2
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$F,d0
| |
− | bne.s loc_101A0
| |
− | move.w #$47,d0
| |
− | jsr (PlaySound_Special).l ; play flapping sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $C1===
| |
− | now we will find:
| |
− | <asm>
| |
− | Obj27_Main: ; XREF: Obj27_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj27,4(a0)
| |
− | move.w #$5A0,2(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #0,$20(a0)
| |
− | move.b #$C,$19(a0)
| |
− | move.b #7,$1E(a0) ; set frame duration to 7 frames
| |
− | move.b #0,$1A(a0)
| |
− | move.w #$C1,d0
| |
− | jsr (PlaySound_Special).l ; play breaking enemy sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj27_Main: ; XREF: Obj27_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj27,4(a0)
| |
− | move.w #$5A0,2(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #0,$20(a0)
| |
− | move.b #$C,$19(a0)
| |
− | move.b #7,$1E(a0) ; set frame duration to 7 frames
| |
− | move.b #0,$1A(a0)
| |
− | move.w #$3D,d0
| |
− | jsr (PlaySound_Special).l ; play breaking enemy sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $C2===
| |
− | the warning sound that you hear every so often under water "ding, ding" will be fixed by finding:
| |
− | <asm>
| |
− | Obj0A_WarnSound: ; XREF: Obj0A_Countdown
| |
− | move.w #$C2,d0
| |
− | jsr (PlaySound_Special).l ; play "ding-ding" warning sound
| |
− | </asm>
| |
− | and changing it to:
| |
− | <asm>
| |
− | Obj0A_WarnSound: ; XREF: Obj0A_Countdown
| |
− | move.w #$A9,d0
| |
− | jsr (PlaySound_Special).l ; play "ding-ding" warning sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $C3===
| |
− | now we fix the giant special stage ring sound, what sound to use should be a no brainer if you listen to the sound test in sonic 3, since a new version of the giant rings return in sonic 3, so lets fix it by finding:
| |
− | <asm>
| |
− | Obj4B_PlaySnd:
| |
− | move.w #$C3,d0
| |
− | jsr (PlaySound_Special).l ; play giant ring sound
| |
− | bra.s Obj4B_Animate
| |
− | </asm>
| |
− | and changing it to:
| |
− | <asm>
| |
− | Obj4B_PlaySnd:
| |
− | move.w #$B3,d0
| |
− | jsr (PlaySound_Special).l ; play giant ring sound
| |
− | bra.s Obj4B_Animate
| |
− | </asm>
| |
− |
| |
− | ===Sound $C4===
| |
− | for this one, you can use a sonic 3/s&k/sonic3k exploding sound (monitor/badnik pop), or use the classic, with is $B4, both work in a sonic game and either one could be useful in the hack, it is up to you. For that reason, I will provide two different versions of this step.
| |
− | ====Classic version====
| |
− | still want the old school sound with the sonic 3 driver?<br>
| |
− | find:
| |
− | <asm>
| |
− | Obj3F_Main: ; XREF: Obj3F_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj3F,4(a0)
| |
− | move.w #$5A0,2(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #0,$20(a0)
| |
− | move.b #$C,$19(a0)
| |
− | move.b #7,$1E(a0)
| |
− | move.b #0,$1A(a0)
| |
− | move.w #$C4,d0
| |
− | jmp (PlaySound_Special).l ; play exploding bomb sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj3F_Main: ; XREF: Obj3F_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj3F,4(a0)
| |
− | move.w #$5A0,2(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #0,$20(a0)
| |
− | move.b #$C,$19(a0)
| |
− | move.b #7,$1E(a0)
| |
− | move.b #0,$1A(a0)
| |
− | move.w #$B4,d0
| |
− | jmp (PlaySound_Special).l ; play exploding bomb sound
| |
− | </asm>
| |
− |
| |
− | ====Sonic3/k version (my favorite)====
| |
− | want the new sound?<br>
| |
− | find:
| |
− | <asm>
| |
− | Obj3F_Main: ; XREF: Obj3F_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj3F,4(a0)
| |
− | move.w #$5A0,2(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #0,$20(a0)
| |
− | move.b #$C,$19(a0)
| |
− | move.b #7,$1E(a0)
| |
− | move.b #0,$1A(a0)
| |
− | move.w #$C4,d0
| |
− | jmp (PlaySound_Special).l ; play exploding bomb sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj3F_Main: ; XREF: Obj3F_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj3F,4(a0)
| |
− | move.w #$5A0,2(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #0,$20(a0)
| |
− | move.b #$C,$19(a0)
| |
− | move.b #7,$1E(a0)
| |
− | move.b #0,$1A(a0)
| |
− | move.w #$3D,d0
| |
− | jmp (PlaySound_Special).l ; play monitor destruction sound like sonic3/k
| |
− | </asm>
| |
− | you are probably wondering, why use this sound here? the LRZ (s&k) exploding rock uses it and astareon (sonic2, MtZ) uese it, and besides it is used in the eggman defeat routine and the egg prison destruction routine. the result, the eggman defeat sounds as it does in sonic 3, time to update the eggmobile artwork now if you so choose so that it fits better with this sound improvement.
| |
− |
| |
− | ===Sound $C5===
| |
− | this sound really needs to be fixed badly if the sonic 3 driver is in, it is the same in every single sonic game excluding 8-bit and portable games, even the next-gen games (though it is an enhanced version) and sonic adventure has an improved version even. please fix this one in your hack or it will be way off from normal sonic games.<br>
| |
− | find:
| |
− | <asm>
| |
− | Obj3A_ChkBonus:
| |
− | tst.w d0 ; is there any bonus?
| |
− | bne.s Obj3A_AddBonus ; if yes, branch
| |
− | move.w #$C5,d0
| |
− | jsr (PlaySound_Special).l ; play "ker-ching" sound
| |
− | addq.b #2,$24(a0)
| |
− | cmpi.w #$501,($FFFFFE10).w
| |
− | bne.s Obj3A_SetDelay
| |
− | addq.b #4,$24(a0)
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj3A_ChkBonus:
| |
− | tst.w d0 ; is there any bonus?
| |
− | bne.s Obj3A_AddBonus ; if yes, branch
| |
− | move.w #$B0,d0
| |
− | jsr (PlaySound_Special).l ; play "ker-ching" sound
| |
− | addq.b #2,$24(a0)
| |
− | cmpi.w #$501,($FFFFFE10).w
| |
− | bne.s Obj3A_SetDelay
| |
− | addq.b #4,$24(a0)
| |
− | </asm>
| |
− |
| |
− | then find:
| |
− | <asm>
| |
− | loc_C8C4: ; XREF: Obj7E_RingBonus
| |
− | move.w #$C5,d0
| |
− | jsr (PlaySound_Special).l ; play "ker-ching" sound
| |
− | addq.b #2,$24(a0)
| |
− | move.w #180,$1E(a0) ; set time delay to 3 seconds
| |
− | cmpi.w #50,($FFFFFE20).w ; do you have at least 50 rings?
| |
− | bcs.s locret_C8EA ; if not, branch
| |
− | move.w #60,$1E(a0) ; set time delay to 1 second
| |
− | addq.b #4,$24(a0) ; goto "Obj7E_Continue" routine
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_C8C4: ; XREF: Obj7E_RingBonus
| |
− | move.w #$B0,d0
| |
− | jsr (PlaySound_Special).l ; play "ker-ching" sound
| |
− | addq.b #2,$24(a0)
| |
− | move.w #180,$1E(a0) ; set time delay to 3 seconds
| |
− | cmpi.w #50,($FFFFFE20).w ; do you have at least 50 rings?
| |
− | bcs.s locret_C8EA ; if not, branch
| |
− | move.w #60,$1E(a0) ; set time delay to 1 second
| |
− | addq.b #4,$24(a0) ; goto "Obj7E_Continue" routine
| |
− | </asm>
| |
− | ===Sound $C6===
| |
− | fixing this sound will make sonic's ring loss sound right, so locate:
| |
− | <asm>
| |
− | Obj37_ResetCounter: ; XREF: Obj37_Loop
| |
− | move.w #0,($FFFFFE20).w ; reset number of rings to zero
| |
− | move.b #$80,($FFFFFE1D).w ; update ring counter
| |
− | move.b #0,($FFFFFE1B).w
| |
− | move.w #$C6,d0
| |
− | jsr (PlaySound_Special).l ; play ring loss sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj37_ResetCounter: ; XREF: Obj37_Loop
| |
− | move.w #0,($FFFFFE20).w ; reset number of rings to zero
| |
− | move.b #$80,($FFFFFE1D).w ; update ring counter
| |
− | move.b #0,($FFFFFE1B).w
| |
− | move.w #$B9,d0
| |
− | jsr (PlaySound_Special).l ; play ring loss sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $C7===
| |
− | remember the giant weight with spikes under it that goes up and crashes down in MZ? we are going to fix the sound now.<br>
| |
− | find:
| |
− | <asm>
| |
− | loc_B872:
| |
− | tst.w $32(a0)
| |
− | beq.s loc_B8A0
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$F,d0
| |
− | bne.s loc_B892
| |
− | tst.b 1(a0)
| |
− | bpl.s loc_B892
| |
− | move.w #$C7,d0
| |
− | jsr (PlaySound_Special).l ; play rising chain sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_B872:
| |
− | tst.w $32(a0)
| |
− | beq.s loc_B8A0
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$F,d0
| |
− | bne.s loc_B892
| |
− | tst.b 1(a0)
| |
− | bpl.s loc_B892
| |
− | move.w #$D2,d0
| |
− | jsr (PlaySound_Special).l ; play rising chain sound
| |
− | </asm>
| |
− | and then find:
| |
− | <asm>
| |
− | loc_B902:
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$F,d0
| |
− | bne.s loc_B91C
| |
− | tst.b 1(a0)
| |
− | bpl.s loc_B91C
| |
− | move.w #$C7,d0
| |
− | jsr (PlaySound_Special).l ; play rising chain sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_B902:
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$F,d0
| |
− | bne.s loc_B91C
| |
− | tst.b 1(a0)
| |
− | bpl.s loc_B91C
| |
− | move.w #$D2,d0
| |
− | jsr (PlaySound_Special).l ; play rising chain sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $C8===
| |
− | Once again sonic3 has 2 sounds for this one (one used in the spiked weight in LRZ, the other from the lava waterfalls also in LRZ) we will put them both where they belong)<br>
| |
− | first we will make the MZ lava spouts use the lava waterfall sound (yes, that one):
| |
− | <asm>
| |
− | Obj4D_PlaySnd:
| |
− | move.w #$C8,d0
| |
− | jsr (PlaySound_Special).l ; play flame sound
| |
− | </asm>
| |
− | and yes change the code to:
| |
− | <asm>
| |
− | Obj4D_PlaySnd:
| |
− | move.w #$D5,d0
| |
− | jsr (PlaySound_Special).l ; play flame sound
| |
− | </asm>
| |
− | now for the other sound:
| |
− | <asm>
| |
− | Obj35_Main: ; XREF: Obj35_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj14,4(a0)
| |
− | move.w #$345,2(a0)
| |
− | move.w 8(a0),$2A(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #$8B,$20(a0)
| |
− | move.b #8,$19(a0)
| |
− | move.w #$C8,d0
| |
− | jsr (PlaySound_Special).l ; play flame sound
| |
− | tst.b $28(a0)
| |
− | beq.s loc_B238
| |
− | addq.b #2,$24(a0)
| |
− | bra.w Obj35_Move
| |
− | </asm>
| |
− | and it should be changed to:
| |
− | <asm>
| |
− | Obj35_Main: ; XREF: Obj35_Index
| |
− | addq.b #2,$24(a0)
| |
− | move.l #Map_obj14,4(a0)
| |
− | move.w #$345,2(a0)
| |
− | move.w 8(a0),$2A(a0)
| |
− | move.b #4,1(a0)
| |
− | move.b #1,$18(a0)
| |
− | move.b #$8B,$20(a0)
| |
− | move.b #8,$19(a0)
| |
− | move.w #$7F,d0
| |
− | jsr (PlaySound_Special).l ; play flame sound
| |
− | tst.b $28(a0)
| |
− | beq.s loc_B238
| |
− | addq.b #2,$24(a0)
| |
− | bra.w Obj35_Move
| |
− | </asm>
| |
− |
| |
− | ===Sound $C9===
| |
− | the hidden points sound is no longer in sonic 3, but the egg logger mini boss from MHZ has a similar sound that is used, so it probably will have to work until you replace a sound effect.<br>
| |
− | find:
| |
− | <asm>
| |
− | move.w #$C9,d0
| |
− | jsr (PlaySound_Special).l ; play bonus sound
| |
− | moveq #0,d0
| |
− | move.b $28(a0),d0
| |
− | add.w d0,d0
| |
− | move.w Obj7D_Points(pc,d0.w),d0 ; load bonus points array
| |
− | jsr (AddPoints).l
| |
− |
| |
− | Obj7D_ChkDel:
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | move.w #$8C,d0
| |
− | jsr (PlaySound_Special).l ; play bonus sound
| |
− | moveq #0,d0
| |
− | move.b $28(a0),d0
| |
− | add.w d0,d0
| |
− | move.w Obj7D_Points(pc,d0.w),d0 ; load bonus points array
| |
− | jsr (AddPoints).l
| |
− |
| |
− | Obj7D_ChkDel:
| |
− | </asm>
| |
− |
| |
− | ===Sound $CA===
| |
− | This Sound should already be fixed by now (it was fixed with special event sounds)
| |
− |
| |
− | ===Sound $CB===
| |
− | remember that I said sonic3 has only 1 version of this sound above?<br>
| |
− | the crumbling sound from above and smashing sound in sonic3 are identical, so find:
| |
− | <asm>
| |
− | loc_197D4:
| |
− | move.w #$CB,d0
| |
− | jmp (PlaySound_Special).l ; play smashing sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_197D4:
| |
− | move.w #$59,d0
| |
− | jmp (PlaySound_Special).l ; play smashing sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_197D4:
| |
− | move.w #$CB,d0
| |
− | jmp (PlaySound_Special).l ; play smashing sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_197D4:
| |
− | move.w #$59,d0
| |
− | jmp (PlaySound_Special).l ; play smashing sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj83_BreakSnd:
| |
− | move.w #$CB,d0
| |
− | jsr (PlaySound_Special).l ; play smashing sound
| |
− | jmp (DisplaySprite).l
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj83_BreakSnd:
| |
− | move.w #$59,d0
| |
− | jsr (PlaySound_Special).l ; play smashing sound
| |
− | jmp (DisplaySprite).l
| |
− | </asm>
| |
− |
| |
− | ===Sound $CC===
| |
− | the spring sound now, find:
| |
− | <asm>
| |
− | Obj41_BounceUp: ; XREF: Obj41_Up
| |
− | addq.b #2,$24(a0)
| |
− | addq.w #8,$C(a1)
| |
− | move.w $30(a0),$12(a1) ; move Sonic upwards
| |
− | bset #1,$22(a1)
| |
− | bclr #3,$22(a1)
| |
− | move.b #$10,$1C(a1) ; use "bouncing" animation
| |
− | move.b #2,$24(a1)
| |
− | bclr #3,$22(a0)
| |
− | clr.b $25(a0)
| |
− | move.w #$CC,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj41_BounceUp: ; XREF: Obj41_Up
| |
− | addq.b #2,$24(a0)
| |
− | addq.w #8,$C(a1)
| |
− | move.w $30(a0),$12(a1) ; move Sonic upwards
| |
− | bset #1,$22(a1)
| |
− | bclr #3,$22(a1)
| |
− | move.b #$10,$1C(a1) ; use "bouncing" animation
| |
− | move.b #2,$24(a1)
| |
− | bclr #3,$22(a0)
| |
− | clr.b $25(a0)
| |
− | move.w #$B1,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | loc_DC56:
| |
− | bclr #5,$22(a0)
| |
− | bclr #5,$22(a1)
| |
− | move.w #$CC,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_DC56:
| |
− | bclr #5,$22(a0)
| |
− | bclr #5,$22(a1)
| |
− | move.w #$B1,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj41_BounceDwn: ; XREF: Obj41_Dwn
| |
− | addq.b #2,$24(a0)
| |
− | subq.w #8,$C(a1)
| |
− | move.w $30(a0),$12(a1)
| |
− | neg.w $12(a1) ; move Sonic downwards
| |
− | bset #1,$22(a1)
| |
− | bclr #3,$22(a1)
| |
− | move.b #2,$24(a1)
| |
− | bclr #3,$22(a0)
| |
− | clr.b $25(a0)
| |
− | move.w #$CC,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj41_BounceDwn: ; XREF: Obj41_Dwn
| |
− | addq.b #2,$24(a0)
| |
− | subq.w #8,$C(a1)
| |
− | move.w $30(a0),$12(a1)
| |
− | neg.w $12(a1) ; move Sonic downwards
| |
− | bset #1,$22(a1)
| |
− | bclr #3,$22(a1)
| |
− | move.b #2,$24(a1)
| |
− | bclr #3,$22(a0)
| |
− | clr.b $25(a0)
| |
− | move.w #$B1,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | then we will use the MHZ version of this one because it makes sense:
| |
− | <asm>
| |
− | Obj5E_Spring:
| |
− | move.b d1,$3A(a1)
| |
− | move.b d1,$3A(a0)
| |
− | cmp.b $1A(a1),d1
| |
− | beq.s loc_1192C
| |
− | bclr #3,$22(a1)
| |
− | beq.s loc_1192C
| |
− | clr.b $25(a1)
| |
− | move.b #2,$24(a1)
| |
− | lea ($FFFFD000).w,a2
| |
− | move.w $12(a0),$12(a2)
| |
− | neg.w $12(a2)
| |
− | bset #1,$22(a2)
| |
− | bclr #3,$22(a2)
| |
− | clr.b $3C(a2)
| |
− | move.b #$10,$1C(a2) ; change Sonic"s animation to "spring" ($10)
| |
− | move.b #2,$24(a2)
| |
− | move.w #$CC,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− | which gets changed to:
| |
− | <asm>
| |
− | Obj5E_Spring:
| |
− | move.b d1,$3A(a1)
| |
− | move.b d1,$3A(a0)
| |
− | cmp.b $1A(a1),d1
| |
− | beq.s loc_1192C
| |
− | bclr #3,$22(a1)
| |
− | beq.s loc_1192C
| |
− | clr.b $25(a1)
| |
− | move.b #2,$24(a1)
| |
− | lea ($FFFFD000).w,a2
| |
− | move.w $12(a0),$12(a2)
| |
− | neg.w $12(a2)
| |
− | bset #1,$22(a2)
| |
− | bclr #3,$22(a2)
| |
− | clr.b $3C(a2)
| |
− | move.b #$10,$1C(a2) ; change Sonic"s animation to "spring" ($10)
| |
− | move.b #2,$24(a2)
| |
− | move.w #$AE,d0
| |
− | jsr (PlaySound_Special).l ; play spring sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $CD===
| |
− | find:
| |
− | <asm>
| |
− | loc_BDC8:
| |
− | tst.b (a3)
| |
− | bne.s loc_BDD6
| |
− | move.w #$CD,d0
| |
− | jsr (PlaySound_Special).l ; play switch sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_BDC8:
| |
− | tst.b (a3)
| |
− | bne.s loc_BDD6
| |
− | move.w #$5B,d0
| |
− | jsr (PlaySound_Special).l ; play switch sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj3A_AddBonus: ; XREF: Obj3A_ChkBonus
| |
− | jsr (AddPoints).l
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #3,d0
| |
− | bne.s locret_C692
| |
− | move.w #$CD,d0
| |
− | jmp (PlaySound_Special).l ; play "blip" sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj3A_AddBonus: ; XREF: Obj3A_ChkBonus
| |
− | jsr (AddPoints).l
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #3,d0
| |
− | bne.s locret_C692
| |
− | move.w #$5B,d0
| |
− | jmp (PlaySound_Special).l ; play "blip" sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj7E_RingBonus: ; XREF: Obj7E_Index
| |
− | bsr.w DisplaySprite
| |
− | move.b #1,($FFFFF7D6).w ; set ring bonus update flag
| |
− | tst.w ($FFFFF7D4).w ; is ring bonus = zero?
| |
− | beq.s loc_C8C4 ; if yes, branch
| |
− | subi.w #10,($FFFFF7D4).w ; subtract 10 from ring bonus
| |
− | moveq #10,d0 ; add 10 to score
| |
− | jsr (AddPoints).l
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #3,d0
| |
− | bne.s locret_C8EA
| |
− | move.w #$CD,d0
| |
− | jmp (PlaySound_Special).l ; play "blip" sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj7E_RingBonus: ; XREF: Obj7E_Index
| |
− | bsr.w DisplaySprite
| |
− | move.b #1,($FFFFF7D6).w ; set ring bonus update flag
| |
− | tst.w ($FFFFF7D4).w ; is ring bonus = zero?
| |
− | beq.s loc_C8C4 ; if yes, branch
| |
− | subi.w #10,($FFFFF7D4).w ; subtract 10 from ring bonus
| |
− | moveq #10,d0 ; add 10 to score
| |
− | jsr (AddPoints).l
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #3,d0
| |
− | bne.s locret_C8EA
| |
− | move.w #$5B,d0
| |
− | jmp (PlaySound_Special).l ; play "blip" sound
| |
− | </asm>
| |
− |
| |
− | ===Sound $CE===
| |
− | this sound's usage was defined in the old 68k driver and fixes itself.
| |
− |
| |
− | ===Sound $CF===
| |
− | the old sound for the end sign is no longer in sonic 3, but a similar (unused) sound does exist, so find:
| |
− | <asm>
| |
− | Obj0D_Touch: ; XREF: Obj0D_Index
| |
− | move.w ($FFFFD008).w,d0
| |
− | sub.w 8(a0),d0
| |
− | bcs.s locret_EBBA
| |
− | cmpi.w #$20,d0 ; is Sonic within $20 pixels of the signpost?
| |
− | bcc.s locret_EBBA ; if not, branch
| |
− | move.w #$CF,d0
| |
− | jsr (PlaySound).l ; play signpost sound
| |
− | clr.b ($FFFFFE1E).w ; stop time counter
| |
− | move.w ($FFFFF72A).w,($FFFFF728).w ; lock screen position
| |
− | addq.b #2,$24(a0)
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj0D_Touch: ; XREF: Obj0D_Index
| |
− | move.w ($FFFFD008).w,d0
| |
− | sub.w 8(a0),d0
| |
− | bcs.s locret_EBBA
| |
− | cmpi.w #$20,d0 ; is Sonic within $20 pixels of the signpost?
| |
− | bcc.s locret_EBBA ; if not, branch
| |
− | move.w #$5E,d0
| |
− | jsr (PlaySound).l ; play signpost sound
| |
− | clr.b ($FFFFFE1E).w ; stop time counter
| |
− | move.w ($FFFFF72A).w,($FFFFF728).w ; lock screen position
| |
− | addq.b #2,$24(a0)
| |
− | </asm>
| |
− |
| |
− | ===Sound $D0===
| |
− | this one is the hard one, sonic1's timing of the waterfalls is not right, so the water sound will have pauses in it. I will look into it and update the code when I get it working right.<br>
| |
− | for now find:
| |
− | <asm>
| |
− | loc_3F9A:
| |
− | clr.b $15(a1)
| |
− | move.b #$1B,$1C(a1) ; use Sonic"s "sliding" animation
| |
− | move.b #1,($FFFFF7CA).w ; lock controls (except jumping)
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$1F,d0
| |
− | bne.s locret_3FBE
| |
− | move.w #$D0,d0
| |
− | jsr (PlaySound_Special).l ; play water sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | loc_3F9A:
| |
− | clr.b $15(a1)
| |
− | move.b #$1B,$1C(a1) ; use Sonic"s "sliding" animation
| |
− | move.b #1,($FFFFF7CA).w ; lock controls (except jumping)
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$1F,d0
| |
− | bne.s locret_3FBE
| |
− | move.w #$DB,d0
| |
− | jsr (PlaySound_Special).l ; play water sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | Obj49_PlaySnd: ; XREF: Obj49_Index
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$3F,d0
| |
− | bne.s Obj49_ChkDel
| |
− | move.w #$D0,d0
| |
− | jsr (PlaySound_Special).l ; play waterfall sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | Obj49_PlaySnd: ; XREF: Obj49_Index
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$3F,d0
| |
− | bne.s Obj49_ChkDel
| |
− | move.w #$DB,d0
| |
− | jsr (PlaySound_Special).l ; play waterfall sound
| |
− | </asm>
| |
− | then find:
| |
− | <asm>
| |
− | LZWind_Loop:
| |
− | move.w 8(a1),d0
| |
− | cmp.w (a2),d0
| |
− | bcs.w loc_3EF4
| |
− | cmp.w 4(a2),d0
| |
− | bcc.w loc_3EF4
| |
− | move.w $C(a1),d2
| |
− | cmp.w 2(a2),d2
| |
− | bcs.s loc_3EF4
| |
− | cmp.w 6(a2),d2
| |
− | bcc.s loc_3EF4
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$3F,d0
| |
− | bne.s loc_3E90
| |
− | move.w #$D0,d0
| |
− | jsr (PlaySound_Special).l ; play rushing water sound
| |
− | </asm>
| |
− | and change it to:
| |
− | <asm>
| |
− | LZWind_Loop:
| |
− | move.w 8(a1),d0
| |
− | cmp.w (a2),d0
| |
− | bcs.w loc_3EF4
| |
− | cmp.w 4(a2),d0
| |
− | bcc.w loc_3EF4
| |
− | move.w $C(a1),d2
| |
− | cmp.w 2(a2),d2
| |
− | bcs.s loc_3EF4
| |
− | cmp.w 6(a2),d2
| |
− | bcc.s loc_3EF4
| |
− | move.b ($FFFFFE0F).w,d0
| |
− | andi.b #$3F,d0
| |
− | bne.s loc_3E90
| |
− | move.w #$DB,d0
| |
− | jsr (PlaySound_Special).l ; play rushing water sound
| |
− | </asm>
| |
− |
| |
− | Now all that is left, is fixing the level select so that it plays the data select music upon entry and allows selection of sounds $00 - $FF.
| |
− |
| |
− | ==Utilizing new sounds in existing badniks==
| |
− | ==Fixing the sound test on the level select==
| |
− |
| |
− | ===music upon entry of level select===
| |
− |
| |
− | ===fixing the sound test===
| |
− |
| |
− | [[Category:SCHG How-tos|{{PAGENAME}}]]
| |