Skip to content

Commit

Permalink
Added option Emulator > Speed 2x.
Browse files Browse the repository at this point in the history
  • Loading branch information
nzeemin committed Sep 24, 2016
1 parent edc9502 commit 9f8ae32
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 14 deletions.
6 changes: 4 additions & 2 deletions Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ int APIENTRY _tWinMain(

if (g_okEmulatorRunning && !Settings_GetSound())
{
if (!Settings_GetRealSpeed())
if (Settings_GetRealSpeed() == 0)
::Sleep(1); // We should not consume 100% of CPU
else
{
Expand All @@ -120,7 +120,9 @@ int APIENTRY _tWinMain(
::QueryPerformanceCounter(&nFrameFinishTime);
LONGLONG nTimeElapsed = (nFrameFinishTime.QuadPart - nFrameStartTime.QuadPart)
* 1000 / nPerformanceFrequency.QuadPart;
const LONGLONG nFrameDelay = 1000 / 25 - 1; // 1000 millisec / 25 = 40 millisec
LONGLONG nFrameDelay = 1000 / 25 - 1; // 1000 millisec / 25 = 40 millisec
if (Settings_GetRealSpeed() == 2)
nFrameDelay = 1000 / 25 / 2 - 1;
if (nTimeElapsed > 0 && nTimeElapsed < nFrameDelay)
{
LONG nTimeToSleep = (LONG)(nFrameDelay - nTimeElapsed);
Expand Down
4 changes: 2 additions & 2 deletions Main.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,8 @@ void Settings_GetDebugFontName(LPTSTR buffer);
void Settings_SetDebugFontName(LPCTSTR sFontName);
void Settings_SetAutostart(BOOL flag);
BOOL Settings_GetAutostart();
void Settings_SetRealSpeed(BOOL flag);
BOOL Settings_GetRealSpeed();
void Settings_SetRealSpeed(int speed);
int Settings_GetRealSpeed();
void Settings_SetSound(BOOL flag);
BOOL Settings_GetSound();
void Settings_SetSoundVolume(WORD value);
Expand Down
17 changes: 12 additions & 5 deletions MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ void MainWindow_DoSelectRenderMode(int newMode);
void MainWindow_DoEmulatorRun();
void MainWindow_DoEmulatorAutostart();
void MainWindow_DoEmulatorReset();
void MainWindow_DoEmulatorRealSpeed();
void MainWindow_DoEmulatorSpeed(int speed);
void MainWindow_DoEmulatorSound();
void MainWindow_DoEmulatorSerial();
void MainWindow_DoEmulatorParallel();
Expand Down Expand Up @@ -833,9 +833,10 @@ void MainWindow_UpdateMenu()

// Emulator menu options
CheckMenuItem(hMenu, ID_EMULATOR_AUTOSTART, (Settings_GetAutostart() ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(hMenu, ID_EMULATOR_REALSPEED, (Settings_GetRealSpeed() ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(hMenu, ID_EMULATOR_SOUND, (Settings_GetSound() ? MF_CHECKED : MF_UNCHECKED));
MainWindow_SetToolbarImage(ID_EMULATOR_SOUND, (Settings_GetSound() ? ToolbarImageSoundOn : ToolbarImageSoundOff));
//CheckMenuItem(hMenu, ID_EMULATOR_REALSPEED, (Settings_GetRealSpeed() ? MF_CHECKED : MF_UNCHECKED));
CheckMenuRadioItem(hMenu, ID_EMULATOR_SPEED0, ID_EMULATOR_SPEED2, ID_EMULATOR_SPEED0 + Settings_GetRealSpeed(), MF_BYCOMMAND);
CheckMenuItem(hMenu, ID_EMULATOR_SERIAL, (Settings_GetSerial() ? MF_CHECKED : MF_UNCHECKED));
SendMessage(m_hwndToolbar, TB_CHECKBUTTON, ID_EMULATOR_SERIAL, (Settings_GetSerial() ? 1 : 0));
CheckMenuItem(hMenu, ID_EMULATOR_NETWORK, (Settings_GetNetwork() ? MF_CHECKED : MF_UNCHECKED));
Expand Down Expand Up @@ -986,8 +987,14 @@ bool MainWindow_DoCommand(int commandId)
case ID_EMULATOR_RESET:
MainWindow_DoEmulatorReset();
break;
case ID_EMULATOR_SPEED0:
MainWindow_DoEmulatorSpeed(0);
break;
case ID_EMULATOR_REALSPEED:
MainWindow_DoEmulatorRealSpeed();
MainWindow_DoEmulatorSpeed(1);
break;
case ID_EMULATOR_SPEED2:
MainWindow_DoEmulatorSpeed(2);
break;
case ID_EMULATOR_SOUND:
MainWindow_DoEmulatorSound();
Expand Down Expand Up @@ -1164,9 +1171,9 @@ void MainWindow_DoEmulatorReset()
{
Emulator_Reset();
}
void MainWindow_DoEmulatorRealSpeed()
void MainWindow_DoEmulatorSpeed(int speed)
{
Settings_SetRealSpeed(!Settings_GetRealSpeed());
Settings_SetRealSpeed(speed);

MainWindow_UpdateMenu();
}
Expand Down
10 changes: 6 additions & 4 deletions Resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,16 @@
#define ID_FILE_SCREENSHOT 32784
#define ID_EMULATOR_CARTRIDGE1 32785
#define ID_EMULATOR_CARTRIDGE2 32786
#define ID_VIEW_KEYBOARD 32787
#define ID_VIEW_TAPE 32788
#define ID_VIEW_TOOLBAR 32789
#define ID_VIEW_RGBSCREEN 32796
#define ID_VIEW_GRBSCREEN 32797
#define ID_VIEW_GRAYSCREEN 32798
#define ID_EMULATOR_AUTOSTART 32800
#define ID_EMULATOR_AUTOSTART 32799
#define ID_EMULATOR_SPEED0 32800
#define ID_EMULATOR_REALSPEED 32801
#define ID_VIEW_KEYBOARD 32802
#define ID_VIEW_TAPE 32803
#define ID_VIEW_TOOLBAR 32804
#define ID_EMULATOR_SPEED2 32802
#define ID_EMULATOR_SOUND 32805
#define ID_FILE_CREATEDISK 32806
#define ID_DEBUG_STEPOVER 32807
Expand Down
2 changes: 1 addition & 1 deletion Settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ void Settings_SetDebugFontName(LPCTSTR sFontName)

SETTINGS_GETSET_DWORD(Autostart, _T("Autostart"), BOOL, FALSE);

SETTINGS_GETSET_DWORD(RealSpeed, _T("RealSpeed"), BOOL, FALSE);
SETTINGS_GETSET_DWORD(RealSpeed, _T("RealSpeed"), int, 1);

SETTINGS_GETSET_DWORD(Sound, _T("Sound"), BOOL, FALSE);
SETTINGS_GETSET_DWORD(SoundVolume, _T("SoundVolume"), WORD, 0x3fff);
Expand Down
2 changes: 2 additions & 0 deletions UKNCBTL.rc
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,9 @@ BEGIN
MENUITEM "Autostart", ID_EMULATOR_AUTOSTART,MFT_STRING,MFS_ENABLED
MENUITEM MFT_SEPARATOR
MENUITEM "Sound", ID_EMULATOR_SOUND,MFT_STRING,MFS_ENABLED
MENUITEM "Max Speed", ID_EMULATOR_SPEED0,MFT_STRING,MFS_ENABLED
MENUITEM "Real Speed", ID_EMULATOR_REALSPEED,MFT_STRING,MFS_ENABLED
MENUITEM "Speed 2x", ID_EMULATOR_SPEED2,MFT_STRING,MFS_ENABLED
MENUITEM MFT_SEPARATOR
MENUITEM "Serial", ID_EMULATOR_SERIAL,MFT_STRING,MFS_ENABLED
MENUITEM "Parallel", ID_EMULATOR_PARALLEL,MFT_STRING,MFS_ENABLED
Expand Down

0 comments on commit 9f8ae32

Please sign in to comment.