diff --git a/retro-core/components/snes9x/CMakeLists.txt b/retro-core/components/snes9x/CMakeLists.txt index 6c08193c..2947269d 100644 --- a/retro-core/components/snes9x/CMakeLists.txt +++ b/retro-core/components/snes9x/CMakeLists.txt @@ -1,4 +1,4 @@ -set(COMPONENT_SRCDIRS ".") +set(COMPONENT_SRCDIRS "src") set(COMPONENT_ADD_INCLUDEDIRS ".") set(COMPONENT_REQUIRES "retro-go") register_component() diff --git a/retro-core/components/snes9x/README.md b/retro-core/components/snes9x/README.md new file mode 100644 index 00000000..dc7a8f00 --- /dev/null +++ b/retro-core/components/snes9x/README.md @@ -0,0 +1,6 @@ +# Snes9x port for Retro-Go + +## Based on: + +## Modifications: + diff --git a/retro-core/components/snes9x/snes9x.h b/retro-core/components/snes9x/snes9x.h index b1da8810..176355fe 100644 --- a/retro-core/components/snes9x/snes9x.h +++ b/retro-core/components/snes9x/snes9x.h @@ -1,229 +1,9 @@ -/* This file is part of Snes9x. See LICENSE file. */ - -#ifndef _SNES9X_H_ -#define _SNES9X_H_ - -#include -#include - -#include "port.h" -#include "65c816.h" - -#define ROM_NAME_LEN 22 - -/* SNES screen width and height */ -#define SNES_WIDTH 256 -#define SNES_HEIGHT 224 -#define SNES_HEIGHT_EXTENDED 239 - -#define SNES_SPRITE_TILE_PER_LINE 34 - -#define SNES_MAX_NTSC_VCOUNTER 262 -#define SNES_MAX_PAL_VCOUNTER 312 -#define SNES_HCOUNTER_MAX 341 -#define SPC700_TO_65C816_RATIO 2 -#define AUTO_FRAMERATE 200 - -/* NTSC master clock signal 21.47727MHz - * PPU: master clock / 4 - * 1 / PPU clock * 342 -> 63.695us - * 63.695us / (1 / 3.579545MHz) -> 228 cycles per scanline - * From Earth Worm Jim: APU executes an average of 65.14285714 cycles per - * scanline giving an APU clock speed of 1.022731096MHz */ - -/* PAL master clock signal 21.28137MHz - * PPU: master clock / 4 - * 1 / PPU clock * 342 -> 64.281us - * 64.281us / (1 / 3.546895MHz) -> 228 cycles per scanline. */ - -#define SNES_SCANLINE_TIME (63.695e-6) -#define SNES_CLOCK_SPEED (3579545u) - -#define SNES_CLOCK_LEN (1.0 / SNES_CLOCK_SPEED) - -#define SNES_CYCLES_PER_SCANLINE ((uint32_t) ((SNES_SCANLINE_TIME / SNES_CLOCK_LEN) * 6 + 0.5)) - -#ifdef SNES_OVERCLOCK_CYCLES -#define ONE_CYCLE (overclock_cycles ? one_c : 6u) -#define SLOW_ONE_CYCLE (overclock_cycles ? slow_one_c : 8u) -#define TWO_CYCLES (overclock_cycles ? two_c : 12u) -#else -#define ONE_CYCLE (6u) -#define SLOW_ONE_CYCLE (8u) -#define TWO_CYCLES (12u) -#endif - -#define SNES_TR_MASK (1u << 4) -#define SNES_TL_MASK (1u << 5) -#define SNES_X_MASK (1u << 6) -#define SNES_A_MASK (1u << 7) -#define SNES_RIGHT_MASK (1u << 8) -#define SNES_LEFT_MASK (1u << 9) -#define SNES_DOWN_MASK (1u << 10) -#define SNES_UP_MASK (1u << 11) -#define SNES_START_MASK (1u << 12) -#define SNES_SELECT_MASK (1u << 13) -#define SNES_Y_MASK (1u << 14) -#define SNES_B_MASK (1u << 15) - -extern bool overclock_cycles; -extern int one_c, slow_one_c, two_c; - -enum -{ - SNES_MULTIPLAYER5, - SNES_JOYPAD, - SNES_MOUSE, - SNES_SUPERSCOPE, - SNES_JUSTIFIER, - SNES_JUSTIFIER_2, - SNES_MAX_CONTROLLER_OPTIONS -}; - -#define DEBUG_MODE_FLAG (1u << 0) -#define TRACE_FLAG (1u << 1) -#define SINGLE_STEP_FLAG (1u << 2) -#define BREAK_FLAG (1u << 3) -#define SCAN_KEYS_FLAG (1u << 4) -#define SAVE_SNAPSHOT_FLAG (1u << 5) -#define DELAYED_NMI_FLAG (1u << 6) -#define NMI_FLAG (1u << 7) -#define PROCESS_SOUND_FLAG (1u << 8) -#define FRAME_ADVANCE_FLAG (1u << 9) -#define DELAYED_NMI_FLAG2 (1u << 10) -#define IRQ_PENDING_FLAG (1u << 11) - -typedef struct -{ - uint32_t Flags; - bool BranchSkip; - bool NMIActive; - uint8_t IRQActive; - bool WaitingForInterrupt; - bool InDMA; - uint8_t WhichEvent; - uint8_t* PC; - uint8_t* PCBase; - uint8_t* PCAtOpcodeStart; - uint8_t* WaitAddress; - uint32_t WaitCounter; - long Cycles; /* For savestate compatibility can't change to int32_t */ - long NextEvent; /* For savestate compatibility can't change to int32_t */ - long V_Counter; /* For savestate compatibility can't change to int32_t */ - long MemSpeed; /* For savestate compatibility can't change to int32_t */ - long MemSpeedx2; /* For savestate compatibility can't change to int32_t */ - long FastROMSpeed; /* For savestate compatibility can't change to int32_t */ - uint32_t SaveStateVersion; - bool SRAMModified; - uint32_t NMITriggerPoint; - bool UNUSED2; - bool TriedInterleavedMode2; - uint32_t NMICycleCount; - uint32_t IRQCycleCount; -} SCPUState; - -#define HBLANK_START_EVENT 0u -#define HBLANK_END_EVENT 1u -#define HTIMER_BEFORE_EVENT 2u -#define HTIMER_AFTER_EVENT 3u -#define NO_EVENT 4u - -typedef struct -{ - /* CPU options */ - bool APUEnabled; - bool Shutdown; - int32_t H_Max; - int32_t HBlankStart; - int32_t CyclesPercentage; - bool DisableIRQ; - - /* Joystick options */ - bool JoystickEnabled; - - /* ROM timing options (see also H_Max above) */ - bool ForcePAL; - bool ForceNTSC; - bool PAL; - uint32_t FrameTimePAL; - uint32_t FrameTimeNTSC; - uint32_t FrameTime; - - /* ROM image options */ - bool ForceLoROM; - bool ForceHiROM; - bool ForceHeader; - bool ForceNoHeader; - bool ForceInterleaved; - bool ForceInterleaved2; - bool ForceNotInterleaved; - - /* Peripheral options */ - bool ForceSuperFX; - bool ForceNoSuperFX; - bool ForceDSP1; - bool ForceNoDSP1; - bool ForceSA1; - bool ForceNoSA1; - bool ForceC4; - bool ForceNoC4; - bool ForceSDD1; - bool ForceNoSDD1; - bool MultiPlayer5; - bool Mouse; - bool SuperScope; - bool SRTC; - uint32_t ControllerOption; - bool MultiPlayer5Master; - bool SuperScopeMaster; - bool MouseMaster; - - bool SuperFX; - bool DSP1Master; - bool SA1; - bool C4; - bool SDD1; - bool SPC7110; - bool SPC7110RTC; - bool OBC1; - uint8_t DSP; - - /* Sound options */ - uint32_t SoundPlaybackRate; -#ifdef USE_BLARGG_APU - uint32_t SoundInputRate; -#endif - bool TraceSoundDSP; - bool EightBitConsoleSound; /* due to caching, this needs S9xSetEightBitConsoleSound() */ - int32_t SoundBufferSize; - int32_t SoundMixInterval; - bool SoundEnvelopeHeightReading; - bool DisableSoundEcho; - bool DisableMasterVolume; - bool SoundSync; - bool InterpolatedSound; - bool ThreadSound; - bool Mute; - bool NextAPUEnabled; - - /* Others */ - bool ApplyCheats; - - /* Fixes for individual games */ - bool StarfoxHack; - bool WinterGold; - bool BS; /* Japanese Satellite System games. */ - bool JustifierMaster; - bool Justifier; - bool SecondJustifier; - int8_t SETA; - bool HardDisableAudio; -} SSettings; - -extern SSettings Settings; -extern SCPUState CPU; -extern char String [513]; - -void S9xSetPause(uint32_t mask); -void S9xClearPause(uint32_t mask); -#endif +#include "src/snes9x.h" +#include "src/soundux.h" +#include "src/memmap.h" +#include "src/apu.h" +#include "src/display.h" +#include "src/gfx.h" +#include "src/cpuexec.h" +#include "src/srtc.h" +#include "src/save.h" diff --git a/retro-core/components/snes9x/65c816.h b/retro-core/components/snes9x/src/65c816.h similarity index 100% rename from retro-core/components/snes9x/65c816.h rename to retro-core/components/snes9x/src/65c816.h diff --git a/retro-core/components/snes9x/LICENSE b/retro-core/components/snes9x/src/LICENSE similarity index 100% rename from retro-core/components/snes9x/LICENSE rename to retro-core/components/snes9x/src/LICENSE diff --git a/retro-core/components/snes9x/apu.c b/retro-core/components/snes9x/src/apu.c similarity index 100% rename from retro-core/components/snes9x/apu.c rename to retro-core/components/snes9x/src/apu.c diff --git a/retro-core/components/snes9x/apu.h b/retro-core/components/snes9x/src/apu.h similarity index 100% rename from retro-core/components/snes9x/apu.h rename to retro-core/components/snes9x/src/apu.h diff --git a/retro-core/components/snes9x/apu_blargg.c b/retro-core/components/snes9x/src/apu_blargg.c similarity index 100% rename from retro-core/components/snes9x/apu_blargg.c rename to retro-core/components/snes9x/src/apu_blargg.c diff --git a/retro-core/components/snes9x/apu_blargg.h b/retro-core/components/snes9x/src/apu_blargg.h similarity index 100% rename from retro-core/components/snes9x/apu_blargg.h rename to retro-core/components/snes9x/src/apu_blargg.h diff --git a/retro-core/components/snes9x/apumem.h b/retro-core/components/snes9x/src/apumem.h similarity index 100% rename from retro-core/components/snes9x/apumem.h rename to retro-core/components/snes9x/src/apumem.h diff --git a/retro-core/components/snes9x/blargg_endian.h b/retro-core/components/snes9x/src/blargg_endian.h similarity index 100% rename from retro-core/components/snes9x/blargg_endian.h rename to retro-core/components/snes9x/src/blargg_endian.h diff --git a/retro-core/components/snes9x/c4.c b/retro-core/components/snes9x/src/c4.c similarity index 100% rename from retro-core/components/snes9x/c4.c rename to retro-core/components/snes9x/src/c4.c diff --git a/retro-core/components/snes9x/c4.h b/retro-core/components/snes9x/src/c4.h similarity index 100% rename from retro-core/components/snes9x/c4.h rename to retro-core/components/snes9x/src/c4.h diff --git a/retro-core/components/snes9x/c4emu.c b/retro-core/components/snes9x/src/c4emu.c similarity index 100% rename from retro-core/components/snes9x/c4emu.c rename to retro-core/components/snes9x/src/c4emu.c diff --git a/retro-core/components/snes9x/clip.c b/retro-core/components/snes9x/src/clip.c similarity index 100% rename from retro-core/components/snes9x/clip.c rename to retro-core/components/snes9x/src/clip.c diff --git a/retro-core/components/snes9x/cpu.c b/retro-core/components/snes9x/src/cpu.c similarity index 100% rename from retro-core/components/snes9x/cpu.c rename to retro-core/components/snes9x/src/cpu.c diff --git a/retro-core/components/snes9x/cpuaddr.h b/retro-core/components/snes9x/src/cpuaddr.h similarity index 100% rename from retro-core/components/snes9x/cpuaddr.h rename to retro-core/components/snes9x/src/cpuaddr.h diff --git a/retro-core/components/snes9x/cpuexec.c b/retro-core/components/snes9x/src/cpuexec.c similarity index 100% rename from retro-core/components/snes9x/cpuexec.c rename to retro-core/components/snes9x/src/cpuexec.c diff --git a/retro-core/components/snes9x/cpuexec.h b/retro-core/components/snes9x/src/cpuexec.h similarity index 100% rename from retro-core/components/snes9x/cpuexec.h rename to retro-core/components/snes9x/src/cpuexec.h diff --git a/retro-core/components/snes9x/cpumacro.h b/retro-core/components/snes9x/src/cpumacro.h similarity index 100% rename from retro-core/components/snes9x/cpumacro.h rename to retro-core/components/snes9x/src/cpumacro.h diff --git a/retro-core/components/snes9x/cpuops.c b/retro-core/components/snes9x/src/cpuops.c similarity index 100% rename from retro-core/components/snes9x/cpuops.c rename to retro-core/components/snes9x/src/cpuops.c diff --git a/retro-core/components/snes9x/cpuops.h b/retro-core/components/snes9x/src/cpuops.h similarity index 100% rename from retro-core/components/snes9x/cpuops.h rename to retro-core/components/snes9x/src/cpuops.h diff --git a/retro-core/components/snes9x/display.h b/retro-core/components/snes9x/src/display.h similarity index 100% rename from retro-core/components/snes9x/display.h rename to retro-core/components/snes9x/src/display.h diff --git a/retro-core/components/snes9x/dma.c b/retro-core/components/snes9x/src/dma.c similarity index 100% rename from retro-core/components/snes9x/dma.c rename to retro-core/components/snes9x/src/dma.c diff --git a/retro-core/components/snes9x/dma.h b/retro-core/components/snes9x/src/dma.h similarity index 100% rename from retro-core/components/snes9x/dma.h rename to retro-core/components/snes9x/src/dma.h diff --git a/retro-core/components/snes9x/dsp1.c b/retro-core/components/snes9x/src/dsp1.c similarity index 100% rename from retro-core/components/snes9x/dsp1.c rename to retro-core/components/snes9x/src/dsp1.c diff --git a/retro-core/components/snes9x/dsp1.h b/retro-core/components/snes9x/src/dsp1.h similarity index 100% rename from retro-core/components/snes9x/dsp1.h rename to retro-core/components/snes9x/src/dsp1.h diff --git a/retro-core/components/snes9x/dsp1emu.c b/retro-core/components/snes9x/src/dsp1emu.c similarity index 100% rename from retro-core/components/snes9x/dsp1emu.c rename to retro-core/components/snes9x/src/dsp1emu.c diff --git a/retro-core/components/snes9x/dsp2emu.c b/retro-core/components/snes9x/src/dsp2emu.c similarity index 100% rename from retro-core/components/snes9x/dsp2emu.c rename to retro-core/components/snes9x/src/dsp2emu.c diff --git a/retro-core/components/snes9x/getset.c b/retro-core/components/snes9x/src/getset.c similarity index 100% rename from retro-core/components/snes9x/getset.c rename to retro-core/components/snes9x/src/getset.c diff --git a/retro-core/components/snes9x/gfx.c b/retro-core/components/snes9x/src/gfx.c similarity index 100% rename from retro-core/components/snes9x/gfx.c rename to retro-core/components/snes9x/src/gfx.c diff --git a/retro-core/components/snes9x/gfx.h b/retro-core/components/snes9x/src/gfx.h similarity index 100% rename from retro-core/components/snes9x/gfx.h rename to retro-core/components/snes9x/src/gfx.h diff --git a/retro-core/components/snes9x/globals.c b/retro-core/components/snes9x/src/globals.c similarity index 100% rename from retro-core/components/snes9x/globals.c rename to retro-core/components/snes9x/src/globals.c diff --git a/retro-core/components/snes9x/memmap.c b/retro-core/components/snes9x/src/memmap.c similarity index 100% rename from retro-core/components/snes9x/memmap.c rename to retro-core/components/snes9x/src/memmap.c diff --git a/retro-core/components/snes9x/memmap.h b/retro-core/components/snes9x/src/memmap.h similarity index 100% rename from retro-core/components/snes9x/memmap.h rename to retro-core/components/snes9x/src/memmap.h diff --git a/retro-core/components/snes9x/obc1.c b/retro-core/components/snes9x/src/obc1.c similarity index 100% rename from retro-core/components/snes9x/obc1.c rename to retro-core/components/snes9x/src/obc1.c diff --git a/retro-core/components/snes9x/obc1.h b/retro-core/components/snes9x/src/obc1.h similarity index 100% rename from retro-core/components/snes9x/obc1.h rename to retro-core/components/snes9x/src/obc1.h diff --git a/retro-core/components/snes9x/pixform.h b/retro-core/components/snes9x/src/pixform.h similarity index 100% rename from retro-core/components/snes9x/pixform.h rename to retro-core/components/snes9x/src/pixform.h diff --git a/retro-core/components/snes9x/port.h b/retro-core/components/snes9x/src/port.h similarity index 100% rename from retro-core/components/snes9x/port.h rename to retro-core/components/snes9x/src/port.h diff --git a/retro-core/components/snes9x/ppu.c b/retro-core/components/snes9x/src/ppu.c similarity index 100% rename from retro-core/components/snes9x/ppu.c rename to retro-core/components/snes9x/src/ppu.c diff --git a/retro-core/components/snes9x/ppu.h b/retro-core/components/snes9x/src/ppu.h similarity index 100% rename from retro-core/components/snes9x/ppu.h rename to retro-core/components/snes9x/src/ppu.h diff --git a/retro-core/components/snes9x/sar.h b/retro-core/components/snes9x/src/sar.h similarity index 100% rename from retro-core/components/snes9x/sar.h rename to retro-core/components/snes9x/src/sar.h diff --git a/retro-core/components/snes9x/save.c b/retro-core/components/snes9x/src/save.c similarity index 100% rename from retro-core/components/snes9x/save.c rename to retro-core/components/snes9x/src/save.c diff --git a/retro-core/components/snes9x/save.h b/retro-core/components/snes9x/src/save.h similarity index 100% rename from retro-core/components/snes9x/save.h rename to retro-core/components/snes9x/src/save.h diff --git a/retro-core/components/snes9x/src/snes9x.h b/retro-core/components/snes9x/src/snes9x.h new file mode 100644 index 00000000..b1da8810 --- /dev/null +++ b/retro-core/components/snes9x/src/snes9x.h @@ -0,0 +1,229 @@ +/* This file is part of Snes9x. See LICENSE file. */ + +#ifndef _SNES9X_H_ +#define _SNES9X_H_ + +#include +#include + +#include "port.h" +#include "65c816.h" + +#define ROM_NAME_LEN 22 + +/* SNES screen width and height */ +#define SNES_WIDTH 256 +#define SNES_HEIGHT 224 +#define SNES_HEIGHT_EXTENDED 239 + +#define SNES_SPRITE_TILE_PER_LINE 34 + +#define SNES_MAX_NTSC_VCOUNTER 262 +#define SNES_MAX_PAL_VCOUNTER 312 +#define SNES_HCOUNTER_MAX 341 +#define SPC700_TO_65C816_RATIO 2 +#define AUTO_FRAMERATE 200 + +/* NTSC master clock signal 21.47727MHz + * PPU: master clock / 4 + * 1 / PPU clock * 342 -> 63.695us + * 63.695us / (1 / 3.579545MHz) -> 228 cycles per scanline + * From Earth Worm Jim: APU executes an average of 65.14285714 cycles per + * scanline giving an APU clock speed of 1.022731096MHz */ + +/* PAL master clock signal 21.28137MHz + * PPU: master clock / 4 + * 1 / PPU clock * 342 -> 64.281us + * 64.281us / (1 / 3.546895MHz) -> 228 cycles per scanline. */ + +#define SNES_SCANLINE_TIME (63.695e-6) +#define SNES_CLOCK_SPEED (3579545u) + +#define SNES_CLOCK_LEN (1.0 / SNES_CLOCK_SPEED) + +#define SNES_CYCLES_PER_SCANLINE ((uint32_t) ((SNES_SCANLINE_TIME / SNES_CLOCK_LEN) * 6 + 0.5)) + +#ifdef SNES_OVERCLOCK_CYCLES +#define ONE_CYCLE (overclock_cycles ? one_c : 6u) +#define SLOW_ONE_CYCLE (overclock_cycles ? slow_one_c : 8u) +#define TWO_CYCLES (overclock_cycles ? two_c : 12u) +#else +#define ONE_CYCLE (6u) +#define SLOW_ONE_CYCLE (8u) +#define TWO_CYCLES (12u) +#endif + +#define SNES_TR_MASK (1u << 4) +#define SNES_TL_MASK (1u << 5) +#define SNES_X_MASK (1u << 6) +#define SNES_A_MASK (1u << 7) +#define SNES_RIGHT_MASK (1u << 8) +#define SNES_LEFT_MASK (1u << 9) +#define SNES_DOWN_MASK (1u << 10) +#define SNES_UP_MASK (1u << 11) +#define SNES_START_MASK (1u << 12) +#define SNES_SELECT_MASK (1u << 13) +#define SNES_Y_MASK (1u << 14) +#define SNES_B_MASK (1u << 15) + +extern bool overclock_cycles; +extern int one_c, slow_one_c, two_c; + +enum +{ + SNES_MULTIPLAYER5, + SNES_JOYPAD, + SNES_MOUSE, + SNES_SUPERSCOPE, + SNES_JUSTIFIER, + SNES_JUSTIFIER_2, + SNES_MAX_CONTROLLER_OPTIONS +}; + +#define DEBUG_MODE_FLAG (1u << 0) +#define TRACE_FLAG (1u << 1) +#define SINGLE_STEP_FLAG (1u << 2) +#define BREAK_FLAG (1u << 3) +#define SCAN_KEYS_FLAG (1u << 4) +#define SAVE_SNAPSHOT_FLAG (1u << 5) +#define DELAYED_NMI_FLAG (1u << 6) +#define NMI_FLAG (1u << 7) +#define PROCESS_SOUND_FLAG (1u << 8) +#define FRAME_ADVANCE_FLAG (1u << 9) +#define DELAYED_NMI_FLAG2 (1u << 10) +#define IRQ_PENDING_FLAG (1u << 11) + +typedef struct +{ + uint32_t Flags; + bool BranchSkip; + bool NMIActive; + uint8_t IRQActive; + bool WaitingForInterrupt; + bool InDMA; + uint8_t WhichEvent; + uint8_t* PC; + uint8_t* PCBase; + uint8_t* PCAtOpcodeStart; + uint8_t* WaitAddress; + uint32_t WaitCounter; + long Cycles; /* For savestate compatibility can't change to int32_t */ + long NextEvent; /* For savestate compatibility can't change to int32_t */ + long V_Counter; /* For savestate compatibility can't change to int32_t */ + long MemSpeed; /* For savestate compatibility can't change to int32_t */ + long MemSpeedx2; /* For savestate compatibility can't change to int32_t */ + long FastROMSpeed; /* For savestate compatibility can't change to int32_t */ + uint32_t SaveStateVersion; + bool SRAMModified; + uint32_t NMITriggerPoint; + bool UNUSED2; + bool TriedInterleavedMode2; + uint32_t NMICycleCount; + uint32_t IRQCycleCount; +} SCPUState; + +#define HBLANK_START_EVENT 0u +#define HBLANK_END_EVENT 1u +#define HTIMER_BEFORE_EVENT 2u +#define HTIMER_AFTER_EVENT 3u +#define NO_EVENT 4u + +typedef struct +{ + /* CPU options */ + bool APUEnabled; + bool Shutdown; + int32_t H_Max; + int32_t HBlankStart; + int32_t CyclesPercentage; + bool DisableIRQ; + + /* Joystick options */ + bool JoystickEnabled; + + /* ROM timing options (see also H_Max above) */ + bool ForcePAL; + bool ForceNTSC; + bool PAL; + uint32_t FrameTimePAL; + uint32_t FrameTimeNTSC; + uint32_t FrameTime; + + /* ROM image options */ + bool ForceLoROM; + bool ForceHiROM; + bool ForceHeader; + bool ForceNoHeader; + bool ForceInterleaved; + bool ForceInterleaved2; + bool ForceNotInterleaved; + + /* Peripheral options */ + bool ForceSuperFX; + bool ForceNoSuperFX; + bool ForceDSP1; + bool ForceNoDSP1; + bool ForceSA1; + bool ForceNoSA1; + bool ForceC4; + bool ForceNoC4; + bool ForceSDD1; + bool ForceNoSDD1; + bool MultiPlayer5; + bool Mouse; + bool SuperScope; + bool SRTC; + uint32_t ControllerOption; + bool MultiPlayer5Master; + bool SuperScopeMaster; + bool MouseMaster; + + bool SuperFX; + bool DSP1Master; + bool SA1; + bool C4; + bool SDD1; + bool SPC7110; + bool SPC7110RTC; + bool OBC1; + uint8_t DSP; + + /* Sound options */ + uint32_t SoundPlaybackRate; +#ifdef USE_BLARGG_APU + uint32_t SoundInputRate; +#endif + bool TraceSoundDSP; + bool EightBitConsoleSound; /* due to caching, this needs S9xSetEightBitConsoleSound() */ + int32_t SoundBufferSize; + int32_t SoundMixInterval; + bool SoundEnvelopeHeightReading; + bool DisableSoundEcho; + bool DisableMasterVolume; + bool SoundSync; + bool InterpolatedSound; + bool ThreadSound; + bool Mute; + bool NextAPUEnabled; + + /* Others */ + bool ApplyCheats; + + /* Fixes for individual games */ + bool StarfoxHack; + bool WinterGold; + bool BS; /* Japanese Satellite System games. */ + bool JustifierMaster; + bool Justifier; + bool SecondJustifier; + int8_t SETA; + bool HardDisableAudio; +} SSettings; + +extern SSettings Settings; +extern SCPUState CPU; +extern char String [513]; + +void S9xSetPause(uint32_t mask); +void S9xClearPause(uint32_t mask); +#endif diff --git a/retro-core/components/snes9x/soundux.c b/retro-core/components/snes9x/src/soundux.c similarity index 100% rename from retro-core/components/snes9x/soundux.c rename to retro-core/components/snes9x/src/soundux.c diff --git a/retro-core/components/snes9x/soundux.h b/retro-core/components/snes9x/src/soundux.h similarity index 100% rename from retro-core/components/snes9x/soundux.h rename to retro-core/components/snes9x/src/soundux.h diff --git a/retro-core/components/snes9x/spc700.c b/retro-core/components/snes9x/src/spc700.c similarity index 100% rename from retro-core/components/snes9x/spc700.c rename to retro-core/components/snes9x/src/spc700.c diff --git a/retro-core/components/snes9x/spc700.h b/retro-core/components/snes9x/src/spc700.h similarity index 100% rename from retro-core/components/snes9x/spc700.h rename to retro-core/components/snes9x/src/spc700.h diff --git a/retro-core/components/snes9x/srtc.c b/retro-core/components/snes9x/src/srtc.c similarity index 100% rename from retro-core/components/snes9x/srtc.c rename to retro-core/components/snes9x/src/srtc.c diff --git a/retro-core/components/snes9x/srtc.h b/retro-core/components/snes9x/src/srtc.h similarity index 100% rename from retro-core/components/snes9x/srtc.h rename to retro-core/components/snes9x/src/srtc.h diff --git a/retro-core/components/snes9x/tile.c b/retro-core/components/snes9x/src/tile.c similarity index 100% rename from retro-core/components/snes9x/tile.c rename to retro-core/components/snes9x/src/tile.c diff --git a/retro-core/components/snes9x/tile.h b/retro-core/components/snes9x/src/tile.h similarity index 100% rename from retro-core/components/snes9x/tile.h rename to retro-core/components/snes9x/src/tile.h diff --git a/retro-core/main/main_snes.c b/retro-core/main/main_snes.c index 9369784e..f267079e 100644 --- a/retro-core/main/main_snes.c +++ b/retro-core/main/main_snes.c @@ -1,22 +1,9 @@ -#include -#include -#include -#include -#include +#include "shared.h" + +#include #include -#include "../components/snes9x/snes9x.h" -#include "../components/snes9x/soundux.h" -#include "../components/snes9x/memmap.h" -#include "../components/snes9x/apu.h" -#include "../components/snes9x/display.h" -#include "../components/snes9x/gfx.h" -#include "../components/snes9x/cpuexec.h" -#include "../components/snes9x/srtc.h" -#include "../components/snes9x/save.h" - #include "keymap_snes.h" -#include "shared.h" #define AUDIO_LOW_PASS_RANGE ((60 * 65536) / 100)