From 02c82ba3668092b0cad412564970e04f3d43ebf9 Mon Sep 17 00:00:00 2001 From: grinvader <> Date: Mon, 21 Mar 2005 16:11:32 +0000 Subject: [PATCH] Key combo counter tied in ZMV. --- zsnes/src/init.asm | 19 +++++++++++-------- zsnes/src/zmovie.c | 11 +++++++---- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index 67aaca59..df4ec571 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -542,6 +542,7 @@ NEWSYM PJoyCOrig, resd 1 NEWSYM PJoyDOrig, resd 1 NEWSYM PJoyEOrig, resd 1 NEWSYM LethEnData, resd 1 +NEWSYM ComboCounter, resb 1 SECTION .text %macro PlayerDeviceHelp 3 @@ -621,6 +622,7 @@ SECTION .text jmp %%endcomb %%startprogress mov byte[pressed+ebx],2 + inc byte[ComboCounter] mov byte[ComboProg+%1],1 mov byte[ComboPtr+%1],0 mov dword[PressComb+%1*4],0 @@ -727,15 +729,15 @@ ProcessCombo: jmp .nextsession SECTION .data -ComboProg dd 0 -ComboPtr dd 0 +ComboProg times 5 db 0 +ComboPtr times 5 db 0 KeyLPress dd 0 CombDirSwap dd 0 -CombDelay times 4 dd 0 -StartComb times 4 dd 0 -HoldComb times 4 dd 0 -PressComb times 4 dd 0 -CombCont times 4 dd 0 +CombDelay times 5 dd 0 +StartComb times 5 dd 0 +HoldComb times 5 dd 0 +PressComb times 5 dd 0 +CombCont times 5 dd 0 CombTDelN dd 1,2,3,4,5,9,30,60,120,180,240,300 CombTDelP dd 1,2,3,4,5,9,25,50,100,150,200,250 CombContDatN dd 08000000h,04000000h,02000000h,01000000h,00800000h,80000000h @@ -808,6 +810,7 @@ NEWSYM ReadInputDevice PlayerDeviceHelp pl1Ltk ,JoyAOrig,00200000h PlayerDeviceHelp pl1Rtk ,JoyAOrig,00100000h .noswitch + mov byte[ComboCounter],0 ProcessKeyComb 0,JoyAOrig or dword[JoyAOrig],00008000h ; Joystick Enable cmp byte[GUIDelayB],0 @@ -1021,7 +1024,7 @@ NEWSYM ReadInputDevice PlayerDeviceHelp pl5Ltk ,JoyEOrig,00200000h PlayerDeviceHelp pl5Rtk ,JoyEOrig,00100000h .noswitch5 - ProcessKeyComb 3,JoyEOrig + ProcessKeyComb 4,JoyEOrig or dword[JoyEOrig],00008000h ; Joystick Enable .noinput5 cmp byte[pl12s34],1 diff --git a/zsnes/src/zmovie.c b/zsnes/src/zmovie.c index c81c91e6..e31df4a3 100644 --- a/zsnes/src/zmovie.c +++ b/zsnes/src/zmovie.c @@ -562,7 +562,7 @@ static void zmv_create(char *filename) } \ } -static void zmv_record(bool slow) +static void zmv_record(bool slow, unsigned char comboes_used) { unsigned char flag = 0; unsigned char press_buf[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -570,8 +570,10 @@ static void zmv_record(bool slow) zmv_vars.header.frames++; - if (slow) { zmv_vars.header.slow_frames++; } - + if (slow) { zmv_vars.header.slow_frames++; } + + zmv_vars.header.key_combos += comboes_used; + RECORD_PAD(zmv_vars.last_joy_state.A, JoyAOrig, 7); RECORD_PAD(zmv_vars.last_joy_state.B, JoyBOrig, 6); RECORD_PAD(zmv_vars.last_joy_state.C, JoyCOrig, 5); @@ -1348,10 +1350,11 @@ void Replay() } extern bool SloMo50; +extern unsigned char ComboCounter; void ProcessMovies() { - if (MovieProcessing == 2) { zmv_record(SloMo50 ? true : false); } + if (MovieProcessing == 2) { zmv_record(SloMo50 ? true : false, ComboCounter); } else { Replay(); } }