From 386ac87d21d14fafd15162d480a111209c9955ba Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Thu, 8 Mar 2012 00:29:38 +1100 Subject: [PATCH] Update to v087 release. byuu says: This release adds ST018 emulation. As this was the final unsupported SNES coprocessor, this means that bsnes v087 is the first SNES emulator to be able to claim 100% known compatibility with all officially released games. And it does this with absolutely no hacks. Again, I really have to stress the word known. No emulator is perfect. No emulator ever really can be perfect for a system of this complexity. The concept doesn't even really exist, since every SNES behaves subtly different. What I mean by this, is that every single game ever officially sold has been tested, and zero bugs (of any severity level) are currently known. It is of course extremely likely that bugs will be found in this release, as well as in future releases. But this will always be a problem for every emulator ever made: there is no way to test every possible codepath of every single game to guarantee perfection. I will, of course, continue to do my best to fix newfound bugs so long as I'm around. I'd really like to thank Cydrak and LostTemplar for their assistance in emulating the ST018. I could not have done it without their help. The ST018 ROM, like the other coprocessor ROMs, is copyrighted. This means I am unable to distribute the image. Changelog (since v086): - emulated the 21.47MHz ST018 (ARMv3) coprocessor used by Hayazashi Nidan Morita Shougi 2 - fixed PPU TM/TS edge case; fixes bottom scanline of text boxes in Moryo Senki Madara 2 - fixed saving and loading of Super Game Boy save RAM - NEC uPD7725,96050 ROMs now stored in little-endian format for consistency - cartridge folder concept has been reworked to use fixed file names - added emulation of serial USART interface (replaces asynchronous UART support previously) --- bsnes/Makefile | 8 +- bsnes/base/base.hpp | 2 +- bsnes/nall/bit.hpp | 50 +++---- bsnes/nall/snes/cartridge.hpp | 15 ++- bsnes/nall/varint.hpp | 72 +++++----- bsnes/snes/Makefile | 3 +- bsnes/snes/cartridge/cartridge.cpp | 1 - bsnes/snes/cartridge/cartridge.hpp | 2 - bsnes/snes/cartridge/markup.cpp | 18 +-- bsnes/snes/chip/armdsp/registers.hpp | 5 +- bsnes/snes/chip/armdsp/serialization.cpp | 57 ++++++++ bsnes/snes/chip/chip.hpp | 1 - bsnes/snes/chip/spc7110/spc7110.cpp | 2 +- bsnes/snes/chip/srtc/srtc.cpp | 2 +- bsnes/snes/chip/st0018/st0018.cpp | 125 ------------------ bsnes/snes/chip/st0018/st0018.hpp | 52 -------- bsnes/snes/controller/usart/usart.cpp | 4 +- bsnes/snes/system/system.cpp | 5 - .../{ui-debugger => target-debugger}/Makefile | 0 .../{ui-debugger => target-debugger}/base.hpp | 0 .../breakpoint/breakpoint.cpp | 0 .../breakpoint/breakpoint.hpp | 0 .../console/about.cpp | 0 .../console/console.cpp | 0 .../console/console.hpp | 0 .../cpu/cpu.cpp | 0 .../cpu/cpu.hpp | 0 .../cpu/registers.cpp | 0 .../debugger/debugger.cpp | 0 .../debugger/debugger.hpp | 0 .../debugger/hook.cpp | 0 .../debugger/usage.cpp | 0 .../interface/interface.cpp | 0 .../interface/interface.hpp | 0 .../{ui-debugger => target-debugger}/main.cpp | 0 .../memory/memory.cpp | 0 .../memory/memory.hpp | 0 .../properties/properties.cpp | 0 .../properties/properties.hpp | 0 .../resource.rc | 0 .../settings/settings.cpp | 0 .../settings/settings.hpp | 0 .../smp/registers.cpp | 0 .../smp/smp.cpp | 0 .../smp/smp.hpp | 0 .../tracer/tracer.cpp | 0 .../tracer/tracer.hpp | 0 .../video/video.cpp | 0 .../video/video.hpp | 0 .../vram/vram.cpp | 0 .../vram/vram.hpp | 0 .../window/window.cpp | 0 .../window/window.hpp | 0 bsnes/{ui-libsnes => target-libsnes}/Makefile | 0 .../libsnes.cpp | 0 .../libsnes.hpp | 0 bsnes/{ui => target-ui}/Makefile | 0 bsnes/{ui => target-ui}/base.hpp | 0 bsnes/{ui => target-ui}/config/config.cpp | 0 bsnes/{ui => target-ui}/config/config.hpp | 0 .../general/dip-switches.cpp | 0 .../general/dip-switches.hpp | 0 .../general/file-browser.cpp | 0 .../general/file-browser.hpp | 0 bsnes/{ui => target-ui}/general/general.cpp | 0 bsnes/{ui => target-ui}/general/general.hpp | 0 .../{ui => target-ui}/general/main-window.cpp | 0 .../{ui => target-ui}/general/main-window.hpp | 0 .../{ui => target-ui}/general/slot-loader.cpp | 0 .../{ui => target-ui}/general/slot-loader.hpp | 0 bsnes/{ui => target-ui}/input/gameboy.cpp | 0 bsnes/{ui => target-ui}/input/gameboy.hpp | 0 bsnes/{ui => target-ui}/input/input.cpp | 0 bsnes/{ui => target-ui}/input/input.hpp | 0 bsnes/{ui => target-ui}/input/nes.cpp | 0 bsnes/{ui => target-ui}/input/nes.hpp | 0 bsnes/{ui => target-ui}/input/snes.cpp | 0 bsnes/{ui => target-ui}/input/snes.hpp | 0 .../input/user-interface.cpp | 0 .../input/user-interface.hpp | 0 .../interface/gameboy/gameboy.cpp | 0 .../interface/gameboy/gameboy.hpp | 0 .../{ui => target-ui}/interface/interface.cpp | 0 .../{ui => target-ui}/interface/interface.hpp | 0 bsnes/{ui => target-ui}/interface/nes/nes.cpp | 0 bsnes/{ui => target-ui}/interface/nes/nes.hpp | 0 bsnes/{ui => target-ui}/interface/palette.cpp | 0 bsnes/{ui => target-ui}/interface/palette.hpp | 0 .../{ui => target-ui}/interface/snes/snes.cpp | 1 + .../{ui => target-ui}/interface/snes/snes.hpp | 0 bsnes/{ui => target-ui}/main.cpp | 0 bsnes/{ui => target-ui}/resource.rc | 0 bsnes/{ui => target-ui}/settings/advanced.cpp | 0 bsnes/{ui => target-ui}/settings/advanced.hpp | 0 bsnes/{ui => target-ui}/settings/audio.cpp | 0 bsnes/{ui => target-ui}/settings/audio.hpp | 0 bsnes/{ui => target-ui}/settings/input.cpp | 0 bsnes/{ui => target-ui}/settings/input.hpp | 0 bsnes/{ui => target-ui}/settings/settings.cpp | 0 bsnes/{ui => target-ui}/settings/settings.hpp | 0 bsnes/{ui => target-ui}/settings/video.cpp | 0 bsnes/{ui => target-ui}/settings/video.hpp | 0 .../tools/cheat-database.cpp | 0 .../tools/cheat-database.hpp | 0 .../{ui => target-ui}/tools/cheat-editor.cpp | 0 .../{ui => target-ui}/tools/cheat-editor.hpp | 0 .../{ui => target-ui}/tools/state-manager.cpp | 0 .../{ui => target-ui}/tools/state-manager.hpp | 0 bsnes/{ui => target-ui}/tools/tools.cpp | 0 bsnes/{ui => target-ui}/tools/tools.hpp | 0 bsnes/{ui => target-ui}/utility/utility.cpp | 0 bsnes/{ui => target-ui}/utility/utility.hpp | 0 bsnes/{ui => target-ui}/window/window.cpp | 0 bsnes/{ui => target-ui}/window/window.hpp | 0 114 files changed, 135 insertions(+), 290 deletions(-) delete mode 100755 bsnes/snes/chip/st0018/st0018.cpp delete mode 100755 bsnes/snes/chip/st0018/st0018.hpp rename bsnes/{ui-debugger => target-debugger}/Makefile (100%) rename bsnes/{ui-debugger => target-debugger}/base.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/breakpoint/breakpoint.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/breakpoint/breakpoint.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/console/about.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/console/console.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/console/console.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/cpu/cpu.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/cpu/cpu.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/cpu/registers.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/debugger/debugger.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/debugger/debugger.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/debugger/hook.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/debugger/usage.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/interface/interface.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/interface/interface.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/main.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/memory/memory.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/memory/memory.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/properties/properties.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/properties/properties.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/resource.rc (100%) rename bsnes/{ui-debugger => target-debugger}/settings/settings.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/settings/settings.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/smp/registers.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/smp/smp.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/smp/smp.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/tracer/tracer.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/tracer/tracer.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/video/video.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/video/video.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/vram/vram.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/vram/vram.hpp (100%) rename bsnes/{ui-debugger => target-debugger}/window/window.cpp (100%) rename bsnes/{ui-debugger => target-debugger}/window/window.hpp (100%) rename bsnes/{ui-libsnes => target-libsnes}/Makefile (100%) rename bsnes/{ui-libsnes => target-libsnes}/libsnes.cpp (100%) rename bsnes/{ui-libsnes => target-libsnes}/libsnes.hpp (100%) rename bsnes/{ui => target-ui}/Makefile (100%) rename bsnes/{ui => target-ui}/base.hpp (100%) rename bsnes/{ui => target-ui}/config/config.cpp (100%) rename bsnes/{ui => target-ui}/config/config.hpp (100%) rename bsnes/{ui => target-ui}/general/dip-switches.cpp (100%) rename bsnes/{ui => target-ui}/general/dip-switches.hpp (100%) rename bsnes/{ui => target-ui}/general/file-browser.cpp (100%) rename bsnes/{ui => target-ui}/general/file-browser.hpp (100%) rename bsnes/{ui => target-ui}/general/general.cpp (100%) rename bsnes/{ui => target-ui}/general/general.hpp (100%) rename bsnes/{ui => target-ui}/general/main-window.cpp (100%) rename bsnes/{ui => target-ui}/general/main-window.hpp (100%) rename bsnes/{ui => target-ui}/general/slot-loader.cpp (100%) rename bsnes/{ui => target-ui}/general/slot-loader.hpp (100%) rename bsnes/{ui => target-ui}/input/gameboy.cpp (100%) rename bsnes/{ui => target-ui}/input/gameboy.hpp (100%) rename bsnes/{ui => target-ui}/input/input.cpp (100%) rename bsnes/{ui => target-ui}/input/input.hpp (100%) rename bsnes/{ui => target-ui}/input/nes.cpp (100%) rename bsnes/{ui => target-ui}/input/nes.hpp (100%) rename bsnes/{ui => target-ui}/input/snes.cpp (100%) rename bsnes/{ui => target-ui}/input/snes.hpp (100%) rename bsnes/{ui => target-ui}/input/user-interface.cpp (100%) rename bsnes/{ui => target-ui}/input/user-interface.hpp (100%) rename bsnes/{ui => target-ui}/interface/gameboy/gameboy.cpp (100%) rename bsnes/{ui => target-ui}/interface/gameboy/gameboy.hpp (100%) rename bsnes/{ui => target-ui}/interface/interface.cpp (100%) rename bsnes/{ui => target-ui}/interface/interface.hpp (100%) rename bsnes/{ui => target-ui}/interface/nes/nes.cpp (100%) rename bsnes/{ui => target-ui}/interface/nes/nes.hpp (100%) rename bsnes/{ui => target-ui}/interface/palette.cpp (100%) rename bsnes/{ui => target-ui}/interface/palette.hpp (100%) rename bsnes/{ui => target-ui}/interface/snes/snes.cpp (99%) rename bsnes/{ui => target-ui}/interface/snes/snes.hpp (100%) rename bsnes/{ui => target-ui}/main.cpp (100%) rename bsnes/{ui => target-ui}/resource.rc (100%) rename bsnes/{ui => target-ui}/settings/advanced.cpp (100%) rename bsnes/{ui => target-ui}/settings/advanced.hpp (100%) rename bsnes/{ui => target-ui}/settings/audio.cpp (100%) rename bsnes/{ui => target-ui}/settings/audio.hpp (100%) rename bsnes/{ui => target-ui}/settings/input.cpp (100%) rename bsnes/{ui => target-ui}/settings/input.hpp (100%) rename bsnes/{ui => target-ui}/settings/settings.cpp (100%) rename bsnes/{ui => target-ui}/settings/settings.hpp (100%) rename bsnes/{ui => target-ui}/settings/video.cpp (100%) rename bsnes/{ui => target-ui}/settings/video.hpp (100%) rename bsnes/{ui => target-ui}/tools/cheat-database.cpp (100%) rename bsnes/{ui => target-ui}/tools/cheat-database.hpp (100%) rename bsnes/{ui => target-ui}/tools/cheat-editor.cpp (100%) rename bsnes/{ui => target-ui}/tools/cheat-editor.hpp (100%) rename bsnes/{ui => target-ui}/tools/state-manager.cpp (100%) rename bsnes/{ui => target-ui}/tools/state-manager.hpp (100%) rename bsnes/{ui => target-ui}/tools/tools.cpp (100%) rename bsnes/{ui => target-ui}/tools/tools.hpp (100%) rename bsnes/{ui => target-ui}/utility/utility.cpp (100%) rename bsnes/{ui => target-ui}/utility/utility.hpp (100%) rename bsnes/{ui => target-ui}/window/window.cpp (100%) rename bsnes/{ui => target-ui}/window/window.hpp (100%) diff --git a/bsnes/Makefile b/bsnes/Makefile index d090f05a7..b6b1a8f4c 100755 --- a/bsnes/Makefile +++ b/bsnes/Makefile @@ -4,14 +4,14 @@ nes := nes snes := snes gameboy := gameboy profile := accuracy -ui := ui +target := ui # options += console # compiler c := $(compiler) -std=gnu99 cpp := $(subst cc,++,$(compiler)) -std=gnu++0x -flags := -I. -march=native -O3 -fomit-frame-pointer +flags := -I. -O3 -fomit-frame-pointer link := objects := libco @@ -38,6 +38,8 @@ else unknown_platform: help; endif +ui := target-$(target) + # implicit rules compile = \ $(strip \ @@ -89,6 +91,6 @@ sync: rm -r phoenix/test archive-all: - tar -cjf bsnes.tar.bz2 base data gameboy libco nall nes obj out phoenix ruby snes ui ui-debugger ui-libsnes Makefile cc.bat purge.bat + tar -cjf bsnes.tar.bz2 base data gameboy libco nall nes obj out phoenix ruby snes target-debugger target-libsnes target-ui Makefile cc.bat purge.bat help:; diff --git a/bsnes/base/base.hpp b/bsnes/base/base.hpp index fddac7208..940eba20e 100755 --- a/bsnes/base/base.hpp +++ b/bsnes/base/base.hpp @@ -1,7 +1,7 @@ #ifndef BASE_HPP #define BASE_HPP -const char Version[] = "086.16"; +const char Version[] = "087"; #include #include diff --git a/bsnes/nall/bit.hpp b/bsnes/nall/bit.hpp index 78b75493f..0ceb2b8a8 100755 --- a/bsnes/nall/bit.hpp +++ b/bsnes/nall/bit.hpp @@ -1,64 +1,49 @@ #ifndef NALL_BIT_HPP #define NALL_BIT_HPP -#include - namespace nall { - template - constexpr inline - typename type_if::type - uclamp(const type_t x) { - enum : type_t { b = 1ull << (bits - 1), y = b * 2 - 1 }; + template + constexpr inline uintmax_t uclamp(const uintmax_t x) { + enum : uintmax_t { b = 1ull << (bits - 1), y = b * 2 - 1 }; return y + ((x - y) & -(x < y)); //min(x, y); } - template - constexpr inline - typename type_if::type - uclip(const type_t x) { - enum : type_t { b = 1ull << (bits - 1), m = b * 2 - 1 }; + template + constexpr inline uintmax_t uclip(const uintmax_t x) { + enum : uintmax_t { b = 1ull << (bits - 1), m = b * 2 - 1 }; return (x & m); } - template - constexpr inline - typename type_if::type - sclamp(const type_t x) { - enum : type_t { b = 1ull << (bits - 1), m = b - 1 }; + template + constexpr inline intmax_t sclamp(const intmax_t x) { + enum : intmax_t { b = 1ull << (bits - 1), m = b - 1 }; return (x > m) ? m : (x < -b) ? -b : x; } - template - constexpr inline - typename type_if::type - sclip(const type_t x) { - typedef typename type_if::type cast_t; - enum : cast_t { b = 1ull << (bits - 1), m = b * 2 - 1 }; + template + constexpr inline intmax_t sclip(const intmax_t x) { + enum : uintmax_t { b = 1ull << (bits - 1), m = b * 2 - 1 }; return ((x & m) ^ b) - b; } namespace bit { //lowest(0b1110) == 0b0010 - template - constexpr inline T lowest(const T x) { + constexpr inline uintmax_t lowest(const uintmax_t x) { return x & -x; } //clear_lowest(0b1110) == 0b1100 - template - constexpr inline T clear_lowest(const T x) { + constexpr inline uintmax_t clear_lowest(const uintmax_t x) { return x & (x - 1); } //set_lowest(0b0101) == 0b0111 - template - constexpr inline T set_lowest(const T x) { + constexpr inline uintmax_t set_lowest(const uintmax_t x) { return x | (x + 1); } //count number of bits set in a byte - template - inline unsigned count(T x) { + inline unsigned count(uintmax_t x) { unsigned count = 0; do count += x & 1; while(x >>= 1); return count; @@ -66,8 +51,7 @@ namespace nall { //round up to next highest single bit: //round(15) == 16, round(16) == 16, round(17) == 32 - template - inline T round(T x) { + inline uintmax_t round(uintmax_t x) { if((x & (x - 1)) == 0) return x; while(x & (x - 1)) x &= x - 1; return x << 1; diff --git a/bsnes/nall/snes/cartridge.hpp b/bsnes/nall/snes/cartridge.hpp index 95dadc927..5596f69b5 100755 --- a/bsnes/nall/snes/cartridge.hpp +++ b/bsnes/nall/snes/cartridge.hpp @@ -420,7 +420,8 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { ); if(has_dsp1) { - markup.append(" \n"); + //91e87d11e1c30d172556bed2211cce2efa94ba595f58c5d264809ef4d363a97b dsp1.rom + markup.append(" \n"); if(dsp1_mapper == DSP1LoROM1MB) markup.append( " \n" " \n" @@ -455,7 +456,7 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { } if(has_dsp2) markup.append( - " \n" + " \n" " \n" " \n" " \n" @@ -468,7 +469,7 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { ); if(has_dsp3) markup.append( - " \n" + " \n" " \n" " \n" " \n" @@ -481,7 +482,7 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { ); if(has_dsp4) markup.append( - " \n" + " \n" " \n" " \n" " \n" @@ -494,7 +495,7 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { ); if(has_st010) markup.append( - " \n" + " \n" " \n" " \n" " \n" @@ -511,7 +512,7 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { ); if(has_st011) markup.append( - " \n" + " \n" " \n" " \n" " \n" @@ -528,7 +529,7 @@ SnesCartridge::SnesCartridge(const uint8_t *data, unsigned size) { ); if(has_st018) markup.append( - " \n" + " \n" " \n" " \n" " \n" diff --git a/bsnes/nall/varint.hpp b/bsnes/nall/varint.hpp index 20f579b6a..439d3c6b0 100755 --- a/bsnes/nall/varint.hpp +++ b/bsnes/nall/varint.hpp @@ -12,27 +12,27 @@ namespace nall { public: inline operator type_t() const { return data; } - inline type_t operator ++(int) { type_t r = data; data = uclip(data + 1); return r; } - inline type_t operator --(int) { type_t r = data; data = uclip(data - 1); return r; } - inline type_t operator ++() { return data = uclip(data + 1); } - inline type_t operator --() { return data = uclip(data - 1); } - inline type_t operator =(const type_t i) { return data = uclip(i); } - inline type_t operator |=(const type_t i) { return data = uclip(data | i); } - inline type_t operator ^=(const type_t i) { return data = uclip(data ^ i); } - inline type_t operator &=(const type_t i) { return data = uclip(data & i); } - inline type_t operator<<=(const type_t i) { return data = uclip(data << i); } - inline type_t operator>>=(const type_t i) { return data = uclip(data >> i); } - inline type_t operator +=(const type_t i) { return data = uclip(data + i); } - inline type_t operator -=(const type_t i) { return data = uclip(data - i); } - inline type_t operator *=(const type_t i) { return data = uclip(data * i); } - inline type_t operator /=(const type_t i) { return data = uclip(data / i); } - inline type_t operator %=(const type_t i) { return data = uclip(data % i); } + inline type_t operator ++(int) { type_t r = data; data = uclip(data + 1); return r; } + inline type_t operator --(int) { type_t r = data; data = uclip(data - 1); return r; } + inline type_t operator ++() { return data = uclip(data + 1); } + inline type_t operator --() { return data = uclip(data - 1); } + inline type_t operator =(const type_t i) { return data = uclip(i); } + inline type_t operator |=(const type_t i) { return data = uclip(data | i); } + inline type_t operator ^=(const type_t i) { return data = uclip(data ^ i); } + inline type_t operator &=(const type_t i) { return data = uclip(data & i); } + inline type_t operator<<=(const type_t i) { return data = uclip(data << i); } + inline type_t operator>>=(const type_t i) { return data = uclip(data >> i); } + inline type_t operator +=(const type_t i) { return data = uclip(data + i); } + inline type_t operator -=(const type_t i) { return data = uclip(data - i); } + inline type_t operator *=(const type_t i) { return data = uclip(data * i); } + inline type_t operator /=(const type_t i) { return data = uclip(data / i); } + inline type_t operator %=(const type_t i) { return data = uclip(data % i); } inline uint_t() : data(0) {} - inline uint_t(const type_t i) : data(uclip(i)) {} + inline uint_t(const type_t i) : data(uclip(i)) {} - template inline type_t operator=(const uint_t &i) { return data = uclip((type_t)i); } - template inline uint_t(const uint_t &i) : data(uclip(i)) {} + template inline type_t operator=(const uint_t &i) { return data = uclip((type_t)i); } + template inline uint_t(const uint_t &i) : data(uclip(i)) {} }; template class int_t { @@ -42,27 +42,27 @@ namespace nall { public: inline operator type_t() const { return data; } - inline type_t operator ++(int) { type_t r = data; data = sclip(data + 1); return r; } - inline type_t operator --(int) { type_t r = data; data = sclip(data - 1); return r; } - inline type_t operator ++() { return data = sclip(data + 1); } - inline type_t operator --() { return data = sclip(data - 1); } - inline type_t operator =(const type_t i) { return data = sclip(i); } - inline type_t operator |=(const type_t i) { return data = sclip(data | i); } - inline type_t operator ^=(const type_t i) { return data = sclip(data ^ i); } - inline type_t operator &=(const type_t i) { return data = sclip(data & i); } - inline type_t operator<<=(const type_t i) { return data = sclip(data << i); } - inline type_t operator>>=(const type_t i) { return data = sclip(data >> i); } - inline type_t operator +=(const type_t i) { return data = sclip(data + i); } - inline type_t operator -=(const type_t i) { return data = sclip(data - i); } - inline type_t operator *=(const type_t i) { return data = sclip(data * i); } - inline type_t operator /=(const type_t i) { return data = sclip(data / i); } - inline type_t operator %=(const type_t i) { return data = sclip(data % i); } + inline type_t operator ++(int) { type_t r = data; data = sclip(data + 1); return r; } + inline type_t operator --(int) { type_t r = data; data = sclip(data - 1); return r; } + inline type_t operator ++() { return data = sclip(data + 1); } + inline type_t operator --() { return data = sclip(data - 1); } + inline type_t operator =(const type_t i) { return data = sclip(i); } + inline type_t operator |=(const type_t i) { return data = sclip(data | i); } + inline type_t operator ^=(const type_t i) { return data = sclip(data ^ i); } + inline type_t operator &=(const type_t i) { return data = sclip(data & i); } + inline type_t operator<<=(const type_t i) { return data = sclip(data << i); } + inline type_t operator>>=(const type_t i) { return data = sclip(data >> i); } + inline type_t operator +=(const type_t i) { return data = sclip(data + i); } + inline type_t operator -=(const type_t i) { return data = sclip(data - i); } + inline type_t operator *=(const type_t i) { return data = sclip(data * i); } + inline type_t operator /=(const type_t i) { return data = sclip(data / i); } + inline type_t operator %=(const type_t i) { return data = sclip(data % i); } inline int_t() : data(0) {} - inline int_t(const type_t i) : data(sclip(i)) {} + inline int_t(const type_t i) : data(sclip(i)) {} - template inline type_t operator=(const int_t &i) { return data = sclip((type_t)i); } - template inline int_t(const int_t &i) : data(sclip(i)) {} + template inline type_t operator=(const int_t &i) { return data = sclip((type_t)i); } + template inline int_t(const int_t &i) : data(sclip(i)) {} }; class varuint_t { diff --git a/bsnes/snes/Makefile b/bsnes/snes/Makefile index 28a1c96c4..7d19c4a99 100755 --- a/bsnes/snes/Makefile +++ b/bsnes/snes/Makefile @@ -5,7 +5,7 @@ snes_objects += snes-cpu snes-smp snes-dsp snes-ppu snes_objects += snes-icd2 snes-nss snes-superfx snes-sa1 snes_objects += snes-necdsp snes-hitachidsp snes-armdsp snes_objects += snes-bsx snes-srtc snes-sdd1 snes-spc7110 -snes_objects += snes-obc1 snes-st0018 snes-sufamiturbo +snes_objects += snes-obc1 snes-sufamiturbo snes_objects += snes-msu1 snes-link objects += $(snes_objects) @@ -54,7 +54,6 @@ 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-obc1.o : $(snes)/chip/obc1/obc1.cpp $(snes)/chip/obc1/* -obj/snes-st0018.o : $(snes)/chip/st0018/st0018.cpp $(snes)/chip/st0018/* obj/snes-sufamiturbo.o: $(snes)/chip/sufamiturbo/sufamiturbo.cpp $(snes)/chip/sufamiturbo/* obj/snes-msu1.o : $(snes)/chip/msu1/msu1.cpp $(snes)/chip/msu1/* obj/snes-link.o : $(snes)/chip/link/link.cpp $(snes)/chip/link/* diff --git a/bsnes/snes/cartridge/cartridge.cpp b/bsnes/snes/cartridge/cartridge.cpp index fc20832b6..bc155f60f 100755 --- a/bsnes/snes/cartridge/cartridge.cpp +++ b/bsnes/snes/cartridge/cartridge.cpp @@ -28,7 +28,6 @@ void Cartridge::load(Mode cartridge_mode, const char *markup) { has_spc7110 = false; has_spc7110rtc = false; has_obc1 = false; - has_st0018 = false; has_msu1 = false; has_link = false; diff --git a/bsnes/snes/cartridge/cartridge.hpp b/bsnes/snes/cartridge/cartridge.hpp index 50844ac5b..a108d8ba7 100755 --- a/bsnes/snes/cartridge/cartridge.hpp +++ b/bsnes/snes/cartridge/cartridge.hpp @@ -44,7 +44,6 @@ struct Cartridge : property { readonly has_spc7110; readonly has_spc7110rtc; readonly has_obc1; - readonly has_st0018; readonly has_msu1; readonly has_link; @@ -109,7 +108,6 @@ private: void parse_markup_sdd1(XML::Node&); void parse_markup_spc7110(XML::Node&); void parse_markup_obc1(XML::Node&); - void parse_markup_setarisc(XML::Node&); void parse_markup_msu1(XML::Node&); void parse_markup_link(XML::Node&); }; diff --git a/bsnes/snes/cartridge/markup.cpp b/bsnes/snes/cartridge/markup.cpp index e03da18cd..6fc3b43ad 100755 --- a/bsnes/snes/cartridge/markup.cpp +++ b/bsnes/snes/cartridge/markup.cpp @@ -23,7 +23,6 @@ void Cartridge::parse_markup(const char *markup) { parse_markup_sdd1(cartridge["sdd1"]); parse_markup_spc7110(cartridge["spc7110"]); parse_markup_obc1(cartridge["obc1"]); - parse_markup_setarisc(cartridge["setarisc"]); parse_markup_msu1(cartridge["msu1"]); parse_markup_link(cartridge["link"]); } @@ -236,8 +235,8 @@ void Cartridge::parse_markup_necdsp(XML::Node &root) { interface->message({ "Warning: NEC DSP firmware ", firmware, " is of the wrong file size." }); fp.close(); } else { - for(unsigned n = 0; n < promsize; n++) necdsp.programROM[n] = fp.readm(3); - for(unsigned n = 0; n < dromsize; n++) necdsp.dataROM[n] = fp.readm(2); + for(unsigned n = 0; n < promsize; n++) necdsp.programROM[n] = fp.readl(3); + for(unsigned n = 0; n < dromsize; n++) necdsp.dataROM[n] = fp.readl(2); if(!sha256.empty()) { //XML file specified SHA256 sum for program. Verify file matches the hash. @@ -460,6 +459,7 @@ void Cartridge::parse_markup_sdd1(XML::Node &root) { void Cartridge::parse_markup_spc7110(XML::Node &root) { if(root.exists() == false) return; has_spc7110 = true; + has_spc7110rtc = root["rtc"].exists(); auto &ram = root["ram"]; auto &mmio = root["mmio"]; @@ -518,18 +518,6 @@ void Cartridge::parse_markup_obc1(XML::Node &root) { } } -void Cartridge::parse_markup_setarisc(XML::Node &root) { - if(root.exists() == false) return; - has_st0018 = true; - - for(auto &node : root) { - if(node.name != "map") continue; - Mapping m({ &ST0018::mmio_read, &st0018 }, { &ST0018::mmio_write, &st0018 }); - parse_markup_map(m, node); - mapping.append(m); - } -} - void Cartridge::parse_markup_msu1(XML::Node &root) { if(root.exists() == false) { has_msu1 = file::exists(interface->path(Cartridge::Slot::Base, "msu1.rom")); diff --git a/bsnes/snes/chip/armdsp/registers.hpp b/bsnes/snes/chip/armdsp/registers.hpp index 8cbaec109..d0d328872 100755 --- a/bsnes/snes/chip/armdsp/registers.hpp +++ b/bsnes/snes/chip/armdsp/registers.hpp @@ -107,6 +107,8 @@ struct Register { } r[16]; bool shiftercarry; +uint32 instruction; +bool exception; struct Pipeline { bool reload; @@ -118,6 +120,3 @@ struct Pipeline { Instruction prefetch; Instruction mdr; } pipeline; - -uint32 instruction; -bool exception; diff --git a/bsnes/snes/chip/armdsp/serialization.cpp b/bsnes/snes/chip/armdsp/serialization.cpp index 9affc7c8c..481e4f798 100755 --- a/bsnes/snes/chip/armdsp/serialization.cpp +++ b/bsnes/snes/chip/armdsp/serialization.cpp @@ -2,6 +2,63 @@ void ArmDSP::serialize(serializer &s) { Processor::serialize(s); + + s.array(programRAM, 16 * 1024); + + s.integer(bridge.cputoarm.ready); + s.integer(bridge.cputoarm.data); + s.integer(bridge.armtocpu.ready); + s.integer(bridge.armtocpu.data); + s.integer(bridge.timer); + s.integer(bridge.timerlatch); + s.integer(bridge.reset); + s.integer(bridge.ready); + s.integer(bridge.busy); + + s.integer(cpsr.n); + s.integer(cpsr.z); + s.integer(cpsr.c); + s.integer(cpsr.v); + s.integer(cpsr.i); + s.integer(cpsr.f); + s.integer(cpsr.m); + + s.integer(spsr.n); + s.integer(spsr.z); + s.integer(spsr.c); + s.integer(spsr.v); + s.integer(spsr.i); + s.integer(spsr.f); + s.integer(spsr.m); + + s.integer(r[ 0].data); + s.integer(r[ 1].data); + s.integer(r[ 2].data); + s.integer(r[ 3].data); + s.integer(r[ 4].data); + s.integer(r[ 5].data); + s.integer(r[ 6].data); + s.integer(r[ 7].data); + s.integer(r[ 8].data); + s.integer(r[ 9].data); + s.integer(r[10].data); + s.integer(r[11].data); + s.integer(r[12].data); + s.integer(r[13].data); + s.integer(r[14].data); + s.integer(r[15].data); + + s.integer(shiftercarry); + s.integer(instruction); + s.integer(exception); + + s.integer(pipeline.reload); + s.integer(pipeline.instruction.opcode); + s.integer(pipeline.instruction.address); + s.integer(pipeline.prefetch.opcode); + s.integer(pipeline.prefetch.address); + s.integer(pipeline.mdr.opcode); + s.integer(pipeline.mdr.address); } #endif diff --git a/bsnes/snes/chip/chip.hpp b/bsnes/snes/chip/chip.hpp index 0ea01f418..fe13a0a4e 100755 --- a/bsnes/snes/chip/chip.hpp +++ b/bsnes/snes/chip/chip.hpp @@ -18,7 +18,6 @@ struct Coprocessor : Processor { #include #include #include -#include #include #include #include diff --git a/bsnes/snes/chip/spc7110/spc7110.cpp b/bsnes/snes/chip/spc7110/spc7110.cpp index d2dc640b2..27b8b7785 100755 --- a/bsnes/snes/chip/spc7110/spc7110.cpp +++ b/bsnes/snes/chip/spc7110/spc7110.cpp @@ -15,7 +15,7 @@ void SPC7110::init() { void SPC7110::load() { for(unsigned n = 0; n < 20; n++) rtc[n] = 0xff; - if(cartridge.has_spc7110rtc()) cartridge.nvram.append({ ".rtc", rtc, 20 }); + if(cartridge.has_spc7110rtc()) cartridge.nvram.append({ "program.rtc", rtc, 20 }); } void SPC7110::unload() { diff --git a/bsnes/snes/chip/srtc/srtc.cpp b/bsnes/snes/chip/srtc/srtc.cpp index 1b2fd2aa2..0044113e1 100755 --- a/bsnes/snes/chip/srtc/srtc.cpp +++ b/bsnes/snes/chip/srtc/srtc.cpp @@ -14,7 +14,7 @@ void SRTC::init() { void SRTC::load() { for(unsigned n = 0; n < 20; n++) rtc[n] = 0xff; - cartridge.nvram.append({ ".rtc", rtc, 20 }); + cartridge.nvram.append({ "program.rtc", rtc, 20 }); } void SRTC::unload() { diff --git a/bsnes/snes/chip/st0018/st0018.cpp b/bsnes/snes/chip/st0018/st0018.cpp deleted file mode 100755 index ee13e3853..000000000 --- a/bsnes/snes/chip/st0018/st0018.cpp +++ /dev/null @@ -1,125 +0,0 @@ -#include - -#define ST0018_CPP -namespace SNES { - -ST0018 st0018; - -uint8 ST0018::mmio_read(unsigned addr) { - addr &= 0xffff; - if(addr == 0x3800) return regs.r3800; - if(addr == 0x3804) return regs.r3804; - return cpu.regs.mdr; -} - -void ST0018::mmio_write(unsigned addr, uint8 data) { - addr &= 0xffff; - - if(addr == 0x3802) { - switch(regs.mode) { - case Waiting: { - switch(data) { - case 0x01: regs.r3800 = regs.r3800_01; break; - case 0xaa: op_board_upload(); break; - case 0xb2: op_b2(); break; - case 0xb3: op_b3(); break; - case 0xb4: op_b4(); break; - case 0xb5: op_b5(); break; - case 0xf1: op_query_chip(); break; - case 0xf2: op_query_chip(); break; - default: fprintf(stdout, "* ST018 w3802::%.2x\n", data); break; - } - } return; - - case BoardUpload: { - op_board_upload(data); - } return; - } - } - - if(addr == 0x3804) { - regs.w3804 <<= 8; - regs.w3804 |= data; - regs.w3804 &= 0xffffff; - return; - } -} - -void ST0018::init() { -} - -void ST0018::load() { -} - -void ST0018::unload() { -} - -void ST0018::power() { -} - -void ST0018::reset() { - regs.mode = Waiting; - regs.r3800 = 0x00; - regs.r3804 = 0x85; - regs.w3804 = 0; - for(unsigned i = 0; i < 97; i++) board[i] = 0; -} - -//=============== -//ST-0018 opcodes -//=============== - -void ST0018::op_board_upload() { - regs.mode = BoardUpload; - regs.counter = 0; - regs.r3800 = 0xe0; -} - -void ST0018::op_board_upload(uint8 data) { - board[regs.counter] = data; - regs.r3800 = 96 - regs.counter; - regs.counter++; - if(regs.counter >= 97) { - regs.mode = Waiting; - #if 0 - for(unsigned y = 0; y < 9; y++) { - for(unsigned x = 0; x < 9; x++) { - fprintf(stdout, "%.2x ", board[y * 9 + x]); - } - fprintf(stdout, "\n"); - } - for(unsigned n = 0; n < 16; n++) fprintf(stdout, "%.2x ", board[81 + n]); - fprintf(stdout, "\n\n"); - #endif - } -} - -void ST0018::op_b2() { - fprintf(stdout, "* ST018 w3802::b2\n"); - regs.r3800 = 0xe0; - regs.r3800_01 = 0; //unknown -} - -void ST0018::op_b3() { - fprintf(stdout, "* ST018 w3802::b3\n"); - regs.r3800 = 0xe0; - regs.r3800_01 = 1; //0 = player lost? -} - -void ST0018::op_b4() { - fprintf(stdout, "* ST018 w3802::b4\n"); - regs.r3800 = 0xe0; - regs.r3800_01 = 1; //0 = player won? -} - -void ST0018::op_b5() { - fprintf(stdout, "* ST018 w3802::b5\n"); - regs.r3800 = 0xe0; - regs.r3800_01 = 0; //1 = move will result in checkmate? -} - -void ST0018::op_query_chip() { - regs.r3800 = 0x00; -} - -} diff --git a/bsnes/snes/chip/st0018/st0018.hpp b/bsnes/snes/chip/st0018/st0018.hpp deleted file mode 100755 index 3fa381d92..000000000 --- a/bsnes/snes/chip/st0018/st0018.hpp +++ /dev/null @@ -1,52 +0,0 @@ -class ST0018 { -public: - void init(); - void load(); - void unload(); - void power(); - void reset(); - - uint8 mmio_read(unsigned addr); - void mmio_write(unsigned addr, uint8 data); - - enum mode_t { Waiting, BoardUpload }; - struct regs_t { - mode_t mode; - - uint8 r3800; - uint8 r3800_01; - uint8 r3804; - - unsigned w3804; - unsigned counter; - } regs; - - enum PieceID { - Pawn = 0x00, //foot soldier - Lance = 0x04, //incense chariot - Knight = 0x08, //cassia horse - Silver = 0x0c, //silver general - Gold = 0x10, //gold general - Rook = 0x14, //flying chariot - Bishop = 0x18, //angle mover - King = 0x1c, //king - }; - - enum PieceFlag { - PlayerA = 0x20, - PlayerB = 0x40, - }; - - uint8 board[9 * 9 + 16]; - -private: - void op_board_upload(); - void op_board_upload(uint8 data); - void op_b2(); - void op_b3(); - void op_b4(); - void op_b5(); - void op_query_chip(); -}; - -extern ST0018 st0018; diff --git a/bsnes/snes/controller/usart/usart.cpp b/bsnes/snes/controller/usart/usart.cpp index 2dfdeddf2..d6e950c81 100755 --- a/bsnes/snes/controller/usart/usart.cpp +++ b/bsnes/snes/controller/usart/usart.cpp @@ -44,8 +44,8 @@ void USART::write(uint8 data) { //clock uint2 USART::data() { //SNES -> USART - if(txlength == 0 && latched == 0) { - txlength++; + if(txlength == 0) { + if(latched == 0) txlength++; } else if(txlength <= 8) { txdata = (latched << 7) | (txdata >> 1); txlength++; diff --git a/bsnes/snes/system/system.cpp b/bsnes/snes/system/system.cpp index c7edec023..9b70bbf90 100755 --- a/bsnes/snes/system/system.cpp +++ b/bsnes/snes/system/system.cpp @@ -80,7 +80,6 @@ void System::init() { sdd1.init(); spc7110.init(); obc1.init(); - st0018.init(); msu1.init(); link.init(); @@ -121,7 +120,6 @@ void System::load() { if(cartridge.has_sdd1()) sdd1.load(); if(cartridge.has_spc7110()) spc7110.load(); if(cartridge.has_obc1()) obc1.load(); - if(cartridge.has_st0018()) st0018.load(); if(cartridge.has_msu1()) msu1.load(); if(cartridge.has_link()) link.load(); @@ -148,7 +146,6 @@ void System::unload() { if(cartridge.has_sdd1()) sdd1.unload(); if(cartridge.has_spc7110()) spc7110.unload(); if(cartridge.has_obc1()) obc1.unload(); - if(cartridge.has_st0018()) st0018.unload(); if(cartridge.has_msu1()) msu1.unload(); if(cartridge.has_link()) link.unload(); } @@ -187,7 +184,6 @@ void System::power() { if(cartridge.has_sdd1()) sdd1.power(); if(cartridge.has_spc7110()) spc7110.power(); if(cartridge.has_obc1()) obc1.power(); - if(cartridge.has_st0018()) st0018.power(); if(cartridge.has_msu1()) msu1.power(); if(cartridge.has_link()) link.power(); @@ -218,7 +214,6 @@ void System::reset() { if(cartridge.has_sdd1()) sdd1.reset(); if(cartridge.has_spc7110()) spc7110.reset(); if(cartridge.has_obc1()) obc1.reset(); - if(cartridge.has_st0018()) st0018.reset(); if(cartridge.has_msu1()) msu1.reset(); if(cartridge.has_link()) link.reset(); diff --git a/bsnes/ui-debugger/Makefile b/bsnes/target-debugger/Makefile similarity index 100% rename from bsnes/ui-debugger/Makefile rename to bsnes/target-debugger/Makefile diff --git a/bsnes/ui-debugger/base.hpp b/bsnes/target-debugger/base.hpp similarity index 100% rename from bsnes/ui-debugger/base.hpp rename to bsnes/target-debugger/base.hpp diff --git a/bsnes/ui-debugger/breakpoint/breakpoint.cpp b/bsnes/target-debugger/breakpoint/breakpoint.cpp similarity index 100% rename from bsnes/ui-debugger/breakpoint/breakpoint.cpp rename to bsnes/target-debugger/breakpoint/breakpoint.cpp diff --git a/bsnes/ui-debugger/breakpoint/breakpoint.hpp b/bsnes/target-debugger/breakpoint/breakpoint.hpp similarity index 100% rename from bsnes/ui-debugger/breakpoint/breakpoint.hpp rename to bsnes/target-debugger/breakpoint/breakpoint.hpp diff --git a/bsnes/ui-debugger/console/about.cpp b/bsnes/target-debugger/console/about.cpp similarity index 100% rename from bsnes/ui-debugger/console/about.cpp rename to bsnes/target-debugger/console/about.cpp diff --git a/bsnes/ui-debugger/console/console.cpp b/bsnes/target-debugger/console/console.cpp similarity index 100% rename from bsnes/ui-debugger/console/console.cpp rename to bsnes/target-debugger/console/console.cpp diff --git a/bsnes/ui-debugger/console/console.hpp b/bsnes/target-debugger/console/console.hpp similarity index 100% rename from bsnes/ui-debugger/console/console.hpp rename to bsnes/target-debugger/console/console.hpp diff --git a/bsnes/ui-debugger/cpu/cpu.cpp b/bsnes/target-debugger/cpu/cpu.cpp similarity index 100% rename from bsnes/ui-debugger/cpu/cpu.cpp rename to bsnes/target-debugger/cpu/cpu.cpp diff --git a/bsnes/ui-debugger/cpu/cpu.hpp b/bsnes/target-debugger/cpu/cpu.hpp similarity index 100% rename from bsnes/ui-debugger/cpu/cpu.hpp rename to bsnes/target-debugger/cpu/cpu.hpp diff --git a/bsnes/ui-debugger/cpu/registers.cpp b/bsnes/target-debugger/cpu/registers.cpp similarity index 100% rename from bsnes/ui-debugger/cpu/registers.cpp rename to bsnes/target-debugger/cpu/registers.cpp diff --git a/bsnes/ui-debugger/debugger/debugger.cpp b/bsnes/target-debugger/debugger/debugger.cpp similarity index 100% rename from bsnes/ui-debugger/debugger/debugger.cpp rename to bsnes/target-debugger/debugger/debugger.cpp diff --git a/bsnes/ui-debugger/debugger/debugger.hpp b/bsnes/target-debugger/debugger/debugger.hpp similarity index 100% rename from bsnes/ui-debugger/debugger/debugger.hpp rename to bsnes/target-debugger/debugger/debugger.hpp diff --git a/bsnes/ui-debugger/debugger/hook.cpp b/bsnes/target-debugger/debugger/hook.cpp similarity index 100% rename from bsnes/ui-debugger/debugger/hook.cpp rename to bsnes/target-debugger/debugger/hook.cpp diff --git a/bsnes/ui-debugger/debugger/usage.cpp b/bsnes/target-debugger/debugger/usage.cpp similarity index 100% rename from bsnes/ui-debugger/debugger/usage.cpp rename to bsnes/target-debugger/debugger/usage.cpp diff --git a/bsnes/ui-debugger/interface/interface.cpp b/bsnes/target-debugger/interface/interface.cpp similarity index 100% rename from bsnes/ui-debugger/interface/interface.cpp rename to bsnes/target-debugger/interface/interface.cpp diff --git a/bsnes/ui-debugger/interface/interface.hpp b/bsnes/target-debugger/interface/interface.hpp similarity index 100% rename from bsnes/ui-debugger/interface/interface.hpp rename to bsnes/target-debugger/interface/interface.hpp diff --git a/bsnes/ui-debugger/main.cpp b/bsnes/target-debugger/main.cpp similarity index 100% rename from bsnes/ui-debugger/main.cpp rename to bsnes/target-debugger/main.cpp diff --git a/bsnes/ui-debugger/memory/memory.cpp b/bsnes/target-debugger/memory/memory.cpp similarity index 100% rename from bsnes/ui-debugger/memory/memory.cpp rename to bsnes/target-debugger/memory/memory.cpp diff --git a/bsnes/ui-debugger/memory/memory.hpp b/bsnes/target-debugger/memory/memory.hpp similarity index 100% rename from bsnes/ui-debugger/memory/memory.hpp rename to bsnes/target-debugger/memory/memory.hpp diff --git a/bsnes/ui-debugger/properties/properties.cpp b/bsnes/target-debugger/properties/properties.cpp similarity index 100% rename from bsnes/ui-debugger/properties/properties.cpp rename to bsnes/target-debugger/properties/properties.cpp diff --git a/bsnes/ui-debugger/properties/properties.hpp b/bsnes/target-debugger/properties/properties.hpp similarity index 100% rename from bsnes/ui-debugger/properties/properties.hpp rename to bsnes/target-debugger/properties/properties.hpp diff --git a/bsnes/ui-debugger/resource.rc b/bsnes/target-debugger/resource.rc similarity index 100% rename from bsnes/ui-debugger/resource.rc rename to bsnes/target-debugger/resource.rc diff --git a/bsnes/ui-debugger/settings/settings.cpp b/bsnes/target-debugger/settings/settings.cpp similarity index 100% rename from bsnes/ui-debugger/settings/settings.cpp rename to bsnes/target-debugger/settings/settings.cpp diff --git a/bsnes/ui-debugger/settings/settings.hpp b/bsnes/target-debugger/settings/settings.hpp similarity index 100% rename from bsnes/ui-debugger/settings/settings.hpp rename to bsnes/target-debugger/settings/settings.hpp diff --git a/bsnes/ui-debugger/smp/registers.cpp b/bsnes/target-debugger/smp/registers.cpp similarity index 100% rename from bsnes/ui-debugger/smp/registers.cpp rename to bsnes/target-debugger/smp/registers.cpp diff --git a/bsnes/ui-debugger/smp/smp.cpp b/bsnes/target-debugger/smp/smp.cpp similarity index 100% rename from bsnes/ui-debugger/smp/smp.cpp rename to bsnes/target-debugger/smp/smp.cpp diff --git a/bsnes/ui-debugger/smp/smp.hpp b/bsnes/target-debugger/smp/smp.hpp similarity index 100% rename from bsnes/ui-debugger/smp/smp.hpp rename to bsnes/target-debugger/smp/smp.hpp diff --git a/bsnes/ui-debugger/tracer/tracer.cpp b/bsnes/target-debugger/tracer/tracer.cpp similarity index 100% rename from bsnes/ui-debugger/tracer/tracer.cpp rename to bsnes/target-debugger/tracer/tracer.cpp diff --git a/bsnes/ui-debugger/tracer/tracer.hpp b/bsnes/target-debugger/tracer/tracer.hpp similarity index 100% rename from bsnes/ui-debugger/tracer/tracer.hpp rename to bsnes/target-debugger/tracer/tracer.hpp diff --git a/bsnes/ui-debugger/video/video.cpp b/bsnes/target-debugger/video/video.cpp similarity index 100% rename from bsnes/ui-debugger/video/video.cpp rename to bsnes/target-debugger/video/video.cpp diff --git a/bsnes/ui-debugger/video/video.hpp b/bsnes/target-debugger/video/video.hpp similarity index 100% rename from bsnes/ui-debugger/video/video.hpp rename to bsnes/target-debugger/video/video.hpp diff --git a/bsnes/ui-debugger/vram/vram.cpp b/bsnes/target-debugger/vram/vram.cpp similarity index 100% rename from bsnes/ui-debugger/vram/vram.cpp rename to bsnes/target-debugger/vram/vram.cpp diff --git a/bsnes/ui-debugger/vram/vram.hpp b/bsnes/target-debugger/vram/vram.hpp similarity index 100% rename from bsnes/ui-debugger/vram/vram.hpp rename to bsnes/target-debugger/vram/vram.hpp diff --git a/bsnes/ui-debugger/window/window.cpp b/bsnes/target-debugger/window/window.cpp similarity index 100% rename from bsnes/ui-debugger/window/window.cpp rename to bsnes/target-debugger/window/window.cpp diff --git a/bsnes/ui-debugger/window/window.hpp b/bsnes/target-debugger/window/window.hpp similarity index 100% rename from bsnes/ui-debugger/window/window.hpp rename to bsnes/target-debugger/window/window.hpp diff --git a/bsnes/ui-libsnes/Makefile b/bsnes/target-libsnes/Makefile similarity index 100% rename from bsnes/ui-libsnes/Makefile rename to bsnes/target-libsnes/Makefile diff --git a/bsnes/ui-libsnes/libsnes.cpp b/bsnes/target-libsnes/libsnes.cpp similarity index 100% rename from bsnes/ui-libsnes/libsnes.cpp rename to bsnes/target-libsnes/libsnes.cpp diff --git a/bsnes/ui-libsnes/libsnes.hpp b/bsnes/target-libsnes/libsnes.hpp similarity index 100% rename from bsnes/ui-libsnes/libsnes.hpp rename to bsnes/target-libsnes/libsnes.hpp diff --git a/bsnes/ui/Makefile b/bsnes/target-ui/Makefile similarity index 100% rename from bsnes/ui/Makefile rename to bsnes/target-ui/Makefile diff --git a/bsnes/ui/base.hpp b/bsnes/target-ui/base.hpp similarity index 100% rename from bsnes/ui/base.hpp rename to bsnes/target-ui/base.hpp diff --git a/bsnes/ui/config/config.cpp b/bsnes/target-ui/config/config.cpp similarity index 100% rename from bsnes/ui/config/config.cpp rename to bsnes/target-ui/config/config.cpp diff --git a/bsnes/ui/config/config.hpp b/bsnes/target-ui/config/config.hpp similarity index 100% rename from bsnes/ui/config/config.hpp rename to bsnes/target-ui/config/config.hpp diff --git a/bsnes/ui/general/dip-switches.cpp b/bsnes/target-ui/general/dip-switches.cpp similarity index 100% rename from bsnes/ui/general/dip-switches.cpp rename to bsnes/target-ui/general/dip-switches.cpp diff --git a/bsnes/ui/general/dip-switches.hpp b/bsnes/target-ui/general/dip-switches.hpp similarity index 100% rename from bsnes/ui/general/dip-switches.hpp rename to bsnes/target-ui/general/dip-switches.hpp diff --git a/bsnes/ui/general/file-browser.cpp b/bsnes/target-ui/general/file-browser.cpp similarity index 100% rename from bsnes/ui/general/file-browser.cpp rename to bsnes/target-ui/general/file-browser.cpp diff --git a/bsnes/ui/general/file-browser.hpp b/bsnes/target-ui/general/file-browser.hpp similarity index 100% rename from bsnes/ui/general/file-browser.hpp rename to bsnes/target-ui/general/file-browser.hpp diff --git a/bsnes/ui/general/general.cpp b/bsnes/target-ui/general/general.cpp similarity index 100% rename from bsnes/ui/general/general.cpp rename to bsnes/target-ui/general/general.cpp diff --git a/bsnes/ui/general/general.hpp b/bsnes/target-ui/general/general.hpp similarity index 100% rename from bsnes/ui/general/general.hpp rename to bsnes/target-ui/general/general.hpp diff --git a/bsnes/ui/general/main-window.cpp b/bsnes/target-ui/general/main-window.cpp similarity index 100% rename from bsnes/ui/general/main-window.cpp rename to bsnes/target-ui/general/main-window.cpp diff --git a/bsnes/ui/general/main-window.hpp b/bsnes/target-ui/general/main-window.hpp similarity index 100% rename from bsnes/ui/general/main-window.hpp rename to bsnes/target-ui/general/main-window.hpp diff --git a/bsnes/ui/general/slot-loader.cpp b/bsnes/target-ui/general/slot-loader.cpp similarity index 100% rename from bsnes/ui/general/slot-loader.cpp rename to bsnes/target-ui/general/slot-loader.cpp diff --git a/bsnes/ui/general/slot-loader.hpp b/bsnes/target-ui/general/slot-loader.hpp similarity index 100% rename from bsnes/ui/general/slot-loader.hpp rename to bsnes/target-ui/general/slot-loader.hpp diff --git a/bsnes/ui/input/gameboy.cpp b/bsnes/target-ui/input/gameboy.cpp similarity index 100% rename from bsnes/ui/input/gameboy.cpp rename to bsnes/target-ui/input/gameboy.cpp diff --git a/bsnes/ui/input/gameboy.hpp b/bsnes/target-ui/input/gameboy.hpp similarity index 100% rename from bsnes/ui/input/gameboy.hpp rename to bsnes/target-ui/input/gameboy.hpp diff --git a/bsnes/ui/input/input.cpp b/bsnes/target-ui/input/input.cpp similarity index 100% rename from bsnes/ui/input/input.cpp rename to bsnes/target-ui/input/input.cpp diff --git a/bsnes/ui/input/input.hpp b/bsnes/target-ui/input/input.hpp similarity index 100% rename from bsnes/ui/input/input.hpp rename to bsnes/target-ui/input/input.hpp diff --git a/bsnes/ui/input/nes.cpp b/bsnes/target-ui/input/nes.cpp similarity index 100% rename from bsnes/ui/input/nes.cpp rename to bsnes/target-ui/input/nes.cpp diff --git a/bsnes/ui/input/nes.hpp b/bsnes/target-ui/input/nes.hpp similarity index 100% rename from bsnes/ui/input/nes.hpp rename to bsnes/target-ui/input/nes.hpp diff --git a/bsnes/ui/input/snes.cpp b/bsnes/target-ui/input/snes.cpp similarity index 100% rename from bsnes/ui/input/snes.cpp rename to bsnes/target-ui/input/snes.cpp diff --git a/bsnes/ui/input/snes.hpp b/bsnes/target-ui/input/snes.hpp similarity index 100% rename from bsnes/ui/input/snes.hpp rename to bsnes/target-ui/input/snes.hpp diff --git a/bsnes/ui/input/user-interface.cpp b/bsnes/target-ui/input/user-interface.cpp similarity index 100% rename from bsnes/ui/input/user-interface.cpp rename to bsnes/target-ui/input/user-interface.cpp diff --git a/bsnes/ui/input/user-interface.hpp b/bsnes/target-ui/input/user-interface.hpp similarity index 100% rename from bsnes/ui/input/user-interface.hpp rename to bsnes/target-ui/input/user-interface.hpp diff --git a/bsnes/ui/interface/gameboy/gameboy.cpp b/bsnes/target-ui/interface/gameboy/gameboy.cpp similarity index 100% rename from bsnes/ui/interface/gameboy/gameboy.cpp rename to bsnes/target-ui/interface/gameboy/gameboy.cpp diff --git a/bsnes/ui/interface/gameboy/gameboy.hpp b/bsnes/target-ui/interface/gameboy/gameboy.hpp similarity index 100% rename from bsnes/ui/interface/gameboy/gameboy.hpp rename to bsnes/target-ui/interface/gameboy/gameboy.hpp diff --git a/bsnes/ui/interface/interface.cpp b/bsnes/target-ui/interface/interface.cpp similarity index 100% rename from bsnes/ui/interface/interface.cpp rename to bsnes/target-ui/interface/interface.cpp diff --git a/bsnes/ui/interface/interface.hpp b/bsnes/target-ui/interface/interface.hpp similarity index 100% rename from bsnes/ui/interface/interface.hpp rename to bsnes/target-ui/interface/interface.hpp diff --git a/bsnes/ui/interface/nes/nes.cpp b/bsnes/target-ui/interface/nes/nes.cpp similarity index 100% rename from bsnes/ui/interface/nes/nes.cpp rename to bsnes/target-ui/interface/nes/nes.cpp diff --git a/bsnes/ui/interface/nes/nes.hpp b/bsnes/target-ui/interface/nes/nes.hpp similarity index 100% rename from bsnes/ui/interface/nes/nes.hpp rename to bsnes/target-ui/interface/nes/nes.hpp diff --git a/bsnes/ui/interface/palette.cpp b/bsnes/target-ui/interface/palette.cpp similarity index 100% rename from bsnes/ui/interface/palette.cpp rename to bsnes/target-ui/interface/palette.cpp diff --git a/bsnes/ui/interface/palette.hpp b/bsnes/target-ui/interface/palette.hpp similarity index 100% rename from bsnes/ui/interface/palette.hpp rename to bsnes/target-ui/interface/palette.hpp diff --git a/bsnes/ui/interface/snes/snes.cpp b/bsnes/target-ui/interface/snes/snes.cpp similarity index 99% rename from bsnes/ui/interface/snes/snes.cpp rename to bsnes/target-ui/interface/snes/snes.cpp index 7b8209b70..74cddf5e7 100755 --- a/bsnes/ui/interface/snes/snes.cpp +++ b/bsnes/target-ui/interface/snes/snes.cpp @@ -226,6 +226,7 @@ void InterfaceSNES::run() { string InterfaceSNES::memoryName(SNES::Cartridge::NonVolatileRAM &memory) { if(memory.slot == SNES::Cartridge::Slot::Base) { if(memory.id == "program.ram") return interface->base.filename("program.ram", ".srm"); + if(memory.id == "program.rtc") return interface->base.filename("program.rtc", ".rtc"); if(memory.id == "upd96050.ram") return interface->base.filename("upd96050.ram", ".nec"); if(memory.id == "bsx.ram") return interface->base.filename("bsx.ram", ".bss"); if(memory.id == "bsx.psram") return interface->base.filename("bsx.psram", ".bsp"); diff --git a/bsnes/ui/interface/snes/snes.hpp b/bsnes/target-ui/interface/snes/snes.hpp similarity index 100% rename from bsnes/ui/interface/snes/snes.hpp rename to bsnes/target-ui/interface/snes/snes.hpp diff --git a/bsnes/ui/main.cpp b/bsnes/target-ui/main.cpp similarity index 100% rename from bsnes/ui/main.cpp rename to bsnes/target-ui/main.cpp diff --git a/bsnes/ui/resource.rc b/bsnes/target-ui/resource.rc similarity index 100% rename from bsnes/ui/resource.rc rename to bsnes/target-ui/resource.rc diff --git a/bsnes/ui/settings/advanced.cpp b/bsnes/target-ui/settings/advanced.cpp similarity index 100% rename from bsnes/ui/settings/advanced.cpp rename to bsnes/target-ui/settings/advanced.cpp diff --git a/bsnes/ui/settings/advanced.hpp b/bsnes/target-ui/settings/advanced.hpp similarity index 100% rename from bsnes/ui/settings/advanced.hpp rename to bsnes/target-ui/settings/advanced.hpp diff --git a/bsnes/ui/settings/audio.cpp b/bsnes/target-ui/settings/audio.cpp similarity index 100% rename from bsnes/ui/settings/audio.cpp rename to bsnes/target-ui/settings/audio.cpp diff --git a/bsnes/ui/settings/audio.hpp b/bsnes/target-ui/settings/audio.hpp similarity index 100% rename from bsnes/ui/settings/audio.hpp rename to bsnes/target-ui/settings/audio.hpp diff --git a/bsnes/ui/settings/input.cpp b/bsnes/target-ui/settings/input.cpp similarity index 100% rename from bsnes/ui/settings/input.cpp rename to bsnes/target-ui/settings/input.cpp diff --git a/bsnes/ui/settings/input.hpp b/bsnes/target-ui/settings/input.hpp similarity index 100% rename from bsnes/ui/settings/input.hpp rename to bsnes/target-ui/settings/input.hpp diff --git a/bsnes/ui/settings/settings.cpp b/bsnes/target-ui/settings/settings.cpp similarity index 100% rename from bsnes/ui/settings/settings.cpp rename to bsnes/target-ui/settings/settings.cpp diff --git a/bsnes/ui/settings/settings.hpp b/bsnes/target-ui/settings/settings.hpp similarity index 100% rename from bsnes/ui/settings/settings.hpp rename to bsnes/target-ui/settings/settings.hpp diff --git a/bsnes/ui/settings/video.cpp b/bsnes/target-ui/settings/video.cpp similarity index 100% rename from bsnes/ui/settings/video.cpp rename to bsnes/target-ui/settings/video.cpp diff --git a/bsnes/ui/settings/video.hpp b/bsnes/target-ui/settings/video.hpp similarity index 100% rename from bsnes/ui/settings/video.hpp rename to bsnes/target-ui/settings/video.hpp diff --git a/bsnes/ui/tools/cheat-database.cpp b/bsnes/target-ui/tools/cheat-database.cpp similarity index 100% rename from bsnes/ui/tools/cheat-database.cpp rename to bsnes/target-ui/tools/cheat-database.cpp diff --git a/bsnes/ui/tools/cheat-database.hpp b/bsnes/target-ui/tools/cheat-database.hpp similarity index 100% rename from bsnes/ui/tools/cheat-database.hpp rename to bsnes/target-ui/tools/cheat-database.hpp diff --git a/bsnes/ui/tools/cheat-editor.cpp b/bsnes/target-ui/tools/cheat-editor.cpp similarity index 100% rename from bsnes/ui/tools/cheat-editor.cpp rename to bsnes/target-ui/tools/cheat-editor.cpp diff --git a/bsnes/ui/tools/cheat-editor.hpp b/bsnes/target-ui/tools/cheat-editor.hpp similarity index 100% rename from bsnes/ui/tools/cheat-editor.hpp rename to bsnes/target-ui/tools/cheat-editor.hpp diff --git a/bsnes/ui/tools/state-manager.cpp b/bsnes/target-ui/tools/state-manager.cpp similarity index 100% rename from bsnes/ui/tools/state-manager.cpp rename to bsnes/target-ui/tools/state-manager.cpp diff --git a/bsnes/ui/tools/state-manager.hpp b/bsnes/target-ui/tools/state-manager.hpp similarity index 100% rename from bsnes/ui/tools/state-manager.hpp rename to bsnes/target-ui/tools/state-manager.hpp diff --git a/bsnes/ui/tools/tools.cpp b/bsnes/target-ui/tools/tools.cpp similarity index 100% rename from bsnes/ui/tools/tools.cpp rename to bsnes/target-ui/tools/tools.cpp diff --git a/bsnes/ui/tools/tools.hpp b/bsnes/target-ui/tools/tools.hpp similarity index 100% rename from bsnes/ui/tools/tools.hpp rename to bsnes/target-ui/tools/tools.hpp diff --git a/bsnes/ui/utility/utility.cpp b/bsnes/target-ui/utility/utility.cpp similarity index 100% rename from bsnes/ui/utility/utility.cpp rename to bsnes/target-ui/utility/utility.cpp diff --git a/bsnes/ui/utility/utility.hpp b/bsnes/target-ui/utility/utility.hpp similarity index 100% rename from bsnes/ui/utility/utility.hpp rename to bsnes/target-ui/utility/utility.hpp diff --git a/bsnes/ui/window/window.cpp b/bsnes/target-ui/window/window.cpp similarity index 100% rename from bsnes/ui/window/window.cpp rename to bsnes/target-ui/window/window.cpp diff --git a/bsnes/ui/window/window.hpp b/bsnes/target-ui/window/window.hpp similarity index 100% rename from bsnes/ui/window/window.hpp rename to bsnes/target-ui/window/window.hpp