Skip to content
  • Tim Allen's avatar
    Update to v104 public release. · 0034adab
    Tim Allen authored
    [As mentioned in the v104 internal release notes, byuu fixed a small typo in
    the GBA core. -Ed.]
    
    byuu says:
    
    There are lots of improvements in this new release, both to core
    emulation and to the user interface. However, some of these changes are
    quite substantial, so regressions are a possibility. Please report any
    regressions from v103 on the forums if found.
    
    Note that Mega Drive save RAM files will not be compatible with v103,
    but will now be compatible with save RAM files from all other Mega Drive
    emulators, and the format will be stable going forward.
    
    Also!! Thanks to the tireless work of Screwtape, the
    Help->Documentation link in higan now takes you to a very comprehensive
    user guide. Please be sure to consult this if you have any questions
    about using higan.
    
    Lastly, I've added a link to my Patreon page (https://patreon.com/byuu/)
    to the higan downloads page. The money will go exclusively toward
    purchasing SNES games for preservation, hardware and flash carts for
    reverse engineering, equipment such as backup drives, etc. Donating is
    entirely optional and comes with no rewards, but would of course be
    greatly appreciated! ^^;
    
    Changelog (since v103):
    
      - nall/dsp: improved first-order IIR filtering
      - Famicom: improved audio filtering (90hz lowpass + 440hz lowpass +
        14khz highpass)
      - Game Boy Advance: corrected bug in PSG wave channel emulation
        [Cydrak]
      - Mega Drive: added first-order 2.84KHz low-pass filter to match VA6
        model hardware
      - Mega Drive: lowered PSG volume relative to YM2612 to match VA6 model
        hardware
      - Mega Drive: Hblank flag is not always set during Vblank
      - Mega Drive: fix PAL mode reporting from control port reads
      - Famicom: improved phase duty cycle emulation (mode 3 is 25% phase
        inverted; counter decrements)
      - Mega Drive: reset does not cancel 68K bus requests
      - Mega Drive: 68K is not granted bus access on Z80 reset
      - Mega Drive: CTRL port is now read-write, maintains value across
        controller changes
      - Z80: IX, IY override mode can now be serialized in save states
      - 68K: fixed calculations for ABCD, NBCD, SBCD [hex\_usr,
        SuperMikeMan]
      - SPC700: improved all cycle timings to match results observed by
        Overload with a logic anaylzer
      - Super Famicom: SMP uses a separate 4x8-bit buffer for $f4-f7; not
        APU RAM [hex\_usr]
      - Super Famicom: SMP TEST register is now finally 100% fully emulated
        [byuu, AWJ]
      - Game Boy Advance: DMA can run between CPU instruction cycles
      - Game Boy Advance: added 2-cycle delay between DMA activation and
        transfers
      - higan: improved aspect ratio correction accuracy at higher video
        scaling sizes
      - higan: overscan masking will now actually crop the underlying video
        instead of just blanking it
      - Mega Drive: center video when overscan is disabled
      - higan: added increment/decrement quick save slot hotkeys
      - Game Boy Advance: fixed wave RAM nibble ordering (fixes audio in
        Castlevania, Pocket NES)
      - higan: added new adaptive windowed mode: resizes the window to the
        current emulated system's size
      - higan: added new integral scaling mode: resizes the window to fill
        as much of the screen as possible
      - higan: main window is now resizable and will automatically scale
        contents based on user settings
      - higan: fixed one-time blinking of the main window on startup caused
        by focus stealing bug
      - ruby: fixed major memory leak in Direct3D driver
      - ruby: added fullscreen exclusive mode to Direct3D driver
      - Super Famicom: corrected latching behavior of BGnHOFS PPU registers
      - higan: all windows sans the main viewport can be dismissed with the
        escape key now
      - ruby: complete API rewrite; many audio drivers now support device
        selection
      - higan: output frequency can now be modified
      - higan: configuration settings split to individual menu options for
        faster access to individual pages
      - ruby: improved WASAPI driver to event-driven model; more compatible
        in exclusive mode now
      - libco: fix compilation of sjlj and fiber targets [Screwtape]
      - ruby: added YV12 and I420 support to X-Video driver
      - Game Boy: added TAMA emulation (RTC emulation is not working yet)
        [thanks to endrift for notes]
      - Game Boy: correct data ordering of MMM01 ROMs (MMM01 ROMs will need
        to be re-imported into higan)
      - Game Boy: store MBC2 save RAM as 256-bytes instead of 512-bytes (RAM
        is 4-bit; not 8-bit with padding)
      - Game Boy: fixed a bug with RAM serialization in games without a
        battery
      - Mega Drive: fix CRAM reads (fixes Sonic Spinball) [hex\_usr]
      - Game Boy: added rumble support to MBC5 games such as Pokemon Pinball
      - Game Boy: added MBC7 emulation (accelerometer X-axis, EEPROM not
        working yet) [thanks to endrift for notes]
      - hiro: macOS compilation fixes and UI improvements [MerryMage,
        ncbncb]
      - Game Boy: added MBC6 emulation (no phone link or flash support;
        timing bugs in game still)
      - Game Boy: HDMA syncs to other components after each byte transfer
        now
      - Game Boy: disabling the LCD completely halts the PPU (fixes onscreen
        graphical corruption in some games)
      - Mega Drive: added 6-button Fighting Pad emulation [hex\_usr]
      - 68K: TAS sets d7 when EA mode is a direct register (fixes Asterix
        graphical corruption)
      - Game Boy: STAT mode is forced to zero when LCD is disabled (fixes
        Pokemon Pinball)
      - LR35902: complete rewrite
      - icarus: high-DPI is not supported on Windows yet; remove setting for
        consistency with higan window sizes
      - hiro: added full support for high-DPI displays on macOS [ncbncb]
      - ARM7TDMI: complete rewrite
      - Super Famicom: disabled channels during HDMA initialization appear
        to set DoTransfer flag
      - V30MZ: code cleanup
      - Mega Drive: added optional TMSS emulation; disabled by default
        [hex\_usr]
      - ARM7TDMI: pipeline decode stage caches CPSR.T [MerryMage]
      - ARM7TDMI: fixed timing of THUMB stack multiple instruction
        [Cydrak]
      - higan: detect when ruby drivers crash; disable drivers on next
        startup to prevent crash loop
      - Mega Drive: added automatic region detection (favors NTSC-J >
        NTSC-U > PAL) [hex\_usr]
      - Mega Drive: support 8-bit SRAM
      - ARM7TDMI: PC should be incremented by 2 when setting CPSR.T via MSR
        instruction [MerryMage]
      - ruby: add Windows ASIO driver support (does not work on some systems
        due to buggy vendor drivers)
      - higan: default to safe drivers on a new install; due to instability
        with some optimal drivers
    0034adab