Update to bsnes v063r03 release.

Extremely substantial code structure changes this time. Probably the
most in four years.

All of the SNES core now resides in src/snes, and the contents of
system have been unrolled into this directory as well. This folder
gets its own Makefile now, and some special build commands, "make
library" and "make install-library". This creates static and dynamic
link libraries of the core, completely devoid of Qt, ruby, the GUI,
etc.

There's a new module as well, src/snes/libsnes. This is a C interface
that will let you initialize and control the bsnes core without the
need for anything more than a 1KB header file.

To test this, I've created a UI fork, ui_sdl. Very very simple, 2KB,
nothing there at all really, it just boots up Zelda 3 and runs it
directly with keyboard input support and video only. The important
point here is that the ui_sdl project does not reference the core, or
ruby, or Qt, or anything else, and is fully C++98 (though it could
also be C89 if desired.)

Now I'm being a bit lazy and using the compiled objects directly, but
it'd be just as easy to replace them with a library include directive,
or even dynamically link against the shared library and use an
entirely different language.

It's not actually my goal to make a C++ SDL port, what I really want
to do is make a port using Ruby only. May not be so easy, we'll have
to see how one accesses shared libraries in it.

The main src/Makefile was also simplified for the sake of supporting
non-Qt code. All of the Qt and ruby references were moved into the
src/ui_qt/Makefile.

I fixed up aDSP to compile again, but you still have to manually
comment out sDSP and comment in aDSP. Doing so will net you a 6-12%
speedup at the cost of some accuracy.

Lastly, I added a workaround for the Battletech 3050 splash screen.
This commit is contained in:
byuu 2010-04-02 15:22:04 +00:00
parent 9995876bc5
commit 9614275b34
237 changed files with 853 additions and 540 deletions

BIN
bsnes.exe

Binary file not shown.

View File

