mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-01 11:49:58 +00:00
Ensures set_square_pixels is exposed, works around OpenGL aspect ratio bug.
This commit is contained in:
parent
96e7eb1bed
commit
778b9ef683
@ -34,12 +34,9 @@ class Machine {
|
|||||||
|
|
||||||
Options(Configurable::OptionsType) : Configurable::DisplayOption<Options>(Configurable::Display::CompositeColour) {
|
Options(Configurable::OptionsType) : Configurable::DisplayOption<Options>(Configurable::Display::CompositeColour) {
|
||||||
if(needs_declare()) {
|
if(needs_declare()) {
|
||||||
|
DeclareField(use_square_pixels);
|
||||||
declare_display_option();
|
declare_display_option();
|
||||||
limit_enum(&output, Configurable::Display::CompositeMonochrome, Configurable::Display::CompositeColour, -1);
|
limit_enum(&output, Configurable::Display::CompositeMonochrome, Configurable::Display::CompositeColour, -1);
|
||||||
|
|
||||||
if(needs_declare()) {
|
|
||||||
DeclareField(use_square_pixels);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -15,9 +15,8 @@ VideoBase::VideoBase(bool is_iie, std::function<void(Cycles)> &&target) :
|
|||||||
crt_(910, 1, Outputs::Display::Type::NTSC60, Outputs::Display::InputDataType::Luminance1),
|
crt_(910, 1, Outputs::Display::Type::NTSC60, Outputs::Display::InputDataType::Luminance1),
|
||||||
is_iie_(is_iie) {
|
is_iie_(is_iie) {
|
||||||
|
|
||||||
// Show only the centre 75% of the TV frame.
|
|
||||||
crt_.set_display_type(Outputs::Display::DisplayType::CompositeColour);
|
crt_.set_display_type(Outputs::Display::DisplayType::CompositeColour);
|
||||||
crt_.set_visible_area(Outputs::Display::Rect(0.118f, 0.122f, 0.77f, 0.77f));
|
set_use_square_pixels(use_square_pixels_);
|
||||||
|
|
||||||
// TODO: there seems to be some sort of bug whereby switching modes can cause
|
// TODO: there seems to be some sort of bug whereby switching modes can cause
|
||||||
// a signal discontinuity that knocks phase out of whack. So it isn't safe to
|
// a signal discontinuity that knocks phase out of whack. So it isn't safe to
|
||||||
@ -29,6 +28,17 @@ VideoBase::VideoBase(bool is_iie, std::function<void(Cycles)> &&target) :
|
|||||||
void VideoBase::set_use_square_pixels(bool use_square_pixels) {
|
void VideoBase::set_use_square_pixels(bool use_square_pixels) {
|
||||||
use_square_pixels_ = use_square_pixels;
|
use_square_pixels_ = use_square_pixels;
|
||||||
|
|
||||||
|
// HYPER-UGLY HACK. See correlated hack in the Macintosh.
|
||||||
|
#ifdef __APPLE__
|
||||||
|
crt_.set_visible_area(Outputs::Display::Rect(0.128f, 0.122f, 0.75f, 0.77f));
|
||||||
|
#else
|
||||||
|
if(use_square_pixels) {
|
||||||
|
crt_.set_visible_area(Outputs::Display::Rect(0.128f, 0.112f, 0.75f, 0.73f));
|
||||||
|
} else {
|
||||||
|
crt_.set_visible_area(Outputs::Display::Rect(0.128f, 0.12f, 0.75f, 0.77f));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if(use_square_pixels) {
|
if(use_square_pixels) {
|
||||||
// From what I can make out, many contemporary Apple II monitors were
|
// From what I can make out, many contemporary Apple II monitors were
|
||||||
// calibrated slightly to stretch the Apple II's display slightly wider
|
// calibrated slightly to stretch the Apple II's display slightly wider
|
||||||
|
@ -56,13 +56,17 @@
|
|||||||
argument = "/Users/thomasharte/Downloads/test-dsk-for-rw-and-50-60-hz/TEST-RW-60Hz.DSK"
|
argument = "/Users/thomasharte/Downloads/test-dsk-for-rw-and-50-60-hz/TEST-RW-60Hz.DSK"
|
||||||
isEnabled = "NO">
|
isEnabled = "NO">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
|
<CommandLineArgument
|
||||||
|
argument = ""/Users/thomasharte/Desktop/Soft/Apple II/WOZs/Prince of Persia side A.woz""
|
||||||
|
isEnabled = "YES">
|
||||||
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--rompath=~/ROMs"
|
argument = "--rompath=~/ROMs"
|
||||||
isEnabled = "NO">
|
isEnabled = "NO">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--has-disk-drive"
|
argument = "--has-disk-drive"
|
||||||
isEnabled = "YES">
|
isEnabled = "NO">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = ""/Users/thomasharte/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Soft/Macintosh/MusicWorks 0.42.image""
|
argument = ""/Users/thomasharte/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Soft/Macintosh/MusicWorks 0.42.image""
|
||||||
@ -78,7 +82,7 @@
|
|||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--volume=0.001"
|
argument = "--volume=0.001"
|
||||||
isEnabled = "NO">
|
isEnabled = "YES">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--new=amstradcpc"
|
argument = "--new=amstradcpc"
|
||||||
@ -114,7 +118,7 @@
|
|||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--rompath=/Users/thomasharte/Projects/CLK/ROMImages"
|
argument = "--rompath=/Users/thomasharte/Projects/CLK/ROMImages"
|
||||||
isEnabled = "NO">
|
isEnabled = "YES">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--help"
|
argument = "--help"
|
||||||
@ -125,7 +129,11 @@
|
|||||||
isEnabled = "NO">
|
isEnabled = "NO">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
<CommandLineArgument
|
<CommandLineArgument
|
||||||
argument = "--new=vic20"
|
argument = "--new=appleii"
|
||||||
|
isEnabled = "NO">
|
||||||
|
</CommandLineArgument>
|
||||||
|
<CommandLineArgument
|
||||||
|
argument = "--use-square-pixels"
|
||||||
isEnabled = "YES">
|
isEnabled = "YES">
|
||||||
</CommandLineArgument>
|
</CommandLineArgument>
|
||||||
</CommandLineArguments>
|
</CommandLineArguments>
|
||||||
|
Loading…
Reference in New Issue
Block a user