EmuSpeed setting saved in config file and bound to current code... fastmotion is a bit overpowered. -_-;

This commit is contained in:
grinvader
2005-05-18 00:36:00 +00:00
parent 9f4b0dc525
commit 190760d337
5 changed files with 59 additions and 45 deletions

View File

@@ -111,7 +111,7 @@ extern unsigned int newengen;
extern char SRAMDrive[2];
extern unsigned char DontSavePath;
extern unsigned char guioff;
extern unsigned int frameskip;
extern unsigned char frameskip;
extern unsigned char enterpress;
extern unsigned char cvidmode;
extern unsigned char antienab;
@@ -362,16 +362,16 @@ void DOScreatenewcfg()
{
char buffer[4096];
FILE *fp = 0;
if (cfgdontsave == 1)
{
return;
}
#ifdef __LINUX__
#ifdef __LINUX__
chdir(zcfgdir);
#endif
#endif
fp = fopen(CMDLineStr, "wb");
if (!fp)
{
@@ -490,7 +490,7 @@ void DOScreatenewcfg()
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("; 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);
SAVE_LINE(buffer);
@@ -617,7 +617,7 @@ void getcfg()
char temp;
unsigned char no_save = 0;
_forceauto = 0;
//open file
ZOpenFileName = CMDLineStr;
ZOpenMode = 0;
@@ -706,7 +706,7 @@ void getcfg()
#ifndef __LINUX__
if (temp >= 'a' && temp <= 'z')
temp -= ('a' - 'A');
#endif
#endif
_usespace = 1;
_stringb[j] = temp;
_strlenb++;
@@ -1248,7 +1248,7 @@ void getcfg()
{
if (_strlenb >= 3)
{
#ifndef __LINUX__
#ifndef __LINUX__
if (_stringb[1] == ':' && _stringb[2] == '\\')
{
cfgloadgdir = 1;
@@ -1262,7 +1262,7 @@ void getcfg()
strncpy(LoadDir, _stringb, _strlenb);
LoadDir[_strlenb] = '\0';
#endif
#endif
strcpy(LoadDirB, LoadDir);
#ifndef __LINUX__
}

View File

@@ -105,7 +105,7 @@ EXTSYM JoyMaxX209,JoyMinY209,JoyMaxY209,GetCoords,GetCoords3,MultiTap,SFXEnable
EXTSYM RestoreSystemVars,GUIBIFIL,GUIHQ2X,GUIHQ3X,GUIHQ4X,firstsaveinc,nssdip1
EXTSYM nssdip2,nssdip3,nssdip4,nssdip5,nssdip6,SkipMovie,MovieStop,MoviePlay
EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind
EXTSYM ResetDuringMovie,MovieDumpRaw,EmuSpeed
EXTSYM ResetDuringMovie,MovieDumpRaw
%ifdef __LINUX__
EXTSYM numlockptr
@@ -604,6 +604,7 @@ NEWSYM INCRFrameKey, dd 0
NEWSYM PauseLoad, db 0
NEWSYM PauseRewind, db 0
NEWSYM KeyResetSpeed, dd 0
NEWSYM EmuSpeed, db 29 ; 29 = 1x, 0 = /30 and 58 = 30x
;end NEWSYM end
GUIsave equ $-GUIRAdd

View File

@@ -3062,7 +3062,7 @@ DisplayGUISearch:
; ret
;; DrawGUIButton 13,197,30,239,41,GUICSrcText8+2,40,0,0
; ret
.startcheat ; Start
cmp byte[CheatWinMode],1 ; Determine which CS window we're on
je near Incheatmode
@@ -3073,8 +3073,8 @@ DisplayGUISearch:
mov dword[GUIwinsizex+13*4],170
mov dword[GUIwinsizey+13*4],150
call DrawWindowSearch
mov al,[GUIWincol] ; Yellow Shadow
mov byte[GUItextcolor],al
GUIOuttextwin2 13,6,16,GUICSrcText1
@@ -3101,28 +3101,28 @@ DisplayGUISearch:
TextWindowMacro 13,25,85,GUICSrcText7
TextWindowMacro 13,25,115,GUICSrcText9
TextWindowMacro 13,25,125,GUICSrcTextA
DrawGUIButton 13,95,140,140,152,GUICSrcTextB,50,0,1 ; Button
GUIDisplayButtonHole 13,11,28,byte[CheatSrcByteSize],0 ; Ratio Buttons
GUIDisplayButtonHole 13,11,38,byte[CheatSrcByteSize],1
GUIDisplayButtonHole 13,11,48,byte[CheatSrcByteSize],2
GUIDisplayButtonHole 13,11,58,byte[CheatSrcByteSize],3
GUIDisplayButtonHole 13,11,73,byte[CheatSrcByteBase],0
GUIDisplayButtonHole 13,11,83,byte[CheatSrcByteBase],1
GUIDisplayButtonHole 13,11,113,byte[CheatSrcSearchType],0
GUIDisplayButtonHole 13,11,123,byte[CheatSrcSearchType],1
ret
Incheatmode: ; Return and Re-search
mov dword[GUIwinsizex+13*4],180
mov dword[GUIwinsizey+13*4],150
call DrawWindowSearch
mov byte[GUItextcolor],217 ; Text And Shadow
cmp byte[GUIWincoladd],0
je .zero2
@@ -3135,15 +3135,15 @@ Incheatmode: ; Return and Re-search
TextWindowMacro 13,5,40,GUICSrcTextO
TextWindowMacro 13,5,50,GUICSrcTextP
jmp DisplayChtSrcRes.nosearch
CheatSearching: ; Exact Value Search
cmp byte[CheatSrcSearchType],1
je near CheatSearchingComp
TextWindowMacro 13,5,20,GUICSrcTextD ; Text (setup?)
DrawGUIWinBox 13,10,40,80,47,167 ; Input Box
mov dword[GUIWincol],148+10 ; Draw border
cmp byte[cwindrawn],1
@@ -3178,7 +3178,7 @@ CheatSearching: ; Exact Value Search
mov byte[GUItextcolor],202 ; Alt Color
.notdark
GUIOuttextwin2 13,13,42,CSInputDisplay
mov byte[GUItextcolor],221 ; Green Text
cmp byte[GUIWincoladd],0
je .zero4
@@ -3189,7 +3189,7 @@ CheatSearching: ; Exact Value Search
mov byte[GUItextcolor],207 ; Alt Color
.notdark2
GUIOuttextwin2 13,12,41,CSInputDisplay
mov byte[GUItextcolor],217 ; More Text
cmp byte[GUIWincoladd],0
je .zero2
@@ -6315,17 +6315,18 @@ DisplayGUISpeed: ;Speed Options
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox
GUIDisplayIconWin 21,11,165,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[FastFwdToggle],0
je .nocheckbox1
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox1
GUIDisplayIconWin 21,11,175,[GUITemp]
GUIDisplayIconWin 21,11,175,[GUITemp]
mov eax,dword[GUIwinposx+21*4] ;Slider
mov ebx,dword[GUIwinposy+21*4]
add eax,15
add ebx,31
mov ecx,eax
add ecx,116
@@ -6385,11 +6386,11 @@ DisplayGUISpeed: ;Speed Options
mov byte[GUItextcolor],222
.zero4
GUIOuttextwin2 21,77,18,[GUITemp]
cmp byte[frameskip],0 ; Determine if AutoFR is enabled
je near .auto
DrawGUIWinBox 21,75,42,93,49,167 ; Frameskip (if not AutoFR)
mov al,[frameskip]
add al,47
@@ -6409,7 +6410,7 @@ DisplayGUISpeed: ;Speed Options
.zero6
DrawGUIButton 21,97,42,105,50,GUISpeedTextY,12,-2,-1
DrawGUIButton 21,108,42,116,50,GUISpeedTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw borders
cmp byte[cwindrawn],1
jne .noone2
@@ -6432,7 +6433,7 @@ DisplayGUISpeed: ;Speed Options
DrawGUIWinBox 21,95,42,94,49,dl
ret
.auto ; Max Frameskip (if AutoFR)
DrawGUIWinBox 21,96,42,114,49,167
mov al,[maxskip]
@@ -6453,7 +6454,7 @@ DisplayGUISpeed: ;Speed Options
.zero7
DrawGUIButton 21,118,42,126,50,GUISpeedTextY,12,-2,-1
DrawGUIButton 21,129,42,137,50,GUISpeedTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw borders
cmp byte[cwindrawn],1
jne .noone3

View File

@@ -136,11 +136,10 @@ unsigned char DisplayS = 0;
unsigned char SPC700sh = 0;
unsigned char OffBy1Line = 0;
unsigned char *spc7110romptr;
unsigned char MusicRelVol = 75;
unsigned char MusicVol = 0;
unsigned char MMXextSupport = 0;
unsigned char EmuSpeed = 29; // 29 = 1x, 0 = /30 and 58 = 30x
void outofmemory();
void init();
@@ -157,7 +156,7 @@ void *doMemAlloc(size_t size)
void *ptr = NULL;
ptr = malloc(size);
if (!ptr)
{
{
asm_call(outofmemory);
}
return(ptr);

View File

@@ -49,7 +49,7 @@ EXTSYM oamram,objhipr,objptr,objptrn,objsize1,objsize2,spritetablea,sprleftpr
EXTSYM sprlefttot,vcache4b,objadds1,objadds2,objmovs1,objmovs2,tltype4b
EXTSYM vidmemch4,vram,bgptr,bgptrc,bgptrd,curtileptr,vcache2b,vcache8b,vidmemch8
EXTSYM offsetmshl,NextLineCache,tltype2b,tltype8b,objwlrpos,snesinputdefault
EXTSYM cycleinputdevice,Change_Dir,LoadDrive,LoadDir
EXTSYM cycleinputdevice,Change_Dir,LoadDrive,LoadDir,EmuSpeed
; Process stuff & Cache sprites
@@ -303,6 +303,7 @@ NEWSYM cachevideo
mov dword[sramb4save],0
.nofocussave
; fast forward goes over all other throttles
cmp byte[FastFwdToggle],0
jne .ffmode2
mov eax,[KeyFastFrwrd]
@@ -319,7 +320,7 @@ NEWSYM cachevideo
cmp byte[FastForwardLock],1
je near .fastfor
.ffskip
; next up, check for slowdown
cmp byte[FastFwdToggle],0
jne .sdmode2
mov eax,[KeySlowDown]
@@ -337,13 +338,25 @@ NEWSYM cachevideo
je near .slowdwn
jmp .sdskip
.slowdwn
mov byte[SloMo],1 ; hardcoded 50% slowdown
jmp .skipnoslowdown
mov byte[SloMo],1 ; hardcoded /2 slowdown (for now)
jmp .throttleskip
.sdskip
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]
inc ax ; total times frame is drawn
inc ax ; total times frame is drawn
cmp byte[frameskip],0
jne near .frameskip
@@ -373,7 +386,7 @@ NEWSYM cachevideo
.fastfor
inc byte[frskipper]
push ebx
mov bl,10 ; hardcoded number of frames to skip
mov bl,10 ; hardcoded 11x fastforward (for now)
jmp .fastforb
.frameskip
inc byte[frskipper]