1. 18 Apr, 2019 1 commit
    • Tim Allen's avatar
      Update to bsnes v107r2 beta release. · 922a0e42
      Tim Allen authored
      byuu says:
      
      Added DerKoun's HD mode 7 (up to 2160p), ~100fps boost for fast forwarding,
      configurable latency settings for waveOut (please configure this yourself),
      filename case insensitivity, and a few other things.
      922a0e42
  2. 09 Apr, 2019 1 commit
    • Tim Allen's avatar
      Update to bsnes v107.1 release. · 4d7bb510
      Tim Allen authored
      byuu says:
      
      Don't let the point release fool you, there are many significant changes in this
      release. I will be keeping bsnes releases using a point system until the new
      higan release is ready.
      
      Changelog:
      
        - GUI: added high DPI support
        - GUI: fixed the state manager image preview
        - Windows: added a new waveOut driver with support for dynamic rate control
        - Windows: corrected the XAudio 2.1 dynamic rate control support [BearOso]
        - Windows: corrected the Direct3D 9.0 fullscreen exclusive window centering
        - Windows: fixed XInput controller support on Windows 10
        - SFC: added high-level emulation for the DSP1, DSP2, DSP4, ST010, and Cx4
          coprocessors
        - SFC: fixed a slight rendering glitch in the intro to Megalomania
      
      If the coprocessor firmware is missing, bsnes will fallback on HLE where it is
      supported, which is everything other than SD Gundam GX and the two Hayazashi
      Nidan Morita Shougi games.
      
      The Windows dynamic rate control works best with Direct3D in fullscreen
      exclusive mode. I recommend the waveOut driver over the XAudio 2.1 driver, as it
      is not possible to target a single XAudio2 version on all Windows OS releases.
      The waveOut driver should work everywhere out of the box.
      
      Note that with DRC, the synchronization source is your monitor, so you will
      want to be running at 60hz (NTSC) or 50hz (PAL). If you have an adaptive sync
      monitor, you should instead use the WASAPI (exclusive) or ASIO audio driver.
      4d7bb510
  3. 22 Feb, 2019 1 commit
    • Tim Allen's avatar
      Update to bsnes v107 release. · 7786206a
      Tim Allen authored
      [This is specifically a release of bsnes, not the whole higan suite, even though
      it contains all the higan source. -Ed.]
      
      byuu says:
      
      Today I am posting the first release of the new bsnes emulator.
      
      bsnes is designed to be a revival of the classic bsnes design, focusing
      specifically on performance and ease of use for SNES emulation.
      
      In addition to all of the features of higan, bsnes supports the following
      features:
      
        - 300% faster (than higan) scanline-based, multi-threaded graphics renderer
        - option to disable sprite limits in games
        - option to enable hires mode 7 graphics
        - option to enable more accurate pixel-based graphics renderer
        - option to overclock SuperFX games by up to 800%
        - periodic auto-saving of game save RAM
        - save state manager with state screenshots
        - several new save state hotkeys such as increment/decrement slot#
        - option to auto-save states when unloading a game or closing the emulator
        - option to auto-load aforementioned states when loading games
        - save state undo and redo support (with associated hotkeys)
        - speed override modes (50%, 75%, 100%, 150%, 200%)
        - recent games list
        - frame advance mode
        - screenshot hotkey
        - path selection for games, patches, saves, cheats, states, and screenshots
        - dynamic video, audio, input driver changes
        - direct loading and playing of games without the use of the higan library
        - ZIP archive and multiple file extension support for games
        - firmware folder for unappended coprocessor firmware (see documentation for
          more)
        - compatibility with sd2snes and Snes9X MSU1 game file naming
        - compatibility with higan gamepaks (game folders)
        - soft-patching support for both BPS and IPS patches
        - menubar that does not pause emulation when entered
        - video pixel shaders (requires OpenGL 3.2)
        - built-in game database with over 1,200 games to ensure perfect memory
          mapping
        - (Linux, BSD only:) audio dynamic rate control to eliminate stuttering
        - and much more!
      
      The one feature I regret not being able to support in this release is Windows
      dynamic rate control. I put in my best attempt, but XAudio2's API is simply not
      fine-grained enough, and the WASAPI driver is not mature enough. I hope that DRC
      support can be added to the Windows port in the near future, and I would like to
      offer a large cash bounty to anyone who can help me make this happen.
      7786206a
  4. 05 Aug, 2018 1 commit
    • Tim Allen's avatar
      Update to v106r55 release. · 5da45327
      Tim Allen authored
      byuu says:
      
      Everything *should* be working again, but of course that won't
      actually be the case. Here's where things stand:
      
        - bsnes, higan, icarus, and genius compile and run fine on FreeBSD
          with GTK
        - ruby video and audio drivers are untested on Windows, macOS, and
          Linux
        - hiro is untested on macOS
        - bsnes' status bar is not showing up properly with hiro/qt
        - bsnes and higan's about screen is not showing up properly with
          hiro/qt (1x1 window size)
        - bsnes on Windows crashes often when saving states, and I'm not sure
          why ... it happens inside Encode::RLE
        - bsnes on Windows crashes with ruby.input.windows (unsure why)
        - bsnes on Windows fails to show the verified emblem on the status bar
          properly
        - hiro on Windows flickers when changing tabs
      
      To build the Windows bsnes and higan ports, use
      
          ruby="video.gdi audio.directsound"
      
      Compilation error logs for Linux will help me fix the inevitable list of
      typos there. I can fix the typos on other platforms, I just haven't
      gotten to it yet.
      5da45327
  5. 26 Jul, 2018 1 commit
    • Tim Allen's avatar
      Update to 20180726 release. · 876b4be1
      Tim Allen authored
      byuu says:
      
      Once again, I wasn't able to complete a full WIP revision.
      
      This WIP-WIP adds very sophisticated emulation of the Sega Genesis
      Lock-On and Game Genie cartridges ... essentially, through recursion and
      a linked list, higan supports an infinite nesting of cartridges.
      
      Of course, on real hardware, after you stack more than three or four
      cartridges, the power draw gets too high and things start glitching out
      more and more as you keep stacking. I've heard that someone chained up
      to ten Sonic & Knuckles cartridges before it finally became completely
      unplayable.
      
      And so of course, higan emulates this limitation as well ^-^. On the
      fourth cartridge and beyond, it will become more and more likely that
      address and/or data lines "glitch" out randomly, causing various
      glitches. It's a completely silly easter egg that requires no speed
      impact whatsoever beyond the impact of the new linked list cartridge
      system.
      
      I also designed the successor to Emulator::Interface::cap,get,set. Those
      were holdovers from the older, since-removed ruby-style accessors.
      
      In its place is the new Emulator::Interface::configuration,configure
      API. There's the usual per-property access, and there's also access to
      read and write all configurable options at once. In essence, this
      enables introspection into core-specific features.
      
      So far, you can control processor version#s, PPU VRAM size, video
      settings, and hacks. As such, the .sys/manifest.bml files are no longer
      necessary. Instead, it all goes into .sys/configuration.bml, which is
      generated by the emulator if it's missing.
      
      higan is going to take this even further and allow each option under
      "Systems" to have its own editable configuration file. So if you wanted,
      you could have a 1/1/1 SNES menu option, and a 2/1/3 SNES menu option.
      Or a Model 1 Genesis option, and a Model 2 Genesis option. Or the
      various Game Boy model revisions. Or an "SNES-Fast" and "SNES-Accurate"
      option.
      
      I've not fully settled on the syntax of the new configuration API. I
      feel it might be useful to provide type information, but I really quite
      passionately hate any<T> container objects. For now it's all
      string-based, because strings can hold anything in nall.
      
      I might also change the access rules. Right now it's like:
      emulator→configure("video/blurEmulation", true); but it might be nicer
      as "Video::Blur Emulation", or "Video.BlurEmulation", or something like
      that.
      876b4be1
  6. 25 Jul, 2018 1 commit
    • Tim Allen's avatar
      Update to v106r52 release. · 22bd4b92
      Tim Allen authored
      byuu says:
      
      I stand corrected, I managed to create and even larger diff than ever.
      This one weighs in at 309KiB `>__>`
      
      I'll have to create a changelog later, I'm too tired right now to go
      through all of that.
      22bd4b92
  7. 28 Jun, 2018 1 commit
    • Tim Allen's avatar
      Update to v106r44 release. · ec960c51
      Tim Allen authored
      byuu says:
      
      Changelog:
      
        - hiro/Windows: use `WS_CLIPSIBLINGS` on Label to prevent resize
          drawing issues
        - bsnes: correct viewport resizing
        - bsnes: speed up window resizing a little bit
        - bsnes: fix the cheat editor list enable checkbox
        - bsnes: fix the state manager filename display in game ROM mode
        - bsnes: fix the state manager save/rename/remove functionality in
          game ROM mode
        - bsnes: correct path searching for IPS and BPS patches in game ROM
          mode
        - bsnes: patch BS-X town cartridge to disable play limits
        - bsnes: do not load (program,data,expansion).(rom,flash) from disk in
          game pak mode
            - this is required to support soft-patching and ROM hacks
        - bsnes: added speed mode selection (50%, 75%, 100%, 150%, 200%);
          maintains proper pitch
        - bsnes: added icons to the menubar
            - this is particularly useful to tell game ROMs from game paks in
              the load recent game menu
        - bsnes: added emblem at bottom left of status bar to indicate if a
          game is verified or not
            - verified means it is in the icarus verified game dump database
            - the verified diamond is orange; the unverified diamond is blue
        - bsnes: added an option (which defaults to off) to warn when loading
          unverified games
            - working around a bug in GTK, I have to use the uglier
              MessageWindow instead of MessageDialog
        - bsnes: added (non-functional) link to <https://doc.byuu.org/bsnes/>
          to the help menu
        - bsnes: added GUI setting to toggle memory auto-save feature
        - bsnes: added GUI setting to toggle capturing a backup save state
          when closing the emulator
        - bsnes: made auto-saving states on exit an option
        - bsnes: added an option to auto-load the auto-saved state on load
            - basically, the two combined implements auto-resume
        - bsnes: when firmware is missing, offer to take the user to the
          online help documentation
        - bsnes: added fast PPU option to disable the sprite limit
            - increase from 32 items/line + 34 tiles/line to 128 items/line +
              128 tiles/line
            - technically, 1024 tiles/line are possible with 128 sprites at
              64-width
            - but this is just a waste of cache locality and worst-case
              performance; it'll never happen
      
      Errata:
      
        - hiro/Windows: fallthrough on Canvas `WM_ERASEBKGND` to prevent
          startup flicker
      ec960c51
  8. 24 Jun, 2018 1 commit
    • Tim Allen's avatar
      Update to v106r41 release. · f70a20bc
      Tim Allen authored
      byuu says:
      
      Changelog:
      
        - hiro: added Label::set(Background,Foreground)Color (not implemented
          on Cocoa backend)
        - hiro: added (Horizontal,Vertical)Layout::setPadding()
            - setMargin(m) is now an alias to setPadding({m, m, m, m})
        - hiro/Windows: update Label rendering to draw to an offscreen canvas
          to prevent flickering
        - sfc: reverted back to 224/240-line height (from 223/239-line height
          in earlier v106 WIPs)
        - bsnes: new multi-segment status bar added
        - bsnes: exiting fullscreen mode will resize and recenter window
            - this is required; the window geometry gets all scrambled when
              toggling fullscreen mode
        - bsnes: updated to a new logo [Ange Albertini]
      
      Errata:
      
        - hiro/Windows: try to paint Label backgroundColor quicker to avoid
          startup flicker
            - `WM_ERASEBKGND` fallthrough to `WM_PAINT` seems to work
        - hiro/Qt: use Window backgroundColor for Label when no Label
          backgroundColor set
        - bsnes: update size multipliers in presentation.cpp to 224/240 (main
          window size is off in this WIP)
      f70a20bc
  9. 24 May, 2018 1 commit
    • Tim Allen's avatar
      Update to v106r26 release. · 5961ea9c
      Tim Allen authored
      byuu says:
      
      Changelog:
      
        - nall: added -static-libgcc -static-libstdc++ to Windows/GCC link
          flags
        - bsnes, higan: added program icons to main window when game isn't
          loaded
        - bsnes: improved recent games menu sorting
        - bsnes: fixed multi-game recent game loading on Windows
        - bsnes: completed path override support
        - bsnes, higan: added screensaver suppression on Windows
        - icarus: add 32K volatile RAM to SuperFX boards that report no RAM
          (fixes Starfox)
        - bsnes, higan: added automatic dependency generation [Talarubi]
        - hiro/GTK: appending actions to menus restores enabled() state
        - higan: use board node inside manifest.bml if it exists
        - bsnes: added blur emulation and color emulation options to view menu
        - ruby: upgraded input.sdl to SDL 2.0 (though it makes no functional
          difference sadly)
        - ruby: removed video.sdl (due to deprecating SDL 1.2)
        - nall, ruby: improvements to HID class (generic vendor and product
          IDs)
      
      Errata:
      
        - bsnes, higan: on Windows, Application::Windows::onScreenSaver needs
          `[&]` lambda capture, not `[]`
            - find it in presentation/presentation.cpp
      5961ea9c
  10. 20 May, 2018 1 commit
    • Tim Allen's avatar
      Update to v106r24 release. · a73a94f3
      Tim Allen authored
      byuu says:
      
      Changelog:
      * yes.
      
      But seriously, a list of changes on a pre-alpha GUI is going to get annoying.
      
      Basically, work on embedding stuff in the binary, firmware loading (both
      appended to the ROM and in a firmware/ subfolder) added, SGB games can be
      loaded, config file holds more values for driver settings, added ruby drivers to
      other platforms, etc.
      a73a94f3