This is an automated email from the git hooks/post-receive script. ecsv-guest pushed a commit to branch armhf_test in repository mupen64plus-rsp-hle.
commit 2d8b6715b27dbec3969d8804903014e6bc1ee809 Author: Sven Eckelmann <[email protected]> Date: Sat Feb 13 01:41:52 2010 +0100 Imported Upstream version 1.99.2 --- .hg_archival.txt | 2 +- .hgtags | 1 + RELEASE | 9 ++ projects/msvc8/mupen64plus-rsp-hle.vcproj | 219 ++++++++++++++++++++++++++++++ projects/unix/Makefile | 49 ++++--- src/hle.h | 2 +- src/ucode1.cpp | 44 +++--- src/ucode2.cpp | 54 ++++---- src/ucode3.cpp | 64 ++++----- 9 files changed, 338 insertions(+), 106 deletions(-) diff --git a/.hg_archival.txt b/.hg_archival.txt index 8177866..131fe85 100644 --- a/.hg_archival.txt +++ b/.hg_archival.txt @@ -1,2 +1,2 @@ repo: 3fe0288fa7047c7a29c217b2bf6f05f32f8627d5 -node: 052d3c41920efde9707aac6380782d216b4e68be +node: c8e88b942fdfd9c1efd303e41edc6fca2deacd34 diff --git a/.hgtags b/.hgtags new file mode 100644 index 0000000..d404148 --- /dev/null +++ b/.hgtags @@ -0,0 +1 @@ +052d3c41920efde9707aac6380782d216b4e68be 1.99.1 diff --git a/RELEASE b/RELEASE index c8d6494..cdb811f 100644 --- a/RELEASE +++ b/RELEASE @@ -1,6 +1,15 @@ RSP High-Level Emulation plugin for Mupen64Plus ----------------------------------------------- +Mupen64Plus-rsp-hle v1.99.2 - January 6, 2010 +------------------------------------------------- + - new feature: added MSVC8 project file for RSP-HLE plugin, fixed a few minor incompatibilities + - Makefile improvements: + - throw error if OS/CPU not supported + - use DESTDIR in install/uninstall paths + - Allow user-specified CC/CXX/LD paths + - use C++ compiler to link instead of LD, because the compiler knows where the standard C++ libs are + Mupen64Plus-rsp-hle v1.99.1 - December 14, 2009 ------------------------------------------------- - Converted to new Mupen64Plus 2.0 API diff --git a/projects/msvc8/mupen64plus-rsp-hle.vcproj b/projects/msvc8/mupen64plus-rsp-hle.vcproj new file mode 100644 index 0000000..c95b6d5 --- /dev/null +++ b/projects/msvc8/mupen64plus-rsp-hle.vcproj @@ -0,0 +1,219 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="mupen64plus-rsp-hle" + ProjectGUID="{2EC7CEE3-C7A7-4F2E-B2C8-4DF6AFEC3E9A}" + RootNamespace="mupen64plusrsphle" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\..\mupen64plus-core\src\api" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="false" + DebugInformationFormat="4" + CompileAs="0" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\mupen64plus-core\src\api" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="false" + DebugInformationFormat="3" + CompileAs="0" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\..\src\jpeg.c" + > + </File> + <File + RelativePath="..\..\src\main.c" + > + </File> + <File + RelativePath="..\..\src\ucode1.cpp" + > + </File> + <File + RelativePath="..\..\src\ucode2.cpp" + > + </File> + <File + RelativePath="..\..\src\ucode3.cpp" + > + </File> + <File + RelativePath="..\..\src\ucode3mp3.cpp" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath="..\..\src\hle.h" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/projects/unix/Makefile b/projects/unix/Makefile index 5b305a4..740b01c 100644 --- a/projects/unix/Makefile +++ b/projects/unix/Makefile @@ -21,8 +21,9 @@ # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ # Makefile for Mupen64 HLE RSP plugin in Mupen64plus. -# detect operation system +# detect operating system UNAME = $(shell uname -s) +OS := NONE ifeq ("$(UNAME)","Linux") OS = LINUX SO_EXTENSION = so @@ -43,10 +44,14 @@ ifeq ("$(UNAME)","FreeBSD") SO_EXTENSION = so SHARED = -shared endif +ifeq ("$(OS)","NONE") + $(error OS type "$(UNAME)" not supported. Please file bug report at 'http://code.google.com/p/mupen64plus/issues') +endif # detect system architecture HOST_CPU ?= $(shell uname -m) NO_ASM ?= 1 +CPU := NONE ifneq ("$(filter x86_64 amd64,$(HOST_CPU))","") CPU := X86 ifeq ("$(BITS)", "32") @@ -59,13 +64,17 @@ ifneq ("$(filter pentium i%86,$(HOST_CPU))","") CPU := X86 ARCH_DETECTED := 32BITS endif -ifneq ("$(filter ppc powerpc,$(HOST_CPU))","") - CPU := PPC - ARCH_DETECTED := 32BITS -endif -ifneq ("$(filter ppc64 powerpc64,$(HOST_CPU))","") - CPU := PPC - ARCH_DETECTED := 64BITS +# PPC doesn't work yet +#ifneq ("$(filter ppc powerpc,$(HOST_CPU))","") +# CPU := PPC +# ARCH_DETECTED := 32BITS +#endif +#ifneq ("$(filter ppc64 powerpc64,$(HOST_CPU))","") +# CPU := PPC +# ARCH_DETECTED := 64BITS +#endif +ifeq ("$(CPU)","NONE") + $(error CPU type "$(HOST_CPU)" not supported. Please file bug report at 'http://code.google.com/p/mupen64plus/issues') endif # base CFLAGS, LIBS, and LDFLAGS @@ -134,15 +143,14 @@ else endif # set shell function names -CC = gcc -CXX = g++ -LD = g++ -INSTALL = install -ifeq ($(OS),LINUX) - STRIP = strip -s -endif +CC ?= gcc +CXX ?= g++ +LD ?= g++ +INSTALL ?= install ifeq ($(OS),OSX) - STRIP = strip -x + STRIP ?= strip -x +else + STRIP ?= strip -s endif # set special flags for given Makefile parameters @@ -194,17 +202,18 @@ targets: @echo " Install Options:" @echo " PREFIX=path == install/uninstall prefix (default: /usr/local)" @echo " LIBDIR=path == path to install plugin libraries (default: PREFIX/lib/mupen64plus)" + @echo " DESTDIR=path == path to prepend to all installation paths (only for packagers)" @echo " Debugging Options:" @echo " DEBUG=1 == add debugging symbols" all: $(TARGET) install: $(TARGET) - $(INSTALL) -d -v "$(LIBDIR)" - $(INSTALL) -m 0644 $(TARGET) "$(LIBDIR)" + $(INSTALL) -d -v "$(DESTDIR)$(LIBDIR)" + $(INSTALL) -m 0644 $(TARGET) "$(DESTDIR)$(LIBDIR)" uninstall: - rm -f "$(LIBDIR)/$(TARGET)" + rm -f "$(DESTDIR)$(LIBDIR)/$(TARGET)" clean: rm -rf ./_obj/* $(TARGET) @@ -214,7 +223,7 @@ rebuild: clean all # build rules $(TARGET): $(OBJECTS) - $(LD) $(SHARED) $^ $(LDFLAGS) -o $@ + $(CXX) $(SHARED) $^ $(LDFLAGS) -o $@ $(STRIP) $@ $(OBJDIR)/%.o: $(SRCDIR)/%.c diff --git a/src/hle.h b/src/hle.h index be12833..cded3aa 100644 --- a/src/hle.h +++ b/src/hle.h @@ -24,7 +24,7 @@ #include "m64p_plugin.h" -#define RSP_HLE_VERSION 0x016301 +#define RSP_HLE_VERSION 0x016302 #ifdef _BIG_ENDIAN #define S 0 diff --git a/src/ucode1.cpp b/src/ucode1.cpp index a5622b0..d7368af 100644 --- a/src/ucode1.cpp +++ b/src/ucode1.cpp @@ -26,6 +26,8 @@ extern "C" { #include "hle.h" } +extern "C" void (*ABI1[])(void); + //#include "rsp.h" //#define SAFE_MEMORY /* @@ -88,7 +90,7 @@ Address/Range Description 0xF80..0xFFF <Unknown> ***************************************************/ -static void SPNOOP () { +static void SPNOOP (void) { //MessageBox (NULL, "Unknown Audio Command in ABI 1", "Audio HLE Error", MB_OK); } @@ -152,7 +154,7 @@ u16 ResampleLUT [0x200] = { 0xFFD8, 0x0E5F, 0x6696, 0x0B39, 0xFFDF, 0x0D46, 0x66AD, 0x0C39 }; -static void CLEARBUFF () { +static void CLEARBUFF (void) { u32 addr = (u32)(inst1 & 0xffff); u32 count = (u32)(inst2 & 0xffff); addr &= 0xFFFC; @@ -161,7 +163,7 @@ static void CLEARBUFF () { //FILE *dfile = fopen ("d:\\envmix.txt", "wt"); -static void ENVMIXER () { +static void ENVMIXER (void) { //static int envmixcnt = 0; u8 flags = (u8)((inst1 >> 16) & 0xff); u32 addy = (inst2 & 0xFFFFFF);// + SEGMENTS[(inst2>>24)&0xf]; @@ -238,8 +240,8 @@ static void ENVMIXER () { if (LAdderStart != LTrg) { LAcc = LAdderStart; LVol = (LAdderEnd - LAdderStart) >> 3; - LAdderEnd = ((s64)LAdderEnd * (s64)LRamp) >> 16; - LAdderStart = ((s64)LAcc * (s64)LRamp) >> 16; + LAdderEnd = (s32) (((s64)LAdderEnd * (s64)LRamp) >> 16); + LAdderStart = (s32) (((s64)LAcc * (s64)LRamp) >> 16); } else { LAcc = LTrg; LVol = 0; @@ -248,8 +250,8 @@ static void ENVMIXER () { if (RAdderStart != RTrg) { RAcc = RAdderStart; RVol = (RAdderEnd - RAdderStart) >> 3; - RAdderEnd = ((s64)RAdderEnd * (s64)RRamp) >> 16; - RAdderStart = ((s64)RAcc * (s64)RRamp) >> 16; + RAdderEnd = (s32) (((s64)RAdderEnd * (s64)RRamp) >> 16); + RAdderStart = (s32) (((s64)RAcc * (s64)RRamp) >> 16); } else { RAcc = RTrg; RVol = 0; @@ -386,7 +388,7 @@ static void ENVMIXER () { memcpy(rsp.RDRAM+addy, (u8 *)hleMixerWorkArea,80); } -static void RESAMPLE () { +static void RESAMPLE (void) { unsigned char Flags=(u8)((inst1>>16)&0xff); unsigned int Pitch=((inst1&0xffff))<<1; u32 addy = (inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; @@ -461,7 +463,7 @@ static void RESAMPLE () { *(u16 *)(rsp.RDRAM+addy+10) = Accum; } -static void SETVOL () { +static void SETVOL (void) { // Might be better to unpack these depending on the flags... u8 flags = (u8)((inst1 >> 16) & 0xff); u16 vol = (s16)(inst1 & 0xffff); @@ -506,15 +508,15 @@ static void SETVOL () { } } -static void UNKNOWN () {} +static void UNKNOWN (void) {} -static void SETLOOP () { +static void SETLOOP (void) { loopval = (inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; //VolTrg_Left = (s16)(loopval>>16); // m_LeftVol //VolRamp_Left = (s16)(loopval); // m_LeftVolTarget } -static void ADPCM () { // Work in progress! :) +static void ADPCM (void) { // Work in progress! :) unsigned char Flags=(u8)(inst1>>16)&0xff; //unsigned short Gain=(u16)(inst1&0xffff); unsigned int Address=(inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; @@ -759,7 +761,7 @@ static void ADPCM () { // Work in progress! :) memcpy(&rsp.RDRAM[Address],out,32); } -static void LOADBUFF () { // memcpy causes static... endianess issue :( +static void LOADBUFF (void) { // memcpy causes static... endianess issue :( u32 v0; //u32 cnt; if (AudioCount == 0) @@ -768,7 +770,7 @@ static void LOADBUFF () { // memcpy causes static... endianess issue :( memcpy (BufferSpace+(AudioInBuffer&0xFFFC), rsp.RDRAM+v0, (AudioCount+3)&0xFFFC); } -static void SAVEBUFF () { // memcpy causes static... endianess issue :( +static void SAVEBUFF (void) { // memcpy causes static... endianess issue :( u32 v0; //u32 cnt; if (AudioCount == 0) @@ -777,7 +779,7 @@ static void SAVEBUFF () { // memcpy causes static... endianess issue :( memcpy (rsp.RDRAM+v0, BufferSpace+(AudioOutBuffer&0xFFFC), (AudioCount+3)&0xFFFC); } -static void SETBUFF () { // Should work ;-) +static void SETBUFF (void) { // Should work ;-) if ((inst1 >> 0x10) & 0x8) { // A_AUX - Auxillary Sound Buffer Settings AudioAuxA = u16(inst1); AudioAuxC = u16((inst2 >> 0x10)); @@ -789,7 +791,7 @@ static void SETBUFF () { // Should work ;-) } } -static void DMEMMOVE () { // Doesn't sound just right?... will fix when HLE is ready - 03-11-01 +static void DMEMMOVE (void) { // Doesn't sound just right?... will fix when HLE is ready - 03-11-01 u32 v0, v1; u32 cnt; if ((inst2 & 0xffff)==0) @@ -808,7 +810,7 @@ static void DMEMMOVE () { // Doesn't sound just right?... will fix when HLE is r } } -static void LOADADPCM () { // Loads an ADPCM table - Works 100% Now 03-13-01 +static void LOADADPCM (void) { // Loads an ADPCM table - Works 100% Now 03-13-01 u32 v0; v0 = (inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; /* if (v0 > (1024*1024*8)) @@ -833,7 +835,7 @@ static void LOADADPCM () { // Loads an ADPCM table - Works 100% Now 03-13-01 } -static void INTERLEAVE () { // Works... - 3-11-01 +static void INTERLEAVE (void) { // Works... - 3-11-01 u32 inL, inR; u16 *outbuff = (u16 *)(AudioOutBuffer+BufferSpace); u16 *inSrcR; @@ -858,7 +860,7 @@ static void INTERLEAVE () { // Works... - 3-11-01 } -static void MIXER () { // Fixed a sign issue... 03-14-01 +static void MIXER (void) { // Fixed a sign issue... 03-14-01 u32 dmemin = (u16)(inst2 >> 0x10); u32 dmemout = (u16)(inst2 & 0xFFFF); //u8 flags = (u8)((inst1 >> 16) & 0xff); @@ -893,7 +895,7 @@ static void MIXER () { // Fixed a sign issue... 03-14-01 //Command: RESAMPLE - Calls: 48 - Total Time: 276354 - Avg Time: 5757.38 - Percent: 22.95% -void (*ABI1[0x20])() = { // TOP Performace Hogs: MIXER, RESAMPLE, ENVMIXER +void (*ABI1[0x20])(void) = { // TOP Performace Hogs: MIXER, RESAMPLE, ENVMIXER SPNOOP , ADPCM , CLEARBUFF, ENVMIXER , LOADBUFF, RESAMPLE , SAVEBUFF, UNKNOWN, SETBUFF, SETVOL, DMEMMOVE , LOADADPCM , MIXER , INTERLEAVE, UNKNOWN , SETLOOP, SPNOOP , SPNOOP, SPNOOP , SPNOOP , SPNOOP , SPNOOP , SPNOOP , SPNOOP, @@ -901,7 +903,7 @@ void (*ABI1[0x20])() = { // TOP Performace Hogs: MIXER, RESAMPLE, ENVMIXER }; /* BACKUPS -void MIXER () { // Fixed a sign issue... 03-14-01 +void MIXER (void) { // Fixed a sign issue... 03-14-01 u16 dmemin = (u16)(inst2 >> 0x10); u16 dmemout = (u16)(inst2 & 0xFFFF); u16 gain = (u16)(inst1 & 0xFFFF); diff --git a/src/ucode2.cpp b/src/ucode2.cpp index 0e5d2eb..edc8ba4 100644 --- a/src/ucode2.cpp +++ b/src/ucode2.cpp @@ -28,9 +28,11 @@ extern "C" { #include "hle.h" } +extern "C" void (*ABI2[])(void); + extern u8 BufferSpace[0x10000]; -static void SPNOOP () { +static void SPNOOP (void) { DebugMessage(M64MSG_ERROR, "Unknown/Unimplemented Audio Command %i in ABI 2", (int)(inst1 >> 24)); } extern u16 AudioInBuffer; // 0x0000(T8) @@ -46,7 +48,7 @@ extern u16 ResampleLUT [0x200]; bool isMKABI = false; bool isZeldaABI = false; -static void LOADADPCM2 () { // Loads an ADPCM table - Works 100% Now 03-13-01 +static void LOADADPCM2 (void) { // Loads an ADPCM table - Works 100% Now 03-13-01 u32 v0; v0 = (inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; u16 *table = (u16 *)(rsp.RDRAM+v0); // Zelda2 Specific... @@ -67,17 +69,17 @@ static void LOADADPCM2 () { // Loads an ADPCM table - Works 100% Now 03-13-01 } } -static void SETLOOP2 () { +static void SETLOOP2 (void) { loopval = inst2 & 0xffffff; // No segment? } -static void SETBUFF2 () { +static void SETBUFF2 (void) { AudioInBuffer = u16(inst1); // 0x00 AudioOutBuffer = u16((inst2 >> 0x10)); // 0x02 AudioCount = u16(inst2); // 0x04 } -static void ADPCM2 () { // Verified to be 100% Accurate... +static void ADPCM2 (void) { // Verified to be 100% Accurate... unsigned char Flags=(u8)(inst1>>16)&0xff; //unsigned short Gain=(u16)(inst1&0xffff); unsigned int Address=(inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; @@ -356,21 +358,21 @@ static void ADPCM2 () { // Verified to be 100% Accurate... memcpy(&rsp.RDRAM[Address],out,32); } -static void CLEARBUFF2 () { +static void CLEARBUFF2 (void) { u16 addr = (u16)(inst1 & 0xffff); u16 count = (u16)(inst2 & 0xffff); if (count > 0) memset(BufferSpace+addr, 0, count); } -static void LOADBUFF2 () { // Needs accuracy verification... +static void LOADBUFF2 (void) { // Needs accuracy verification... u32 v0; u32 cnt = (((inst1 >> 0xC)+3)&0xFFC); v0 = (inst2 & 0xfffffc);// + SEGMENTS[(inst2>>24)&0xf]; memcpy (BufferSpace+(inst1&0xfffc), rsp.RDRAM+v0, (cnt+3)&0xFFFC); } -static void SAVEBUFF2 () { // Needs accuracy verification... +static void SAVEBUFF2 (void) { // Needs accuracy verification... u32 v0; u32 cnt = (((inst1 >> 0xC)+3)&0xFFC); v0 = (inst2 & 0xfffffc);// + SEGMENTS[(inst2>>24)&0xf]; @@ -378,7 +380,7 @@ static void SAVEBUFF2 () { // Needs accuracy verification... } -static void MIXER2 () { // Needs accuracy verification... +static void MIXER2 (void) { // Needs accuracy verification... u16 dmemin = (u16)(inst2 >> 0x10); u16 dmemout = (u16)(inst2 & 0xFFFF); u32 count = ((inst1 >> 12) & 0xFF0); @@ -400,7 +402,7 @@ static void MIXER2 () { // Needs accuracy verification... } -static void RESAMPLE2 () { +static void RESAMPLE2 (void) { unsigned char Flags=(u8)((inst1>>16)&0xff); unsigned int Pitch=((inst1&0xffff))<<1; u32 addy = (inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; @@ -462,7 +464,7 @@ static void RESAMPLE2 () { //memcpy (RSWORK, src+srcPtr, 0x8); } -static void DMEMMOVE2 () { // Needs accuracy verification... +static void DMEMMOVE2 (void) { // Needs accuracy verification... u32 v0, v1; u32 cnt; if ((inst2 & 0xffff)==0) @@ -484,7 +486,7 @@ static void DMEMMOVE2 () { // Needs accuracy verification... u32 t3, s5, s6; u16 env[8]; -static void ENVSETUP1 () { +static void ENVSETUP1 (void) { u32 tmp; //fprintf (dfile, "ENVSETUP1: inst1 = %08X, inst2 = %08X\n", inst1, inst2); @@ -498,7 +500,7 @@ static void ENVSETUP1 () { //fprintf (dfile, " t3 = %X / s5 = %X / s6 = %X / env[4] = %X / env[5] = %X\n", t3, s5, s6, env[4], env[5]); } -static void ENVSETUP2 () { +static void ENVSETUP2 (void) { u32 tmp; //fprintf (dfile, "ENVSETUP2: inst1 = %08X, inst2 = %08X\n", inst1, inst2); @@ -513,7 +515,7 @@ static void ENVSETUP2 () { //fprintf (dfile, " env[0] = %X / env[1] = %X / env[2] = %X / env[3] = %X\n", env[0], env[1], env[2], env[3]); } -static void ENVMIXER2 () { +static void ENVMIXER2 (void) { //fprintf (dfile, "ENVMIXER: inst1 = %08X, inst2 = %08X\n", inst1, inst2); s16 *bufft6, *bufft7, *buffs0, *buffs1; @@ -616,7 +618,7 @@ static void ENVMIXER2 () { } } -static void DUPLICATE2() { +static void DUPLICATE2(void) { unsigned short Count = (inst1 >> 16) & 0xff; unsigned short In = inst1&0xffff; unsigned short Out = (inst2>>16); @@ -632,7 +634,7 @@ static void DUPLICATE2() { } } /* -static void INTERL2 () { // Make your own... +static void INTERL2 (void) { // Make your own... short Count = inst1 & 0xffff; unsigned short Out = inst2 & 0xffff; unsigned short In = (inst2 >> 16); @@ -663,7 +665,7 @@ static void INTERL2 () { // Make your own... } */ -static void INTERL2 () { +static void INTERL2 (void) { short Count = inst1 & 0xffff; unsigned short Out = inst2 & 0xffff; unsigned short In = (inst2 >> 16); @@ -679,7 +681,7 @@ static void INTERL2 () { } } -static void INTERLEAVE2 () { // Needs accuracy verification... +static void INTERLEAVE2 (void) { // Needs accuracy verification... u32 inL, inR; u16 *outbuff; u16 *inSrcR; @@ -711,7 +713,7 @@ static void INTERLEAVE2 () { // Needs accuracy verification... } } -static void ADDMIXER () { +static void ADDMIXER (void) { short Count = (inst1 >> 12) & 0x00ff0; u16 InBuffer = (inst2 >> 16); u16 OutBuffer = inst2 & 0xffff; @@ -727,7 +729,7 @@ static void ADDMIXER () { } } -static void HILOGAIN () { +static void HILOGAIN (void) { u16 cnt = inst1 & 0xffff; u16 out = (inst2 >> 16) & 0xffff; s16 hi = (s16)((inst1 >> 4) & 0xf000); @@ -749,7 +751,7 @@ static void HILOGAIN () { } } -static void FILTER2 () { +static void FILTER2 (void) { static int cnt = 0; static s16 *lutt6; static s16 *lutt5; @@ -874,7 +876,7 @@ static void FILTER2 () { memcpy (BufferSpace+(inst1&0xffff), outbuff, cnt); } -static void SEGMENT2 () { +static void SEGMENT2 (void) { if (isZeldaABI) { FILTER2 (); return; @@ -889,24 +891,24 @@ static void SEGMENT2 () { } } -static void UNKNOWN () { +static void UNKNOWN (void) { } /* -void (*ABI2[0x20])() = { +void (*ABI2[0x20])(void) = { SPNOOP, ADPCM2, CLEARBUFF2, SPNOOP, SPNOOP, RESAMPLE2, SPNOOP, SEGMENT2, SETBUFF2, SPNOOP, DMEMMOVE2, LOADADPCM2, MIXER2, INTERLEAVE2, HILOGAIN, SETLOOP2, SPNOOP, INTERL2, ENVSETUP1, ENVMIXER2, LOADBUFF2, SAVEBUFF2, ENVSETUP2, SPNOOP, SPNOOP, SPNOOP, SPNOOP, SPNOOP, SPNOOP, SPNOOP, SPNOOP, SPNOOP };*/ -void (*ABI2[0x20])() = { +void (*ABI2[0x20])(void) = { SPNOOP , ADPCM2, CLEARBUFF2, UNKNOWN, ADDMIXER, RESAMPLE2, UNKNOWN, SEGMENT2, SETBUFF2 , DUPLICATE2, DMEMMOVE2, LOADADPCM2, MIXER2, INTERLEAVE2, HILOGAIN, SETLOOP2, SPNOOP, INTERL2 , ENVSETUP1, ENVMIXER2, LOADBUFF2, SAVEBUFF2, ENVSETUP2, SPNOOP, HILOGAIN , SPNOOP, DUPLICATE2 , UNKNOWN , SPNOOP , SPNOOP , SPNOOP , SPNOOP }; /* -void (*ABI2[0x20])() = { +void (*ABI2[0x20])(void) = { SPNOOP , ADPCM2, CLEARBUFF2, SPNOOP, SPNOOP, RESAMPLE2 , SPNOOP , SEGMENT2, SETBUFF2 , DUPLICATE2, DMEMMOVE2, LOADADPCM2, MIXER2, INTERLEAVE2, SPNOOP, SETLOOP2, SPNOOP, INTERL2 , ENVSETUP1, ENVMIXER2, LOADBUFF2, SAVEBUFF2, ENVSETUP2, SPNOOP, diff --git a/src/ucode3.cpp b/src/ucode3.cpp index 9ff4ae9..302e75b 100644 --- a/src/ucode3.cpp +++ b/src/ucode3.cpp @@ -28,7 +28,9 @@ extern "C" { #include "hle.h" } -static void SPNOOP () { +extern "C" void (*ABI3[])(void); + +static void SPNOOP (void) { DebugMessage(M64MSG_ERROR, "Unknown/Unimplemented Audio Command %i in ABI 3", (int)(inst1 >> 24)); } @@ -54,7 +56,7 @@ extern u16 adpcmtable[0x88]; extern u8 BufferSpace[0x10000]; /* -static void SETVOL3 () { // Swapped Rate_Left and Vol +static void SETVOL3 (void) { // Swapped Rate_Left and Vol u8 Flags = (u8)(inst1 >> 0x10); if (Flags & 0x4) { // 288 if (Flags & 0x2) { // 290 @@ -71,7 +73,7 @@ static void SETVOL3 () { // Swapped Rate_Left and Vol } } */ -static void SETVOL3 () { +static void SETVOL3 (void) { u8 Flags = (u8)(inst1 >> 0x10); if (Flags & 0x4) { // 288 if (Flags & 0x2) { // 290 @@ -89,7 +91,7 @@ static void SETVOL3 () { } } -static void ENVMIXER3 () { +static void ENVMIXER3 (void) { u8 flags = (u8)((inst1 >> 16) & 0xff); u32 addy = (inst2 & 0xFFFFFF); @@ -247,7 +249,7 @@ static void ENVMIXER3 () { memcpy(rsp.RDRAM+addy, (u8 *)hleMixerWorkArea,80); } //*/ -static void ENVMIXER3o () { +static void ENVMIXER3o (void) { u8 flags = (u8)((inst1 >> 16) & 0xff); u32 addy = (inst2 & 0xFFFFFF);// + SEGMENTS[(inst2>>24)&0xf]; //static FILE *dfile = fopen ("d:\\envmix.txt", "wt"); @@ -404,7 +406,7 @@ static void ENVMIXER3o () { memcpy(rsp.RDRAM+addy, (u8 *)hleMixerWorkArea,80); } /* -static void ENVMIXER3 () { // Borrowed from RCP... +static void ENVMIXER3 (void) { // Borrowed from RCP... u8 flags = (u8)((inst1 >> 16) & 0xff); u32 addy = (inst2 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; @@ -483,13 +485,13 @@ static void ENVMIXER3 () { // Borrowed from RCP... }*/ -static void CLEARBUFF3 () { +static void CLEARBUFF3 (void) { u16 addr = (u16)(inst1 & 0xffff); u16 count = (u16)(inst2 & 0xffff); memset(BufferSpace+addr+0x4f0, 0, count); } -static void MIXER3 () { // Needs accuracy verification... +static void MIXER3 (void) { // Needs accuracy verification... u16 dmemin = (u16)(inst2 >> 0x10) + 0x4f0; u16 dmemout = (u16)(inst2 & 0xFFFF) + 0x4f0; //u8 flags = (u8)((inst1 >> 16) & 0xff); @@ -509,7 +511,7 @@ static void MIXER3 () { // Needs accuracy verification... } } -static void LOADBUFF3 () { +static void LOADBUFF3 (void) { u32 v0; u32 cnt = (((inst1 >> 0xC)+3)&0xFFC); v0 = (inst2 & 0xfffffc); @@ -517,7 +519,7 @@ static void LOADBUFF3 () { memcpy (BufferSpace+src, rsp.RDRAM+v0, cnt); } -static void SAVEBUFF3 () { +static void SAVEBUFF3 (void) { u32 v0; u32 cnt = (((inst1 >> 0xC)+3)&0xFFC); v0 = (inst2 & 0xfffffc); @@ -525,7 +527,7 @@ static void SAVEBUFF3 () { memcpy (rsp.RDRAM+v0, BufferSpace+src, cnt); } -static void LOADADPCM3 () { // Loads an ADPCM table - Works 100% Now 03-13-01 +static void LOADADPCM3 (void) { // Loads an ADPCM table - Works 100% Now 03-13-01 u32 v0; v0 = (inst2 & 0xffffff); //memcpy (dmem+0x3f0, rsp.RDRAM+v0, inst1&0xffff); @@ -547,7 +549,7 @@ static void LOADADPCM3 () { // Loads an ADPCM table - Works 100% Now 03-13-01 } } -static void DMEMMOVE3 () { // Needs accuracy verification... +static void DMEMMOVE3 (void) { // Needs accuracy verification... u32 v0, v1; u32 cnt; v0 = (inst1 & 0xFFFF) + 0x4f0; @@ -560,11 +562,11 @@ static void DMEMMOVE3 () { // Needs accuracy verification... } } -static void SETLOOP3 () { +static void SETLOOP3 (void) { loopval = (inst2 & 0xffffff); } -static void ADPCM3 () { // Verified to be 100% Accurate... +static void ADPCM3 (void) { // Verified to be 100% Accurate... unsigned char Flags=(u8)(inst2>>0x1c)&0xff; //unsigned short Gain=(u16)(inst1&0xffff); unsigned int Address=(inst1 & 0xffffff);// + SEGMENTS[(inst2>>24)&0xf]; @@ -820,7 +822,7 @@ static void ADPCM3 () { // Verified to be 100% Accurate... memcpy(&rsp.RDRAM[Address],out,32); } -static void RESAMPLE3 () { +static void RESAMPLE3 (void) { unsigned char Flags=(u8)((inst2>>0x1e)); unsigned int Pitch=((inst2>>0xe)&0xffff)<<1; u32 addy = (inst1 & 0xffffff); @@ -918,7 +920,7 @@ static void RESAMPLE3 () { *(u16 *)(rsp.RDRAM+addy+10) = Accum; } -static void INTERLEAVE3 () { // Needs accuracy verification... +static void INTERLEAVE3 (void) { // Needs accuracy verification... //u32 inL, inR; u16 *outbuff = (u16 *)(BufferSpace + 0x4f0);//(u16 *)(AudioOutBuffer+dmem); u16 *inSrcR; @@ -951,7 +953,7 @@ static void INTERLEAVE3 () { // Needs accuracy verification... } } -//static void UNKNOWN (); +//static void UNKNOWN (void); /* typedef struct { unsigned char sync; @@ -977,17 +979,17 @@ mp3struct mp3; FILE *mp3dat; */ -static void WHATISTHIS () { +static void WHATISTHIS (void) { } //static FILE *fp = fopen ("d:\\mp3info.txt", "wt"); u32 setaddr; -static void MP3ADDY () { +static void MP3ADDY (void) { setaddr = (inst2 & 0xffffff); } extern "C" { - void rsp_run(); + void rsp_run(void); void mp3setup (unsigned int inst1, unsigned int inst2, unsigned int t8); } @@ -995,7 +997,7 @@ extern u32 base, dmembase; extern "C" { extern char *pDMEM; } -void MP3 (); +void MP3 (void); /* { // return; @@ -1013,7 +1015,7 @@ void MP3 (); memcpy (imem+0x238, rsp.RDRAM+((u32*)BufferSpace)[0x008/4], 0x9C0); ((u32*)BufferSpace)[0xFF4/4] = setaddr; pDMEM = (char *)BufferSpace; - rsp_run (); + rsp_run (void); dmembase = ((u32*)BufferSpace)[0xFF8/4]; loopval = ((u32*)BufferSpace)[0xFFC/4]; //0x1A98 SW S1, 0x0FF4 (R0) @@ -1044,29 +1046,17 @@ achieve near-CD quality, an important specification to enable dual-channel ISDN (integrated-services-digital-network) to be the future high-bandwidth pipe to the home. */ -static void DISABLE () { +static void DISABLE (void) { //MessageBox (NULL, "Help", "ABI 3 Command 0", MB_OK); //ChangeABI (5); } -void (*ABI3[0x20])() = { +void (*ABI3[0x20])(void) = { DISABLE , ADPCM3 , CLEARBUFF3, ENVMIXER3 , LOADBUFF3, RESAMPLE3 , SAVEBUFF3, MP3, MP3ADDY, SETVOL3, DMEMMOVE3 , LOADADPCM3 , MIXER3 , INTERLEAVE3, WHATISTHIS , SETLOOP3, SPNOOP , SPNOOP, SPNOOP , SPNOOP , SPNOOP , SPNOOP , SPNOOP , SPNOOP, SPNOOP , SPNOOP, SPNOOP , SPNOOP , SPNOOP , SPNOOP , SPNOOP , SPNOOP }; -#if 0 -void (*ABI3[32])(void) = -{ - SPNOOP , ADPCM3 , CLEARBUFF3, SPNOOP , - MIXER3 , RESAMPLE3 , SPNOOP , MP3 , - MP3ADDY , SETVOL3 , DMEMMOVE3 , LOADADPCM3, - MIXER3 , INTERLEAVE3, WHATISTHIS , SETLOOP3 , - SPNOOP , /*MEMHALVE , ENVSET1*/ SPNOOP, SPNOOP , ENVMIXER3 , - LOADBUFF3, SAVEBUFF3 , /*ENVSET2*/SPNOOP , SPNOOP , - SPNOOP , SPNOOP , SPNOOP , SPNOOP , - SPNOOP , SPNOOP , SPNOOP , SPNOOP -}; -#endif + -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus-rsp-hle.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

