Today I'm announcing the revival of the bsnes project.
This is going to be a standalone SNES emulator, utilizing the higan SNES core,
but with a much faster multi-threaded PPU renderer. The performance should
hopefully exceed the old bsnes-balanced releases, while being just as accurate.
The bsnes project is also going to focus heavily on ease of use, providing
support for direct ROM file loading, automatic gamepad mapping (where possible),
soft-patching support, etc.
The goal is to provide all of the recent higan SNES emulation improvements and
the SNES preservation project work to a wider audience.
I want to have an honest discussion on the technical merits of FPGA devices, and
I believe I missed the mark on that yesterday. So if you'll indulge me, I'd like
to take another shot at that. This time, free of money, motives, etc.
Regrettably, I've seen a continued reluctance by the press to challenge the
marketing spin by the Analogue CEO regarding their new Super Nt product. So,
since journalists won't do their jobs, I'll do it for them.
After two years, a new version of bass has been released, which contains many
substantial changes: expressions, multi-argument defines, inline macros, and
Unfortunately, code written for bass v14 is unlikely to be compatible with v15,
and code changes will be necessary.
However, the goal going forward is for bass to stabilize. I wanted to offer a
guarantee that all code compiled with v15 will be forward-compatible, but given
the large number of changes, this seems a bad idea. Instead, I'd like to run
with v15 for a decent length of time, and if no serious issues arise, then we
can consider this for the next release.
Do note that unlike previous releases, backward-incompatible changes won't occur
to v15 unless they are of significant, quantifiable benefit.
This release provides several major improvements to Mega Drive emulation which
enhances compatibility a good deal. It also includes important Super Famicom
mosaic emulation improvements, plus a much-needed SuperFX save state issue fix.
This will be the last release for a while: I have an upcoming vacation, and
following that, I'll be shifting my focus back to the SNES preservation project
until my backlog of 125 PAL games is cleared.
higan: many improvements to Emulator::Interface to support forks/frontends
higan: refreshed program icon
icarus: new program icon
Game Boy Advance: slight emulation speedup over v104
Game Boy Advance: synchronize APU FIFO updates better
Mega Drive: added automatic region detection [hex_usr]
Mega Drive: support 8-bit SRAM
Game Boy Advance: fixed bug when changing to THUMB mode via MSR [MerryMage]
Master System: fix bug in backdrop color and background 0 priority [hex_usr]
Mega Drive: backgrounds always update output priority bit [Cydrak]
Mega Drive: emulated interlaced video output
Mega Drive: emulated shadow/highlight mode [Cydrak]
Super Famicom: auto joypad polling clears the shift register when starting
Super Famicom: added new low-entropy RAM initialization mode to more closely match hardware
Game Boy Advance: rumble will now time out after being left on for 500ms
ruby: improved rumble support in udev input driver [ma_rysia]
M68K: move.b (a7)[+/-] adjust a7 by two
M68K: illegal/lineA/lineF opcodes do not modify the stack register
Mega Drive: emulate VIP status bit
uPD7725: improved emulation of OV1/S1 flags [byuu, AWJ, Lord Nightmare]
uPD7725: improved handling of DP, RP updates [Jonas Quinn]
Super Famicom: improved emulation of mosaic effects in hires, interlace, and offset-per-tile modes [byuu, Cydrak]
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! ^^;
With this release, PC Engine, Master System, Game Gear, Mega Drive and the newly
added SuperGrafx support are now quite usable! They're far from the best
emulators for these systems, but with many bugfixes, full sound emulation, and
save state support ... many games are now fully playable with decent accuracy.
The Game Boy Advance emulation is also now substantially improved with vastly
improved sound quality and a new dot-based PPU renderer. With that change, every
single component in higan is now cycle-based. Regrettably, these changes do
carry a ~20% performance penalty compared to GBA emulation in v102.
added SuperGrafx emulation
improved audio band-pass filtering for all emulated systems
screen rotation is now a hotkey; automatically rotates control bindings
screen rotation now supported on the Game Boy Advance as well (used by a small number of games)
massive improvements to Mega Drive emulation
massive code cleanups and rewrites to many CPU emulation cores (MOS6502, WDC65816, SPC700, etc)
Famicom, Master System, Mega Drive: added PAL emulation support
PC Engine, SuperGrafx, Master System, Game Gear, Mega Drive: added save state support
PC Engine, SuperGrafx: added PSG sound emulation
Master System, Game Gear: added PSG sound emulation
Mega Drive: added Z80 APU emulation [with help from Cydrak]
Mega Drive: added PSG sound emulation
Mega Drive: added YM2612 sound emulation [Cydrak]
Super Famicom: fixed Super Game Boy emulation
PC Engine: added save RAM support (using per-game PCE-CD backup RAM)
Game Boy Advance: substantial improvements to audio emulation quality
Game Boy Advance: convert scanline-based PPU renderer to a dot-based renderer
Game Boy Advance: properly initialize CPU state (fixes Classic NES Series games)
Game Boy Advance: MUL timing corrected [Jonas Quinn]
Mega Drive: emulate special mappers for Phantasy Star IV, Super Street Fighter II, etc.
Super Famicom: use darker luma for INIDISP=0 (large improvement to Final Fantasy III opening)
Super Famicom: fixed bugs in SMP OR1,AND1 instructions
cheat code database regrettably removed from official releases; will be made available separately
This changelog is a summary of major changes. For a detailed list of all
changes, which spans several pages, please see the higan Gitlab repository.
This release adds very preliminary emulation of the Sega Master System
(Mark III), Sega Game Gear, Sega Mega Drive (Genesis), and NEC PC Engine
(Turbografx-16). These cores do not yet offer sound emulation, save states or
I'm always very hesitant to release a new emulation core in its alpha stages, as
in the past this has resulted in lasting bad impressions of cores that have
since improved greatly. For instance, the Game Boy Advance emulation offered
today is easily the second most accurate around, yet it is still widely judged
by its much older alpha implementation.
However, it's always been tradition with higan to not hold onto code in secret.
Rather than delay future releases for another year or two, I'll put my faith in
you all to understand that the emulation of these systems will improve over
I hope that by releasing things as they are now, I might be able to receive some
much needed assistance in improving these cores, as the documentation for these
new systems is very much less than ideal.
Also, please note that starting with this release, I am omitting the
settings.bml file. This means that you will have to manually configure your
gamepad input assignments, and select the appropriate devices from the system
menu after loading games. You may also want to select a more conservative driver
profile than the default (OpenGL, WASAPI.) If they cause you any troubles, a
safer bet would be (Direct3D, DirectSound.)
The good news in omitting this file is that you'll only have to configure inputs
once, and you won't lose any customizations by upgrading to future releases.
For those who don't want to read an entire article; I'd just like to publicly
call out the blatant hypocisy of Let's Encrypt here:
They deny their users the ability to request wildcard certificates; yet enjoy
using wildcards on their parent site, eff.org
They deny their users the ability to request certificates that last longer than
three months, yet their very own letsencrypt.org website uses a certificate with
a three year validity length!
If they want to tell all their users how to run their sites, then they should
lead by example and give up these luxuries themselves.
New servers; SSL/HTTPS support; IPv6 support2016-09-17
The old byuu.org has been replaced with two new servers. The forum now runs on
its own separate server. In order for the SSL certificate to work across both;
I had to use A/AAAA records to point board.byuu.org at the secondary server.
With the server move from New Jersey to Chicago, IPv6 support has begun working
For anyone who has been following my progress for the past two weeks; I have
been trying my best to find a solution to avoid paying for an SSL certificate:
not because I couldn't afford it, but because security should not cost money.
Unfortunately, there are only two free options: StartSSL, which won't cover
subdomains at all (a complete non-starter); and Let's Encrypt, a hypocritical
joke of a service.
I'll write more on this topic at a later date, but for now — and against my
strongest moral objections — I gave in and paid for an SSL certificate. Since it
is recognized by all browsers, I went ahead and made HTTP automatically redirect
to the HTTPS version of the site.
Sega Mega Drive (Sega Genesis) emulation2016-08-21
On July 8th, I started on a Sega Mega Drive emulation core.
As of today, it's finally able to run its first game with no visible issues
other than a lack of audio emulation. Yay!
Still, it's going to be a long haul to get this core to be of high quality: the
Mega Drive is roughly on par with the SNES in terms of technical complexity when
it comes to aiming for extreme accuracy.
I'm not sure when it will appear in official releases.