mirror of
https://github.com/libretro/bsnes-libretro.git
synced 2024-11-23 08:59:40 +00:00
ccd8878d75
byuu says: Changelog: - (hopefully) fixed BS Memory and Sufami Turbo slot loading - ported GB, GBA, WS cores to use nall/vfs - completely removed loadRequest, saveRequest functionality from Emulator::Interface and ui-tomoko - loadRequest(folder) is now load(folder) - save states now use a shared Emulator::SerializerVersion string - whenever this is bumped, all older states will break; but this makes bumping state versions way easier - also, the version string makes it a lot easier to identify compatibility windows for save states - SNES PPU now uses uint16 vram[32768] for memory accesses [hex_usr] NOTE: Super Game Boy loading is currently broken, and I'm not entirely sure how to fix it :/ The file loading handoff was -really- complicated, and so I'm kind of at a loss ... so for now, don't try it. Everything else should theoretically work, so please report any bugs you find. So, this is pretty much it. I'd be very curious to hear feedback from people who objected to the old nall/stream design, whether they are happy with the new file loading system or think it could use further improvements. The 16-bit VRAM turned out to be a wash on performance (roughly the same as before. 1fps slower on Zelda 3, 1fps faster on Yoshi's Island.) The main reason for this was because Yoshi's Island was breaking horribly until I changed the vramRead, vramWrite functions to take uint15 instead of uint16. I suspect the issue is we're using uint16s in some areas now that need to be uint15, and this game is setting the VRAM address to 0x8000+, causing us to go out of bounds on memory accesses. But ... I want to go ahead and do something cute for fun, and just because we can ... and this new interface is so incredibly perfect for it!! I want to support an SNES unit with 128KiB of VRAM. Not out of the box, but as a fun little tweakable thing. The SNES was clearly designed to support that, they just didn't use big enough VRAM chips, and left one of the lines disconnected. So ... let's connect it anyway! In the end, if we design it right, the only code difference should be one area where we mask by 15-bits instead of by 16-bits.
80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
#pragma once
|
|
|
|
/* nall
|
|
* author: byuu
|
|
* license: ISC
|
|
*
|
|
* nall is a header library that provides both fundamental and useful classes
|
|
* its goals are portability, consistency, minimalism and reusability
|
|
*/
|
|
|
|
//include the most common nall headers with one statement
|
|
//does not include the most obscure components with high cost and low usage
|
|
|
|
#include <nall/platform.hpp>
|
|
|
|
#include <nall/algorithm.hpp>
|
|
#include <nall/any.hpp>
|
|
#include <nall/atoi.hpp>
|
|
#include <nall/bit.hpp>
|
|
#include <nall/bit-field.hpp>
|
|
#include <nall/bit-vector.hpp>
|
|
#include <nall/config.hpp>
|
|
#include <nall/directory.hpp>
|
|
#include <nall/dl.hpp>
|
|
#include <nall/endian.hpp>
|
|
#include <nall/file.hpp>
|
|
#include <nall/filemap.hpp>
|
|
#include <nall/function.hpp>
|
|
#include <nall/hashset.hpp>
|
|
#include <nall/hid.hpp>
|
|
#include <nall/image.hpp>
|
|
#include <nall/inode.hpp>
|
|
#include <nall/interpolation.hpp>
|
|
#include <nall/intrinsics.hpp>
|
|
#include <nall/map.hpp>
|
|
#include <nall/matrix.hpp>
|
|
#include <nall/maybe.hpp>
|
|
#include <nall/memory.hpp>
|
|
#include <nall/path.hpp>
|
|
#include <nall/primitives.hpp>
|
|
#include <nall/property.hpp>
|
|
#include <nall/queue.hpp>
|
|
#include <nall/random.hpp>
|
|
#include <nall/range.hpp>
|
|
#include <nall/run.hpp>
|
|
#include <nall/serializer.hpp>
|
|
#include <nall/set.hpp>
|
|
#include <nall/shared-pointer.hpp>
|
|
#include <nall/sort.hpp>
|
|
#include <nall/stdint.hpp>
|
|
#include <nall/string.hpp>
|
|
#include <nall/thread.hpp>
|
|
#include <nall/traits.hpp>
|
|
#include <nall/unique-pointer.hpp>
|
|
#include <nall/utility.hpp>
|
|
#include <nall/varint.hpp>
|
|
#include <nall/vector.hpp>
|
|
#include <nall/decode/base64.hpp>
|
|
#include <nall/decode/bmp.hpp>
|
|
#include <nall/decode/gzip.hpp>
|
|
#include <nall/decode/inflate.hpp>
|
|
#include <nall/decode/png.hpp>
|
|
#include <nall/decode/url.hpp>
|
|
#include <nall/decode/zip.hpp>
|
|
#include <nall/encode/base64.hpp>
|
|
#include <nall/encode/url.hpp>
|
|
#include <nall/hash/crc16.hpp>
|
|
#include <nall/hash/crc32.hpp>
|
|
#include <nall/hash/crc64.hpp>
|
|
#include <nall/hash/sha256.hpp>
|
|
|
|
#if defined(PLATFORM_WINDOWS)
|
|
#include <nall/windows/registry.hpp>
|
|
#include <nall/windows/utf8.hpp>
|
|
#endif
|
|
|
|
#if defined(API_POSIX)
|
|
#include <nall/serial.hpp>
|
|
#endif
|