diff --git a/README.md b/README.md index 3565f53f..38fa5754 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,63 @@ -The official bsnes repository -============================= +bsnes +===== -bsnes emulates the Super Famicom and Super Nintendo consoles, -including various peripherals, -allowing you to play classic games on a modern general-purpose computer. +bsnes is a multi-platform Super Nintendo (Super Famicom) emulator that focuses +on performance, features, and ease of use. -The name "bsnes" originally referred to a standalone SNES emulator. -Later, bsnes added support for other classic game consoles, -then in v091 it was renamed "higan". -higan still exists, and still includes SNES emulation, -but for people who don't want or need all the other emulators, -as of v107 the SNES emulation is once again -available on its own as "bsnes". +bsnes currently enjoys 100% known, bug-free compatibility with the entire SNES +library when configured to its most accurate settings. -Basically, -apart from `.gitignore` files, -anything in the -[bsnes](bsnes/), -[hiro](hiro/), -[icarus](icarus/), -[libco](libco/), -[nall](nall/), -[ruby](ruby/), -or [shaders](shaders/) -directories should be exactly as it appeared in official releases. -Everything else has been added for various reasons. +Development +----------- -This repository shares history -with [the official higan repo](https://github.com/byuu/higan) -so you can trace bsnes' development -all the way back to 2010. -With [the bsnes history repo](https://gitlab.com/higan/bsnes-history), -you can trace development back to the earliest surviving releases. +Git is used for the development of new releases, and represents a staging +environment. As bsnes is rather mature, things should generally be quite stable. +However, bugs will exist, regressions will occur, so proceed at your own risk. -Official bsnes resources ------------------------- +If stability is required, please download the latest stable release from the +[official website](https://bsnes.byuu.org) - - [Official homepage](https://byuu.org/emulation/bsnes/) - - [Official git repo](https://github.com/byuu/bsnes) +Unique Features +--------------- -Unofficial bsnes resources --------------------------- + - True Super Game Boy emulation (using the SameBoy core by Lior Halphon) + - HD mode 7 graphics with optional supersampling (by DerKoun) + - Low-level emulation of SNES coprocessors (DSP-n, ST-n, Cx4) + - Multi-threaded PPU graphics renderer + - Speed mode settings which retain smooth audio output (50%, 75%, 100%, 150%, 200%) + - Built-in games database with thousands of game entries + - Built-in cheat code database for hundreds of popular games (by mightymo) + - Built-in save state manager with screenshot previews and naming capabilities + - Support for ASIO low-latency audio + - Customizable per-byte game mappings to support any cartridges, including prototype games + - 7-zip decompression support + - Extensive Satellaview emulation, including BS Memory flash write and wear-leveling emulation + - 30-bit color output support (where supported) - - [Unofficial forum](https://helmet.kafuka.org/bboard/) - - [Latest WIP build for Windows][wipwin] +Standard Features +----------------- + - MSU1 support + - BPS and IPS soft-patching support + - Save states + - OpenGL multi-pass pixel shaders + - Built-in software filters including HQ2x (by MaxSt) and snes_ntsc (by blargg) + - Adaptive sync and dynamic rate control for perfect audio/video synchronization + - Just-in-time input polling for minimal input latency + - Support for Direct3D exclusive mode video + - Support for WASAPI exclusive mode audio + - Periodic auto-saving of game saves + - Undo states to revert any accidental save state loads + - Auto-saving of states when unloading games, and auto-resuming of states when reloading games + - Sprite limit disable support + - Cubic audio interpolation support + - Optional high-level emulation of SNES coprocessors + - SuperFX overclocking of up to 800% + - Frame advance support + - Screenshot support -[wipwin]: https://gitlab.com/higan/higan/-/jobs/artifacts/bsnes-v107/download?job=higan-windows-x86_64-binaries +Links +----- + + - [Official website](https://bsnes.byuu.org) + - [Official git repository](https://github.com/byuu/bsnes) diff --git a/bsnes/gb/Core/gb.h b/bsnes/gb/Core/gb.h index e12fcfac..9c2dc8d3 100644 --- a/bsnes/gb/Core/gb.h +++ b/bsnes/gb/Core/gb.h @@ -1,5 +1,7 @@ #ifndef GB_h #define GB_h +#define typeof __typeof__ +#define _XOPEN_SOURCE 500 #include #include #include @@ -277,7 +279,7 @@ typedef struct { /* We make sure bool is 1 for cross-platform save state compatibility. */ /* Todo: We might want to typedef our own bool if this prevents SameBoy from working on specific platforms. */ -_Static_assert(sizeof(bool) == 1, "sizeof(bool) != 1"); +//_Static_assert(sizeof(bool) == 1, "sizeof(bool) != 1"); #ifdef GB_INTERNAL struct GB_gameboy_s { diff --git a/bsnes/gb/Core/sgb.c b/bsnes/gb/Core/sgb.c index ccc439ab..de918e82 100644 --- a/bsnes/gb/Core/sgb.c +++ b/bsnes/gb/Core/sgb.c @@ -3,6 +3,10 @@ #include #include +#ifndef M_PI + #define M_PI 3.14159265358979323846 +#endif + #define INTRO_ANIMATION_LENGTH 200 enum { diff --git a/bsnes/gb/GNUmakefile b/bsnes/gb/GNUmakefile index bfb7219c..9da510cf 100644 --- a/bsnes/gb/GNUmakefile +++ b/bsnes/gb/GNUmakefile @@ -1,4 +1,4 @@ -flags += -DGB_INTERNAL -Wno-multichar -Dtypeof=__typeof__ +flags += -DGB_INTERNAL -Wno-multichar options += -I../sameboy objects += gb-apu gb-camera gb-debugger gb-display gb-gb gb-joypad gb-mbc diff --git a/hiro/cocoa/widget/viewport.cpp b/hiro/cocoa/widget/viewport.cpp index 3ae50ae0..d6169745 100755 --- a/hiro/cocoa/widget/viewport.cpp +++ b/hiro/cocoa/widget/viewport.cpp @@ -71,4 +71,6 @@ auto pViewport::setFocusable(bool focusable) -> void { //TODO } +} + #endif