EmuSpeed setting saved in config file and bound to current code... fastmotion is a bit overpowered. -_-;
This commit is contained in:
@@ -111,7 +111,7 @@ extern unsigned int newengen;
|
|||||||
extern char SRAMDrive[2];
|
extern char SRAMDrive[2];
|
||||||
extern unsigned char DontSavePath;
|
extern unsigned char DontSavePath;
|
||||||
extern unsigned char guioff;
|
extern unsigned char guioff;
|
||||||
extern unsigned int frameskip;
|
extern unsigned char frameskip;
|
||||||
extern unsigned char enterpress;
|
extern unsigned char enterpress;
|
||||||
extern unsigned char cvidmode;
|
extern unsigned char cvidmode;
|
||||||
extern unsigned char antienab;
|
extern unsigned char antienab;
|
||||||
@@ -362,16 +362,16 @@ void DOScreatenewcfg()
|
|||||||
{
|
{
|
||||||
char buffer[4096];
|
char buffer[4096];
|
||||||
FILE *fp = 0;
|
FILE *fp = 0;
|
||||||
|
|
||||||
if (cfgdontsave == 1)
|
if (cfgdontsave == 1)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __LINUX__
|
#ifdef __LINUX__
|
||||||
chdir(zcfgdir);
|
chdir(zcfgdir);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fp = fopen(CMDLineStr, "wb");
|
fp = fopen(CMDLineStr, "wb");
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
@@ -490,7 +490,7 @@ void DOScreatenewcfg()
|
|||||||
WRITE_LINE("; Sound Sampling Rate\r\n");
|
WRITE_LINE("; Sound Sampling Rate\r\n");
|
||||||
WRITE_LINE("; 0 = 8,000 Hz, 1 = 11,025 Hz, 2 = 22,050 Hz\r\n");
|
WRITE_LINE("; 0 = 8,000 Hz, 1 = 11,025 Hz, 2 = 22,050 Hz\r\n");
|
||||||
WRITE_LINE("; 3 = 44,100 Hz, 4 = 16,000 Hz, 5 = 32,000 Hz\r\n");
|
WRITE_LINE("; 3 = 44,100 Hz, 4 = 16,000 Hz, 5 = 32,000 Hz\r\n");
|
||||||
WRITE_LINE("; 6 = 48,000 Hz\r\n\r\n");
|
WRITE_LINE("; 6 = 48,000 Hz\r\n\r\n");
|
||||||
|
|
||||||
sprintf(buffer, "SoundRate = %d\r\n\r\n", cfgSoundQuality);
|
sprintf(buffer, "SoundRate = %d\r\n\r\n", cfgSoundQuality);
|
||||||
SAVE_LINE(buffer);
|
SAVE_LINE(buffer);
|
||||||
@@ -617,7 +617,7 @@ void getcfg()
|
|||||||
char temp;
|
char temp;
|
||||||
unsigned char no_save = 0;
|
unsigned char no_save = 0;
|
||||||
_forceauto = 0;
|
_forceauto = 0;
|
||||||
|
|
||||||
//open file
|
//open file
|
||||||
ZOpenFileName = CMDLineStr;
|
ZOpenFileName = CMDLineStr;
|
||||||
ZOpenMode = 0;
|
ZOpenMode = 0;
|
||||||
@@ -706,7 +706,7 @@ void getcfg()
|
|||||||
#ifndef __LINUX__
|
#ifndef __LINUX__
|
||||||
if (temp >= 'a' && temp <= 'z')
|
if (temp >= 'a' && temp <= 'z')
|
||||||
temp -= ('a' - 'A');
|
temp -= ('a' - 'A');
|
||||||
#endif
|
#endif
|
||||||
_usespace = 1;
|
_usespace = 1;
|
||||||
_stringb[j] = temp;
|
_stringb[j] = temp;
|
||||||
_strlenb++;
|
_strlenb++;
|
||||||
@@ -1248,7 +1248,7 @@ void getcfg()
|
|||||||
{
|
{
|
||||||
if (_strlenb >= 3)
|
if (_strlenb >= 3)
|
||||||
{
|
{
|
||||||
#ifndef __LINUX__
|
#ifndef __LINUX__
|
||||||
if (_stringb[1] == ':' && _stringb[2] == '\\')
|
if (_stringb[1] == ':' && _stringb[2] == '\\')
|
||||||
{
|
{
|
||||||
cfgloadgdir = 1;
|
cfgloadgdir = 1;
|
||||||
@@ -1262,7 +1262,7 @@ void getcfg()
|
|||||||
strncpy(LoadDir, _stringb, _strlenb);
|
strncpy(LoadDir, _stringb, _strlenb);
|
||||||
LoadDir[_strlenb] = '\0';
|
LoadDir[_strlenb] = '\0';
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
strcpy(LoadDirB, LoadDir);
|
strcpy(LoadDirB, LoadDir);
|
||||||
#ifndef __LINUX__
|
#ifndef __LINUX__
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ EXTSYM JoyMaxX209,JoyMinY209,JoyMaxY209,GetCoords,GetCoords3,MultiTap,SFXEnable
|
|||||||
EXTSYM RestoreSystemVars,GUIBIFIL,GUIHQ2X,GUIHQ3X,GUIHQ4X,firstsaveinc,nssdip1
|
EXTSYM RestoreSystemVars,GUIBIFIL,GUIHQ2X,GUIHQ3X,GUIHQ4X,firstsaveinc,nssdip1
|
||||||
EXTSYM nssdip2,nssdip3,nssdip4,nssdip5,nssdip6,SkipMovie,MovieStop,MoviePlay
|
EXTSYM nssdip2,nssdip3,nssdip4,nssdip5,nssdip6,SkipMovie,MovieStop,MoviePlay
|
||||||
EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind
|
EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind
|
||||||
EXTSYM ResetDuringMovie,MovieDumpRaw,EmuSpeed
|
EXTSYM ResetDuringMovie,MovieDumpRaw
|
||||||
|
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
EXTSYM numlockptr
|
EXTSYM numlockptr
|
||||||
@@ -604,6 +604,7 @@ NEWSYM INCRFrameKey, dd 0
|
|||||||
NEWSYM PauseLoad, db 0
|
NEWSYM PauseLoad, db 0
|
||||||
NEWSYM PauseRewind, db 0
|
NEWSYM PauseRewind, db 0
|
||||||
NEWSYM KeyResetSpeed, dd 0
|
NEWSYM KeyResetSpeed, dd 0
|
||||||
|
NEWSYM EmuSpeed, db 29 ; 29 = 1x, 0 = /30 and 58 = 30x
|
||||||
;end NEWSYM end
|
;end NEWSYM end
|
||||||
|
|
||||||
GUIsave equ $-GUIRAdd
|
GUIsave equ $-GUIRAdd
|
||||||
|
|||||||
@@ -3062,7 +3062,7 @@ DisplayGUISearch:
|
|||||||
; ret
|
; ret
|
||||||
;; DrawGUIButton 13,197,30,239,41,GUICSrcText8+2,40,0,0
|
;; DrawGUIButton 13,197,30,239,41,GUICSrcText8+2,40,0,0
|
||||||
; ret
|
; ret
|
||||||
|
|
||||||
.startcheat ; Start
|
.startcheat ; Start
|
||||||
cmp byte[CheatWinMode],1 ; Determine which CS window we're on
|
cmp byte[CheatWinMode],1 ; Determine which CS window we're on
|
||||||
je near Incheatmode
|
je near Incheatmode
|
||||||
@@ -3073,8 +3073,8 @@ DisplayGUISearch:
|
|||||||
mov dword[GUIwinsizex+13*4],170
|
mov dword[GUIwinsizex+13*4],170
|
||||||
mov dword[GUIwinsizey+13*4],150
|
mov dword[GUIwinsizey+13*4],150
|
||||||
call DrawWindowSearch
|
call DrawWindowSearch
|
||||||
|
|
||||||
|
|
||||||
mov al,[GUIWincol] ; Yellow Shadow
|
mov al,[GUIWincol] ; Yellow Shadow
|
||||||
mov byte[GUItextcolor],al
|
mov byte[GUItextcolor],al
|
||||||
GUIOuttextwin2 13,6,16,GUICSrcText1
|
GUIOuttextwin2 13,6,16,GUICSrcText1
|
||||||
@@ -3101,28 +3101,28 @@ DisplayGUISearch:
|
|||||||
TextWindowMacro 13,25,85,GUICSrcText7
|
TextWindowMacro 13,25,85,GUICSrcText7
|
||||||
TextWindowMacro 13,25,115,GUICSrcText9
|
TextWindowMacro 13,25,115,GUICSrcText9
|
||||||
TextWindowMacro 13,25,125,GUICSrcTextA
|
TextWindowMacro 13,25,125,GUICSrcTextA
|
||||||
|
|
||||||
|
|
||||||
DrawGUIButton 13,95,140,140,152,GUICSrcTextB,50,0,1 ; Button
|
DrawGUIButton 13,95,140,140,152,GUICSrcTextB,50,0,1 ; Button
|
||||||
|
|
||||||
|
|
||||||
GUIDisplayButtonHole 13,11,28,byte[CheatSrcByteSize],0 ; Ratio Buttons
|
GUIDisplayButtonHole 13,11,28,byte[CheatSrcByteSize],0 ; Ratio Buttons
|
||||||
GUIDisplayButtonHole 13,11,38,byte[CheatSrcByteSize],1
|
GUIDisplayButtonHole 13,11,38,byte[CheatSrcByteSize],1
|
||||||
GUIDisplayButtonHole 13,11,48,byte[CheatSrcByteSize],2
|
GUIDisplayButtonHole 13,11,48,byte[CheatSrcByteSize],2
|
||||||
GUIDisplayButtonHole 13,11,58,byte[CheatSrcByteSize],3
|
GUIDisplayButtonHole 13,11,58,byte[CheatSrcByteSize],3
|
||||||
|
|
||||||
GUIDisplayButtonHole 13,11,73,byte[CheatSrcByteBase],0
|
GUIDisplayButtonHole 13,11,73,byte[CheatSrcByteBase],0
|
||||||
GUIDisplayButtonHole 13,11,83,byte[CheatSrcByteBase],1
|
GUIDisplayButtonHole 13,11,83,byte[CheatSrcByteBase],1
|
||||||
|
|
||||||
GUIDisplayButtonHole 13,11,113,byte[CheatSrcSearchType],0
|
GUIDisplayButtonHole 13,11,113,byte[CheatSrcSearchType],0
|
||||||
GUIDisplayButtonHole 13,11,123,byte[CheatSrcSearchType],1
|
GUIDisplayButtonHole 13,11,123,byte[CheatSrcSearchType],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Incheatmode: ; Return and Re-search
|
Incheatmode: ; Return and Re-search
|
||||||
mov dword[GUIwinsizex+13*4],180
|
mov dword[GUIwinsizex+13*4],180
|
||||||
mov dword[GUIwinsizey+13*4],150
|
mov dword[GUIwinsizey+13*4],150
|
||||||
call DrawWindowSearch
|
call DrawWindowSearch
|
||||||
|
|
||||||
mov byte[GUItextcolor],217 ; Text And Shadow
|
mov byte[GUItextcolor],217 ; Text And Shadow
|
||||||
cmp byte[GUIWincoladd],0
|
cmp byte[GUIWincoladd],0
|
||||||
je .zero2
|
je .zero2
|
||||||
@@ -3135,15 +3135,15 @@ Incheatmode: ; Return and Re-search
|
|||||||
TextWindowMacro 13,5,40,GUICSrcTextO
|
TextWindowMacro 13,5,40,GUICSrcTextO
|
||||||
TextWindowMacro 13,5,50,GUICSrcTextP
|
TextWindowMacro 13,5,50,GUICSrcTextP
|
||||||
jmp DisplayChtSrcRes.nosearch
|
jmp DisplayChtSrcRes.nosearch
|
||||||
|
|
||||||
CheatSearching: ; Exact Value Search
|
CheatSearching: ; Exact Value Search
|
||||||
cmp byte[CheatSrcSearchType],1
|
cmp byte[CheatSrcSearchType],1
|
||||||
je near CheatSearchingComp
|
je near CheatSearchingComp
|
||||||
|
|
||||||
TextWindowMacro 13,5,20,GUICSrcTextD ; Text (setup?)
|
TextWindowMacro 13,5,20,GUICSrcTextD ; Text (setup?)
|
||||||
|
|
||||||
DrawGUIWinBox 13,10,40,80,47,167 ; Input Box
|
DrawGUIWinBox 13,10,40,80,47,167 ; Input Box
|
||||||
|
|
||||||
|
|
||||||
mov dword[GUIWincol],148+10 ; Draw border
|
mov dword[GUIWincol],148+10 ; Draw border
|
||||||
cmp byte[cwindrawn],1
|
cmp byte[cwindrawn],1
|
||||||
@@ -3178,7 +3178,7 @@ CheatSearching: ; Exact Value Search
|
|||||||
mov byte[GUItextcolor],202 ; Alt Color
|
mov byte[GUItextcolor],202 ; Alt Color
|
||||||
.notdark
|
.notdark
|
||||||
GUIOuttextwin2 13,13,42,CSInputDisplay
|
GUIOuttextwin2 13,13,42,CSInputDisplay
|
||||||
|
|
||||||
mov byte[GUItextcolor],221 ; Green Text
|
mov byte[GUItextcolor],221 ; Green Text
|
||||||
cmp byte[GUIWincoladd],0
|
cmp byte[GUIWincoladd],0
|
||||||
je .zero4
|
je .zero4
|
||||||
@@ -3189,7 +3189,7 @@ CheatSearching: ; Exact Value Search
|
|||||||
mov byte[GUItextcolor],207 ; Alt Color
|
mov byte[GUItextcolor],207 ; Alt Color
|
||||||
.notdark2
|
.notdark2
|
||||||
GUIOuttextwin2 13,12,41,CSInputDisplay
|
GUIOuttextwin2 13,12,41,CSInputDisplay
|
||||||
|
|
||||||
mov byte[GUItextcolor],217 ; More Text
|
mov byte[GUItextcolor],217 ; More Text
|
||||||
cmp byte[GUIWincoladd],0
|
cmp byte[GUIWincoladd],0
|
||||||
je .zero2
|
je .zero2
|
||||||
@@ -6315,17 +6315,18 @@ DisplayGUISpeed: ;Speed Options
|
|||||||
mov dword[GUITemp],GUIIconDataCheckBoxC
|
mov dword[GUITemp],GUIIconDataCheckBoxC
|
||||||
.nocheckbox
|
.nocheckbox
|
||||||
GUIDisplayIconWin 21,11,165,[GUITemp]
|
GUIDisplayIconWin 21,11,165,[GUITemp]
|
||||||
|
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
mov dword[GUITemp],GUIIconDataCheckBoxUC
|
||||||
cmp byte[FastFwdToggle],0
|
cmp byte[FastFwdToggle],0
|
||||||
je .nocheckbox1
|
je .nocheckbox1
|
||||||
mov dword[GUITemp],GUIIconDataCheckBoxC
|
mov dword[GUITemp],GUIIconDataCheckBoxC
|
||||||
.nocheckbox1
|
.nocheckbox1
|
||||||
GUIDisplayIconWin 21,11,175,[GUITemp]
|
GUIDisplayIconWin 21,11,175,[GUITemp]
|
||||||
|
|
||||||
|
|
||||||
mov eax,dword[GUIwinposx+21*4] ;Slider
|
mov eax,dword[GUIwinposx+21*4] ;Slider
|
||||||
mov ebx,dword[GUIwinposy+21*4]
|
mov ebx,dword[GUIwinposy+21*4]
|
||||||
|
add eax,15
|
||||||
add ebx,31
|
add ebx,31
|
||||||
mov ecx,eax
|
mov ecx,eax
|
||||||
add ecx,116
|
add ecx,116
|
||||||
@@ -6385,11 +6386,11 @@ DisplayGUISpeed: ;Speed Options
|
|||||||
mov byte[GUItextcolor],222
|
mov byte[GUItextcolor],222
|
||||||
.zero4
|
.zero4
|
||||||
GUIOuttextwin2 21,77,18,[GUITemp]
|
GUIOuttextwin2 21,77,18,[GUITemp]
|
||||||
|
|
||||||
|
|
||||||
cmp byte[frameskip],0 ; Determine if AutoFR is enabled
|
cmp byte[frameskip],0 ; Determine if AutoFR is enabled
|
||||||
je near .auto
|
je near .auto
|
||||||
|
|
||||||
DrawGUIWinBox 21,75,42,93,49,167 ; Frameskip (if not AutoFR)
|
DrawGUIWinBox 21,75,42,93,49,167 ; Frameskip (if not AutoFR)
|
||||||
mov al,[frameskip]
|
mov al,[frameskip]
|
||||||
add al,47
|
add al,47
|
||||||
@@ -6409,7 +6410,7 @@ DisplayGUISpeed: ;Speed Options
|
|||||||
.zero6
|
.zero6
|
||||||
DrawGUIButton 21,97,42,105,50,GUISpeedTextY,12,-2,-1
|
DrawGUIButton 21,97,42,105,50,GUISpeedTextY,12,-2,-1
|
||||||
DrawGUIButton 21,108,42,116,50,GUISpeedTextZ,13,-2,-1
|
DrawGUIButton 21,108,42,116,50,GUISpeedTextZ,13,-2,-1
|
||||||
|
|
||||||
mov dword[GUIWincol],148+10 ; Draw borders
|
mov dword[GUIWincol],148+10 ; Draw borders
|
||||||
cmp byte[cwindrawn],1
|
cmp byte[cwindrawn],1
|
||||||
jne .noone2
|
jne .noone2
|
||||||
@@ -6432,7 +6433,7 @@ DisplayGUISpeed: ;Speed Options
|
|||||||
DrawGUIWinBox 21,95,42,94,49,dl
|
DrawGUIWinBox 21,95,42,94,49,dl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
.auto ; Max Frameskip (if AutoFR)
|
.auto ; Max Frameskip (if AutoFR)
|
||||||
DrawGUIWinBox 21,96,42,114,49,167
|
DrawGUIWinBox 21,96,42,114,49,167
|
||||||
mov al,[maxskip]
|
mov al,[maxskip]
|
||||||
@@ -6453,7 +6454,7 @@ DisplayGUISpeed: ;Speed Options
|
|||||||
.zero7
|
.zero7
|
||||||
DrawGUIButton 21,118,42,126,50,GUISpeedTextY,12,-2,-1
|
DrawGUIButton 21,118,42,126,50,GUISpeedTextY,12,-2,-1
|
||||||
DrawGUIButton 21,129,42,137,50,GUISpeedTextZ,13,-2,-1
|
DrawGUIButton 21,129,42,137,50,GUISpeedTextZ,13,-2,-1
|
||||||
|
|
||||||
mov dword[GUIWincol],148+10 ; Draw borders
|
mov dword[GUIWincol],148+10 ; Draw borders
|
||||||
cmp byte[cwindrawn],1
|
cmp byte[cwindrawn],1
|
||||||
jne .noone3
|
jne .noone3
|
||||||
|
|||||||
@@ -136,11 +136,10 @@ unsigned char DisplayS = 0;
|
|||||||
unsigned char SPC700sh = 0;
|
unsigned char SPC700sh = 0;
|
||||||
unsigned char OffBy1Line = 0;
|
unsigned char OffBy1Line = 0;
|
||||||
unsigned char *spc7110romptr;
|
unsigned char *spc7110romptr;
|
||||||
|
|
||||||
unsigned char MusicRelVol = 75;
|
unsigned char MusicRelVol = 75;
|
||||||
unsigned char MusicVol = 0;
|
unsigned char MusicVol = 0;
|
||||||
unsigned char MMXextSupport = 0;
|
unsigned char MMXextSupport = 0;
|
||||||
unsigned char EmuSpeed = 29; // 29 = 1x, 0 = /30 and 58 = 30x
|
|
||||||
|
|
||||||
void outofmemory();
|
void outofmemory();
|
||||||
void init();
|
void init();
|
||||||
@@ -157,7 +156,7 @@ void *doMemAlloc(size_t size)
|
|||||||
void *ptr = NULL;
|
void *ptr = NULL;
|
||||||
ptr = malloc(size);
|
ptr = malloc(size);
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
{
|
{
|
||||||
asm_call(outofmemory);
|
asm_call(outofmemory);
|
||||||
}
|
}
|
||||||
return(ptr);
|
return(ptr);
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ EXTSYM oamram,objhipr,objptr,objptrn,objsize1,objsize2,spritetablea,sprleftpr
|
|||||||
EXTSYM sprlefttot,vcache4b,objadds1,objadds2,objmovs1,objmovs2,tltype4b
|
EXTSYM sprlefttot,vcache4b,objadds1,objadds2,objmovs1,objmovs2,tltype4b
|
||||||
EXTSYM vidmemch4,vram,bgptr,bgptrc,bgptrd,curtileptr,vcache2b,vcache8b,vidmemch8
|
EXTSYM vidmemch4,vram,bgptr,bgptrc,bgptrd,curtileptr,vcache2b,vcache8b,vidmemch8
|
||||||
EXTSYM offsetmshl,NextLineCache,tltype2b,tltype8b,objwlrpos,snesinputdefault
|
EXTSYM offsetmshl,NextLineCache,tltype2b,tltype8b,objwlrpos,snesinputdefault
|
||||||
EXTSYM cycleinputdevice,Change_Dir,LoadDrive,LoadDir
|
EXTSYM cycleinputdevice,Change_Dir,LoadDrive,LoadDir,EmuSpeed
|
||||||
|
|
||||||
; Process stuff & Cache sprites
|
; Process stuff & Cache sprites
|
||||||
|
|
||||||
@@ -303,6 +303,7 @@ NEWSYM cachevideo
|
|||||||
mov dword[sramb4save],0
|
mov dword[sramb4save],0
|
||||||
.nofocussave
|
.nofocussave
|
||||||
|
|
||||||
|
; fast forward goes over all other throttles
|
||||||
cmp byte[FastFwdToggle],0
|
cmp byte[FastFwdToggle],0
|
||||||
jne .ffmode2
|
jne .ffmode2
|
||||||
mov eax,[KeyFastFrwrd]
|
mov eax,[KeyFastFrwrd]
|
||||||
@@ -319,7 +320,7 @@ NEWSYM cachevideo
|
|||||||
cmp byte[FastForwardLock],1
|
cmp byte[FastForwardLock],1
|
||||||
je near .fastfor
|
je near .fastfor
|
||||||
.ffskip
|
.ffskip
|
||||||
|
; next up, check for slowdown
|
||||||
cmp byte[FastFwdToggle],0
|
cmp byte[FastFwdToggle],0
|
||||||
jne .sdmode2
|
jne .sdmode2
|
||||||
mov eax,[KeySlowDown]
|
mov eax,[KeySlowDown]
|
||||||
@@ -337,13 +338,25 @@ NEWSYM cachevideo
|
|||||||
je near .slowdwn
|
je near .slowdwn
|
||||||
jmp .sdskip
|
jmp .sdskip
|
||||||
.slowdwn
|
.slowdwn
|
||||||
mov byte[SloMo],1 ; hardcoded 50% slowdown
|
mov byte[SloMo],1 ; hardcoded /2 slowdown (for now)
|
||||||
jmp .skipnoslowdown
|
jmp .throttleskip
|
||||||
.sdskip
|
.sdskip
|
||||||
mov byte[SloMo],0
|
mov byte[SloMo],0
|
||||||
.skipnoslowdown
|
; now we can look at emuspeed
|
||||||
|
cmp byte[EmuSpeed],30 ; 0-28 slow, 29 normal, 30-58 skip
|
||||||
|
jb .noskipping
|
||||||
|
inc byte[frskipper]
|
||||||
|
push ebx
|
||||||
|
mov bl,[EmuSpeed]
|
||||||
|
sub bl,29 ; 30-58 -> 1-29 frames to skip, 2x-30x speed
|
||||||
|
jmp .fastforb
|
||||||
|
.noskipping
|
||||||
|
mov byte[SloMo],29
|
||||||
|
mov al,[EmuSpeed]
|
||||||
|
sub byte[SloMo],al ; 0-29 -> repeat 29-0 times, /30-1x speed
|
||||||
|
.throttleskip
|
||||||
mov ax,[SloMo]
|
mov ax,[SloMo]
|
||||||
inc ax ; total times frame is drawn
|
inc ax ; total times frame is drawn
|
||||||
|
|
||||||
cmp byte[frameskip],0
|
cmp byte[frameskip],0
|
||||||
jne near .frameskip
|
jne near .frameskip
|
||||||
@@ -373,7 +386,7 @@ NEWSYM cachevideo
|
|||||||
.fastfor
|
.fastfor
|
||||||
inc byte[frskipper]
|
inc byte[frskipper]
|
||||||
push ebx
|
push ebx
|
||||||
mov bl,10 ; hardcoded number of frames to skip
|
mov bl,10 ; hardcoded 11x fastforward (for now)
|
||||||
jmp .fastforb
|
jmp .fastforb
|
||||||
.frameskip
|
.frameskip
|
||||||
inc byte[frskipper]
|
inc byte[frskipper]
|
||||||
|
|||||||
Reference in New Issue
Block a user