Libretro: Added overclocking options
This commit is contained in:
parent
c880c55d53
commit
49df8ab7d0
3 changed files with 39 additions and 2 deletions
|
@ -2141,7 +2141,8 @@ void Ppu::Serialize(Serializer &s)
|
|||
_mode7.CenterX, _mode7.CenterY, _mode7.ExtBgEnabled, _mode7.FillWithTile0, _mode7.HorizontalMirroring,
|
||||
_mode7.HScroll, _mode7.LargeMap, _mode7.Matrix[0], _mode7.Matrix[1], _mode7.Matrix[2], _mode7.Matrix[3],
|
||||
_mode7.ValueLatch, _mode7.VerticalMirroring, _mode7.VScroll, unused_oamRenderAddress, _oddFrame, _vblankStartScanline,
|
||||
_cgramAddressLatch, _cgramWriteBuffer, _nmiScanline, _vblankEndScanline, _adjustedVblankEndScanline, _baseVblankEndScanline
|
||||
_cgramAddressLatch, _cgramWriteBuffer, _nmiScanline, _vblankEndScanline, _adjustedVblankEndScanline, _baseVblankEndScanline,
|
||||
_overclockEnabled
|
||||
);
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
|
|
|
@ -404,7 +404,7 @@ void Spc::Serialize(Serializer &s)
|
|||
_dsp->set_output(_soundBuffer, Spc::SampleBufferSize >> 1);
|
||||
}
|
||||
|
||||
s.Stream(_operandA, _operandB, _tmp1, _tmp2, _tmp3, _opCode, _opStep, _opSubStep);
|
||||
s.Stream(_operandA, _operandB, _tmp1, _tmp2, _tmp3, _opCode, _opStep, _opSubStep, _enabled);
|
||||
}
|
||||
|
||||
uint8_t Spc::GetOpCode()
|
||||
|
|
|
@ -39,6 +39,8 @@ static constexpr const char* MesenAspectRatio = "mesen-s_aspect_ratio";
|
|||
static constexpr const char* MesenOverscanVertical = "mesen-s_overscan_vertical";
|
||||
static constexpr const char* MesenOverscanHorizontal = "mesen-s_overscan_horizontal";
|
||||
static constexpr const char* MesenRamState = "mesen-s_ramstate";
|
||||
static constexpr const char* MesenOverclock = "mesen-s_overclock";
|
||||
static constexpr const char* MesenOverclockType = "mesen-s_overclock_type";
|
||||
|
||||
extern "C" {
|
||||
void logMessage(retro_log_level level, const char* message)
|
||||
|
@ -101,6 +103,8 @@ extern "C" {
|
|||
{ MesenOverscanVertical, "Vertical Overscan; None|8px|16px" },
|
||||
{ MesenOverscanHorizontal, "Horizontal Overscan; None|8px|16px" },
|
||||
{ MesenAspectRatio, "Aspect Ratio; Auto|No Stretching|NTSC|PAL|4:3|16:9" },
|
||||
{ MesenOverclock, "Overclock; None|Low|Medium|High|Very High" },
|
||||
{ MesenOverclockType, "Overclock Type; Before NMI|After NMI" },
|
||||
{ MesenRamState, "Default power-on state for RAM; Random Values (Default)|All 0s|All 1s" },
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
@ -224,6 +228,38 @@ extern "C" {
|
|||
}
|
||||
}
|
||||
|
||||
bool beforeNmi = true;
|
||||
if(readVariable(MesenOverclockType, var)) {
|
||||
string value = string(var.value);
|
||||
if(value == "After NMI") {
|
||||
beforeNmi = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(readVariable(MesenOverclock, var)) {
|
||||
string value = string(var.value);
|
||||
int lineCount = 0;
|
||||
if(value == "None") {
|
||||
lineCount = 0;
|
||||
} else if(value == "Low") {
|
||||
lineCount = 100;
|
||||
} else if(value == "Medium") {
|
||||
lineCount = 250;
|
||||
} else if(value == "High") {
|
||||
lineCount = 500;
|
||||
} else if(value == "Very High") {
|
||||
lineCount = 1000;
|
||||
}
|
||||
|
||||
if(beforeNmi) {
|
||||
emulation.PpuExtraScanlinesBeforeNmi = lineCount;
|
||||
emulation.PpuExtraScanlinesAfterNmi = 0;
|
||||
} else {
|
||||
emulation.PpuExtraScanlinesAfterNmi = lineCount;
|
||||
emulation.PpuExtraScanlinesBeforeNmi = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int overscanHorizontal = 0;
|
||||
int overscanVertical = 0;
|
||||
if(readVariable(MesenOverscanHorizontal, var)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue