diff --git a/CHANGES.txt b/CHANGES.txt
index 975f688c..cdba612e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,32 @@
+v073+3 [2016-11-22]
+Added tilemap viewer, revamped VRAM viewer and improved OAM viewer [UnDisbeliever]
+Added all BS-X/Satellaview support from bsnes-sx2 [LuigiBlood]
+Added PPU breakpoint support to accuracy and performance builds [Revenant]
+Added more comparison options to cheat search dialog [Grieverheart]
+Added some command line debugger arguments (see `bsnes --help`) [UnDisbeliever]
+Added debug window option to show H-count as either dots or clocks [Revenant]
+Added option to use WDM instruction as a software breakpoint [Revenant]
+Added "allow invalid input" and "allow modifier keys" to settings window [Revenant]
+Updated MSU1 support to revision 2 (includes pause/resume support) [Revenant]
+Improved handling of debug window GUI state when breaking/running/stepping [Revenant]
+Expanded debug properties view for multiple chips on all 3 build profiles [Revenant]
+Made power-on state (especially accuracy PPU) randomized the same way as higan [Revenant]
+Memory viewer displays current address at bottom of window [Revenant]
+Memory viewer now displays APU bus instead of just APU RAM [Revenant]
+Memory viewer now displays (most) I/O registers as read-only values [Revenant]
+Debug log files are now only opened if a game is actually open [Revenant]
+Debugger switches between debug/main window depending on focus policy [Revenant]
+Fixed flickering/blanking of game screen when changing/resizing windows [Revenant]
+Fixed CPU bug w/ direct page wrapping in emulation mode [AWJ]
+Fixed disassembly of PEA/PEI/PER instructions [AWJ]
+Fixed some details of S-DD1 memory mapping [AWJ]
+Fixed typing in native file dialogs triggering emulator hotkeys [Revenant]
+Fixed debug events messing with emulation speed if turbo/slowdown keys were held [Revenant]
+Fixed spurious debug events caused by dummy reads during SPC write instructions [Revenant]
+Fixed file dialog path being cleared when cancelling a native file dialog [Revenant]
+Fixed handling of $00Fx registers when dumping SPCs [Revenant]
+Fixed "search next/prev" behavior when wrapping to beginning or end of memory [Revenant]
+
v073+2 [2015-11-09]
Replaced original memory editor with a new, faster and better one [Revenant]
Added hotkeys for breaking and stepping in the debugger (F5 through F8) [Revenant]
diff --git a/README.md b/README.md
index dfd9b0df..01d93bee 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@ introduce some new features and improvements, mostly aimed at debugging.
- Improved handling of address mirroring for breakpoints (extends to the entire address space, not just RAM)
- Real-time code and data highlighting in memory editor, with fast searching for known code/data locations and unexplored regions
- Cartridge ROM and RAM views in memory editor for mapper-agnostic analysis
+- Enhanced VRAM, sprite, and tilemap viewing
- SA-1 disassembly and debugging
- SA-1 bus and BW-RAM viewing and (partial) usage logging
- Super FX disassembly and debugging
@@ -18,6 +19,7 @@ introduce some new features and improvements, mostly aimed at debugging.
Non-debugging features:
+- Satellaview / BS-X support
- SPC file dumping
- SPC output visualizer (keyboards & peak meters)
- IPS and BPS soft patching
diff --git a/bsnes/Makefile b/bsnes/Makefile
index c8294c9d..32a22efa 100644
--- a/bsnes/Makefile
+++ b/bsnes/Makefile
@@ -8,7 +8,7 @@ ifeq ($(ui),)
endif
# build version
-version := v073+2
+version := v073+3
# compiler
c := $(compiler) -xc -std=gnu99
diff --git a/bsnes/data/Info.plist b/bsnes/data/Info.plist
index e51e172b..23baadf6 100644
--- a/bsnes/data/Info.plist
+++ b/bsnes/data/Info.plist
@@ -15,9 +15,9 @@
+ +bsnes-plus is forked from version 073 of bsnes, but features numerous emulation updates and other +enhancements backported from later versions of bsnes and higan. There are a couple of rare corner cases +where even the bsnes-plus "accuracy" builds exhibit slightly less hardware-accuracy than current +versions of higan, but nearly all licensed games, homebrew, and hacks that run correctly on a real console +will also run identically under bsnes-plus. +
+ +The "compatibility" (default) profile features slightly decreased emulation accuracy, but with lower system +requirements. This profile is recommended for most users and is capable of emulating nearly all of the same +software as the accuracy profile, with little to no issues. The "performance" profile (not currently included +in official releases) features an even greater speed/accuracy tradeoff, as the name implies. +
+
+The debugging tools included with bsnes-plus are fully compatible with all three profiles. See below for more
+information about using bsnes-plus for debugging.
In multi-user mode, configuration data is stored inside the user's home
directory. On Windows, this is located at "%APPDATA%/.bsnes". On other operating
systems, this is located at "~/.bsnes".
-
+
To enable single-user mode, create a blank "bsnes-qt.cfg" file inside the same folder as the bsnes executable. bsnes will then use this file to store @@ -39,22 +52,184 @@
+
+The "snesreader" plugin adds additional support for compressed archives and less-common ROM file extensions,
+and the "supergameboy" plugin adds support for Game Boy and Super Game Boy ROMs (a copy of the actual Super
+Game Boy BIOS is required).
-
+ +The main debug window allows you to pause/resume emulation, single-step the SNES CPU and/or any active coprocessors, +and optionally keep a trace log of executed code saved to disk for long-term debugging. +
+ +When emulation is stopped, either by pressing the Break/Run button or after a breakpoint is triggered (see below), +you can press the Step button to execute a single instruction, the Step Over button to execute a single instruction or +entire subroutine, or the Step Out button to exit the current subroutine. The checkboxes underneath allow you to select +which combination of processors to single-step; each processor's code appears with a different color in the +disassembly window. +
+ +(Note: the Step Over and Step Out buttons are unavailable when stepping multiple processors, and when stepping the +SuperFX due to its lack of traditional call/return instructions and processor stack). +
+ +The trace options allow you to log disassembled instructions to disk in real-time while the emulator is running. +The log output will be located in the directory specified for "exported data" in the emulator options (by default, +this is the same directory as the currently loaded ROM). When the trace mask is enabled, each instruction will only +be logged the first time it is executed; disabling this provides more thorough and detailed logging, but with greatly +increased file size and CPU usage. +
+ +At the bottom of the main debug window, you can view the current register values for all steppable processors, and edit +register values for the processor currently being stepped. +
+ +
+ +
+
+Address Range: The address or range of addresses for the breakpoint to monitor. The second column represents the end
+of an address range, and is optional. Note that address mirroring will be ignored if a range of multiple addresses is specified.
+Data: (optional) If this is specified, read and write breakpoints will only trigger if the byte being read from or written to
+the given address equals this value.
+R/W/X: Specify any combination of read (R), write (W), and execute (X) operations that will trigger this breakpoint.
+Source: Select which address space this breakpoint applies to; the default is the SNES CPU. Change this when debugging
+a coprocessor or monitoring reads/writes involving VRAM or other PPU memory.
+
+ +
+ +A useful feature of this memory editor is that memory is highlighted to indicate known code and data regions. Memory highlighted +in red is code, memory in blue is data, and memory in purple has been both read or written and executed (for example, code which +is being executed from RAM). +
+ +The seek and search buttons can be used to jump to nearby regions of code, data, or unmarked memory, and to search for strings +of byte values or ASCII text. Memory can also be dumped to disk and reloaded at a later time. +
+ +
+ +
+ +The view can be switched between all available bit depths/formats as appropriate. The current tile addresses for all four background +layers are also shown, and allow you to quickly jump to the graphics used by a specific layer. +
+ +When enabled, the graphic display can also be colored based on the current contents of CGRAM. Clicking within the CGRAM display allows +you to select the palette to use. +
+ +
+ +The properties of each layer can also optionally be overridden with custom values, for instances when the screen mode or other +background properties are changed mid-frame. At any time, the relevant values being used by a given background layer can be viewed +via the S-PPU tab on the Properties Viewer window, under registers $2105 and $2107 through $210c. +
+ +
+ +
+ +
+
+Cache memory usage table to disk: Causes logged information about SNES memory usage (code/data regions) to be saved to disk
+and restored the next time the ROM is loaded. This is useful for long-term debugging/exploring across multiple sessions, but is
+disabled by default to avoid excessive disk space usage.
+Show H-position in clocks instead of dots: Normally, when single-stepping the CPU, the output log shows the CPU's vertical
+counter value (in scanlines) and horizontal counter value (in dots/pixels). Enabling this option shows a more precise horizontal
+counter value based on the number of master clock cycles per scanline.
+
+ +
+ +Before using the Satellaview, first make sure it is enabled as the expansion port device on the "Advanced" tab of the emulator +config window. +
+ +To use the BS-X interactive menu and play games on BS-X Memory Packs, select "Load BS-X Cartridge" from the "Load Special" menu. +The "base cartridge" is the BS-X ROM itself, and the "slot cartridge" is an optional Memory Pack containing one or more BS-X games. +
+ +The next option, "Load BS-X Slotted Cartridge", allows you to play one of several other standalone cartridges which use the +Satellaview hardware and have their own Memory Pack slots. A complete list of these cartridges is as follows: +
+ +Some sample broadcast data is located in the bsxdat directory. If you have downloaded some additional data, you can +point to it using the "Paths" tab of the config window. +
+ +For more BS-X information and downloads, visit the BS-X Project site. + +
+
+This is a list of others who have contributed to bsnes-plus, either directly or indirectly:
• Alex W. Jackson
• Andreas Naive
• anomie
@@ -65,10 +240,13 @@