Next Generation Emulation banner
1 - 1 of 1 Posts

Super Moderator
5,478 Posts
Discussion Starter · #1 ·
Unfortunately, I was not able to include any actual Super Game Boy support in this release. I was however able to back-port all other changes since v045, as well as add a lot of new stuff. Though there are few visible changes from the last release, internally much has changed. I'm releasing this mostly as a point release whilst everything should be stable.

I've decided to support the Super Game Boy via external DLL (or SO for Linux users.) There are many reasons for this. Most notably is that the largest special chip in bsnes right now weighs in at ~30kb of code. Emulating an entire Game Boy, not including the SGB enhancements, would require an additional ~800kb of code, or nearly half the size of the entire SNES emulation core. Add to that potential issues with licensing, conflicts with the build process / namespace, a significant increase to build time, and a lack of flexibility over which Game Boy emulator to use, and it's pretty clear that this is something best left external. At least until we have a fully trimmed, fully working SGB emulator available.

The way this will work is bsnes will look for SuperGameBoy.(dll,so), and if present, it will call out to pre-defined functions. Users will need the SGB BIOS loaded, at which point they can select a Game Boy cartridge, and bsnes will use the DLL for actual emulation. Sadly I don't have a working DLL ready for this release, and even if I did, there's no sound bridge yet for the Game Boy audio.

Other than that, much of the core has been updated in an attempt to make the core more library-like. It still has a few major limitations: it requires libco (which is not portable) and nall (which is quite large), and only one instance can be instantiated as all of the base objects are pre-defined and inter-linked. Not that I can imagine any practical use for multiple simultaneous SNES emulators anyway ...

* Save RAM is now automatically saved once per minute
* Added delay to Super Scope / Justifier latching to fix X-Zone
* Fixed an edge case in CPU<>PPU counter history
* S-CPU can now run up to one full scanline ahead of S-PPU before syncing
* Added interface for Super Game Boy support (no emulation yet)
* Fixed a bug with path selection not adding trailing slash
* All S-SMP opcodes re-written to use new pre-processor
* Entire core encapsulated into SNES namespace
* Core accepts files via memory only; zlib and libjma moved outside of core
* Major Makefile restructuring: it's now possible to build with just "make" alone
* Linux: libxtst / inputproto is no longer required for compilation
* Lots of additional code cleanup
Site @ byuu's homepage
1 - 1 of 1 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.