From 56fd75ab36dfd469c84b1506a271a5853fed85fa Mon Sep 17 00:00:00 2001 From: zsknight <> Date: Wed, 27 Jun 2001 20:42:22 +0000 Subject: [PATCH] Emerald Dragon working --- zsnes/src/cpu/dspproc.asm | 19 ++++++++++++++++++- zsnes/src/init.asm | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/zsnes/src/cpu/dspproc.asm b/zsnes/src/cpu/dspproc.asm index f7eb78c6..f732e834 100644 --- a/zsnes/src/cpu/dspproc.asm +++ b/zsnes/src/cpu/dspproc.asm @@ -128,7 +128,7 @@ EXTSYM DSPMem EXTSYM InterSound EXTSYM NoiseData,SoundCompD,Voice0Disable,csounddisable,dssel,spcRamcmp EXTSYM cfgecho,Surround,SoundBufEn -EXTSYM echobuf +EXTSYM echobuf,ENVDisable EXTSYM LowPassFilter EXTSYM UseCubicSpline,NoiseDisTemp @@ -4096,8 +4096,11 @@ WaveIndex times 8 dd 0 mov dword[Voice0IncNumber+%1*4],0 mov byte [Voice0Status+%1],0 mov byte [Voice0State+%1],0 + cmp byte[ENVDisable],1 + je %%noSkipStuff cmp byte[CNetType],20 je %%SkipStuff +%%noSkipStuff mov byte [DSPMem+08h+%1*10h],0 mov byte [DSPMem+09h+%1*10h],0 or byte [DSPMem+7Ch],%3 @@ -4107,8 +4110,11 @@ WaveIndex times 8 dd 0 mov dword[Voice0EnvInc+%1*4],0 mov dword[Voice0IncNumber+%1*4],0 mov byte [Voice0State+%1],0 + cmp byte[ENVDisable],1 + je %%noSkipStuff2 cmp byte[CNetType],20 je %%SkipStuff2 +%%noSkipStuff2 mov byte [DSPMem+08h+%1*10h],0 mov byte [DSPMem+09h+%1*10h],0 or byte [DSPMem+7Ch],%3 @@ -4231,6 +4237,8 @@ WaveIndex times 8 dd 0 ; mov [DSPMem+09h+%1*10h],ah mov al,[Voice0EnvInc+%1*4+2] mov [DSPMem+08h+%1*10h],al + cmp byte[ENVDisable],1 + je %%clearenv cmp byte[CNetType],20 je %%clearenv cmp byte[MovieProcessing],0 @@ -4253,6 +4261,8 @@ WaveIndex times 8 dd 0 ; mov [DSPMem+09h+%1*10h],ah mov al,[Voice0EnvInc+%1*4+2] mov [DSPMem+08h+%1*10h],al + cmp byte[ENVDisable],1 + je %%clearenvsi cmp byte[CNetType],20 je %%clearenvsi cmp byte[MovieProcessing],0 @@ -4275,6 +4285,8 @@ WaveIndex times 8 dd 0 ; mov [DSPMem+09h+%1*10h],ah mov al,[Voice0EnvInc+%1*4+2] mov [DSPMem+08h+%1*10h],al + cmp byte[ENVDisable],1 + je %%clearenvi cmp byte[CNetType],20 je %%clearenvi cmp byte[MovieProcessing],0 @@ -4297,6 +4309,8 @@ WaveIndex times 8 dd 0 ; mov [DSPMem+09h+%1*10h],ah mov al,[Voice0EnvInc+%1*4+2] mov [DSPMem+08h+%1*10h],al + cmp byte[ENVDisable],1 + je %%clearenv2 cmp byte[CNetType],20 je %%clearenv2 cmp byte[MovieProcessing],0 @@ -4525,8 +4539,11 @@ WaveIndex times 8 dd 0 ; mov [Voice0Prev1+%1*4],eax jmp %%Decode1Block %%EndSample + cmp byte[ENVDisable],1 + je %%noSkipStuff4 cmp byte[CNetType],20 je %%SkipStuff4 +%%noSkipStuff4 or byte [DSPMem+7Ch],%3 mov byte [DSPMem+08h+%1*10h],0 %%SkipStuff4 diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index 14f4f247..a6198005 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -1326,6 +1326,7 @@ NEWSYM CacheCheckSkip, db 0 NEWSYM HIRQSkip, db 0 NEWSYM ClearScreenSkip, db 0 NEWSYM hirqmode2, db 0 +NEWSYM ENVDisable, db 0 SECTION .text ; hacks : @@ -1428,6 +1429,18 @@ NEWSYM headerhack mov dword[WindowDisables],0 mov byte[ClearScreenSkip],0 mov byte[hirqmode2],0 + mov byte[ENVDisable],0 + + mov esi,[romdata] + add esi,0FFC0h + cmp dword[esi],'EMER' + jne .notemeralddragon + cmp dword[esi+4],'ALD ' + jne .notemeralddragon + cmp dword[esi+8],'DRAG' + jne .notemeralddragon + mov byte[ENVDisable],1 +.notemeralddragon mov esi,[romdata] add esi,7FC0h @@ -1436,6 +1449,13 @@ NEWSYM headerhack mov byte[hirqmode2],1 .notffmq +; mov byte[cycpb268],145 +; mov byte[cycpb358],147 +; mov byte[cycpbl2],145 +; mov byte[cycpblt2],145 +; mov byte[cycpbl],145 +; mov byte[cycpblt],145 + mov esi,[romdata] add esi,0FFC0h cmp dword[esi],'BUBS'