Init'd a ton of sound vars. Rewind backups more sound vars. Netplay fixes round 4.

This commit is contained in:
n-a-c-h
2005-02-07 17:00:57 +00:00
parent d796b6c999
commit 9f3c9f6b97
5 changed files with 45 additions and 28 deletions

View File

@@ -2038,23 +2038,23 @@ NoisePtr resd 1
; used only in dspproc.asm
SECTION .data
ALIGN32
Filter dd 0,0,240,0,488,-240,460,-208
SECTION .bss
prev0 resd 1 ; previous value 1
prev1 resd 1 ; previous value 2
nextsamp resd 1 ; next sample
filter0 resd 1 ; filter 0
filter1 resd 1 ; filter 1
bshift resd 1
sampleleft resd 1 ; 8 bytes/sample
prev0 dd 0 ; previous value 1
prev1 dd 0 ; previous value 2
nextsamp dd 0 ; next sample
filter0 dd 0 ; filter 0
filter1 dd 0 ; filter 1
bshift dd 0
sampleleft dd 0 ; 8 bytes/sample
lastbl resd 1 ; Last block if = 1
loopbl resd 1 ; Loop if = 1
usenoisedata resd 1
lastbl dd 0 ; Last block if = 1
loopbl dd 0 ; Loop if = 1
usenoisedata dd 0
SECTION .data
ALIGN32
VolumeTableD
db 0,3,6,9,12,15,17,18,19,21,22,23,24,24,26,28,30,31,33,35,36,38,40,41,43,45,46,48,49
@@ -2568,11 +2568,6 @@ NEWSYM FIRTAPVal5, resd 1
NEWSYM FIRTAPVal6, resd 1
NEWSYM FIRTAPVal7, resd 1
SECTION .data
ALIGN32
NEWSYM MaxEcho, dd 172
SECTION .bss
NEWSYM CEchoPtr, resd 1
NEWSYM EchoFB, resd 1
@@ -2626,9 +2621,13 @@ NEWSYM Voice5FirstBlock, resb 1
NEWSYM Voice6FirstBlock, resb 1
NEWSYM Voice7FirstBlock, resb 1
marksave2:
SECTION .data
ALIGN32
NEWSYM MaxEcho, dd 172
; |AR Time 0 to 1|DR|Time 1 to SL|SL|Ratio| SR Time 1to 1/10|
;---------------------------------------------------------------------
; |0 | 4.1 sec | 0| 1.2 sec | 0| 1/8 | 0| INF |10|1.2 sec
@@ -2710,8 +2709,10 @@ NEWSYM AdsrSustLevLoc, db 58,39,27,19,13,8,3,1
dspsave equ marksave-BRRBuffer
dspconvb equ marksave-Voice0Freq
dspsave2 equ marksave2-echoon0
NEWSYM PHdspsave, dd dspsave
NEWSYM PHdspconvb, dd dspconvb
NEWSYM PHdspsave2, dd dspsave2
SECTION .bss
spc700temp resd 2

View File

@@ -60,8 +60,8 @@ static void copy_spc_data(unsigned char **buffer, void (*copy_func)(unsigned cha
{
//SPC stuff, DSP stuff
copy_func(buffer, spcRam, PHspcsave);
copy_func(buffer, BRRBuffer, PHdspsave);
copy_func(buffer, DSPMem, sizeof(DSPMem));
copy_func(buffer, &BRRBuffer, PHdspsave);
copy_func(buffer, &DSPMem, sizeof(DSPMem));
}
static void copy_extra_data(unsigned char **buffer, void (*copy_func)(unsigned char **, void *, size_t))
@@ -97,6 +97,10 @@ static void copy_state_data(unsigned char *buffer, void (*copy_func)(unsigned ch
if (spcon)
{
copy_spc_data(&buffer, copy_func);
if (buffer) //Rewind stuff
{
copy_func(&buffer, &echoon0, PHdspsave2);
}
}
if (C4Enable)

View File

@@ -32,10 +32,10 @@ extern unsigned int soundcycleft, spc700read, timer2upd, xa, PHnum2writesfxreg;
extern unsigned int spcnumread, spchalted, opcd, HIRQCycNext, oamaddr;
extern unsigned int SfxR0, ReadHead, *setaramdata, ramsize, *sram;
extern unsigned int tempesi, tempedi, tempedx, tempebp;
extern unsigned int SPCMultA, PHnum2writespc7110reg;
extern unsigned int SPCMultA, PHnum2writespc7110reg, PHdspsave2;
extern unsigned char sndrot, spcRam[65472];
extern unsigned char DSPMem[256], SA1Status, *SA1RAMArea, DSP1Type, DSP1COp;
extern unsigned char prevoamptr, BRRBuffer[32], *romdata, curcyc;
extern unsigned char prevoamptr, BRRBuffer[32], *romdata, curcyc, echoon0;
extern unsigned char vidmemch4[4096], vidmemch8[4096], vidmemch2[4096];
extern bool C4Enable, SFXEnable, SA1Enable, SPC7110Enable, SETAEnable, spcon, SRAMState;

View File

@@ -131,6 +131,7 @@ EXTSYM SetupSramSize
EXTSYM IntlEHi
EXTSYM CHIPBATT,SFXEnable,C4Enable,SPC7110Enable,RTCEnable,SA1Enable,SDD1Enable,OBCEnable
EXTSYM SETAEnable,ST18Enable,SGBEnable,DSP1Enable,DSP2Enable,DSP3Enable,DSP4Enable,BSEnable
EXTSYM clearvidsound
EXTSYM calculate_state_sizes,InitRewindVars
@@ -1582,12 +1583,9 @@ NEWSYM init65816
mov dword[ram7fa+65528],01010101h
mov dword[ram7fa+65532],01010101h
.notbsx2
xor eax,eax
helpclearmem [vram], 65536
helpclearmem vidmemch2, 4096
helpclearmem vidmemch4, 4096
helpclearmem vidmemch8, 4096
pushad
call clearvidsound
popad
mov dword[wramreadptr],getwram1fff
mov dword[wramwriteptr],setwram1fff
ret

View File

@@ -1334,6 +1334,20 @@ void clearmem2()
clearSPCRAM();
}
extern unsigned char BRRBuffer[32];
extern unsigned char echoon0;
extern unsigned int PHdspsave;
extern unsigned int PHdspsave2;
void clearvidsound()
{
memset(vram, 0, 65536);
memset(vidmemch2, 0, 4096);
memset(vidmemch4, 0, 4096);
memset(vidmemch8, 0, 4096);
memset(&BRRBuffer, 0, PHdspsave);
memset(&echoon0, 0, PHdspsave2);
}
/*