2018-05-18 05:21:22 +00:00
|
|
|
struct Program : Emulator::Platform {
|
|
|
|
//program.cpp
|
2018-05-20 04:39:29 +00:00
|
|
|
Program(string_vector arguments);
|
2018-05-18 05:21:22 +00:00
|
|
|
auto main() -> void;
|
|
|
|
auto quit() -> void;
|
2018-05-19 02:51:34 +00:00
|
|
|
|
|
|
|
//interface.cpp
|
|
|
|
auto open(uint id, string name, vfs::file::mode mode, bool required) -> vfs::shared::file override;
|
|
|
|
auto load(uint id, string name, string type, string_vector options = {}) -> Emulator::Platform::Load override;
|
|
|
|
auto videoRefresh(const uint32* data, uint pitch, uint width, uint height) -> void override;
|
|
|
|
auto audioSample(const double* samples, uint channels) -> void override;
|
|
|
|
auto inputPoll(uint port, uint device, uint input) -> int16 override;
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
auto inputRumble(uint port, uint device, uint input, bool enable) -> void override;
|
2018-05-19 02:51:34 +00:00
|
|
|
|
2018-05-20 04:39:29 +00:00
|
|
|
//game.cpp
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
auto load() -> void;
|
|
|
|
auto loadFile(string location) -> vector<uint8_t>;
|
|
|
|
auto loadSuperNintendo(string location) -> void;
|
2018-05-20 04:39:29 +00:00
|
|
|
auto loadGameBoy(string location) -> void;
|
|
|
|
auto save() -> void;
|
|
|
|
auto unload() -> void;
|
|
|
|
|
2018-06-11 04:50:18 +00:00
|
|
|
//game-pak.cpp
|
|
|
|
auto openPakSFC(string name, vfs::file::mode mode) -> vfs::shared::file;
|
|
|
|
auto openPakGB(string name, vfs::file::mode mode) -> vfs::shared::file;
|
|
|
|
|
|
|
|
//game-rom.cpp
|
|
|
|
auto openRomSFC(string name, vfs::file::mode mode) -> vfs::shared::file;
|
|
|
|
auto openRomGB(string name, vfs::file::mode mode) -> vfs::shared::file;
|
|
|
|
|
2018-05-24 02:14:17 +00:00
|
|
|
//paths.cpp
|
|
|
|
auto path(string type, string location, string extension = "") -> string;
|
2018-06-11 04:50:18 +00:00
|
|
|
auto gamePath() -> string;
|
|
|
|
auto cheatPath() -> string;
|
Update to v106r37 release.
byuu says:
Changelog:
- bsnes: cheat code “enabled” option changed to “enable”
- bsnes: connected “Cancel” action on add/edit cheat code window
- hiro: improved BrowserDialog::selectFolder() behavior
- can choose “Select” inside of a target folder when no items are
selected
- bsnes: implemented state manager
- bsnes: save a recovery state before loading a state, quitting, or
changing drivers
- bsnes: input settings, hotkey settings, cheat editor, state manager
entries are now batchable
- this allows bulk clearing/deleting of entries
- bsnes: cheat code list now auto-sorts alphabetically instead of
using up/down move arrows
I know most people will probably prefer to order cheat codes the way
they want, but the issue is that the state manager can't really work
this way. Each state is a file on disk. So yes, we could store a
states-manifest.bml to track the order of the states, or try to insert
numbers into the filenames and do bulk filesystem rename operations on
sorting, but then we would run into oddities when users delete state
files manually. And really, manual sorting is just clumsy. If you really
want a specific ordering, you can prefix cheats/states with numeric
indices instead.
2018-06-07 11:48:41 +00:00
|
|
|
auto statePath() -> string;
|
2018-06-11 04:50:18 +00:00
|
|
|
|
|
|
|
//states.cpp
|
Update to v106r37 release.
byuu says:
Changelog:
- bsnes: cheat code “enabled” option changed to “enable”
- bsnes: connected “Cancel” action on add/edit cheat code window
- hiro: improved BrowserDialog::selectFolder() behavior
- can choose “Select” inside of a target folder when no items are
selected
- bsnes: implemented state manager
- bsnes: save a recovery state before loading a state, quitting, or
changing drivers
- bsnes: input settings, hotkey settings, cheat editor, state manager
entries are now batchable
- this allows bulk clearing/deleting of entries
- bsnes: cheat code list now auto-sorts alphabetically instead of
using up/down move arrows
I know most people will probably prefer to order cheat codes the way
they want, but the issue is that the state manager can't really work
this way. Each state is a file on disk. So yes, we could store a
states-manifest.bml to track the order of the states, or try to insert
numbers into the filenames and do bulk filesystem rename operations on
sorting, but then we would run into oddities when users delete state
files manually. And really, manual sorting is just clumsy. If you really
want a specific ordering, you can prefix cheats/states with numeric
indices instead.
2018-06-07 11:48:41 +00:00
|
|
|
auto loadState(string filename) -> bool;
|
|
|
|
auto saveState(string filename) -> bool;
|
|
|
|
auto saveRecoveryState() -> bool;
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
|
2018-05-19 02:51:34 +00:00
|
|
|
//utility.cpp
|
|
|
|
auto initializeVideoDriver() -> void;
|
|
|
|
auto initializeAudioDriver() -> void;
|
|
|
|
auto initializeInputDriver() -> void;
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
auto updateVideoShader() -> void;
|
|
|
|
auto connectDevices() -> void;
|
2018-06-11 04:50:18 +00:00
|
|
|
auto applyHacks() -> void;
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
auto showMessage(string text) -> void;
|
|
|
|
auto updateMessage() -> void;
|
|
|
|
auto focused() -> bool;
|
|
|
|
|
|
|
|
public:
|
|
|
|
struct SuperNintendo {
|
2018-06-11 04:50:18 +00:00
|
|
|
string label;
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
string location;
|
|
|
|
string manifest;
|
|
|
|
Markup::Node document;
|
|
|
|
vector<uint8_t> program;
|
|
|
|
vector<uint8_t> data;
|
|
|
|
vector<uint8_t> expansion;
|
|
|
|
vector<uint8_t> firmware;
|
|
|
|
} superNintendo;
|
|
|
|
|
|
|
|
struct GameBoy {
|
|
|
|
string location;
|
|
|
|
string manifest;
|
|
|
|
Markup::Node document;
|
|
|
|
vector<uint8_t> program;
|
|
|
|
} gameBoy;
|
|
|
|
|
|
|
|
struct BSMemory {
|
|
|
|
} bsMemory;
|
|
|
|
|
|
|
|
struct SufamiTurbo {
|
|
|
|
} sufamiTurbo[2];
|
|
|
|
|
|
|
|
string_vector gameQueue;
|
|
|
|
|
|
|
|
uint64 autoSaveTime;
|
2018-05-19 02:51:34 +00:00
|
|
|
|
Update to v106r25 release.
byuu says:
Changelog:
- bsnes:
- added full input mapping support (multi-mapping, digital+analog
inputs, rumble, hotkeys, etc)
- can now load multi-part games (eg Super Game Boy) from the
command-line
- added recent games menu with list clear function; supports
multi-part games (sorting logic incomplete)
- added automatic binding of gamepads on new configuration files
- added view scaling support with aspect correction, overscan
cropping, and integral scaling modes
- added video shader support
- added status bar (can be hidden)
- added save states (both menu and hotkeys)
- added fullscreen mode support
- added support for loading compressed (ZIP) archives for any
supported media type (SNES, GB, etc)
- added frame counter
- added auto-memory saving
- added pause / block-input modes when main window loses focus
- added --fullscreen command-line option to start bsnes in
fullscreen mode
- added input settings panel
- added hotkeys settings panel
- added path settings panel (paths aren't actually used set, but
can be assigned)
- higan: fixed macOS install rule [Sintendo]
- higan: minor UI code cleanups
- nall: renamed Processor to Architecture to fix macOS builds
[Sintendo]
Yeah, you read right: recent games menu, path settings. And dynamic rate
control + screensaver suppression is on the todo list. I'm not fucking
around this time. I really want to make something special here.
2018-05-23 03:45:24 +00:00
|
|
|
string statusText;
|
|
|
|
string statusMessage;
|
|
|
|
uint64 statusTime;
|
2018-05-18 05:21:22 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
extern unique_pointer<Program> program;
|