mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-08-14 06:44:10 +02:00
Update to v106r2 release.
byuu says: Changelog: - Super Famicom: added support for loading manifests without embedded mapping information¹ - genius: initial commit - various Makefile cleanups ¹: so the idea here is to try and aim for a stable manifest format, and to allow direct transposition of icarus/genius database entries into manifest files. The exact mechanics of how this is going to work is currently in flux, but we'll get there. For right now, `Super Famicom.sys` gains `boards.bml`, which is the raw database from my board-editor tool, and higan itself tries to load `boards.bml`, match an entry to game/board from the game's `manifest.bml` file, and then transform it into the format currently used by higan. It does this only when the game's `manifest.bml` file lacks a board node. When such a board node exists, it works as previous versions of higan did. The only incompatible change right now is information/title is now located at game/label. I may transition window title display to just use the filenames instead. Longer term, some thought is going to need to go into the format of the `boards.bml` database itself, and at which point in the process I should be transforming things. Give it time, we'll refine this into something nicer.
This commit is contained in:
@@ -84,10 +84,13 @@ auto string::size(int length, char fill) -> string& {
|
||||
|
||||
auto slice(string_view self, int offset, int length) -> string {
|
||||
string result;
|
||||
if(offset < self.size()) {
|
||||
if(offset < 0) offset = self.size() - abs(offset);
|
||||
if(offset >= 0 && offset < self.size()) {
|
||||
if(length < 0) length = self.size() - offset;
|
||||
result.resize(length);
|
||||
memory::copy(result.get(), self.data() + offset, length);
|
||||
if(length >= 0) {
|
||||
result.resize(length);
|
||||
memory::copy(result.get(), self.data() + offset, length);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
Reference in New Issue
Block a user