Fixed input, added toggle for dual mouse support

This commit is contained in:
pagefault
2006-03-23 22:03:16 +00:00
parent cada5e8a20
commit 550fa89f24
4 changed files with 30 additions and 18 deletions

View File

@@ -718,12 +718,8 @@ NEWSYM ReadInputDevice
; Process Data ; Process Data
mov dword[JoyAOrig],0 mov dword[JoyAOrig],0
; Get Player1 input device ; Get Player1 input device
cmp byte[multiMouseMode],1
je .multimouse1
cmp byte[snesmouse],1 cmp byte[snesmouse],1
jne .nomouse1 jne .nomouse1
.multimouse1
mov byte[MouseToRead],1
call processmouse call processmouse
ProcSNESMouse JoyAOrig ProcSNESMouse JoyAOrig
jmp .noinput1 jmp .noinput1
@@ -772,17 +768,20 @@ NEWSYM ReadInputDevice
and dword[JoyAOrig],7FFFFFFFh and dword[JoyAOrig],7FFFFFFFh
.noinput1 .noinput1
mov dword[JoyBOrig],0 mov dword[JoyBOrig],0
cmp byte[multiMouseMode],1
je .multimouse2
cmp byte[snesmouse],2 cmp byte[snesmouse],2
jne .nomouse2 jne .nomouse2
.multimouse2
mov byte[MouseToRead],2
call processmouse call processmouse
ProcSNESMouse JoyBOrig ProcSNESMouse JoyBOrig
jmp .noinput2 jmp .noinput2
.nomouse2 .nomouse2
cmp byte[snesmouse],3 cmp byte[snesmouse],3
je .nomultimouse
mov byte[MouseToRead],1
ProcSNESMouse JoyAOrig
mov byte[MouseToRead],2
ProcSNESMouse JoyBOrig
.nomultimouse
cmp byte[snesmouse],4
jne .nosuperscope jne .nosuperscope
call processmouse call processmouse
mov byte[JoyBOrig+2],0FFh mov byte[JoyBOrig+2],0FFh
@@ -802,7 +801,7 @@ NEWSYM ReadInputDevice
mov [JoyBOrig+3],al mov [JoyBOrig+3],al
jmp .noinput2 jmp .noinput2
.nosuperscope .nosuperscope
cmp byte[snesmouse],4 cmp byte[snesmouse],5
jne .nolethalen jne .nolethalen
call processmouse call processmouse
mov eax,[romdata] mov eax,[romdata]

View File

@@ -180,7 +180,7 @@ void cycleinputdevice()
for (;;) for (;;)
{ {
snesmouse++; snesmouse++;
if (snesmouse >= 5) if (snesmouse >= 6)
{ {
snesmouse = 0; snesmouse = 0;
} }
@@ -201,10 +201,15 @@ void cycleinputdevice()
} }
if (snesmouse == 3) if (snesmouse == 3)
{ {
if (input2scope) { return; } if (input2mouse) { return; }
snesmouse++; snesmouse++;
} }
if (snesmouse == 4) if (snesmouse == 4)
{
if (input2scope) { return; }
snesmouse++;
}
if (snesmouse == 5)
{ {
if (input2just) { return; } if (input2just) { return; }
} }
@@ -424,8 +429,6 @@ void DisplayBatteryStatus()
#endif #endif
} }
// Make use of multiple mice. // Make use of multiple mice.
int MouseCount = 0; int MouseCount = 0;
@@ -433,6 +436,7 @@ int Mouse1MoveX = 0;
int Mouse2MoveX = 0; int Mouse2MoveX = 0;
int Mouse1MoveY = 0; int Mouse1MoveY = 0;
int Mouse2MoveY = 0; int Mouse2MoveY = 0;
int MousePoll = 0;
unsigned char MouseToRead = 0; unsigned char MouseToRead = 0;
void MultiMouseShutdown() void MultiMouseShutdown()
@@ -454,6 +458,9 @@ void MultiMouseProcess()
ManyMouseEvent event; ManyMouseEvent event;
Mouse1MoveX = Mouse1MoveY = Mouse2MoveX = Mouse2MoveY = 0; Mouse1MoveX = Mouse1MoveY = Mouse2MoveX = Mouse2MoveY = 0;
MousePoll ^= 1;
if (MousePoll)
{
ManyMouse_PollEvent(&event); ManyMouse_PollEvent(&event);
if (event.type == MANYMOUSE_EVENT_RELMOTION) if (event.type == MANYMOUSE_EVENT_RELMOTION)
@@ -465,3 +472,4 @@ void MultiMouseProcess()
} }
} }
}

View File

@@ -556,10 +556,14 @@ NEWSYM cachevideo
.nom2 .nom2
cmp byte[snesmouse],3 cmp byte[snesmouse],3
jne .nom3 jne .nom3
mov dword[Msgptr],snesmouse12
.nom3
cmp byte[snesmouse],4
jne .nom4
mov dword[Msgptr],snesss mov dword[Msgptr],snesss
mov word[mousexloc],128 mov word[mousexloc],128
mov word[mouseyloc],112 mov word[mouseyloc],112
.nom3 .nom4
mov eax,[MsgCount] mov eax,[MsgCount]
mov [MessageOn],eax mov [MessageOn],eax
call Get_MousePositionDisplacement call Get_MousePositionDisplacement
@@ -954,6 +958,7 @@ NEWSYM panickeyp, db 'ALL SWITCHES NORMAL',0
NEWSYM snesmousep0, db 'MOUSE/SUPER SCOPE DISABLED',0 NEWSYM snesmousep0, db 'MOUSE/SUPER SCOPE DISABLED',0
NEWSYM snesmousep1, db 'MOUSE ENABLED IN PORT 1',0 NEWSYM snesmousep1, db 'MOUSE ENABLED IN PORT 1',0
NEWSYM snesmousep2, db 'MOUSE ENABLED IN PORT 2',0 NEWSYM snesmousep2, db 'MOUSE ENABLED IN PORT 2',0
NEWSYM snesmouse12, db 'MOUSE ENABLED IN PORT 1 AND 2',0
NEWSYM snesss, db 'SUPER SCOPE ENABLED',0 NEWSYM snesss, db 'SUPER SCOPE ENABLED',0
NEWSYM snesle, db 'LETHAL ENFORCER GUN ENABLED',0 NEWSYM snesle, db 'LETHAL ENFORCER GUN ENABLED',0
NEWSYM windissw, db 'WINDOWING DISABLED',0 NEWSYM windissw, db 'WINDOWING DISABLED',0

View File

@@ -173,8 +173,8 @@ NEWSYM processmouse
.noautosw .noautosw
mov byte[ssautoswb],0 mov byte[ssautoswb],0
.ss .ss
cmp byte[multiMouseMode],0 cmp byte[snesmouse],3
je .nomultimouse jne .nomultimouse
pushad pushad
call MultiMouseProcess call MultiMouseProcess
popad popad
@@ -190,9 +190,9 @@ NEWSYM processmouse
.nomultimouse .nomultimouse
call Get_MousePositionDisplacement call Get_MousePositionDisplacement
.mousestuff .mousestuff
cmp byte[snesmouse],4 cmp byte[snesmouse],5
je .le je .le
cmp byte[snesmouse],3 cmp byte[snesmouse],4
jne .ss2 jne .ss2
.le .le
add word[mousexloc],cx add word[mousexloc],cx