________      __        __    __________      ________      
                  _/########\_   {##\_     {##}  {##########}   _/########\_    
    __      __   {##/ŻŻŻŻŻŻ\##}  {####\_   {##}  {##}ŻŻŻŻŻŻŻ   {##/ŻŻŻŻŻŻ\##}   
   {##}    {##}  {##\___    ŻŻ   {##}\##}  {##}  {##}_______   {##\___    ŻŻ    
   {##\_  _/##}   Ż\####\___     {##}{##\_ {##}  {##########}   Ż\####\___      
    Ż\##}{##/Ż      ŻŻŻ\####\_   {##} Ż\##}{##}  {##}ŻŻŻŻŻŻŻ      ŻŻŻ\####\_    
     {##\/##}     __    ŻŻŻ\##}  {##}  {##\{##}  {##}           __    ŻŻŻ\##}   
      Ż\##/Ż     {##\______/##}  {##}   Ż\####}  {##}_______   {##\______/##}   
       {##}       Ż\########/Ż   {##}     Ż\##}  {##########}   Ż\########/Ż    
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ


site mirror hosted by emubase.de

file mirrors: romhacking.net
SNES Emulation
Geocities

 

 
vSNES version 2.91 executable
source
debug version
vSNES version 1.37 executable
SNES documents archive
Already implemented in the next version:
  • GUI: fixed the Movie Editor glyph from blurry to sharp
  • GUI: fixed some issues with the Movie Editor interface
  • SRC: fixed the displaying of the CRC32 of the SMV ROM
 

vSNES represents a SNES console, like an emulator. It simply consists of some memory that holds the status of the hardware. Unlike an emulator, it lacks the ability to execute the code in the RAM or ROM chips, allowing the components to interact. So what good is it?

Well, emulators like Genecyst or MEKA let you view the hardware at work, for example the color palette or the video RAM. ZSNES lacks such features, but the savestates contain all the info. A savestate is like a SNES frozen in time.

vSNES comes with several tools:

  1. The Preview Window shows you the picture that is included in the ZSNES or Super Sleuth savestate file.
  2. The MemViewer allows you to view the content of VRAM, WRAM and the cartridge using the colors selected in the PalViewer.
  3. The SceneViewer shows you the current screen of the SNES and the parts it consists of (i.e. regular backgrounds, sprites, Mode7 backgrounds, HDMA and offset-per-tile info).
  4. The HexEditor shows the content of the larger RAM or ROM arrays as bytes and as text, and allows you to edit them.
  5. The List Editor allows you to edit the values in the main list.
  6. The SPCViewer shows the header, the ID666 tag and the extended ID666 tags of a SPC file. It also loads the data into vSNES, so you can view the variables in the main window's APU list and the arrays in the HexViewer.
  7. The Movie Editor allows the loading, viewing, editing and saving of SMV and ZMV movies. (ZMV support still incomplete.)
  8. With the CHT Editor you can change the binary cheat code files of ZSNES and SNES9x.
  9. The CartViewer has a second page that shows the content of the internal ROM header, just as it is stored in the ROM. It also allows selecting the correct ROM type if the automatic detection fails; this might be required to get correct HDMA table info.

There's lots of potential in vSNES, even an emulator would be possible - but that would be a bit more difficult.

 


v2.91

  • GUI: added controls for displaying CRC32 and Hi/LoROM checksums
  • GUI: moved the IPS checkboxes in the options to the cartridge page
  • GUI: fixed a small issue with the CHT Editor and changed its glyph
  • GUI: added Edit control to display SMV UIDs as Unix dates
  • SRC: fixed IPS patching again; added more messages in case it fails
  • SRC: fixed the SMV code to use the new SyncOptions flag location
  • SRC: added more functionality for managing extended SPC ID666 tags
  • SRC: disabled ZMV loading button since the ZMV code is broken

 

v2.9a

  • GUI: added sprite size mode info to SceneViewer's info page
  • GUI: fixed updating ROM info page when the ROM is edited
  • GUI: CHT Editor now scrolls to selected item after loading a new table
  • GUI: fixed version number in title bar and task bar
  • GUI: fixed some spelling in the program and the documentation

 

v2.85

  • SRC: added support for IPS files
  • SRC: fixed a bug in the main window's display of shifted values (eg. CGAddB)
  • GUI: fixed code and GUI to scale better according to the current DPI setting
  • GUI: fixed some issues with HexViewer's rendering
  • GUI: added checkbox to control updating of the main lists
  • GUI: added button for using DirectColor on regular and Mode7 BGs
  • GUI: removed black outline on blurred screens by copying the adjacent pixels
  • GUI: adjusted updating the 8-bit and 16-bit images so that switching appears seamless
  • GUI: set checking of ZST headers to enabled by default
  • GUI: separated memo component for cartridge extensions into its own groupbox

 

v2.8

  • new mirrors at AEP and SNES Emulation
  • GUI: better support for non-standard font sizes and colors (thanks to Nightcrawler for testing)
  • SRC: added offset-per-tile effects to rendering (Mode4 and Mode6 are not tested)
  • SRC: improved the SPC code, added ability to save; no adding/removing of the extended tags
  • SRC: partial support for SNESGT savestates (only arrays)
  • SRC: adjusted start and end of the visible area in the Screen rendering
  • SRC: fixed error message that appears when SNES.txt is not present

 

v2.7

  • SRC: added support for PNG files and Super Sleuth savestates
  • SRC: improved rendering (hi-res, mosaic and interlace screens, sprite RTO)
  • SRC: added support for DirectColor BGs to SceneViewer and MemViewer
  • GUI: SceneViewer now renders to 512x4?? by default, with soft blurring
  • GUI: added a bit more functionality to the custom file dialog windows
  • SRC: fixed detection of some ColorWindow settings
  • SRC: added code for saving and restoring the Preview window's zoom
  • SRC: added check for backspace key in CartViewer
  • SRC: fixed saving bitmaps to clipboard from the SceneViewer
  • SRC: various smaller fixes and corrections

 

v2.52

  • GUI: fixed updating of SceneViewer's layer control groupbox
  • SRC: added temporary hack for interlaced screens so that no more exceptions will occur
  • SRC: for some reason exceptions don't appear by default, added code for displaying them

 

v2.51

  • GUI: added some cartridge buttons to the main window
  • SRC: changed SceneViewer updating from "brute-force" to "structured"
  • SRC: changed rendering engine to use normal rendering for H-512 mode
  • SRC: (hopefully) fixed some file link issues of the main window menus
  • SRC: fixed stupid oversight in HDMA direction detection

 

v2.5

  • GUI: new HexEditor code and interface
  • GUI: added decoder option to MemViewer for displaying EXTBG colors correctly
  • GUI: added code to make use of the "brightness info" checkbox in SceneViewer
  • GUI: added custom drawing code to the menus in the main window
  • GUI: changed behavior of the buttons in the "screen configuration" box slightly
  • GUI: changed the checkboxes in options to be checked by default
  • GUI: changed format of the SceneViewer's "info" page a bit
  • GUI: changed all "fixed color" references to "color constant"
  • GUI: changed CartViewer's minimum height back to 464 pixels
  • GUI: removed the need to restore the main window to obtain its position and size
  • SRC: massive restructuring to make the program parts less interconnected
  • SRC: rewrote the HDMA code according to the latest docs
  • SRC: added a new internal messaging system
  • SRC: rewrote the ListEditor code, and changed the GUI slightly
  • SRC: changed format of the "type" column in SNES.txt
  • SRC: replaced default INI solution with my own INI code; no more delay on some systems
  • SRC: added workaround for what seems to be zLib's inability to handle long filenames

 

v2.2

  • GUI: fixed oversight - number of digits in "bit" columns was 4x hex. digits instead of exact value
  • GUI: changed SceneViewer to display the exact screen layering (instead of Mode1 layering)
  • GUI: disabled "refreshing by cur. directory" by default since "refreshing on receiving focus" is much better
  • GUI: adjusted the minimum height of the cartridge viewer
  • SRC: fixed rendering of interlaced screens
  • SRC: fixed two known memory leaks in Delphi's RTL source and included the fixed units
  • SRC: added code to remove the previous cartridge before switching to another savestate
  • SRC: added exception-handling to SceneViewer's HDMA code (eg. for Ogre Battle map screens)
  • SRC: vSNES will now complain only once per cartridge about a missing ROM file

 

v2.1

  • GUI: fixed the offsets in the ZST list
  • GUI: fixed MemViewer's offset not being zero upon program start
  • GUI: added support for Mode7 BG2, thanks to anomie
  • GUI: added custom cartridge dialog for loading ROMs & viewing their headers
  • GUI: added optional current directory in custom file dialogs for faster manual refreshing
  • GUI: added checkbox in options for keeping sprites disabled when loading a savestate
  • GUI: added code for updating the dialogs when the application gets focus
  • GUI: added more code to set lower-/uppercase text depending on un-/used priorities and BGs
  • GUI: added shortcut for the cart. viewer (F6) and for updating the INI file (F9)
  • GUI: added 8x and 1/8x magnifications for MemViewer and SceneViewer
  • GUI: added code for scrolling to OpenDialog's selected directory
  • GUI: added code for saving the preview bitmap via middle mouse button
  • GUI: replaced help window with HTML documentation for even more formatting
  • GUI: replaced some SceneViewer checkboxes with labels
  • GUI: changed OpenDialog's minimum height to 256 pixels
  • GUI: removed restore function from the buggy list editor for now
  • GUI: removed "DefaultExt" from "DlgSave_SNES"
  • SRC: fixed several bugs in the DMA/HDMA code
  • SRC: fixed one stupid bug in the ZST-saving code
  • SRC: fixed S9X DMA info import and export (at least partially)
  • SRC: added support for zipped ROMs (only first file in archive)
  • SRC: modified SNES.txt and the INI format
  • SRC: some other small changes; improved speed a tiny little bit
  • SRC: removed SNES docs and put them into their own package; added anomie's docs
  • SRC: removed code for loading resources, and put them back into vSNES.exe
  • SRC: added "_make" and "_dcu" directories

 

v2.00

  • GUI rebuild due to Delphi saving project cfg files just as power outage hits...
  • removed old rendering engine
  • vSNES now uses its own SNES structure instead of a ZST structure (major rewrite)
  • main window: five lists (four SNES, one ZST), offsets in ZST section
  • the menus got pictures
  • help window: "Windows" look due to more text per line, RTF for formatted code
  • open dialog: "browse" window opens in the center
  • palette viewer: relocated the info (should be final)
  • memory viewer: "FX" decoder, better zoom, options for hex. offsets and jumping entire lines
  • scene viewer: new engine (8-bit and 16-bit, both with missing features though), support for high-res, new buttons for selecting visibility, color 0 for transparency, info screen, removed "mode7 info" box
  • hex. viewer: restructured, always with gridlines, DOS font thanks to PCXDUMP, but still incomplete and slow
  • list editor: removed "size" box, PLEASE NOTE: in this version, changes to the non-ZST sections won't update the ZST section
  • added SPC viewer (incomplete, only viewing)
  • options: multiple lines, hex. offsets for memory/hex. viewer, preview filtering, more extensions, hex. info in pal. viewer, spaces for the info screen
  • updated SNES.txt file
  • new GB.pal file

 

v1.37

  • fixed priority bug in 'sprites' screen
  • fixed bug in main/sub screen detection
  • rewrote the memory viewer drawing, slightly better memory usage and speed
  • enabled the screen mode selection (though not all features are supported)
  • the custom open dialog will update its lists upon opening
  • renamed 'ZST.txt' to 'SNES.txt' and added one list to the main window
  • added button for setting the font of the main list
  • added cartridge ROM size info to the statusbar
  • sprite palette info will show values of 0..7 instead of 8..15
  • switched positions of the "bg color const" and "no transparency" radiobuttons
  • "bg color constant" radiobutton is checked by default
  • screen brightness won't be applied by default

 

v1.35

  • fixed bug in hex. viewer that occured on loading cartridges
  • text copied from the hex. viewer to the clipboard will have spaces for zeroes
  • added checkbox for copying bitmaps to the clipboard (no palette though)
  • added code to save the data source offsets in hex. viewer and memory viewer
  • added code to save and load the column widths of the listviews
  • implemented various smaller bugfixes
  • updated Help.txt

 

v1.34

  • fixed assigning BG3's transparent palette
  • added checkboxes for displaying the sprite and tile indices in hex.
  • added an 'h' to all hex. numbers in the scene viewer
  • cartridges will be loaded entirely into memory
  • added checkbox for skipping cartridge headers
  • the currently selected color will be highlighted
  • renamed the text viewer to hex viewer and redesigned it almost completely
  • added SRAM size display in main window
  • checkbox setting for loading carts will be saved
  • added missing dot in the cartridge-searching code
  • added shortcut info to hints
  • added shortcut list to Help.txt
  • added support for Alt+F4 which was broken since the quit dialog was added

 

v1.32

  • added checkboxes and a button to the sprite list
  • added list editor and a button for saving
  • divided the main list into three parts
  • added some lines to ZST.txt that show the first few bytes of 'tempdat'
  • improved the preview detection
  • fixed a tile info bug in the scene viewer
  • added checkbox for keeping the layering settings in the scene viewer
  • open dialog updating after toggling the 'use previews' checkbox is faster
  • added checkbox for gridlines in the main window
  • added checkbox for gridlines in the custom 'open' dialog
  • forgot to save the active page of the options window, fixed
  • added some code to show in the statusbar if a movie is loaded
  • used the old compiler version again - just don't load invalid savestates

 

v1.31

  • used English version of the compiler for the error messages
  • added custom 'open' dialog
  • fixed a 'divide by zero' bug in the scene viewer
  • added URL to homepage to Help.txt
  • tweaked memory, palette and text viewer interface
  • text search is much faster than before
  • topmost window will be activated when vSNES is restored
  • forgot to implement code for saving the customizeable colors, fixed
  • added displaying the info after byte 199699, so ZST.txt is required
  • added checkbox for INI saving on exit, and button for saving immediateley
  • in the INI file, colors will be saved as hex. strings
  • vSNES starts maximized by default
  • improved scrolling in the sprite list
  • changed entry style in the INI file
  • closing the topmost tool will directly focus the next one

 

v1.30

  • fixed transparency setting changes
  • fixed mirrored tile drawing, thanks to Firemen and its large sprites
  • re-inserted glyphs
  • enabled double-buffering in quit dialog
  • swapped positions of the jump buttons & checkboxes in memory viewer
  • adjusted caption formatting
  • added reload button (shortcut = F5), enabled if savestate list is not empty
  • added options dialog and text viewer
  • added 'launch' button (uses ShellExecute)
  • aligned memo in Help window to client; set colors as in edit.com
  • added some code for application object (eg. global hotkeys)
  • selecting the mode7 layer window hides some tile info components
  • child windows won't get called if a SNES or cartridge dialog is active
  • tweaked memory and palette viewer interface
  • mouse cursor clipping is more accurate (for Windows NT systems)
  • tweaked loading and saving of INI settings
  • added priority buttons to background and mode7 layer pages
  • scene viewer caption uses dots instead of commas for zoom levels < 1
  • help window will be displayed if no INI file was found
  • shifted bg layers by one pixel in the screen rendering
  • separated graphics engine code from scene viewer unit
  • Update button for backgrounds and sprites
  • tile selection in scene viewer affects memory viewer and palette viewer
  • second sprite base pointer gets used by the scene viewer
  • window visibility is saved
  • added support for EXTBG
  • fixed help file
  • tweaked list display code in main window
  • added checkboxes for brightness and 'all screen data' in scene viewer
  • added group info in palette viewer
  • added percentage display to memory viewer
  • enabled layering control in scene viewer
  • added ASCII art to the help file
  • and much more...

 

1.26

  • tweaked the glyphs a bit
  • made custom color panel a bit less 3D
  • added spaces to the xres/yres labels in memory viewer
  • the custom color dialog has the colors of the first palette column as custom colors
  • the mouse cursor area gets clipped when selecting a color in palette viewer
  • fixed BG3 palette handling
  • fixed scroll info truncation (or not?)
  • mode7 updating is !!18 times faster!! I'll leave it enabled now on my P2-350 ... :)
  • tweaked the bg listview (new columns, new order)
  • middle mouse button toggles move/zoom mode (set mouse wheel click to middle button!)
  • added basic screen updating
  • 'update sceen' button status will be saved/restored via the INI file
  • changed the INI key for the 'update mode 7 'button status
  • some 'layering' groupbox items get changed on loading a SNES
  • the topmost tool window won't get called if a file dialog is active

 

v1.25

  • added tabcontrol for 8/16 bit screen selection
  • added buttons to save the screen and the layers (only layers work)
  • added buttons to select the move mode, which works now too :)
  • mode7 update on loading a SNES was broken, fixed it
  • removed hints from tile info labels
  • application/main title will keep the version number
  • changed borderline color in 'move' glyph to black
  • added code to visually update buttons before showing their actions
  • changed zoom code to allow levels < 0, so the images may shrink now
  • added transparency groupbox
  • fixed tileview pos info for large tiles
  • scroll info values get truncated to useable values
  • hex and dec columns start with zeroes (as the bin columns already did)

 

v1.20

  • fixed some features that got broken by new code and carelessness
  • arrow keys will focus plus/minus button if counterpart had been disabled
  • alignment of tile info labels set to RightJustify
  • size label placed as last label
  • FINALLY sprites work in all sizes and mirror modes. Yippee!
  • hopefully they're drawn in the right order, too
  • tweaked size of tile info labels
  • replaced preview glyph with Settlers2 zoom lens
  • some tile info labels will become disabled when mode7 is selected
  • added checkbox for background color constant
  • added button for inverting palette (for Torchlight Trouble (DKC) and others)
  • file buttons stay down until their window is closed (except buttons with file lists)
  • removed saving and loading of PalViewer's width and height
  • tile info code draws transparent tiles now
  • 16x16 background tiles finally work, too! Check out the levels of Yoshi's Island!
  • mode7 zoom won't stop at 2x anymore (recommended for fast systems only, NOT mine)
  • changed hotkey of mode7 update checkbox to the first letter
  • bg-listview selection matches bg-tabcontrol upon startup

 

v1.10

  • new palette setting code
  • removed 'update mode7 on palette change' checkbox
  • smaller 'sprites' listview
  • sprite loading code fixed
  • not crashing in Win2k anymore (dunno why)
  • quit window shows DOOM exit messages
  • 'clear list' menu items get disabled when files could not be found
  • added 'size' label to tile info (still incomplete for sprites)
  • changed '[unknown]' caption to 'priority bit'
  • fixed SNES loading path (main window) and mode7 saving path
  • 'update mode7' button disabled by default
  • updated Piken's name & url in Help.txt
  • fixed default settings of memory viewer

 

v1.00

  • uses ini files
  • better interface
  • more features
  • crashes on Win2k machines :/

 

v1.00 BETA

  • initial release, only for some selected persons