@ -1,17 +1,12 @@
include lib/nall/Makefile
ui := ui_qt
qtlibs := $(strip QtCore QtGui $(if $(findstring osx,$(platform)),QtOpenGL))
include lib/nall/qt/Makefile
################
### compiler ###
################
c := $(compiler) --std=gnu99
cpp := $(subst cc,++,$(compiler)) -std=gnu++0x
flags := -O3 -fomit-frame-pointer -Ilib
link :=
# compiler
c := $(compiler) --std=gnu99
cpp := $(subst cc,++,$(compiler)) -std=gnu++0x
flags := -O3 -fomit-frame-pointer -I. -Ilib
link :=
objects :=
# profile-guided instrumentation:
# flags += -fprofile-generate
@ -20,75 +15,20 @@ link :=
# profile-guided optimization:
# flags += -fprofile-use
################
### platform ###
################
# platform
ifeq ($(platform),x)
link += -s -ldl -lX11 -lXext
ruby := video.glx video.xv video.qtraster video.sdl
ruby += audio.alsa audio.openal audio.oss audio.pulseaudio audio.pulseaudiosimple audio.ao
ruby += input.sdl input.x
link += $(if $(findstring audio.openal,$(ruby)),-lopenal)
else ifeq ($(platform),osx)
ruby := video.qtopengl video.qtraster
ruby += audio.openal
ruby += input.carbon
link += $(if $(findstring audio.openal,$(ruby)),-framework OpenAL)
else ifeq ($(platform),win)
link += -mwindows -mthreads
# link += -mconsole -mthreads
link += -s -luuid -lkernel32 -luser32 -lgdi32 -lshell32
link += -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
ruby := video.direct3d video.wgl video.directdraw video.gdi video.qtraster
ruby += audio.directsound
ruby += input.rawinput input.directinput
link += $(if $(findstring audio.openal,$(ruby)),-lopenal32)
else
unknown_platform: help;
endif
############
### ruby ###
############
rubyflags := $(if $(finstring .sdl,$(ruby)),`sdl-config --cflags`)
rubyflags += $(if $(findstring .qt,$(ruby)),$(qtinc))
link += $(if $(findstring .sdl,$(ruby)),`sdl-config --libs`)
link += $(if $(findstring video.direct3d,$(ruby)),-ld3d9)
link += $(if $(findstring video.directdraw,$(ruby)),-lddraw)
link += $(if $(findstring video.glx,$(ruby)),-lGL)
link += $(if $(findstring video.wgl,$(ruby)),-lopengl32)
link += $(if $(findstring video.xv,$(ruby)),-lXv)
link += $(if $(findstring audio.alsa,$(ruby)),-lasound)
link += $(if $(findstring audio.ao,$(ruby)),-lao)
link += $(if $(findstring audio.directsound,$(ruby)),-ldsound)
link += $(if $(findstring audio.pulseaudio,$(ruby)),-lpulse)
link += $(if $(findstring audio.pulseaudiosimple,$(ruby)),-lpulse-simple)
link += $(if $(findstring input.directinput,$(ruby)),-ldinput8 -ldxguid)
link += $(if $(findstring input.rawinput,$(ruby)),-ldinput8 -ldxguid)
###############
### objects ###
###############
objects := libco ruby
objects += system cartridge cheat
objects += memory smemory cpu cpucore scpu smp smpcore ssmp dsp sdsp ppu bppu
objects += supergameboy superfx sa1
objects += bsx srtc sdd1 spc7110 cx4 dsp1 dsp2 dsp3 dsp4 obc1 st0010 st0011 st0018
objects += msu1
######################
### implicit rules ###
######################
# implicit rules
compile = \
$(strip \
$(if $(filter %.c,$<), \
@ -103,95 +43,12 @@ compile = \
all: build;
include snes/Makefile
include $(ui)/Makefile
objects := $(patsubst %,obj/%.o,$(objects))
rubydef := $(foreach c,$(subst .,_,$(call strupper,$(ruby))),-D$c)
#################
### libraries ###
#################
obj/ruby.o: lib/ruby/ruby.cpp $(call rwildcard,lib/ruby/*)
$(call compile,$(rubydef) $(rubyflags))
obj/libco.o: lib/libco/libco.c lib/libco/*
#################
### utilities ###
#################
obj/cartridge.o: cartridge/cartridge.cpp cartridge/*
obj/cheat.o : cheat/cheat.cpp cheat/*
##############
### memory ###
##############
obj/memory.o : memory/memory.cpp memory/*
obj/smemory.o: memory/smemory/smemory.cpp $(call rwildcard,memory/smemory/)
###########
### cpu ###
###########
obj/cpu.o : cpu/cpu.cpp cpu/*
obj/cpucore.o: cpu/core/core.cpp $(call rwildcard,cpu/core/)
obj/scpu.o : cpu/scpu/scpu.cpp $(call rwildcard,cpu/scpu/)
###########
### smp ###
###########
obj/smp.o : smp/smp.cpp smp/*
obj/smpcore.o: smp/core/core.cpp $(call rwildcard,smp/core/)
obj/ssmp.o : smp/ssmp/ssmp.cpp $(call rwildcard,smp/ssmp/)
###########
### dsp ###
###########
obj/dsp.o : dsp/dsp.cpp dsp/*
obj/adsp.o: dsp/adsp/adsp.cpp dsp/adsp/*
obj/sdsp.o: dsp/sdsp/sdsp.cpp dsp/sdsp/*
###########
### ppu ###
###########
obj/ppu.o : ppu/ppu.cpp ppu/*
obj/bppu.o: ppu/bppu/bppu.cpp $(call rwildcard,ppu/bppu/)
##############
### system ###
##############
obj/system.o: system/system.cpp $(call rwildcard,system/)
#####################
### special chips ###
#####################
obj/supergameboy.o: chip/supergameboy/supergameboy.cpp $(call rwildcard,chip/supergameboy/)
obj/superfx.o : chip/superfx/superfx.cpp $(call rwildcard,chip/superfx/)
obj/sa1.o : chip/sa1/sa1.cpp $(call rwildcard,chip/sa1/)
obj/bsx.o : chip/bsx/bsx.cpp chip/bsx/*
obj/srtc.o : chip/srtc/srtc.cpp chip/srtc/*
obj/sdd1.o : chip/sdd1/sdd1.cpp chip/sdd1/*
obj/spc7110.o : chip/spc7110/spc7110.cpp chip/spc7110/*
obj/cx4.o : chip/cx4/cx4.cpp chip/cx4/*
obj/dsp1.o : chip/dsp1/dsp1.cpp chip/dsp1/*
obj/dsp2.o : chip/dsp2/dsp2.cpp chip/dsp2/*
obj/dsp3.o : chip/dsp3/dsp3.cpp chip/dsp3/*
obj/dsp4.o : chip/dsp4/dsp4.cpp chip/dsp4/*
obj/obc1.o : chip/obc1/obc1.cpp chip/obc1/*
obj/st0010.o : chip/st0010/st0010.cpp chip/st0010/*
obj/st0011.o : chip/st0011/st0011.cpp chip/st0011/*
obj/st0018.o : chip/st0018/st0018.cpp chip/st0018/*
obj/msu1.o : chip/msu1/msu1.cpp chip/msu1/*
###############
### targets ###
###############
# targets
build: ui_build $(objects)
ifeq ($(platform),osx)
test -d ../bsnes.app || mkdir -p ../bsnes.app/Contents/MacOS
@ -201,20 +58,30 @@ else
endif
install:
ifeq ($(platform),x)
install -D -m 755 ../bsnes $(DESTDIR)$(prefix)/bin/bsnes
install -D -m 644 data/bsnes.png $(DESTDIR)$(prefix)/share/pixmaps/bsnes.png
install -D -m 644 data/bsnes.desktop $(DESTDIR)$(prefix)/share/applications/bsnes.desktop
endif
uninstall:
ifeq ($(platform),x)
rm $(DESTDIR)$(prefix)/bin/bsnes
rm $(DESTDIR)$(prefix)/share/pixmaps/bsnes.png
rm $(DESTDIR)$(prefix)/share/applications/bsnes.desktop
endif
clean: ui_clean
-@$(call delete,obj/*.o)
-@$(call delete,obj/*.a)
-@$(call delete,obj/*.so)
-@$(call delete,obj/*.dylib)
-@$(call delete,obj/*.dll)
-@$(call delete,*.res)
-@$(call delete,*.pgd)
-@$(call delete,*.pgc)
-@$(call delete,*.ilk)
-@$(call delete,*.pdb)
-@$(call delete,*.manifest)
help:;

View File

@ -1,38 +0,0 @@
static const char bsnesVersion[] = "063.02";
static const char bsnesTitle[] = "bsnes";
static const unsigned bsnesSerializerVersion = 9;
//S-DSP can be encapsulated into a state machine using #define magic
//this avoids ~2.048m co_switch() calls per second (~5% speedup)
#define DSP_STATE_MACHINE
//game genie + pro action replay code support (~2% speed hit)
#define CHEAT_SYSTEM
//enable debugging extensions (~15% speed hit)
//#define DEBUGGER
#include <libco/libco.h>
#include <nall/algorithm.hpp>
#include <nall/any.hpp>
#include <nall/array.hpp>
#include <nall/bit.hpp>
#include <nall/detect.hpp>
#include <nall/dl.hpp>
#include <nall/endian.hpp>
#include <nall/file.hpp>
#include <nall/foreach.hpp>
#include <nall/function.hpp>
#include <nall/moduloarray.hpp>
#include <nall/platform.hpp>
#include <nall/priorityqueue.hpp>
#include <nall/property.hpp>
#include <nall/serializer.hpp>
#include <nall/stdint.hpp>
#include <nall/string.hpp>
#include <nall/utility.hpp>
#include <nall/vector.hpp>
using namespace nall;
#include "interface.hpp"

View File

@ -1,17 +0,0 @@
#include "supergameboy/supergameboy.hpp"
#include "superfx/superfx.hpp"
#include "sa1/sa1.hpp"
#include "bsx/bsx.hpp"
#include "srtc/srtc.hpp"
#include "sdd1/sdd1.hpp"
#include "spc7110/spc7110.hpp"
#include "cx4/cx4.hpp"
#include "dsp1/dsp1.hpp"
#include "dsp2/dsp2.hpp"
#include "dsp3/dsp3.hpp"
#include "dsp4/dsp4.hpp"
#include "obc1/obc1.hpp"
#include "st0010/st0010.hpp"
#include "st0011/st0011.hpp"
#include "st0018/st0018.hpp"
#include "msu1/msu1.hpp"

View File

@ -1,174 +0,0 @@
class aDSP : public DSP {
private:
uint8 dspram[128];
uint8 *spcram;
uint32 dsp_counter;
enum { BRR_END = 1, BRR_LOOP = 2 };
uint8 readb (uint16 addr);
uint16 readw (uint16 addr);
void writeb(uint16 addr, uint8 data);
void writew(uint16 addr, uint16 data);
public:
static const uint16 rate_table[32];
static const int16 gaussian_table[512];
enum EnvelopeStates {
ATTACK,
DECAY,
SUSTAIN,
RELEASE,
SILENCE
};
enum EnvelopeModes {
DIRECT,
LINEAR_DEC,
EXP_DEC,
LINEAR_INC,
BENT_INC,
FAST_ATTACK,
RELEASE_DEC
};
private:
struct Status {
//$0c,$1c
int8 MVOLL, MVOLR;
//$2c,$3c
int8 EVOLL, EVOLR;
//$4c,$5c
uint8 KON, KOFF;
//$6c
uint8 FLG;
//$7c
uint8 ENDX;
//$0d
int8 EFB;
//$2d,$3d,$4d
uint8 PMON, NON, EON;
//$5d
uint8 DIR;
//$6d,$7d
uint8 ESA, EDL;
//$xf
int8 FIR[8];
//internal variables
uint8 kon, esa;
int16 noise_ctr, noise_rate;
uint16 noise_sample;
uint16 echo_index, echo_length;
int16 fir_buffer[2][8];
uint8 fir_buffer_index;
//functions
bool soft_reset() { return !!(FLG & 0x80); }
bool mute() { return !!(FLG & 0x40); }
bool echo_write() { return !(FLG & 0x20); }
} status;
struct Voice {
//$x0-$x1
int8 VOLL, VOLR;
//$x2-$x3
int16 PITCH;
//$x4
uint8 SRCN;
//$x5-$x7
uint8 ADSR1, ADSR2, GAIN;
//$x8-$x9
uint8 ENVX, OUTX;
//internal variables
int16 pitch_ctr;
int8 brr_index;
uint16 brr_ptr;
uint8 brr_header;
bool brr_looped;
int16 brr_data[4];
uint8 brr_data_index;
int16 envx;
uint16 env_ctr, env_rate, env_sustain;
enum EnvelopeStates env_state;
enum EnvelopeModes env_mode;
int16 outx;
//functions
int16 pitch_rate() { return PITCH & 0x3fff; }
uint8 brr_header_shift() { return brr_header >> 4; }
uint8 brr_header_filter() { return (brr_header >> 2) & 3; }
uint8 brr_header_flags() { return brr_header & 3; }
bool ADSR_enabled() { return !!(ADSR1 & 0x80); }
uint8 ADSR_decay() { return (ADSR1 >> 4) & 7; }
uint8 ADSR_attack() { return ADSR1 & 15; }
uint8 ADSR_sus_level() { return ADSR2 >> 5; }
uint8 ADSR_sus_rate() { return ADSR2 & 31; }
void AdjustEnvelope() {
if(env_state == SILENCE) {
env_mode = DIRECT;
env_rate = 0;
envx = 0;
} else if(env_state == RELEASE) {
env_mode = RELEASE_DEC;
env_rate = 0x7800;
} else if(ADSR_enabled()) {
switch(env_state) {
case ATTACK:
env_rate = rate_table[(ADSR_attack() << 1) + 1];
env_mode = (env_rate == 0x7800) ? FAST_ATTACK : LINEAR_INC;
break;
case DECAY:
env_rate = rate_table[(ADSR_decay() << 1) + 0x10];
env_mode = EXP_DEC;
break;
case SUSTAIN:
env_rate = rate_table[ADSR_sus_rate()];
env_mode = (env_rate == 0) ? DIRECT : EXP_DEC;
break;
}
} else if(GAIN & 0x80) {
switch(GAIN & 0x60) {
case 0x00: env_mode = LINEAR_DEC; break;
case 0x20: env_mode = EXP_DEC; break;
case 0x40: env_mode = LINEAR_INC; break;
case 0x60: env_mode = BENT_INC; break;
}
env_rate = rate_table[GAIN & 0x1f];
} else {
env_mode = DIRECT;
env_rate = 0;
envx = (GAIN & 0x7f) << 4;
}
}
} voice[8];
public:
void enter();
void run();
uint8 read (uint8 addr);
void write(uint8 addr, uint8 data);
void power();
void reset();
aDSP();
~aDSP();
};
extern aDSP dsp;

View File

@ -1,53 +0,0 @@
#ifdef DEBUGGER
#define debugvirtual virtual
#else
#define debugvirtual
#endif
namespace SNES {
typedef int8_t int8;
typedef int16_t int16;
typedef int32_t int32;
typedef int64_t int64;
typedef uint8_t uint8;
typedef uint16_t uint16;
typedef uint32_t uint32;
typedef uint64_t uint64;
struct ChipDebugger {
virtual bool property(unsigned id, string &name, string &value) = 0;
};
#include "memory/memory.hpp"
#include "memory/smemory/smemory.hpp"
#include "ppu/ppu.hpp"
#include "ppu/bppu/bppu.hpp"
#include "cpu/cpu.hpp"
#include "cpu/core/core.hpp"
#include "cpu/scpu/scpu.hpp"
#include "smp/smp.hpp"
#include "smp/core/core.hpp"
#include "smp/ssmp/ssmp.hpp"
#include "dsp/dsp.hpp"
#include "dsp/sdsp/sdsp.hpp"
#include "system/system.hpp"
#include "chip/chip.hpp"
#include "cartridge/cartridge.hpp"
#include "cheat/cheat.hpp"
#include "memory/memory-inline.hpp"
#include "ppu/ppu-inline.hpp"
#include "cheat/cheat-inline.hpp"
}
namespace nall {
template<> struct has_size<SNES::MappedRAM> { enum { value = true }; };
template<> struct has_size<SNES::StaticRAM> { enum { value = true }; };
}
#undef debugvirtual

87
src/snes/Makefile Normal file
View File

@ -0,0 +1,87 @@
snes_objects := libco
snes_objects += snes-system
snes_objects += snes-cartridge snes-cheat
snes_objects += snes-cpu snes-cpucore snes-scpu
snes_objects += snes-smp snes-smpcore snes-ssmp
snes_objects += snes-dsp snes-sdsp snes-adsp
snes_objects += snes-ppu snes-bppu
snes_objects += snes-memory snes-smemory
snes_objects += snes-supergameboy snes-superfx snes-sa1
snes_objects += snes-bsx snes-srtc snes-sdd1 snes-spc7110
snes_objects += snes-cx4 snes-dsp1 snes-dsp2 snes-dsp3 snes-dsp4
snes_objects += snes-obc1 snes-st0010 snes-st0011 snes-st0018 snes-msu1
objects += $(snes_objects)
# libco
obj/libco.o: lib/libco/libco.c lib/libco/*
# system
obj/snes-system.o: snes/system/system.cpp $(call rwildcard,snes/system/)
# cpu
obj/snes-cpu.o : snes/cpu/cpu.cpp snes/cpu/*
obj/snes-cpucore.o: snes/cpu/core/core.cpp $(call rwildcard,snes/cpu/core/)
obj/snes-scpu.o : snes/cpu/scpu/scpu.cpp $(call rwildcard,snes/cpu/scpu/)
# smp
obj/snes-smp.o : snes/smp/smp.cpp snes/smp/*
obj/snes-smpcore.o: snes/smp/core/core.cpp $(call rwildcard,snes/smp/core/)
obj/snes-ssmp.o : snes/smp/ssmp/ssmp.cpp $(call rwildcard,snes/smp/ssmp/)
# dsp
obj/snes-dsp.o : snes/dsp/dsp.cpp snes/dsp/*
obj/snes-sdsp.o: snes/dsp/sdsp/sdsp.cpp snes/dsp/sdsp/*
obj/snes-adsp.o: snes/dsp/adsp/adsp.cpp snes/dsp/adsp/*
# ppu
obj/snes-ppu.o : snes/ppu/ppu.cpp snes/ppu/*
obj/snes-bppu.o: snes/ppu/bppu/bppu.cpp $(call rwildcard,snes/ppu/bppu/)
# utilities
obj/snes-cartridge.o: snes/cartridge/cartridge.cpp snes/cartridge/*
obj/snes-cheat.o : snes/cheat/cheat.cpp snes/cheat/*
# memory
obj/snes-memory.o : snes/memory/memory.cpp snes/memory/*
obj/snes-smemory.o: snes/memory/smemory/smemory.cpp $(call rwildcard,snes/memory/smemory/)
# special chips
obj/snes-supergameboy.o: snes/chip/supergameboy/supergameboy.cpp $(call rwildcard,snes/chip/supergameboy/)
obj/snes-superfx.o : snes/chip/superfx/superfx.cpp $(call rwildcard,snes/chip/superfx/)
obj/snes-sa1.o : snes/chip/sa1/sa1.cpp $(call rwildcard,snes/chip/sa1/)
obj/snes-bsx.o : snes/chip/bsx/bsx.cpp snes/chip/bsx/*
obj/snes-srtc.o : snes/chip/srtc/srtc.cpp snes/chip/srtc/*
obj/snes-sdd1.o : snes/chip/sdd1/sdd1.cpp snes/chip/sdd1/*
obj/snes-spc7110.o : snes/chip/spc7110/spc7110.cpp snes/chip/spc7110/*
obj/snes-cx4.o : snes/chip/cx4/cx4.cpp snes/chip/cx4/*
obj/snes-dsp1.o : snes/chip/dsp1/dsp1.cpp snes/chip/dsp1/*
obj/snes-dsp2.o : snes/chip/dsp2/dsp2.cpp snes/chip/dsp2/*
obj/snes-dsp3.o : snes/chip/dsp3/dsp3.cpp snes/chip/dsp3/*
obj/snes-dsp4.o : snes/chip/dsp4/dsp4.cpp snes/chip/dsp4/*
obj/snes-obc1.o : snes/chip/obc1/obc1.cpp snes/chip/obc1/*
obj/snes-st0010.o : snes/chip/st0010/st0010.cpp snes/chip/st0010/*
obj/snes-st0011.o : snes/chip/st0011/st0011.cpp snes/chip/st0011/*
obj/snes-st0018.o : snes/chip/st0018/st0018.cpp snes/chip/st0018/*
obj/snes-msu1.o : snes/chip/msu1/msu1.cpp snes/chip/msu1/*
# library
snes_objects := $(patsubst %,obj/%.o,$(snes_objects))
library: $(snes_objects)
ifeq ($(platform),x)
ar rcs obj/libsnes.a $(snes_objects)
$(cpp) -o obj/libsnes.so -shared -Wl,-soname,libsnes.so.1 $(snes_objects)
else ifeq ($(platform),osx)
ar rcs obj/libsnes.a $(snes_objects)
$(cpp) -o obj/libsnes.dylib -shared -dynamiclib $(snes_objects)
else ifeq ($(platform),win)
$(cpp) -o obj/snes.dll -shared -Wl,--out-implib,libsnes.a $(snes_objects)
endif
install-library:
ifeq ($(platform),x)
install -D -m 755 obj/libsnes.a $(DESTDIR)$(prefix)/lib
install -D -m 755 obj/libsnes.so $(DESTDIR)$(prefix)/lib
ldconfig -n $(DESTDIR)$(prefix)/lib
else ifeq ($(platform),osx)
cp obj/libsnes.dylib /usr/local/lib/libsnes.dylib
endif

View File

@ -1,4 +1,5 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#include <nall/crc32.hpp>
#include <nall/sha256.hpp>

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define CHEAT_CPP
namespace SNES {

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define BSX_CPP
namespace SNES {
@ -6,5 +6,5 @@ namespace SNES {
#include "bsx_base.cpp"
#include "bsx_cart.cpp"
#include "bsx_flash.cpp"
};
};

17
src/snes/chip/chip.hpp Normal file
View File

@ -0,0 +1,17 @@
#include <snes/chip/supergameboy/supergameboy.hpp>
#include <snes/chip/superfx/superfx.hpp>
#include <snes/chip/sa1/sa1.hpp>
#include <snes/chip/bsx/bsx.hpp>
#include <snes/chip/srtc/srtc.hpp>
#include <snes/chip/sdd1/sdd1.hpp>
#include <snes/chip/spc7110/spc7110.hpp>
#include <snes/chip/cx4/cx4.hpp>
#include <snes/chip/dsp1/dsp1.hpp>
#include <snes/chip/dsp2/dsp2.hpp>
#include <snes/chip/dsp3/dsp3.hpp>
#include <snes/chip/dsp4/dsp4.hpp>
#include <snes/chip/obc1/obc1.hpp>
#include <snes/chip/st0010/st0010.hpp>
#include <snes/chip/st0011/st0011.hpp>
#include <snes/chip/st0018/st0018.hpp>
#include <snes/chip/msu1/msu1.hpp>

View File

@ -4,7 +4,7 @@
//Used in Rockman X2/X3 (Megaman X2/X3)
//Portions (c) anomie, Overload, zsKnight, Nach, byuu
#include <../base.hpp>
#include <snes/snes.hpp>
#define CX4_CPP
namespace SNES {

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define DSP1_CPP
namespace SNES {

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define DSP2_CPP
namespace SNES {

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define DSP3_CPP
namespace SNES {
@ -37,4 +37,4 @@ void DSP3::write(unsigned addr, uint8 data) {
DSP3i::DSP3SetByte();
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define DSP4_CPP
namespace SNES {
@ -57,4 +57,4 @@ void DSP4::write(unsigned addr, uint8 data) {
}
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define MSU1_CPP
namespace SNES {

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define OBC1_CPP
namespace SNES {
@ -79,4 +79,4 @@ void OBC1::ram_write(unsigned addr, uint8 data) {
OBC1::OBC1() {}
OBC1::~OBC1() {}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define SA1_CPP
namespace SNES {
@ -323,4 +323,4 @@ void SA1::reset() {
SA1::SA1() {
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define SDD1_CPP
namespace SNES {
@ -151,4 +151,4 @@ SDD1::SDD1() {
SDD1::~SDD1() {
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define SPC7110_CPP
namespace SNES {
@ -679,4 +679,4 @@ void SPC7110RAM::write(unsigned addr, uint8 data) {
if(spc7110.r4830 & 0x80) memory::cartram.write(addr & 0x1fff, data);
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define SRTC_CPP
namespace SNES {
@ -228,4 +228,4 @@ void SRTC::mmio_write(unsigned addr, uint8 data) {
SRTC::SRTC() {
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define ST0010_CPP
namespace SNES {
@ -90,4 +90,4 @@ void ST0010::write(unsigned addr, uint8 data) {
}
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define ST0011_CPP
namespace SNES {
@ -17,4 +17,4 @@ void ST0011::power() {
void ST0011::reset() {
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define ST0018_CPP
namespace SNES {
@ -120,4 +120,4 @@ void ST0018::op_query_chip() {
regs.r3800 = 0x00;
}
};
}

View File

@ -1,4 +1,4 @@
#include <../base.hpp>
#include <snes/snes.hpp>
#define SUPERFX_CPP
namespace SNES {

Some files were not shown because too many files have changed in this diff Show More