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

View File

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

View File

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

View File

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