2017-01-13 01:15:45 +00:00
|
|
|
GameGearInterface::GameGearInterface() {
|
|
|
|
information.manufacturer = "Sega";
|
|
|
|
information.name = "Game Gear";
|
|
|
|
information.overscan = false;
|
|
|
|
|
|
|
|
media.append({ID::GameGear, "Game Gear", "gg"});
|
|
|
|
|
|
|
|
Port hardware{ID::Port::Hardware, "Hardware"};
|
|
|
|
|
|
|
|
{ Device device{ID::Device::GameGearControls, "Controls"};
|
|
|
|
device.inputs.append({0, "Up"});
|
|
|
|
device.inputs.append({0, "Down"});
|
|
|
|
device.inputs.append({0, "Left"});
|
|
|
|
device.inputs.append({0, "Right"});
|
|
|
|
device.inputs.append({0, "1"});
|
|
|
|
device.inputs.append({0, "2"});
|
|
|
|
device.inputs.append({0, "Start"});
|
|
|
|
hardware.devices.append(device);
|
|
|
|
}
|
|
|
|
|
|
|
|
ports.append(move(hardware));
|
|
|
|
}
|
|
|
|
|
Update to v103r09 release.
byuu says:
Changelog:
- gba/apu: fixed wave RAM nibble ordering (fixes audio in Castlevania,
PocketNES)
- emulator: restructured video information to just a single
videoResolution() → VideoResolution function
- returns "projected size" (between 160x144 and 320x240)
- "internal buffer size" (up to 1280x480)
- returns aspect correction multiplier that is to be applied to
the width field
- the value could be < 1.0 to handle systems with taller
pixels; although higan doesn't emulate such a system
- tomoko: all calculations for scaling and overscan masking are done
by the GUI now
- tomoko: aspect correction can be enabled in either windowed or
fullscreen mode separately; moved to Video settings panel
- tomoko: video scaling multipliers (against 320x240) can now me
modified from the default (2,3,4) via the configuration file
- use this as a really barebones way of supporting high DPI
monitors; although the GUI elements won't scale nicely
- if you set a value less than two, or greater than your
resolution divided by 320x240, it's your own fault when things
blow up. I'm not babysitting anyone with advanced config-file
only options.
- tomoko: added new adaptive windowed mode
- when enabled, the window will shrink to eliminate any black
borders when loading a game or changing video settings. The
window will not reposition itself.
- tomoko: added new adaptive fullscreen mode
- when enabled, the integral scaling will be disabled for
fullscreen mode, forcing the video to fill at least one
direction of the video monitor completely.
I expect we will be bikeshedding for the next month on how to describe
the new video options, where they should appear in the GUI, changes
people want, etc ... but suffice to say, I'm happy with the
functionality, so I don't intend to make changes to -what- things do,
but I will entertain better ways to name things.
2017-07-06 08:29:12 +00:00
|
|
|
auto GameGearInterface::videoResolution() -> VideoResolution {
|
|
|
|
return {160, 144, 160, 144, 1.0};
|
2017-01-13 01:15:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
auto GameGearInterface::videoColors() -> uint32 {
|
|
|
|
return 1 << 12;
|
|
|
|
}
|
|
|
|
|
|
|
|
auto GameGearInterface::videoColor(uint32 color) -> uint64 {
|
|
|
|
uint4 B = color >> 8;
|
|
|
|
uint4 G = color >> 4;
|
|
|
|
uint4 R = color >> 0;
|
|
|
|
|
|
|
|
uint64 r = image::normalize(R, 4, 16);
|
|
|
|
uint64 g = image::normalize(G, 4, 16);
|
|
|
|
uint64 b = image::normalize(B, 4, 16);
|
|
|
|
|
|
|
|
return r << 32 | g << 16 | b << 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
auto GameGearInterface::load(uint id) -> bool {
|
2017-02-21 11:07:33 +00:00
|
|
|
if(id == ID::GameGear) return system.load(this, System::Model::GameGear);
|
2017-01-13 01:15:45 +00:00
|
|
|
return false;
|
|
|
|
}
|