diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index e144c06f..74f90ca8 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -1548,6 +1548,42 @@ LOADDir: call Change_Dir ret +guimencodermsg: + xor ebx,ebx + mov ecx,256 +.a + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + mov byte[pressed+2Ch],0 +.again + GUIBox 43,75,213,163,160 + GUIBox 43,75,213,75,162 + GUIBox 43,75,43,163,161 + GUIBox 213,75,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 52,96,guimencodert1,220-15 + GUIOuttext 51,95,guimencodert1,220 + GUIOuttext 52,134,guimencodert2,220-15 + GUIOuttext 51,133,guimencodert2,220 + call vidpastecopyscr + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + call JoyRead + cmp byte[pressed+39h],0 + jne .pressedokay + jmp .again +.pressedokay + ret + +SECTION .data +guimencodert1 db ' MENCODER iS MISSING : ',0 +guimencodert2 db ' PRESS SPACE TO CONTINUE',0 + +section .text + guifirsttimemsg: xor ebx,ebx mov ecx,256 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 9b11fba3..c8c2f421 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -667,6 +667,10 @@ ProcessMouseButtons: pushad call MovieDumpRaw popad + cmp byte[mencoderExists],0 + jne .okay + call guimencodermsg +.okay ret .noDumpRaw cmp byte[GUICBHold],40 diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index 37942f9e..c38451bf 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -22,6 +22,9 @@ EXTSYM VERSION_STR,placedate +SECTION .data +NEWSYM mencoderExists, db 0 + SECTION .text ; Window Display Routines diff --git a/zsnes/src/zmovie.c b/zsnes/src/zmovie.c index 286ade42..1f6c4662 100644 --- a/zsnes/src/zmovie.c +++ b/zsnes/src/zmovie.c @@ -61,7 +61,7 @@ extern unsigned int versionNumber, CRC32, cur_zst_size, MsgCount, MessageOn; extern unsigned int JoyAOrig, JoyBOrig, JoyCOrig, JoyDOrig, JoyEOrig; extern unsigned char pl1contrl, pl2contrl, pl3contrl, pl4contrl, pl5contrl; extern unsigned char MovieStartMethod, GUIReset, ReturnFromSPCStall, GUIQuit; -extern unsigned char MovieProcessing, CMovieExt, EmuSpeed; +extern unsigned char MovieProcessing, CMovieExt, EmuSpeed, mencoderExists; extern char *Msgptr, fnamest[512]; extern bool romispal; bool MovieWaiting = false; @@ -2009,7 +2009,7 @@ static bool raw_video_open() break; case 2: case 3: - raw_vid.vp = popen(encode_command(md_command), WRITE_BINARY); + mencoderExists = raw_vid.vp = popen(encode_command(md_command), WRITE_BINARY); break; default: @@ -2052,6 +2052,7 @@ static bool raw_video_open() return(true); } } + raw_video_close(); return(false); }