diff options
Diffstat (limited to 'source/sound.cpp')
-rw-r--r-- | source/sound.cpp | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/source/sound.cpp b/source/sound.cpp deleted file mode 100644 index e69a1fb..0000000 --- a/source/sound.cpp +++ /dev/null @@ -1,279 +0,0 @@ -/******************************************************************************* - Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. - - (c) Copyright 1996 - 2002 Gary Henderson (gary.henderson@ntlworld.com) and - Jerremy Koot (jkoot@snes9x.com) - - (c) Copyright 2001 - 2004 John Weidman (jweidman@slip.net) - - (c) Copyright 2002 - 2004 Brad Jorsch (anomie@users.sourceforge.net), - funkyass (funkyass@spam.shaw.ca), - Joel Yliluoma (http://iki.fi/bisqwit/) - Kris Bleakley (codeviolation@hotmail.com), - Matthew Kendora, - Nach (n-a-c-h@users.sourceforge.net), - Peter Bortas (peter@bortas.org) and - zones (kasumitokoduck@yahoo.com) - - C4 x86 assembler and some C emulation code - (c) Copyright 2000 - 2003 zsKnight (zsknight@zsnes.com), - _Demo_ (_demo_@zsnes.com), and Nach - - C4 C++ code - (c) Copyright 2003 Brad Jorsch - - DSP-1 emulator code - (c) Copyright 1998 - 2004 Ivar (ivar@snes9x.com), _Demo_, Gary Henderson, - John Weidman, neviksti (neviksti@hotmail.com), - Kris Bleakley, Andreas Naive - - DSP-2 emulator code - (c) Copyright 2003 Kris Bleakley, John Weidman, neviksti, Matthew Kendora, and - Lord Nightmare (lord_nightmare@users.sourceforge.net - - OBC1 emulator code - (c) Copyright 2001 - 2004 zsKnight, pagefault (pagefault@zsnes.com) and - Kris Bleakley - Ported from x86 assembler to C by sanmaiwashi - - SPC7110 and RTC C++ emulator code - (c) Copyright 2002 Matthew Kendora with research by - zsKnight, John Weidman, and Dark Force - - S-DD1 C emulator code - (c) Copyright 2003 Brad Jorsch with research by - Andreas Naive and John Weidman - - S-RTC C emulator code - (c) Copyright 2001 John Weidman - - ST010 C++ emulator code - (c) Copyright 2003 Feather, Kris Bleakley, John Weidman and Matthew Kendora - - Super FX x86 assembler emulator code - (c) Copyright 1998 - 2003 zsKnight, _Demo_, and pagefault - - Super FX C emulator code - (c) Copyright 1997 - 1999 Ivar, Gary Henderson and John Weidman - - - SH assembler code partly based on x86 assembler code - (c) Copyright 2002 - 2004 Marcus Comstedt (marcus@mc.pp.se) - - - Specific ports contains the works of other authors. See headers in - individual files. - - Snes9x homepage: http://www.snes9x.com - - Permission to use, copy, modify and distribute Snes9x in both binary and - source form, for non-commercial purposes, is hereby granted without fee, - providing that this license information and copyright notice appear with - all copies and any derived work. - - This software is provided 'as-is', without any express or implied - warranty. In no event shall the authors be held liable for any damages - arising from the use of this software. - - Snes9x is freeware for PERSONAL USE only. Commercial users should - seek permission of the copyright holders first. Commercial use includes - charging money for Snes9x or software derived from Snes9x. - - The copyright holders request that bug fixes and improvements to the code - should be forwarded to them so everyone can benefit from the modifications - in future versions. - - Super NES and Super Nintendo Entertainment System are trademarks of - Nintendo Co., Limited and its subsidiary companies. -*******************************************************************************/ -#include <devices/ahi.h> -#include <exec/exec.h> -#include <proto/ahi.h> -#include <proto/dos.h> -#include <proto/exec.h> -#include <clib/ahippc_protos.h> -#include <stdio.h> - -#define EQ == -#define MINBUFFLEN 10000 - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> - -#include "snes9x.h" -#include "soundux.h" - -extern SoundStatus so; - -extern int AudioOpen(unsigned long freq, unsigned long bufsize, unsigned long bitrate, unsigned long stereo); -extern void AudioClose(void); - -extern int OpenPrelude(ULONG Type, ULONG DefaultFreq, ULONG MinBuffSize); -extern void ClosePrelude(void); - -extern int SoundSignal; -unsigned long DoubleBuffer; -//extern struct AHISampleInfo Sample0; -//extern struct AHISampleInfo Sample1; -//extern unsigned long BufferSize; - -struct Library *AHIPPCBase; -struct Library *AHIBase; -struct MsgPort *AHImp=NULL; -struct AHIRequest *AHIio=NULL; -BYTE AHIDevice=-1; - -struct AHIData *AHIData; - -unsigned long Frequency = 0; -//unsigned long BufferSize = 0; -unsigned long BitRate = 0; -unsigned long Stereo = 0; -//unsigned long AHIError = 9; - -BYTE InternSignal=-1; - -int mixsamples; -extern int prelude; - -#define REALSIZE (BitRate*Stereo) - -struct AHIAudioModeRequester *req=NULL; -struct AHIAudioCtrl *actrl=NULL; - -ULONG BufferLen=NULL; - - -/* this really should be dynamically allocated... */ -#undef MAX_BUFFER_SIZE -#define MAX_BUFFER_SIZE 65536 -#define MIN_BUFFER_SIZE 65536 - -#define MODE_MONO 0 -#define MODE_STEREO 1 - -#define QUAL_8BIT 8 -#define QUAL_16BIT 16 - - -int test=0; -int test2=0; - -int AudioOpen(unsigned long freq, unsigned long minbufsize, unsigned long bitrate, unsigned long stereo) -{ - ULONG Type; - - Frequency = freq; - - so.playback_rate = Frequency; - - if(stereo) so.stereo = TRUE; - else so.stereo = FALSE; - - switch(bitrate) - { - case 8: - so.sixteen_bit = FALSE; - BitRate=1; - if(stereo) - { - Stereo=2; - Type = AHIST_S8S; - } - else - { - Stereo=1; - Type = AHIST_M8S; - } - - break; - - default: //defaulting to 16bit, because it means it won't crash atleast - case QUAL_16BIT: - so.sixteen_bit = TRUE; - BitRate=2; - if(stereo) - { - Stereo=2; - Type = AHIST_S16S; - } - else - { - Stereo=1; - Type = AHIST_M16S; - } - break; - } - - if(prelude) prelude = OpenPrelude(Type, freq, minbufsize); - - - if(prelude) return 1; else printf("Defaulting to AHI...\n"); - - /* only 1 channel right? */ - /* NOTE: The buffersize will not always be what you requested - * it finds the minimun AHI requires and then rounds it up to - * nearest 32 bytes. Check AHIData->BufferSize or Samples[n].something_Length - */ - if(AHIData = OpenAHI(1, Type, AHI_INVALID_ID, AHI_DEFAULT_FREQ, 0, minbufsize)) - { - printf("AHI opened\n"); - printf("BuffSize %d\n", AHIData->BufferSize); - } - else - { - printf("AHI failed to open: %d\n", AHIData); - return 0; - } - - so.buffer_size = AHIData->BufferSize; // in bytes - if (so.buffer_size > MAX_BUFFER_SIZE) so.buffer_size = MAX_BUFFER_SIZE; - - /* Lots of useful fields in the AHIData struct, have a look */ - AHIBase = AHIData->AHIBase; - actrl = AHIData->AudioCtrl; - Frequency = AHIData->MixingFreq; - - printf("signal %ld\n", AHIData->SoundFuncSignal); - - Wait(AHIData->SoundFuncSignal); - - /* I don't think it should start playing until there is something - * In the buffer, however to set off the SoundFunc it should - * probably go through the buffer at least once, just silently. - */ - AHI_SetFreq(0, Frequency, actrl, AHISF_IMM); - - Wait(AHIData->SoundFuncSignal); - - AHI_SetVol(0, 0x10000, 0x8000, actrl, AHISF_IMM); - - mixsamples=AHIData->BufferSamples; - - SoundSignal = AHIData->SoundFuncSignal; - - return 1; -} - -void AudioClose( void ) -{ - if(prelude) ClosePrelude(); - else ;//CloseAHI(AHIData); -} - - -#include <wbstartup.h> - -extern int main(int argc, char **argv); - -void wbmain(struct WBStartup * argmsg) -{ - char argv[1][]={"WarpSNES"}; - int argc=1; - main(argc,(char **)argv); -} - - |