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
|
|
|
struct OS::State {
|
|
|
|
string name;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
}
|
|
|
|
} osState;
|
|
|
|
|
Update to v091r11 release.
byuu says:
This release refines HSU1 support as a bidirectional protocol, nests SFC
manifests as "release/cartridge" and "release/information" (but release/
is not guaranteed to be finalized just yet), removes the database
integration, and adds support for ananke.
ananke represents inevitability. It's a library that, when installed,
higan can use to load files from the command-line, and also from a new
File -> Load Game menu option.
I need to change the build rules a bit for it to work on Windows (need
to make phoenix a DLL, basically), but it works now on Linux.
Right now, it only takes *.sfc file names, looks them up in the included
database, converts them to game folders, and returns the game folder
path for higan to load.
The idea is to continue expanding it to support everything we can that
I don't want in the higan core:
- load *.sfc, *.smc, *.swc, *.fig files
- remove SNES copier headers
- split apart merged firmware files
- pull in external firmware files (eg dsp1b.rom - these are staying
merged, just as SPC7110 prg+dat are merged)
- load *.zip and *.7z archives
- prompt for selection on multi-file archives
- generate manifest files based on heuristics
- apply BPS patches
The "Load" menu option has been renamed to "Library", to represent games
in your library. I'm going to add some sort of suffix to indicate
unverified games, and use a different folder icon for those (eg
manifests built on heuristics rather than from the database.)
So basically, to future end users:
File -> Load Game will be how they play games.
Library -> (specific system) can be thought of as an infinitely-sized
recent games list.
purify will likely become a simple stub that invokes ananke's functions.
No reason to duplicate all that code.
2012-11-05 08:22:50 +00:00
|
|
|
struct Timer::State {
|
|
|
|
bool enabled;
|
|
|
|
unsigned milliseconds;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
enabled = false;
|
|
|
|
milliseconds = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Window::State {
|
|
|
|
bool backgroundColorOverride;
|
|
|
|
Color backgroundColor;
|
|
|
|
bool fullScreen;
|
|
|
|
Geometry geometry;
|
|
|
|
bool ignore;
|
|
|
|
set<Layout&> layout;
|
|
|
|
set<Menu&> menu;
|
|
|
|
string menuFont;
|
|
|
|
bool menuVisible;
|
|
|
|
bool modal;
|
|
|
|
bool resizable;
|
|
|
|
string statusFont;
|
|
|
|
string statusText;
|
|
|
|
bool statusVisible;
|
|
|
|
string title;
|
|
|
|
bool visible;
|
|
|
|
set<Widget&> widget;
|
|
|
|
string widgetFont;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
backgroundColorOverride = false;
|
|
|
|
backgroundColor = {0, 0, 0, 255};
|
|
|
|
fullScreen = false;
|
|
|
|
geometry = {128, 128, 256, 256};
|
|
|
|
ignore = false;
|
|
|
|
menuVisible = false;
|
|
|
|
modal = false;
|
|
|
|
resizable = true;
|
|
|
|
statusVisible = false;
|
|
|
|
visible = false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Action::State {
|
|
|
|
bool enabled;
|
|
|
|
Menu *menu;
|
|
|
|
bool visible;
|
|
|
|
Window *window;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
enabled = true;
|
|
|
|
menu = 0;
|
|
|
|
visible = true;
|
|
|
|
window = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Menu::State {
|
|
|
|
set<Action&> action;
|
|
|
|
nall::image image;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() : image(0, 32, 255u << 24, 255u << 16, 255u << 8, 255u << 0) {
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Item::State {
|
|
|
|
nall::image image;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() : image(0, 32, 255u << 24, 255u << 16, 255u << 8, 255u << 0) {
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct CheckItem::State {
|
|
|
|
bool checked;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
checked = false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct RadioItem::State {
|
|
|
|
bool checked;
|
|
|
|
set<RadioItem&> group;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
checked = true;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Sizable::State {
|
|
|
|
Layout *layout;
|
|
|
|
Window *window;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
layout = 0;
|
|
|
|
window = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Layout::State {
|
|
|
|
State() {
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Widget::State {
|
|
|
|
bool abstract;
|
|
|
|
bool enabled;
|
|
|
|
string font;
|
|
|
|
Geometry geometry;
|
|
|
|
bool visible;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
abstract = false;
|
|
|
|
enabled = true;
|
|
|
|
geometry = {0, 0, 0, 0};
|
|
|
|
visible = true;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Button::State {
|
|
|
|
nall::image image;
|
|
|
|
Orientation orientation;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() : image(0, 32, 255u << 24, 255u << 16, 255u << 8, 255u << 0) {
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Canvas::State {
|
|
|
|
uint32_t *data;
|
|
|
|
unsigned width;
|
|
|
|
unsigned height;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
data = nullptr;
|
|
|
|
width = 256;
|
|
|
|
height = 256;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct CheckBox::State {
|
|
|
|
bool checked;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
checked = false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ComboBox::State {
|
|
|
|
unsigned selection;
|
|
|
|
vector<string> text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
selection = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct HexEdit::State {
|
|
|
|
unsigned columns;
|
|
|
|
unsigned length;
|
|
|
|
unsigned offset;
|
|
|
|
unsigned rows;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
columns = 16;
|
|
|
|
length = 0;
|
|
|
|
offset = 0;
|
|
|
|
rows = 16;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct HorizontalScrollBar::State {
|
|
|
|
unsigned length;
|
|
|
|
unsigned position;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
length = 101;
|
|
|
|
position = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct HorizontalSlider::State {
|
|
|
|
unsigned length;
|
|
|
|
unsigned position;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
length = 101;
|
|
|
|
position = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Label::State {
|
|
|
|
string text;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct LineEdit::State {
|
|
|
|
bool editable;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
editable = true;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ListView::State {
|
|
|
|
bool checkable;
|
|
|
|
vector<bool> checked;
|
|
|
|
lstring headerText;
|
|
|
|
bool headerVisible;
|
|
|
|
vector<vector<nall::image>> image;
|
|
|
|
bool selected;
|
|
|
|
unsigned selection;
|
|
|
|
vector<lstring> text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
checkable = false;
|
|
|
|
headerVisible = false;
|
|
|
|
selected = false;
|
|
|
|
selection = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ProgressBar::State {
|
|
|
|
unsigned position;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
position = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct RadioBox::State {
|
|
|
|
bool checked;
|
|
|
|
set<RadioBox&> group;
|
|
|
|
string text;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
checked = true;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct TextEdit::State {
|
|
|
|
unsigned cursorPosition;
|
|
|
|
bool editable;
|
|
|
|
string text;
|
|
|
|
bool wordWrap;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
cursorPosition = 0;
|
|
|
|
editable = true;
|
|
|
|
wordWrap = true;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct VerticalScrollBar::State {
|
|
|
|
unsigned length;
|
|
|
|
unsigned position;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
length = 101;
|
|
|
|
position = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct VerticalSlider::State {
|
|
|
|
unsigned length;
|
|
|
|
unsigned position;
|
|
|
|
|
|
|
|
State() {
|
|
|
|
length = 101;
|
|
|
|
position = 0;
|
|
|
|
}
|
|
|
|
};
|