Fixed myth_s1[system_3_1989](radwar)(pal) loading issue.
This commit is contained in:
parent
ef7dfb1907
commit
dc1b700c8e
1 changed files with 33 additions and 29 deletions
62
src/main.cpp
62
src/main.cpp
|
@ -930,42 +930,16 @@ void emulator()
|
||||||
IEC_Bus::RefreshOuts(); // Now output all outputs.
|
IEC_Bus::RefreshOuts(); // Now output all outputs.
|
||||||
}
|
}
|
||||||
|
|
||||||
// We have now output so HERE is where the next phi2 cycle starts.
|
|
||||||
pi1541.Update();
|
|
||||||
|
|
||||||
// Other core will check the uart (as it is slow) (could enable uart irqs - will they execute on this core?)
|
// Other core will check the uart (as it is slow) (could enable uart irqs - will they execute on this core?)
|
||||||
inputMappings->CheckKeyboardEmulationMode(numberOfImages, numberOfImagesMax);
|
inputMappings->CheckKeyboardEmulationMode(numberOfImages, numberOfImagesMax);
|
||||||
inputMappings->CheckButtonsEmulationMode();
|
inputMappings->CheckButtonsEmulationMode();
|
||||||
|
|
||||||
bool exitEmulation = inputMappings->Exit();
|
bool exitEmulation = inputMappings->Exit();
|
||||||
bool nextDisk = inputMappings->NextDisk();
|
|
||||||
bool prevDisk = inputMappings->PrevDisk();
|
|
||||||
bool exitDoAutoLoad = inputMappings->AutoLoad();
|
bool exitDoAutoLoad = inputMappings->AutoLoad();
|
||||||
|
|
||||||
if (nextDisk)
|
// We have now output so HERE is where the next phi2 cycle starts.
|
||||||
{
|
pi1541.Update();
|
||||||
pi1541.drive.Insert(diskCaddy.PrevDisk());
|
|
||||||
}
|
|
||||||
else if (prevDisk)
|
|
||||||
{
|
|
||||||
pi1541.drive.Insert(diskCaddy.NextDisk());
|
|
||||||
}
|
|
||||||
else if (numberOfImages > 1 && inputMappings->directDiskSwapRequest != 0)
|
|
||||||
{
|
|
||||||
for (caddyIndex = 0; caddyIndex < numberOfImagesMax; ++caddyIndex)
|
|
||||||
{
|
|
||||||
if (inputMappings->directDiskSwapRequest & (1 << caddyIndex))
|
|
||||||
{
|
|
||||||
DiskImage* diskImage = diskCaddy.SelectImage(caddyIndex);
|
|
||||||
if (diskImage && diskImage != pi1541.drive.GetDiskImage())
|
|
||||||
{
|
|
||||||
pi1541.drive.Insert(diskImage);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inputMappings->directDiskSwapRequest = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool reset = IEC_Bus::IsReset();
|
bool reset = IEC_Bus::IsReset();
|
||||||
if (reset)
|
if (reset)
|
||||||
|
@ -1023,6 +997,36 @@ void emulator()
|
||||||
while (ctAfter == ctBefore);
|
while (ctAfter == ctBefore);
|
||||||
}
|
}
|
||||||
ctBefore = ctAfter;
|
ctBefore = ctAfter;
|
||||||
|
|
||||||
|
if (numberOfImages > 1)
|
||||||
|
{
|
||||||
|
bool nextDisk = inputMappings->NextDisk();
|
||||||
|
bool prevDisk = inputMappings->PrevDisk();
|
||||||
|
if (nextDisk)
|
||||||
|
{
|
||||||
|
pi1541.drive.Insert(diskCaddy.PrevDisk());
|
||||||
|
}
|
||||||
|
else if (prevDisk)
|
||||||
|
{
|
||||||
|
pi1541.drive.Insert(diskCaddy.NextDisk());
|
||||||
|
}
|
||||||
|
else if (inputMappings->directDiskSwapRequest != 0)
|
||||||
|
{
|
||||||
|
for (caddyIndex = 0; caddyIndex < numberOfImagesMax; ++caddyIndex)
|
||||||
|
{
|
||||||
|
if (inputMappings->directDiskSwapRequest & (1 << caddyIndex))
|
||||||
|
{
|
||||||
|
DiskImage* diskImage = diskCaddy.SelectImage(caddyIndex);
|
||||||
|
if (diskImage && diskImage != pi1541.drive.GetDiskImage())
|
||||||
|
{
|
||||||
|
pi1541.drive.Insert(diskImage);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
inputMappings->directDiskSwapRequest = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue