byuu v4 + higan v110 released2020-03-20 08:53:25
This release substantially improves PC Engine emulation, fixing 80% of known issues.
Regretfully, this will be my final release. I will be stepping down, and my emulators will be maintained going forward as a team project. I'll have more to say on this in the near future in a separate post.
- PC Engine: improved IRQ handling significantly
- PC Engine: fixed T-flag instructions, and implemented all addressing modes for it
- PC Engine: improved VDP penalty cycle timing
- PC Engine: always fire Vblank IRQs every frame, regardless of VDW setting
- PC Engine: add support for STreet Fighter II CE's custom mapper
- PC Engine: emulated MPR latch used by TMA and TAM instructions
- PC Engine: randomize various registers and memory at power-on
- PC Engine: do not allow block moves to read from $ff:0800-17ff
- PC Engine: always set P.B flag (except when pushing P during BRK)
- PC Engine: delay PSG synchronization when not needed (~8% speedup for accuracy profile)
- PC Engine: emulate 4-color background and sprite modes
- PC Engine: emulate grayscale VCE mode
- PC Engine: emulate extra scanline VCE mode
- PC Engine: fixed VRAM->VRAM DMA transfers (was transferring one byte less than it should)
- PC Engine: improve burst-mode emulation (early VRAM->VRAM termination, etc)
- PC Engine: add display timing latching to the performance profile's scanline renderer
- PC Engine: many disassembler improvements
- PC Engine CD: added skeleton implementation (non-functional)
- Mega Drive: fix a crash when loading Sonic & Knuckles or the Game Genie without a daughter cartridge connected
- higan: fix System menu option enabling when "Create New System" is selected
- icarus: fix typo in save RAM portion of Master System game manifests (was marked as ROM by mistake)
- byuu: don't show the program icon briefly when loading a new game
- byuu: focus the viewport after loading games
- byuu: add trace log path override option
- byuu: use save path override for SNES save RAM files as well
Permalink • #releases
byuu v3 + higan v109 released2020-03-12 19:18:35
I've posted new versions of byuu and higan today.
- Famicom: emulated the X24C01 EEPROM for Bandai-FGC boards (no X24C02 support yet)
- Mega CD: CDC PCM DMA can only write to current bank [EkeEke]
- Mega CD: CDC DMA address setting now clears d0-d2 for proper transfer alignment [EkeEke]
- Mega CD: improve power-cycle handling (not perfect; best to restart the emulator between each Mega CD game still ...)
- PC Engine: trigger VDC coincidence IRQs at start of scanline (fixes Bomberman '94, Air Zonk start screen rendering issues)
- PC Engine: improved RCR interrupt emulation (fixes Air Zonk in-game)
- PC Engine: fix VDC DCR writes (fixes Gaia no Monshou, Magical Chase, etc)
- PC Engine: reduced VDC access delays (fixes Wonder Momo, but may not be hardware accurate)
- PC Engine: improved instruction timing
- PC Engine: added Avenue Pad 6 emulation (higan only for now)
- WonderSwan: window emulation improvements
- byuu: BIOS firmware settings window improvements
- byuu: can now load firmware from inside ZIP archives
- byuu: added trace logging tool
- byuu: added manifest viewer tool
- byuu: add path overrides for saves, BPS patches, and DSP firmware files
- higan: fixed a serious issue with the "Create New System" option from the launch screen
- nall: fixed a subtle yet important issue with Natural/Integer::bit() that allowed out-of-range bits to be set
Permalink • 14 Comments • #releases
byuu v2 + higan v108 + bsnes v115 released2020-03-03 12:06:40
I'm refreshing all of my emulators today, in preparation for scaling back a bit.
byuu v2 brings massive performance improvements, run-ahead and rewind support, and Famicom Disk System + Mega CD emulation.
higan v108 brings various user-interface refinements and emulation accuracy improvements.
bsnes v115 brings bugfixes for several titles and run-ahead improvements.
These will be the last major releases for a while; however I will continue to post hotfixes and improvements to the GitHub repositories. I also welcome any and all pull requests, especially for emulation core bugfixes. Most notably, I would greatly appreciate any assistance in improving my Mega CD emulation, if possible.
Thank you everyone for your continued support!
Permalink • 7 Comments • #releases
byuu v1.4 released2020-02-29 11:01:24
I would like to release new major versions of all three of my emulators in the near future.
To help facilitate this, I've posted a beta build of byuu v1.4 for testing.
This release adds rewind support to all cores, and run-ahead support to all but the GBA and MSX cores.
Testing and bug reporting would be highly appreciated, thank you!
Permalink • 3 Comments • #releases
byuu v1 released2020-02-24 18:03:29
Update: I posted v1.1 to address some rendering issues affecting key Super Nintendo games. Apologies, it will be a touch rocky at the start while I iron out all the kinks in the new renderers. Things should stabilize in the coming months as they did with the bsnes relaunch. Thank you!
I'm excited to release the first official version of my magnum opus software project, byuu version 1.0!
byuu is a multi-system emulator that aims to combine the accuracy of higan with the simplicity and performance of bsnes. Essentially, what bsnes did for higan's SNES emulation, I want byuu to do for all 25 of higan's emulated systems.
byuu currently emulates the Nintendo, Super Nintendo, SG-1000, Master System + Game Gear, Sega Genesis, TurboGrafx-16 + SuperGrafx, MSX + MSX2, Game Boy + Color, Game Boy Advance, WonderSwan + Color, Pocket Challenge V2, and Neo Geo Pocket + Color.
I poured my soul into this, and even for a first release, there has been substantial development. As compared to higan v107, byuu v1 features a brand-new, easy-to-use user interface in the general style of bsnes, that loads traditional game ROM images directly, supports native file dialogs, more than doubles the performance of Super Nintendo and Sega Genesis emulation, quadruples the performance of TurboGrafx-16 emulation, and provides a 20% boost to Game Boy Advance emulation. A Ryzen 5 2600 CPU should be able to run any supported system at 150fps or more. As with my other emulators, features like adaptive sync and dynamic rate control come standard.
Future plans for byuu v2+ are ambitious: I hope to add support for rewind, run-ahead, a save state manager, a cheat code editor, frame advance, screenshot capture, and much more. Possibly even a hybrid desktop + couch-mode user interface! I also want to expose my Famicom Disk System, Sega CD, and future PC Engine CD emulation to byuu. Furthermore, I hope to expand byuu beyond my own collection of emulators: specifically, I would like to offer Nintendo DS, Nintendo N64, Sony PlayStation, and Sega Saturn emulation in future releases by relying on other leading emulation projects; although I may need help in achieving those goals.
And now a heartfelt plea: I'm putting everything I have into this project, and my future in the emulation scene depends upon this project's success. Essentially, I'm getting older, and I have too many emulation cores to maintain as just one person. bsnes brought a revival to higan's SNES emulation, and I am hoping that byuu can do the same for higan's other cores.
I am looking for other developers to join on as equal contributors to this project. If this proves highly successful, I'll stick around to guide the project forward. But if not, then I will be looking for a new lead to take over the project. In that case, I would continue to periodically submit patches, time permitting, but would hope for someone else to guide byuu, higan, and bsnes forward. If neither of these two things happen by the end of this year, then my current intention is to regrettably step down from the projects, although I haven't decided on an exact date of when yet. Effectively, I've gone about as far as I could as a sole developer.
Essentially, I am hoping for this project to be what I'm remembered by after I'm gone one day, and so I want it to be as much of a success as possible. I also want these emulation cores to live on beyond me, and not just be tied to me as a person. Already bsnes and higan benefited massively thanks to 15+ years of contributions from well over a hundred volunteers. These emulators are so much more than just me. I hope to accelerate that trend, so that one day I can pass on the torch.
I hate to ask this, but anything you all can do to help promote this project would be greatly appreciated! Getting the word out about it, creating user guides and video tutorials, writing an article about it, posting about it on a forum, adding it to an existing emulation website, ... anything would help. I am hoping that in naming the project eponymously, that I can short-step some of the time-consuming struggle of establishing a new emulator project, but word of mouth is still vital for people to know that this project exists.
Thank you all so much! I hope you'll enjoy this new software as much as I've enjoyed making it.
Permalink • 21 Comments • #releases
byuu v0.14 released2020-02-24 07:17:06
The v1 development phase is basically completed. I'm posting a final beta to catch any last-minute critical issues. Please give it a small test run and report any serious issues that would harm the reputation if they shipped in a v1 release. Thank you!
No need to post news about this elsewhere, if all goes well, v1 will be released very soon.
The big news in this WIP is that I've spent time greatly increasing performance of the most demanding cores in byuu:
- Super Nintendo: 100fps -> 200fps
- Sega Genesis: 85fps -> 210fps
- PC Engine: 68fps -> 240fps
- Game Boy Advance: 123fps -> 154fps
Every system should run at 150+ fps on a $100 desktop CPU now, although of course your mileage may vary.
There are other niceties such as a native file open dialog, auto-saving of memory, support for save games in the Neo Geo Pocket core, a fix for PAL region detection in the Super Nintendo core, and more.
Permalink • 1 Comment • #releases
byuu v0.10 released2020-02-14 08:39:56
Another beta before a v1 release ...
If folks could please test this and let me know of any serious issues, I'd like to get those addressed before releasing a final v1 release build. Thanks!
- update driver settings when changing audio and input drivers
- correct sound output when not outputting at 48KHz
- correct sound output when changing frequency after game is loaded
- show program icon when game is not loaded
- move from native status bar to higan/bsnes-style status bar
- fix a bug with WonderSwan internal EEPROM data
- fix hotkey polling in fullscreen mode
- added joypad support
- fixed initial bindings for gamepad axes and hats
- allow multi-selection clear on input mappings
- added path searching to higan::Node::find()
- added higan::Node::scan() to locate relative tree nodes
- exposed settings for color bleed/emulation, interframe blending, overscan
- default to Path::desktop() instead of Path::user() for loading games
Known issues with v0.10:
- region detection is not working (PAL games are running at NTSC speeds)
Permalink • 2 Comments • #releases
byuu v0.8 released2020-02-11 00:03:17
I'm releasing the first official beta for the new byuu emulator today.
This is a new multi-system emulator, which shares emulation cores with higan.
Like higan, byuu is focused on accuracy foremost. Unlike higan, byuu aims to be much more user friendly. Think of byuu as easy mode, and higan as advanced mode, but they are fundamentally the same emulator under the hood. One is not a superset of the other; they are sibling projects.
The goal of byuu is to carry forward the breakout success of bsnes for all of higan's emulation cores, and not just for the SNES alone. bsnes, by being much easier to use, led to a resurgence in support that resulted in several new features, speed optimizations, bug reports, and emulator accuracy improvements. I hope to rekindle the same interest in all 25 of my supported emulation cores with this new emulator.
And frankly, higan's future depends on this project being a success. I am aiming to retire around the end of this year (though it's not set in stone), and I am looking for a new lead developer willing to take over byuu.org, github.com/byuu, and its emulation projects. I would still contribute to the projects on GitHub for as long as I were able to.
I am changing my personal name to Near, and calling my new emulator byuu, for many reasons. Essentially, these emulators are not only mine: they are the work of dozens of volunteers spanning 15+ years of development. It is perhaps too late, but I wish to separate my personal identity from these projects. I want these emulators to become group projects with multiple developers, and I want them to outlast me if at all possible. With 15+ years and 230,000+ backlinks to byuu.org, I could not see a way to move these emulators to a new domain. And based on it taking 2+ years for higan to become even partially known to the general public, I did not see a viable method of establishing this new emulator in less than a year without using an established name, and the only such name I have at my disposal is byuu. Ideally, I would have kept my emulators on a separate website from day one, but I cannot change the past to correct for this mistake. I mulled over this decision for the past few weeks, and this is the best choice I could come up with. I hope you'll understand. I will also understand if folks continue to call me personally by byuu. I understand it's not easy to change names after 22+ years, and that this will invariably cause some level of confusion. But it can't be helped.
The byuu_san Twitter account, as well as most social media accounts using the name byuu, will be used only for official software development news and updates going forward. Some accounts will be harder than others to migrate, and will take more time and planning.
I have spun off my personal Twitter account and set up a new personal website. Over the coming months, I will be migrating personal content from byuu.org and elsewhere over to my personal website.
I make no secret of the mistakes I've made in the past as byuu (nor will the internet ever let us forget them), and that I'll likely continue to make more mistakes as Near. But for the past two years, I have been doing my best to change and improve myself. I am who I am however, and though I am to be more friendly and cooperative, I won't hide my identity nor unwavering support for my friends. But game preservation transcends politics and ideologies, and I've now separated my work from my personality, so at this point, it is up to you if you want to follow me as Near or not. It's no longer directly tied to byuu.
In any case, byuu is still brand-new, and it is missing several major features including gamepad support, multi-player support, cheat codes, and more. These features will be added in due-time. Sans enhancements like HD mode 7, I am for feature-parity with bsnes, including run-ahead support and much more. The speed is rather limited as well, but I hope to implement scanline renderers and roughly double the performance of each emulator core in the coming year. I am releasing this now for feedback and to try to gauge interest in this new idea of mine.
I hope it will be a success! Thank you everyone!
- v1: support for gamepad mapping and the save state manager
- v2: support for other controller types (mice, light guns) and multiple-players
- v3: support for Famicom Disk System, Super Game Boy, and Sega CD emulation
- v?: support for per-system input mapping, cheat codes, movie recording, and run-ahead functionality
- v?+X: optional scanline renderers for each core to boost performance substantially
- v?+Y: additional emulation cores from outside of higan (PS1, Saturn, N64 would be most promising!)
Permalink • 11 Comments • #releases
bsnes v114 released2020-01-08 10:23:58
In celebration of Max completing his testing of the entire SNES library in both bsnes' fast and accurate PPU rendering modes, and all bugs reported now corrected, today I'm releasing bsnes v114.
Unfortunately, I'm no longer able to host binaries here, and so I'm now currently hosting my Windows binaries at byuu.itch.io instead. For webmasters, I would ask that you please link directly to the bsnes page instead: this gives access to other important links, and allows me to repoint download links in the future as needed.
- Official page
- Windows binary downloads
- macOS, Linux, FreeBSD binary downloads
- Source code repository
- fixed an issue with manually created save states that appeared in v113 (corrected as of v113.1)
- added run-ahead support to the libretro target [realnc]
- macOS: fixed an issue with OpenGL shaders [Sintendo]
- added CPU joypad polling override for Taikyoku Igo - Goliath
- added PPU overrides for Marvelous, Super SWIV, Winter Olympics, and World Cup Striker
- added hotfix for Nichibutsu Arcade Classics (even on real hardware, the attract sequence would sometimes hang)
- fixed region heuristics for the Scandanavian release of Tintin in Tibet
- added a heuristic override for Yuyu no Quiz de Go! Go! (the game's title overwrites the mapping mode identifier)
- properly clear overscan region when overscan is disabled (SNES Electronics Test with PAL video mode)
- updated bsnes to use the latest SNES preservation project database (a few dozen more games added)
- reverted gamepak (folder) firmware naming to use architecture name rather than identifier name
- renamed lr35902.boot.rom to sm83.boot.rom for gamepaks
- fixed typo in the GUI regarding the HD mode 7 +/- hotkeys
In case you think I'm being paranoid or histrionic about hosting downloads offsite now:
Permalink • 4 Comments • #releases
higan v107 released2019-12-21 16:02:42
It has been over two years and *235* WIP releases since higan v106 was released.
And today, finally, I'm posting higan v107 publicly.
There's just no way I'm going to be able to create a full changelog here, but I will summarize the most important parts:
- added Sega CD emulation (BIN+CUE only)
- added Neo Geo Pocket + Neo Geo Pocket Color emulation
- added MSX + MSX2 emulation (cartridges only)
- added SG-1000 + SC-3000 emulation
- added ColecoVision emulation
- added boot ROM emulation for the WonderSwan + WonderSwan Color
- substantial accuracy improvements to the SNES and Game Boy emulation
- created an entirely new tree-view-driven user interface
Please note that the user interface rewrite is extremely substantial, and I can't stress how absolutely critical it is that you read the user guide before attempting to use this new release.
The truth is, the new user interface is not ready, and without a release to gather feedback, it never will be. The old higan v106 user interface was unable to scale up to the complexity of emulating 25 systems and counting. I spent many months working from the ground up on a brand new paradigm so that I could emulate any system of any complexity using a single unified user interface. I believe a tree view to be the best way of expressing infinite flexibility, but this design is unlike any other emulator out there. And I know very well from experience how much we all (myself included) dislike change.
I believe that it's possible to refine this concept and strike a balance between familiarity and intuitiveness. , but with your help, I believe I can get there. Short of stagnation with v106, this was the only path forward.
If you're willing to give this release a try, I'd welcome your feedback. Please understand that right now, it's very rough around the edges with lots of small bugs and no polish. The v107 line will include many public point-releases as I incorporate feedback and rewrite components to make the emulator easier to use.
If you're not onboard with that, please stick with higan v106 and wait this release cycle out until things are finalized in a future release. Or perhaps skip over higan and check out the newly revived bsnes instead: bsnes is what I'm known best for, solid SNES emulation, in a performant, feature-filled, traditional, easy-to-use package.
As before and as always, higan is my personal research project. I know that it's not for everyone, but if you're like me, then I do hope you'll enjoy this release. It's the culmination of literally thousands of hours of work since v106.
Permalink • 6 Comments • #releases
bsnes v113.1 released2019-12-15 17:16:14
I've posted a quick hotfix release for an issue that was causing save states to sometimes fail to restore the state correctly.
I haven't yet identified why the small change I made in the v112 WIPs caused this issue, but reverting it has of course corrected the issue, so for now, I'm posting v113.1:
Permalink • 1 Comment • #releases
bsnes v113 released2019-12-11 13:46:24
bsnes v113 has been released. The full changelog is below.
- corrected PPU OAM address latching with the accurate PPU renderer
- fixed offset-per-tile regression with the accurate PPU renderer
- fixed very rare PPU mosaic rendering bug with the accurate PPU renderer
- corrected a sound stuttering issue when emulating the Super Game Boy 2 [LIJI]
- Windows: added a workaround for an issue where bsnes was crashing on exit for a very small number of users
- changed gamepak firmware loading names to use the identifier (dsp1, dsp2, etc) label instead of the architecture (upd7725, etc)
- do not apply color blending for the first hires pixel with the accurate PPU renderer (fixes green line in Jurassic Park)
- added scanline override setting for Suguro Quest++ with the fast PPU renderer
- disabled HD mode 7 supersampling when EXTBG mode is active, as it is not compatible
- fixed MSU1 and SGB audio when using run-ahead and overclocking modes
- implemented correct fix for Kishin Douji Zenki - Tenchi Meidou
- improved CPU IRQ handling to fix Shin Nihon Pro Wrestling Kouhin '95
- fixed a GUI typo where "Increment" and "Decrement" "State Slot" labels were reversed
- fixed audio balance setting when lowering it below 50%
- added BSC-1A7M-10 board and corrected BSC-1AxM-xx masking (fixes RPG Tsukuru 2 and Sound Novel Tsukuru)
- improved the driver crash detector to not trip if closing the emulator before initialization could complete
- added a hotfix to prevent a rare crash in Rendering Ranger R2 that can happen even on real hardware
- made the entire window support drag-and-drop for gamepaks and game ROM files
- merged the latest release of SameBoy for improved Super Game Boy support [LIJI]
- macOS: add hotplug support to IOKit joypad driver [Sintendo]
- macOS: fixed a serious issue with the IOKit joypad driver [kode54]
- libretro: updated boards database to the latest version [rtretiakov]
- libretro: merged Super Game Boy support improvement patch [fr500]
- small improvements to libco and nall libraries
bsnes v113 is the seventh in the new line of bsnes releases. At the time of release, all known issues are once again resolved. As always, please report any issues to the bsnes GitHub issue tracker, or feel free to drop me a line on the contact page. Thank you!
Permalink • 5 Comments • #releases
bsnes v112 released2019-12-05 07:00:45
bsnes v112 was released on October 20th, 2019. The full changelog is below.
- improved Super Game Boy audio support
- fixed two small sprite issues affecting Star Ocean with the accurate PPU
- added deterministic rewind support; rewind is now 100% safe when enabled
- added a safer save state serialization method for Tales of Phantasia and Star Ocean
- fixed detection of ST010 and ST011 HLE when DSP firmware is missing
- added SHVC-2P3B-01 prototype board mapping for Kunio-kun Tournament Special
- improved the frame advance functionality to be more responsive
- added a scanline override for the fast PPU for the Japanese version of NHL '94
- added new preset buttons to the driver settings to make adaptive sync and dynamic rate control easier to configure
- by request, I added a pseudo-fullscreen mode to continue displaying the status bar
- added run-ahead support of up to four frames
- optimized save state serialization performance [Alcaro, byuu]
- added serialization to the SDD1 decompressor for the new deterministic save state mode
- removed the fast PPU tile caching; as it was not helping speed and made serialization more expensive
- RetroArch: added Super Game Boy support
- RetroArch: added a core change that removes a frame of input latency
- Linux: added a fix for a rare crashing issue with SDL joypads
(reposting due to the CMS update.)
Permalink • 2 Comments • #releases