Update to higan v091r14 and ananke v00r03 releases.
byuu says:
higan changelog:
- generates title displayed in emulator window by asking the core
- core builds title solely from "information/title" ... if it's not
there, you don't get a title at all
- sub-system load menu is gone ... since there are multiple revisions of
the SGB, this never really worked well anyway
- to load an SGB, BS-X or ST cartridge, load the base cartridge first
- "File->Load Game" moved to "Load->Import Game" ... may cause a bit of
confusion to new users, but I don't like having a single-item menu,
we'll just have to explain it to new users
- browser window redone to look like ananke
- home button here goes to ~/Emulation rather than just ~ like ananke,
since this is the home of game folders
- game folder icon is now the executable icon for the Tango theme
(orange diamond), meant to represent a complete game rather than
a game file or archive
ananke changelog:
- outputs GBC games to "Game Boy Color/" instead of "Game Boy/"
- adds the file basename to "information/title"
Known issues:
- using ananke to load a GB game trips the Super Famicom SGB mode and
fails (need to make the full-path auto-detection ignore non-bootable
systems)
- need to dump and test some BS-X media before releasing
- ananke lacks BS-X Satellaview cartridge support
- v092 isn't going to let you retarget the ananke/higan game folder path
of ~/Emulation, you will have to wait for a future version if that
bothers you so greatly
[Later, after the v092 release, byuu posted this additional changelog:
- kill laevateinn
- add title()
- add bootable, remove load
- combine file, library
- combine [][][] paths
- fix SFC subtype handling XML->BML
- update file browser to use buttons
- update file browser keyboard handling
- update system XML->BML
- fix sufami turbo hashing
- remove Cartridge::manifest
]
2012-12-25 05:31:55 +00:00
|
|
|
void Ananke::copySufamiTurboSaves(const string &pathname) {
|
|
|
|
if(!file::exists({pathname, "save.ram"})) {
|
|
|
|
if(file::exists({information.path, nall::basename(information.name), ".srm"})) {
|
|
|
|
file::copy({information.path, nall::basename(information.name), ".srm"}, {pathname, "save.ram"});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
string Ananke::createSufamiTurboDatabase(vector<uint8_t> &buffer, Markup::Node &document, const string &manifest) {
|
|
|
|
string pathname = {
|
|
|
|
userpath(), "Emulation/Sufami Turbo/",
|
|
|
|
document["release/information/name"].text(),
|
|
|
|
" (", document["release/information/region"].text(), ")",
|
|
|
|
" (", document["release/information/revision"].text(), ")",
|
|
|
|
".st/"
|
|
|
|
};
|
|
|
|
directory::create(pathname);
|
|
|
|
|
|
|
|
//strip "release" root node from database entry (since a single game manifest isn't part of a database)
|
|
|
|
string markup = manifest;
|
|
|
|
markup.replace("\n ", "\n");
|
|
|
|
markup.replace("information", "\ninformation");
|
|
|
|
markup.ltrim<1>("release\n");
|
|
|
|
|
|
|
|
file::write({pathname, "manifest.bml"}, markup);
|
|
|
|
file::write({pathname, "program.rom"}, buffer);
|
|
|
|
copySufamiTurboSaves(pathname);
|
|
|
|
|
2013-01-17 11:14:58 +00:00
|
|
|
return pathname;
|
Update to higan v091r14 and ananke v00r03 releases.
byuu says:
higan changelog:
- generates title displayed in emulator window by asking the core
- core builds title solely from "information/title" ... if it's not
there, you don't get a title at all
- sub-system load menu is gone ... since there are multiple revisions of
the SGB, this never really worked well anyway
- to load an SGB, BS-X or ST cartridge, load the base cartridge first
- "File->Load Game" moved to "Load->Import Game" ... may cause a bit of
confusion to new users, but I don't like having a single-item menu,
we'll just have to explain it to new users
- browser window redone to look like ananke
- home button here goes to ~/Emulation rather than just ~ like ananke,
since this is the home of game folders
- game folder icon is now the executable icon for the Tango theme
(orange diamond), meant to represent a complete game rather than
a game file or archive
ananke changelog:
- outputs GBC games to "Game Boy Color/" instead of "Game Boy/"
- adds the file basename to "information/title"
Known issues:
- using ananke to load a GB game trips the Super Famicom SGB mode and
fails (need to make the full-path auto-detection ignore non-bootable
systems)
- need to dump and test some BS-X media before releasing
- ananke lacks BS-X Satellaview cartridge support
- v092 isn't going to let you retarget the ananke/higan game folder path
of ~/Emulation, you will have to wait for a future version if that
bothers you so greatly
[Later, after the v092 release, byuu posted this additional changelog:
- kill laevateinn
- add title()
- add bootable, remove load
- combine file, library
- combine [][][] paths
- fix SFC subtype handling XML->BML
- update file browser to use buttons
- update file browser keyboard handling
- update system XML->BML
- fix sufami turbo hashing
- remove Cartridge::manifest
]
2012-12-25 05:31:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
string Ananke::createSufamiTurboHeuristic(vector<uint8_t> &buffer) {
|
|
|
|
string pathname = {
|
|
|
|
userpath(), "Emulation/Sufami Turbo/",
|
|
|
|
nall::basename(information.name),
|
|
|
|
" (!).st/"
|
|
|
|
};
|
|
|
|
directory::create(pathname);
|
|
|
|
|
|
|
|
file::write({pathname, "manifest.bml"}, {
|
|
|
|
"cartridge\n",
|
|
|
|
" rom name=program.rom size=0x", hex(buffer.size()), "\n",
|
Update to v092 release.
In the release thread, byuu says:
The first official release of higan has been posted. higan is the
new name for bsnes, and it continues with the latter's version
numbering.
Note that as of now, bsnes still exists. It's a module distributed
inside of higan. bsnes is now specific to my SNES emulator.
Due to last minute changes to the emulator interface, and missing
support in ananke, I wasn't able to include Cydrak's Nintendo DS
emulator dasShiny in this build, but I hope to do so in the next
release.
http://code.google.com/p/higan/downloads/list
For both new and experienced users, please read the higan user guide
first:
http://byuu.org/higan/user-guide
In the v091 WIP thread, byuu says:
r15->r16:
- BS-X MaskROM handling (partial ... need to split bsx/flash away
from sfc/chip, restructure code - it requires tagging the base
cart markup for now, but it needs to parse the slotted cart
markup)
- phoenixflags / phoenixlink += -m32
- nall/sort stability
- if(input.poll(scancode[activeScancode]) == false) return;
- MSU1 / USART need to use interface->path(1)
- MSU1 needs to use Markup::Document, not XML::Document
- case-insensitive folder listings
- remove nall/emulation/system.hpp files (move to ananke)
- remove rom/ram id= checks with indexing
X have cores ask for manifest.bml (skipped for v092's release, too
big a change)
- rename compatibility profile to balanced (so people don't assume
it has better compatibility than accuracy)
2013-01-14 12:10:20 +00:00
|
|
|
" ram name=save.ram size=0x2000\n",
|
|
|
|
"\n",
|
|
|
|
"information\n",
|
Update to higan v091r14 and ananke v00r03 releases.
byuu says:
higan changelog:
- generates title displayed in emulator window by asking the core
- core builds title solely from "information/title" ... if it's not
there, you don't get a title at all
- sub-system load menu is gone ... since there are multiple revisions of
the SGB, this never really worked well anyway
- to load an SGB, BS-X or ST cartridge, load the base cartridge first
- "File->Load Game" moved to "Load->Import Game" ... may cause a bit of
confusion to new users, but I don't like having a single-item menu,
we'll just have to explain it to new users
- browser window redone to look like ananke
- home button here goes to ~/Emulation rather than just ~ like ananke,
since this is the home of game folders
- game folder icon is now the executable icon for the Tango theme
(orange diamond), meant to represent a complete game rather than
a game file or archive
ananke changelog:
- outputs GBC games to "Game Boy Color/" instead of "Game Boy/"
- adds the file basename to "information/title"
Known issues:
- using ananke to load a GB game trips the Super Famicom SGB mode and
fails (need to make the full-path auto-detection ignore non-bootable
systems)
- need to dump and test some BS-X media before releasing
- ananke lacks BS-X Satellaview cartridge support
- v092 isn't going to let you retarget the ananke/higan game folder path
of ~/Emulation, you will have to wait for a future version if that
bothers you so greatly
[Later, after the v092 release, byuu posted this additional changelog:
- kill laevateinn
- add title()
- add bootable, remove load
- combine file, library
- combine [][][] paths
- fix SFC subtype handling XML->BML
- update file browser to use buttons
- update file browser keyboard handling
- update system XML->BML
- fix sufami turbo hashing
- remove Cartridge::manifest
]
2012-12-25 05:31:55 +00:00
|
|
|
" title: ", nall::basename(information.name), "\n"
|
|
|
|
});
|
|
|
|
file::write({pathname, "program.rom"}, buffer);
|
|
|
|
copySufamiTurboSaves(pathname);
|
|
|
|
|
2013-01-17 11:14:58 +00:00
|
|
|
return pathname;
|
Update to higan v091r14 and ananke v00r03 releases.
byuu says:
higan changelog:
- generates title displayed in emulator window by asking the core
- core builds title solely from "information/title" ... if it's not
there, you don't get a title at all
- sub-system load menu is gone ... since there are multiple revisions of
the SGB, this never really worked well anyway
- to load an SGB, BS-X or ST cartridge, load the base cartridge first
- "File->Load Game" moved to "Load->Import Game" ... may cause a bit of
confusion to new users, but I don't like having a single-item menu,
we'll just have to explain it to new users
- browser window redone to look like ananke
- home button here goes to ~/Emulation rather than just ~ like ananke,
since this is the home of game folders
- game folder icon is now the executable icon for the Tango theme
(orange diamond), meant to represent a complete game rather than
a game file or archive
ananke changelog:
- outputs GBC games to "Game Boy Color/" instead of "Game Boy/"
- adds the file basename to "information/title"
Known issues:
- using ananke to load a GB game trips the Super Famicom SGB mode and
fails (need to make the full-path auto-detection ignore non-bootable
systems)
- need to dump and test some BS-X media before releasing
- ananke lacks BS-X Satellaview cartridge support
- v092 isn't going to let you retarget the ananke/higan game folder path
of ~/Emulation, you will have to wait for a future version if that
bothers you so greatly
[Later, after the v092 release, byuu posted this additional changelog:
- kill laevateinn
- add title()
- add bootable, remove load
- combine file, library
- combine [][][] paths
- fix SFC subtype handling XML->BML
- update file browser to use buttons
- update file browser keyboard handling
- update system XML->BML
- fix sufami turbo hashing
- remove Cartridge::manifest
]
2012-12-25 05:31:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
string Ananke::openSufamiTurbo(vector<uint8_t> &buffer) {
|
|
|
|
string sha256 = nall::sha256(buffer.data(), buffer.size());
|
|
|
|
|
|
|
|
string databaseText = string::read({configpath(), "ananke/database/Sufami Turbo.bml"}).strip();
|
|
|
|
if(databaseText.empty()) databaseText = string{Database::SufamiTurbo}.strip();
|
|
|
|
lstring databaseItem = databaseText.split("\n\n");
|
|
|
|
|
|
|
|
for(auto &item : databaseItem) {
|
|
|
|
item.append("\n");
|
|
|
|
auto document = Markup::Document(item);
|
|
|
|
|
|
|
|
if(document["release/information/sha256"].text() == sha256) {
|
|
|
|
return createSufamiTurboDatabase(buffer, document, item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return createSufamiTurboHeuristic(buffer);
|
|
|
|
}
|
2013-01-17 11:14:58 +00:00
|
|
|
|
|
|
|
string Ananke::syncSufamiTurbo(const string &pathname) {
|
|
|
|
auto buffer = file::read({pathname, "program.rom"});
|
|
|
|
if(buffer.size() == 0) return "";
|
|
|
|
|
|
|
|
auto save = file::read({pathname, "save.ram"});
|
|
|
|
if(save.size() == 0) save = file::read({pathname, "save.rwm"});
|
|
|
|
|
|
|
|
directory::remove(pathname);
|
2013-01-19 11:23:42 +00:00
|
|
|
information.path = pathname;
|
|
|
|
information.name = notdir(string{pathname}.rtrim<1>("/"));
|
2013-01-17 11:14:58 +00:00
|
|
|
string outputPath = openSufamiTurbo(buffer);
|
|
|
|
|
|
|
|
if(save.size()) file::write({outputPath, "save.ram"}, save);
|
|
|
|
|
|
|
|
return outputPath;
|
|
|
|
}
|