Ported setnoise to C and cleaned up the source.
This commit is contained in:
104
zsnes/src/ui.asm
104
zsnes/src/ui.asm
@@ -67,45 +67,6 @@ NEWSYM YesMMX, db 'MMX support found and enabled.',13,10,13,10,0
|
|||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
|
||||||
; Set Noise Data
|
|
||||||
;*******************************************************
|
|
||||||
|
|
||||||
NEWSYM setnoise
|
|
||||||
mov edi,NoiseData
|
|
||||||
mov ebx,256
|
|
||||||
mov ecx,128
|
|
||||||
xor esi,esi
|
|
||||||
xor edx,edx
|
|
||||||
.next
|
|
||||||
mov al,[.samplenoise+esi]
|
|
||||||
add al,[.samplenoise+edx]
|
|
||||||
mov [edi],al
|
|
||||||
inc edi
|
|
||||||
inc esi
|
|
||||||
and esi,07Fh
|
|
||||||
dec edx
|
|
||||||
and edx,07Fh
|
|
||||||
dec ecx
|
|
||||||
jnz .next
|
|
||||||
dec edx
|
|
||||||
and edx,07Fh
|
|
||||||
mov ecx,128
|
|
||||||
dec ebx
|
|
||||||
jnz .next
|
|
||||||
ret
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
.samplenoise:
|
|
||||||
db 27,232,234,138,187,246,176,81,25,241,1,127,154,190,195,103,231,165,220,238
|
|
||||||
db 232,189,57,201,123,75,63,143,145,159,13,236,191,142,56,164,222,80,88,13
|
|
||||||
db 148,118,162,212,157,146,176,0,241,88,244,238,51,235,149,50,77,212,186,241
|
|
||||||
db 88,32,23,206,1,24,48,244,248,210,253,77,19,100,83,222,108,68,11,58
|
|
||||||
db 152,161,223,245,4,105,3,82,15,130,171,242,141,2,172,218,152,97,223,157
|
|
||||||
db 93,75,83,238,104,238,131,70,22,252,180,82,110,123,106,133,183,209,48,230
|
|
||||||
db 157,205,27,21,107,63,85,164
|
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Allocate Memory, ebx = size,eax returned = LFB pointer
|
; Allocate Memory, ebx = size,eax returned = LFB pointer
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@@ -256,7 +217,6 @@ NEWSYM spcRamcmp, resb 65536
|
|||||||
NEWSYM VolumeConvTable, resw 32768
|
NEWSYM VolumeConvTable, resw 32768
|
||||||
NEWSYM dspWptr, resd 256
|
NEWSYM dspWptr, resd 256
|
||||||
NEWSYM dspRptr, resd 256
|
NEWSYM dspRptr, resd 256
|
||||||
NEWSYM NoiseData, resb 32768
|
|
||||||
|
|
||||||
; makevid.asm
|
; makevid.asm
|
||||||
|
|
||||||
@@ -271,55 +231,6 @@ LinearAddress resd 1 ; Returned by function
|
|||||||
BlockHandle resd 1 ; Returned by function
|
BlockHandle resd 1 ; Returned by function
|
||||||
ZSNESAddress resd 1 ; Returned by function
|
ZSNESAddress resd 1 ; Returned by function
|
||||||
|
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
;*******************************************************
|
|
||||||
; Allocate Pointer Sets variables with pointer values
|
|
||||||
;*******************************************************
|
|
||||||
|
|
||||||
|
|
||||||
AllocateLDTDescriptor:
|
|
||||||
%ifndef __UNIXSDL__
|
|
||||||
;Get ZSNES Base
|
|
||||||
mov ax,ds
|
|
||||||
mov bx,ax
|
|
||||||
mov eax,0006h
|
|
||||||
int 31h
|
|
||||||
jc .FatalError
|
|
||||||
mov [ZSNESBase+2],cx
|
|
||||||
mov [ZSNESBase],dx
|
|
||||||
ret
|
|
||||||
.FatalError
|
|
||||||
; maybe dosexit?
|
|
||||||
%endif
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
AllocateBlock:
|
|
||||||
%ifndef __UNIXSDL__
|
|
||||||
mov eax,0501h
|
|
||||||
mov bx,[BlockSize+2]
|
|
||||||
mov cx,[BlockSize]
|
|
||||||
int 31h
|
|
||||||
jc .FatalError
|
|
||||||
mov [LinearAddress+2],bx
|
|
||||||
mov [LinearAddress],cx
|
|
||||||
mov [BlockHandle+2],si
|
|
||||||
mov [BlockHandle],di
|
|
||||||
mov eax,[LinearAddress]
|
|
||||||
sub eax,[ZSNESBase]
|
|
||||||
and eax,0FFFFFFE0h
|
|
||||||
add eax,40h
|
|
||||||
mov [ZSNESAddress],eax
|
|
||||||
xor ebx,ebx
|
|
||||||
ret
|
|
||||||
.FatalError
|
|
||||||
mov ebx,1
|
|
||||||
%endif
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
|
|
||||||
;ALIGN32
|
;ALIGN32
|
||||||
vbufaptr resd 1
|
vbufaptr resd 1
|
||||||
@@ -336,9 +247,6 @@ memfreearray resd 12
|
|||||||
|
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%macro AllocmemFail 3
|
%macro AllocmemFail 3
|
||||||
mov ebx,%1
|
mov ebx,%1
|
||||||
add ebx,1000h
|
add ebx,1000h
|
||||||
@@ -380,12 +288,12 @@ SECTION .text
|
|||||||
; AllocmemFail 8192*1024+4096,spc7110romptr,outofmemoryb
|
; AllocmemFail 8192*1024+4096,spc7110romptr,outofmemoryb
|
||||||
; ret
|
; ret
|
||||||
|
|
||||||
outofmemoryb
|
;outofmemoryb
|
||||||
%ifdef __MSDOS__
|
;%ifdef __MSDOS__
|
||||||
mov ax,3
|
; mov ax,3
|
||||||
int 10h
|
; int 10h
|
||||||
%endif
|
;%endif
|
||||||
jmp outofmemory
|
; jmp outofmemory
|
||||||
|
|
||||||
NEWSYM allocptr
|
NEWSYM allocptr
|
||||||
mov dword[cmemallocptr],memfreearray
|
mov dword[cmemallocptr],memfreearray
|
||||||
|
|||||||
@@ -147,7 +147,6 @@ void WaitForKey();
|
|||||||
void MMXCheck();
|
void MMXCheck();
|
||||||
void allocmem();
|
void allocmem();
|
||||||
void InitSPC();
|
void InitSPC();
|
||||||
void setnoise();
|
|
||||||
void SystemInit();
|
void SystemInit();
|
||||||
void StartUp();
|
void StartUp();
|
||||||
|
|
||||||
@@ -210,6 +209,35 @@ void cycleinputdevice()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned char NoiseData[32768];
|
||||||
|
const unsigned char samplenoise[128] = {
|
||||||
|
27,232,234,138,187,246,176, 81, 25,241, 1,127,154,190,195,103,
|
||||||
|
231,165,220,238,232,189, 57,201,123, 75, 63,143,145,159, 13,236,
|
||||||
|
191,142, 56,164,222, 80, 88, 13,148,118,162,212,157,146,176, 0,
|
||||||
|
241, 88,244,238, 51,235,149, 50, 77,212,186,241, 88, 32, 23,206,
|
||||||
|
1, 24, 48,244,248,210,253, 77, 19,100, 83,222,108, 68, 11, 58,
|
||||||
|
152,161,223,245, 4,105, 3, 82, 15,130,171,242,141, 2,172,218,
|
||||||
|
152, 97,223,157, 93, 75, 83,238,104,238,131, 70, 22,252,180, 82,
|
||||||
|
110,123,106,133,183,209, 48,230,157,205, 27, 21,107, 63, 85,164};
|
||||||
|
|
||||||
|
void setnoise()
|
||||||
|
{
|
||||||
|
unsigned short ctr1, ctr2, ptr1=0;
|
||||||
|
unsigned char ptr2=0, ptr3=0;
|
||||||
|
|
||||||
|
for(ctr1=256;ctr1>0;ctr1--)
|
||||||
|
{
|
||||||
|
for(ctr2=128;ctr2>0;ctr2--,ptr1++)
|
||||||
|
{
|
||||||
|
NoiseData[ptr1] = (samplenoise[ptr2] + samplenoise[ptr3]);
|
||||||
|
ptr2=(ptr2+1)&0x7f;
|
||||||
|
ptr3=(ptr3-1)&0x7f;
|
||||||
|
}
|
||||||
|
ptr3=(ptr3-1)&0x7f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extern unsigned int xa;
|
extern unsigned int xa;
|
||||||
extern unsigned char soundon, SPCDisable, spcon, FPSOn, FPSAtStart;
|
extern unsigned char soundon, SPCDisable, spcon, FPSOn, FPSAtStart;
|
||||||
|
|
||||||
@@ -247,7 +275,7 @@ void zstart ()
|
|||||||
#ifdef OPENSPC
|
#ifdef OPENSPC
|
||||||
OSPC_Init();
|
OSPC_Init();
|
||||||
#else
|
#else
|
||||||
asm_call(setnoise);
|
setnoise();
|
||||||
asm_call(InitSPC);
|
asm_call(InitSPC);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user