mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-08-20 21:03:08 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e40c2f97f0 | ||
|
|
1dbc11bdd5 | ||
|
|
299edae7c0 | ||
|
|
86309bd837 | ||
|
|
0312e9026d | ||
|
|
a7bafb60e9 | ||
|
|
602769b9d0 | ||
|
|
e76546f8e4 | ||
|
|
a9ef1680ce | ||
|
|
670ddef944 | ||
|
|
be6b8dce25 | ||
|
|
75fd20f5df | ||
|
|
f0509a6631 | ||
|
|
702319c4ca |
Vendored
+19858
File diff suppressed because it is too large
Load Diff
Vendored
+5977
File diff suppressed because it is too large
Load Diff
+110
-20
@@ -54,6 +54,8 @@ PAPX-90506:
|
||||
compat: 5
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
PAPX-90512:
|
||||
name: "Gran Turismo 4 - Toyota Prius [Trial]"
|
||||
region: "NTSC-J"
|
||||
@@ -2376,6 +2378,8 @@ SCES-51190:
|
||||
compat: 5
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCES-51224:
|
||||
name: "War of the Monsters"
|
||||
region: "PAL-E"
|
||||
@@ -3706,6 +3710,8 @@ SCKA-20014:
|
||||
compat: 5
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCKA-20015:
|
||||
name: "Time Crisis 3"
|
||||
region: "NTSC-K"
|
||||
@@ -4276,6 +4282,8 @@ SCPS-15033:
|
||||
region: "NTSC-J"
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCPS-15034:
|
||||
name: "This is Football 2003"
|
||||
region: "NTSC-J"
|
||||
@@ -4764,6 +4772,8 @@ SCPS-19215:
|
||||
region: "NTSC-J"
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCPS-19251:
|
||||
name: "Wild ARMs - Alter Code F [PlayStation 2 The Best]"
|
||||
region: "NTSC-J"
|
||||
@@ -4825,6 +4835,8 @@ SCPS-19306:
|
||||
region: "NTSC-J"
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCPS-19307:
|
||||
name: "Popolocrois - The First Adventure [PlayStation 2 The Best]"
|
||||
region: "NTSC-J"
|
||||
@@ -5181,6 +5193,8 @@ SCPS-55048:
|
||||
region: "NTSC-J"
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCPS-55049:
|
||||
name: "King of Fighters 2000, The"
|
||||
region: "NTSC-J"
|
||||
@@ -5673,6 +5687,8 @@ SCUS-97213:
|
||||
compat: 5
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCUS-97214:
|
||||
name: "NCAA GameBreaker 2003"
|
||||
region: "NTSC-U"
|
||||
@@ -5726,6 +5742,8 @@ SCUS-97229:
|
||||
region: "NTSC-U"
|
||||
clampModes:
|
||||
eeClampMode: 3 # Fixes textbox.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes shadow flickering with synchronized VU1
|
||||
SCUS-97230:
|
||||
name: "SOCOM - U.S. Navy SEALs (Online)"
|
||||
region: "NTSC-U"
|
||||
@@ -7234,6 +7252,8 @@ SLES-50017:
|
||||
name: "F1 Championship Season 2000"
|
||||
region: "PAL-M5"
|
||||
compat: 5
|
||||
gameFixes:
|
||||
- XGKickHack # Fixes graphical issues.
|
||||
SLES-50018:
|
||||
name: "Kessen"
|
||||
region: "PAL-E"
|
||||
@@ -9402,6 +9422,13 @@ SLES-51101:
|
||||
name: "Eggo Mania"
|
||||
region: "PAL-M3"
|
||||
compat: 5
|
||||
patches:
|
||||
30B27954:
|
||||
content: |-
|
||||
//SFX/Background Music Fix.
|
||||
author=kr_ps2
|
||||
patch=1,EE,0011836C,word,00000000
|
||||
patch=1,EE,00118374,word,00000000
|
||||
SLES-51107:
|
||||
name: "Hitman 2 - Silent Assassin"
|
||||
region: "PAL-I"
|
||||
@@ -10454,8 +10481,8 @@ SLES-51690:
|
||||
SLES-51693:
|
||||
name: "Suffering, The"
|
||||
region: "PAL-E-F-G"
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
SLES-51696:
|
||||
name: "Dragon's Lair 3D - Special Edition"
|
||||
region: "PAL-M5"
|
||||
@@ -10908,6 +10935,8 @@ SLES-51914:
|
||||
name: "Onimusha 3 - Demon Siege"
|
||||
region: "PAL-M5"
|
||||
compat: 5
|
||||
clampModes:
|
||||
vuClampMode: 3 # Makes sure enemies appear correctly.
|
||||
memcardFilters:
|
||||
- "SLES-51913"
|
||||
- "SLES-51914"
|
||||
@@ -11828,8 +11857,8 @@ SLES-52439:
|
||||
name: "Suffering, The"
|
||||
region: "PAL-E-I-S"
|
||||
compat: 5
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
SLES-52440:
|
||||
name: "Harry Potter and the Prisoner of Azkaban"
|
||||
region: "PAL-M7"
|
||||
@@ -14115,8 +14144,8 @@ SLES-53525:
|
||||
SLES-53526:
|
||||
name: "Suffering, The - Ties that Bind"
|
||||
region: "PAL-E-F"
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
memcardFilters:
|
||||
- "SLES-53526"
|
||||
- "SLES-53527"
|
||||
@@ -14128,8 +14157,8 @@ SLES-53526:
|
||||
SLES-53527:
|
||||
name: "Suffering, The - Ties that Bind"
|
||||
region: "PAL-E-I-S"
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
memcardFilters:
|
||||
- "SLES-53526"
|
||||
- "SLES-53527"
|
||||
@@ -14141,8 +14170,8 @@ SLES-53527:
|
||||
SLES-53528:
|
||||
name: "Suffering, The - Ties that Bind"
|
||||
region: "PAL-G"
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
memcardFilters:
|
||||
- "SLES-53526"
|
||||
- "SLES-53527"
|
||||
@@ -14422,8 +14451,8 @@ SLES-53624:
|
||||
SLES-53626:
|
||||
name: "Suffering, The - Ties that Bind"
|
||||
region: "PAL-E-G"
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
memcardFilters:
|
||||
- "SLES-53526"
|
||||
- "SLES-53527"
|
||||
@@ -19040,6 +19069,8 @@ SLKA-25092:
|
||||
SLKA-25093:
|
||||
name: "Onimusha 3 Demon Siege"
|
||||
region: "NTSC-K"
|
||||
clampModes:
|
||||
vuClampMode: 3 # Makes sure enemies appear correctly.
|
||||
memcardFilters:
|
||||
- "SLKA-25092"
|
||||
- "SLKA-25093"
|
||||
@@ -22445,6 +22476,42 @@ SLPM-65209:
|
||||
gameFixes:
|
||||
- VuAddSubHack
|
||||
- VUKickstartHack # Fixes Character SPS.
|
||||
patches:
|
||||
BEC32D49:
|
||||
content: |-
|
||||
author=kr_ps2
|
||||
//Patch custom CDVDMAN to behave like normal one, properly synced.
|
||||
//Increase stack so iReferEventFlagStatus does not corrupt $ra.
|
||||
patch=1,IOP,0002511C,word,27BDFFA0
|
||||
patch=1,IOP,0002524C,word,27BD0060
|
||||
//Save a0
|
||||
patch=1,IOP,00025150,word,AFA40040
|
||||
patch=1,IOP,0002523C,word,8FA40040
|
||||
//Patch out PowerOff checks.
|
||||
patch=1,IOP,000251A0,word,00000000
|
||||
patch=1,IOP,000251A4,word,00000000
|
||||
patch=1,IOP,000251A8,word,00000000
|
||||
patch=1,IOP,000251AC,word,00000000
|
||||
patch=1,IOP,000251B0,word,00000000
|
||||
//Execute removed iReferEventFlagStatus
|
||||
patch=1,IOP,000251B4,word,3C040003 //lui a0,0x0003
|
||||
patch=1,IOP,000251B8,word,8C84D368 //lw a0,-0x2C98(a0)
|
||||
patch=1,IOP,000251BC,word,0C00AFD3 //jal pos_0002BF4C iReferEventFlagStatus
|
||||
patch=1,IOP,000251C0,word,27A50018 //addiu $a1, $sp, 0x18
|
||||
patch=1,IOP,000251C4,word,8FA20024 //lw $v0, 0x24($sp)
|
||||
patch=1,IOP,000251C8,word,30420020 //andi $v0, 0x20
|
||||
patch=1,IOP,000251CC,word,1440001A //bnez v0,pos_00025238
|
||||
patch=1,IOP,000251D0,word,00000000 //nop
|
||||
//Check event flags.
|
||||
//Clear flag if needed.
|
||||
patch=1,IOP,000251D4,word,8FA40040 //lw $a0, 0x40($sp)
|
||||
patch=1,IOP,000251D8,word,90820001 //lbu $v0, 1($a0)
|
||||
patch=1,IOP,000251DC,word,14400016 //bnez $v0, 0x5c
|
||||
patch=1,IOP,000251E0,word,24020001 //addiu $v0, $zero, 1
|
||||
patch=1,IOP,000251E4,word,08009480 //j 0x25200
|
||||
patch=1,IOP,000251E8,word,AC8200BC //nop
|
||||
//Force jump to execute iReferEventFlagStatus
|
||||
patch=1,IOP,00025198,word,0800946D
|
||||
SLPM-65210:
|
||||
name: "Chou Battle Houshin - Bundle #1"
|
||||
region: "NTSC-J"
|
||||
@@ -23065,6 +23132,8 @@ SLPM-65412:
|
||||
SLPM-65413:
|
||||
name: "Onimusha 3"
|
||||
region: "NTSC-J"
|
||||
clampModes:
|
||||
vuClampMode: 3 # Makes sure enemies appear correctly.
|
||||
memcardFilters:
|
||||
- "SLPM-65411"
|
||||
- "SLPM-65413"
|
||||
@@ -23633,12 +23702,6 @@ SLPM-65604:
|
||||
name: "Animation Battle - Recca no Honou"
|
||||
region: "NTSC-J"
|
||||
compat: 5
|
||||
patches:
|
||||
9BDBA170:
|
||||
content: |-
|
||||
comment=Patch by Shadow Lady
|
||||
// IPU menu hang fix...
|
||||
patch=0,EE,00115c00,word,03e00008
|
||||
SLPM-65607:
|
||||
name: "3LDK - Shiawase ni Narouyo [Limited Edition]"
|
||||
region: "NTSC-J"
|
||||
@@ -28554,6 +28617,8 @@ SLPS-20043:
|
||||
SLPS-20044:
|
||||
name: "F1 Championship Season 2000"
|
||||
region: "NTSC-J"
|
||||
gameFixes:
|
||||
- XGKickHack # Fixes graphical issues.
|
||||
SLPS-20047:
|
||||
name: "Toudai Shogi"
|
||||
region: "NTSC-J"
|
||||
@@ -28834,6 +28899,13 @@ SLPS-20218:
|
||||
SLPS-20219:
|
||||
name: "Tsukande! Mawashite! Dossun Pazuru Egg Mania"
|
||||
region: "NTSC-J"
|
||||
patches:
|
||||
2A925A22:
|
||||
content: |-
|
||||
//SFX/Background Music Fix.
|
||||
author=kr_ps2
|
||||
patch=1,EE,0011836C,word,00000000
|
||||
patch=1,EE,00118374,word,00000000
|
||||
SLPS-20221:
|
||||
name: "Taiko no Tatsujin [with Tatacon Reproduction Controller]"
|
||||
region: "NTSC-J"
|
||||
@@ -33341,6 +33413,8 @@ SLUS-20103:
|
||||
name: "F1 2000 Championship Edition"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gameFixes:
|
||||
- XGKickHack # Fixes graphical issues.
|
||||
SLUS-20104:
|
||||
name: "Tiger Woods PGA Tour 2001"
|
||||
region: "NTSC-U"
|
||||
@@ -34707,6 +34781,13 @@ SLUS-20452:
|
||||
name: "Egg Mania - Eggstreme Madness"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
patches:
|
||||
Ba056DDD:
|
||||
content: |-
|
||||
author=kr_ps2
|
||||
//SFX/Background Music Fix.
|
||||
patch=1,EE,00118394,word,00000000
|
||||
patch=1,EE,0011839C,word,00000000
|
||||
SLUS-20453:
|
||||
name: "NCAA College Football 2K3"
|
||||
region: "NTSC-U"
|
||||
@@ -35494,8 +35575,8 @@ SLUS-20636:
|
||||
name: "Suffering, The"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
speedHacks:
|
||||
InstantVU1SpeedHack: 1 # Fixes SPS.
|
||||
gameFixes:
|
||||
- VUKickstartHack # Fixes SPS.
|
||||
SLUS-20637:
|
||||
name: "Chessmaster (Online)"
|
||||
region: "NTSC-U"
|
||||
@@ -35726,6 +35807,8 @@ SLUS-20694:
|
||||
name: "Onimusha 3 - Demon Siege"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
clampModes:
|
||||
vuClampMode: 3 # Makes sure enemies appear correctly.
|
||||
memcardFilters:
|
||||
- "SLUS-20694"
|
||||
- "SLUS-20710"
|
||||
@@ -41348,6 +41431,13 @@ SLUS-29030:
|
||||
SLUS-29032:
|
||||
name: "Egg Mania - Eggstreme Madness [Demo]"
|
||||
region: "NTSC-U"
|
||||
patches:
|
||||
0A016AD4:
|
||||
content: |-
|
||||
//SFX/Background Music Fix.
|
||||
author=kr_ps2
|
||||
patch=1,EE,001183DC,word,00000000
|
||||
patch=1,EE,001183E4,word,00000000
|
||||
SLUS-29033:
|
||||
name: "Dual Hearts [Regular Demo]"
|
||||
region: "NTSC-U"
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X,
|
||||
03000000790000000018000000010000,Mayflash Wii U Pro Controller Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,
|
||||
03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,
|
||||
030000005e0400002800000002010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Mac OS X,
|
||||
030000005e0400002700000001010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Mac OS X,
|
||||
03000000d62000007162000001000000,Moga Pro 2 HID,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X,
|
||||
03000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
@@ -154,8 +155,8 @@
|
||||
030000004f04000015b3000000000000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Mac OS X,
|
||||
030000004f0400000ed0000000020000,ThrustMaster eSwap PRO Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Mac OS X,
|
||||
03000000bd12000015d0000000000000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
|
||||
03000000bd12000015d0000000010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
|
||||
03000000bd12000015d0000000010000,Tomee Retro Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
|
||||
03000000bd12000015d0000000000000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
|
||||
03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X,
|
||||
030000006f0e00000302000025040000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000006f0e00000702000003060000,Victrix Pro Fight Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
@@ -176,7 +177,7 @@
|
||||
030000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
030000005e040000200b000011050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
030000005e040000e002000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,
|
||||
030000005e040000e002000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,
|
||||
030000005e040000e002000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
030000005e040000ea02000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
|
||||
030000005e040000fd02000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
03000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
@@ -187,6 +188,7 @@
|
||||
03000000021000000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
05000000c82d00001038000000010000,8Bitdo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00000650000011010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b11,x:b3,y:b4,platform:Linux,
|
||||
05000000c82d00005106000000010000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000c82d00001590000011010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
05000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
@@ -247,6 +249,7 @@
|
||||
03000000c31100000791000011010000,Be1 GC101 GAMEPAD 1.03,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
030000005e0400008e02000003030000,Be1 GC101 Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
05000000bc2000000055000001000000,BETOP AX1 BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000bc2000006412000011010000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b30,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
030000006b1400000209000011010000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000666600006706000000010000,Boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux,
|
||||
03000000120c0000200e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -289,6 +292,7 @@
|
||||
030000000d0f00005e00000011010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000000d0f00005001000009040000,Hori Fighting Commander OCTA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000000d0f00001000000011010000,Hori Fighting Stick 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000ad1b000003f5000033050000,Hori Fighting Stick VX,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b8,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,
|
||||
03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000000d0f00003801000011010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Linux,
|
||||
030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -302,7 +306,7 @@
|
||||
030000000d0f0000ee00000011010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000000d0f00006700000001010000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000000d0f0000c100000011010000,Horipad S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000341a000005f7000010010000,HuiJia GameCube Controller Adpater,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000341a000005f7000010010000,HuiJia GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000008f0e00001330000010010000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000242e00008816000001010000,Hyperkin X91,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
050000006964726f69643a636f6e0000,idroidcon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -347,6 +351,7 @@
|
||||
03000000380700001647000010040000,Mad Catz Wired Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000380700003847000090040000,Mad Catz Wired Xbox 360 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000380700008532000010010000,Madcatz Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000380700001888000010010000,MadCatz PC USB Wired Stick 8818,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000380700003888000010010000,MadCatz PC USB Wired Stick 8838,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:a0,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000120c00000500000000010000,Manta Dualshock 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
|
||||
@@ -358,6 +363,7 @@
|
||||
03000000242f0000f700000001010000,Mayflash Magic S Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
0300000025090000e803000001010000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,
|
||||
03000000780000000600000010010000,Microntek USB Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
030000005e0400002800000000010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Linux,
|
||||
030000005e0400000e00000000010000,Microsoft SideWinder,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux,
|
||||
030000005e0400000700000000010000,Microsoft SideWinder Game Pad USB,a:b0,b:b1,back:b8,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux,
|
||||
030000005e0400002700000000010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Linux,
|
||||
@@ -392,6 +398,7 @@
|
||||
060000007e0500000820000000000000,Nintendo Combined Joy-Cons (joycond),a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
030000007e0500003703000000016800,Nintendo GameCube Controller,a:b0,b:b2,dpdown:b6,dpleft:b4,dpright:b5,dpup:b7,lefttrigger:a4,leftx:a0,lefty:a1~,rightshoulder:b9,righttrigger:a5,rightx:a2,righty:a3~,start:b8,x:b1,y:b3,platform:Linux,
|
||||
03000000790000004618000010010000,Nintendo GameCube Controller Adapter,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5~,righty:a2~,start:b9,x:b2,y:b3,platform:Linux,
|
||||
060000007e0500000620000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
050000004c69632050726f20436f6e00,Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
050000007e0500000620000001800000,Nintendo Switch Left Joy-Con,a:b9,b:b8,back:b5,leftshoulder:b2,leftstick:b6,leftx:a1,lefty:a0~,rightshoulder:b4,start:b0,x:b7,y:b10,platform:Linux,
|
||||
03000000d620000013a7000011010000,Nintendo Switch PowerA Wired Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -480,10 +487,9 @@
|
||||
03000000321500000810000011010000,Razer Panthera Evo Arcade Stick for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000204000011010000,Razer Panthera PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000104000011010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000010000011010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000507000000010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
05000000321500000a10000001000000,Razer Raiju Tournament Edition,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000710000000010000,Razer Raiju Tournament Edition Wired,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000010000011010000,Razer Rainu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
05000000321500000a10000001000000,Razer Raiju Tournament Edition,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000321500000011000011010000,Razer Raion Fightpad for PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000008916000000fe000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000c6240000045d000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
@@ -521,6 +527,7 @@
|
||||
03000000341a00000908000010010000,SL6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
030000004c050000e60c000011810000,Sony DualSense,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
|
||||
050000004c050000e60c000000810000,Sony DualSense,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
|
||||
050000004c050000cc09000001000000,Sony DualShock 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
|
||||
030000005e0400008e02000073050000,Speedlink Torid Wireless Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000005e0400008e02000020200000,SpeedLink Xeox Pro Analog Gamepad pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
@@ -560,6 +567,7 @@
|
||||
030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000004f04000007d0000000010000,Thrustmaster T Mini Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000004f04000012b3000010010000,Thrustmaster vibrating gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,
|
||||
03000000571d00002000000010010000,Tomee SNES USB Adapter,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000bd12000015d0000010010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000d814000007cd000011010000,Toodles 2008 Chimp PC PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,
|
||||
030000005e0400008e02000070050000,Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
@@ -593,6 +601,7 @@
|
||||
050000005e040000fd02000030110000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
050000005e040000e302000002090000,Xbox One Elite,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
050000005e040000050b000002090000,Xbox One Elite Series 2,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
060000005e040000ea0200000b050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000005e040000ea02000000000000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
050000005e040000e002000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
050000005e040000fd02000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
@@ -604,6 +613,8 @@
|
||||
030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
050000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
050000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
050000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
060000005e040000120b00000b050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000450c00002043000010010000,XEOX Gamepad SL6556 BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
03000000ac0500005b05000010010000,Xiaoji Gamesir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
05000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux,
|
||||
|
||||
+166
-67
@@ -102,6 +102,7 @@ static void CDVD_INT(int eCycle)
|
||||
static void cdvdSetIrq(uint id = (1 << Irq_CommandComplete))
|
||||
{
|
||||
cdvd.IntrStat |= id;
|
||||
cdvd.AbortRequested = false;
|
||||
iopIntcIrq(2);
|
||||
psxSetNextBranchDelta(20);
|
||||
}
|
||||
@@ -644,6 +645,8 @@ s32 cdvdCtrlTrayOpen()
|
||||
DiscSwapTimerSeconds = cdvd.RTC.second; // remember the PS2 time when this happened
|
||||
cdvdUpdateStatus(CDVD_STATUS_TRAY_OPEN);
|
||||
cdvd.Ready = CDVD_DRIVE_DEV9CON;
|
||||
cdvd.Spinning = false;
|
||||
cdvdSetIrq(1 << Irq_Eject);
|
||||
|
||||
if (cdvd.Type > 0 || CDVDsys_GetSourceType() == CDVD_SourceType::NoDisc)
|
||||
{
|
||||
@@ -915,7 +918,8 @@ void cdvdNewDiskCB()
|
||||
cdvdUpdateStatus(CDVD_STATUS_TRAY_OPEN);
|
||||
cdvd.Ready = CDVD_DRIVE_BUSY | CDVD_DRIVE_DEV9CON;
|
||||
cdvd.Tray.trayState = CDVD_DISC_EJECT;
|
||||
|
||||
cdvd.Spinning = false;
|
||||
cdvdSetIrq(1 << Irq_Eject);
|
||||
// If it really got ejected, the DVD Reader will report Type 0, so no need to simulate ejection
|
||||
if (cdvd.Type > 0)
|
||||
cdvd.Tray.cdvdActionSeconds = 3;
|
||||
@@ -925,6 +929,7 @@ void cdvdNewDiskCB()
|
||||
DevCon.WriteLn(Color_Green, L"Seeking new media");
|
||||
cdvd.Ready = CDVD_DRIVE_BUSY | CDVD_DRIVE_DEV9CON;
|
||||
cdvdUpdateStatus(CDVD_STATUS_SEEK);
|
||||
cdvd.Spinning = true;
|
||||
cdvd.Tray.trayState = CDVD_DISC_DETECTING;
|
||||
cdvd.Tray.cdvdActionSeconds = 3;
|
||||
}
|
||||
@@ -1089,19 +1094,6 @@ __fi void cdvdActionInterrupt()
|
||||
cdvd.Sector = 0;
|
||||
cdvdUpdateStatus(CDVD_STATUS_STOP);
|
||||
break;
|
||||
|
||||
case cdvdAction_Break:
|
||||
// Make sure the cdvd action state is pretty well cleared:
|
||||
DevCon.WriteLn("CDVD Break Call");
|
||||
if ((cdvd.Ready & 0x80))
|
||||
cdvd.Error = 1; // Abort
|
||||
|
||||
cdvd.Reading = 0;
|
||||
cdvd.Readed = 0;
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR; // should be CDVD_READY1 or something else?
|
||||
cdvdUpdateStatus(CDVD_STATUS_PAUSE);
|
||||
cdvd.RErr = 0;
|
||||
break;
|
||||
}
|
||||
cdvd.Action = cdvdAction_None;
|
||||
|
||||
@@ -1145,6 +1137,19 @@ __fi void cdvdReadInterrupt()
|
||||
CDVD_LOG("Cdvd Seek Complete at iopcycle=%8.8x.", psxRegs.cycle);
|
||||
}
|
||||
|
||||
if (cdvd.AbortRequested)
|
||||
{
|
||||
if (!cdvdIsDVD() || !(cdvd.Sector & 0xF))
|
||||
{
|
||||
Console.Warning("Read Abort");
|
||||
cdvd.Error = 0x1; // Abort Error
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR;
|
||||
cdvdUpdateStatus(CDVD_STATUS_PAUSE);
|
||||
cdvd.WaitingDMA = false;
|
||||
cdvdSetIrq();
|
||||
}
|
||||
}
|
||||
|
||||
if (cdvd.Sector > cdvd.MaxSector)
|
||||
{
|
||||
DevCon.Warning("Read past end of disc Sector %d Max Sector %d", cdvd.Sector, cdvd.MaxSector);
|
||||
@@ -1380,6 +1385,7 @@ void cdvdUpdateTrayState()
|
||||
DevCon.WriteLn(Color_Green, L"Seeking new disc");
|
||||
cdvd.Tray.trayState = CDVD_DISC_SEEKING;
|
||||
cdvd.Tray.cdvdActionSeconds = 2;
|
||||
cdvd.Spinning = true;
|
||||
break;
|
||||
case CDVD_DISC_SEEKING:
|
||||
case CDVD_DISC_ENGAGED:
|
||||
@@ -1392,6 +1398,7 @@ void cdvdUpdateTrayState()
|
||||
}
|
||||
else
|
||||
{
|
||||
cdvd.Spinning = false;
|
||||
cdvdUpdateStatus(CDVD_STATUS_STOP);
|
||||
}
|
||||
break;
|
||||
@@ -1516,9 +1523,25 @@ u8 cdvdRead(u8 key)
|
||||
return (cdvd.Tray.trayState <= CDVD_DISC_SEEKING) ? cdvdTrayStateDetecting() : 0; // Detecting Disc / No Disc
|
||||
}
|
||||
|
||||
case 0x13: // UNKNOWN
|
||||
CDVD_LOG("cdvdRead13(Unknown) %x", 4);
|
||||
return 4;
|
||||
case 0x13: // SPEED
|
||||
{
|
||||
u8 speedCtrl = cdvd.SpindlCtrl & 0x3F;
|
||||
|
||||
if (speedCtrl == 0)
|
||||
speedCtrl = cdvdIsDVD() ? 3 : 5;
|
||||
|
||||
if (cdvdIsDVD())
|
||||
speedCtrl += 0xF;
|
||||
else
|
||||
speedCtrl--;
|
||||
|
||||
if (cdvd.Tray.trayState != CDVD_DISC_ENGAGED || cdvd.Spinning == false)
|
||||
speedCtrl = 0;
|
||||
|
||||
CDVD_LOG("cdvdRead13(Speed) %x", speedCtrl);
|
||||
return speedCtrl;
|
||||
}
|
||||
|
||||
|
||||
case 0x15: // RSV
|
||||
CDVD_LOG("cdvdRead15(RSV)");
|
||||
@@ -1667,6 +1690,7 @@ static void cdvdWrite04(u8 rt)
|
||||
}
|
||||
|
||||
cdvd.nCommand = rt;
|
||||
cdvd.AbortRequested = false;
|
||||
|
||||
if (!cdvdCommandErrorHandler())
|
||||
{
|
||||
@@ -1737,16 +1761,25 @@ static void cdvdWrite04(u8 rt)
|
||||
break;
|
||||
|
||||
case N_CD_READ: // CdRead
|
||||
{
|
||||
// Assign the seek to sector based on cdvd.Param[0]-[3], and the number of sectors based on cdvd.Param[4]-[7].
|
||||
cdvd.SeekToSector = *(u32*)(cdvd.NCMDParam + 0);
|
||||
cdvd.nSectors = *(u32*)(cdvd.NCMDParam + 4);
|
||||
cdvd.RetryCnt = (cdvd.NCMDParam[8] == 0) ? 0x100 : cdvd.NCMDParam[8];
|
||||
cdvd.SpindlCtrl = cdvd.NCMDParam[9];
|
||||
u32 oldSpindleCtrl = cdvd.SpindlCtrl;
|
||||
|
||||
if (cdvd.NCMDParam[9] & 0x3F)
|
||||
cdvd.SpindlCtrl = cdvd.NCMDParam[9];
|
||||
else
|
||||
cdvd.SpindlCtrl = (cdvd.NCMDParam[9] & 0x80) | (cdvdIsDVD() ? 3 : 5); // Max speed for DVD/CD
|
||||
|
||||
if (cdvd.NCMDParam[9] & CDVD_SPINDLE_NOMINAL)
|
||||
DevCon.Warning("CDVD: CD Read using Nominal switch from CAV to CLV, unhandled");
|
||||
|
||||
bool ParamError = false;
|
||||
|
||||
switch (cdvd.SpindlCtrl & CDVD_SPINDLE_SPEED)
|
||||
{
|
||||
case 0: // Will use current speed
|
||||
break;
|
||||
case 1: // x1
|
||||
cdvd.Speed = 1;
|
||||
break;
|
||||
@@ -1760,7 +1793,7 @@ static void cdvdWrite04(u8 rt)
|
||||
if (cdvdIsDVD())
|
||||
{
|
||||
DevCon.Warning("CDVD Read invalid DVD Speed %d", cdvd.SpindlCtrl & CDVD_SPINDLE_SPEED);
|
||||
cdvd.Speed = 4;
|
||||
ParamError = true;
|
||||
}
|
||||
else
|
||||
cdvd.Speed = 12;
|
||||
@@ -1769,35 +1802,51 @@ static void cdvdWrite04(u8 rt)
|
||||
if (cdvdIsDVD())
|
||||
{
|
||||
DevCon.Warning("CDVD Read invalid DVD Speed %d", cdvd.SpindlCtrl & CDVD_SPINDLE_SPEED);
|
||||
cdvd.Speed = 4;
|
||||
ParamError = true;
|
||||
}
|
||||
else
|
||||
cdvd.Speed = 24;
|
||||
break;
|
||||
default:
|
||||
Console.Error("Unknown CDVD Read Speed SpindleCtrl=%x", cdvd.SpindlCtrl);
|
||||
|
||||
if (cdvdIsDVD())
|
||||
cdvd.Speed = 4; // Just assume 4x for now (DVD)
|
||||
else
|
||||
cdvd.Speed = 24; // Just assume 24x for now (CD)
|
||||
ParamError = true;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (cdvd.NCMDParam[10])
|
||||
if (cdvdIsDVD() && cdvd.NCMDParam[10] != 0)
|
||||
{
|
||||
case 2:
|
||||
cdvd.ReadMode = CDVD_MODE_2340;
|
||||
cdvd.BlockSize = 2340;
|
||||
break;
|
||||
case 1:
|
||||
cdvd.ReadMode = CDVD_MODE_2328;
|
||||
cdvd.BlockSize = 2328;
|
||||
break;
|
||||
default:
|
||||
cdvd.ReadMode = CDVD_MODE_2048;
|
||||
cdvd.BlockSize = 2048;
|
||||
break;
|
||||
ParamError = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (cdvd.NCMDParam[10])
|
||||
{
|
||||
case 2:
|
||||
cdvd.ReadMode = CDVD_MODE_2340;
|
||||
cdvd.BlockSize = 2340;
|
||||
break;
|
||||
case 1:
|
||||
cdvd.ReadMode = CDVD_MODE_2328;
|
||||
cdvd.BlockSize = 2328;
|
||||
break;
|
||||
case 0:
|
||||
cdvd.ReadMode = CDVD_MODE_2048;
|
||||
cdvd.BlockSize = 2048;
|
||||
break;
|
||||
default:
|
||||
ParamError = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ParamError)
|
||||
{
|
||||
DevCon.Warning("CDVD: CD Read Bad Parameter Error");
|
||||
cdvd.SpindlCtrl = oldSpindleCtrl;
|
||||
cdvd.Error = 0x22; // Invalid Parameter
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR;
|
||||
cdvdSetIrq();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cdvdReadErrorHandler())
|
||||
@@ -1823,19 +1872,37 @@ static void cdvdWrite04(u8 rt)
|
||||
// this'll skip the seek delay.
|
||||
cdvd.Reading = 1;
|
||||
break;
|
||||
|
||||
}
|
||||
case N_CD_READ_CDDA: // CdReadCDDA
|
||||
case N_CD_READ_XCDDA: // CdReadXCDDA
|
||||
{
|
||||
if (cdvdIsDVD())
|
||||
{
|
||||
DevCon.Warning("CDVD: DVD Read when CD Error");
|
||||
cdvd.Error = 0x14; // Invalid for current disc type
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR;
|
||||
cdvdSetIrq();
|
||||
return;
|
||||
}
|
||||
// Assign the seek to sector based on cdvd.Param[0]-[3], and the number of sectors based on cdvd.Param[4]-[7].
|
||||
cdvd.SeekToSector = *(u32*)(cdvd.NCMDParam + 0);
|
||||
cdvd.nSectors = *(u32*)(cdvd.NCMDParam + 4);
|
||||
cdvd.RetryCnt = (cdvd.NCMDParam[8] == 0) ? 0x100 : cdvd.NCMDParam[8];
|
||||
cdvd.SpindlCtrl = cdvd.NCMDParam[9];
|
||||
|
||||
u32 oldSpindleCtrl = cdvd.SpindlCtrl;
|
||||
|
||||
if (cdvd.NCMDParam[9] & 0x3F)
|
||||
cdvd.SpindlCtrl = cdvd.NCMDParam[9];
|
||||
else
|
||||
cdvd.SpindlCtrl = (cdvd.NCMDParam[9] & 0x80) | 5; // Max speed for CD
|
||||
|
||||
if (cdvd.NCMDParam[9] & CDVD_SPINDLE_NOMINAL)
|
||||
DevCon.Warning("CDVD: CDDA Read using Nominal switch from CAV to CLV, unhandled");
|
||||
|
||||
bool ParamError = false;
|
||||
|
||||
switch (cdvd.SpindlCtrl & CDVD_SPINDLE_SPEED)
|
||||
{
|
||||
case 0: // Will use current speed
|
||||
break;
|
||||
case 1: // x1
|
||||
cdvd.Speed = 1;
|
||||
break;
|
||||
@@ -1852,8 +1919,8 @@ static void cdvdWrite04(u8 rt)
|
||||
cdvd.Speed = 24;
|
||||
break;
|
||||
default:
|
||||
Console.Error("Unknown CDDA Read Speed SpindleCtrl=%x", cdvd.SpindlCtrl);
|
||||
cdvd.Speed = 24; // Just assume 24x for now (CD)
|
||||
Console.Error("Unknown CDVD Read Speed SpindleCtrl=%x", cdvd.SpindlCtrl);
|
||||
ParamError = true;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1863,10 +1930,23 @@ static void cdvdWrite04(u8 rt)
|
||||
cdvd.ReadMode = CDVD_MODE_2368;
|
||||
cdvd.BlockSize = 2368;
|
||||
break;
|
||||
default:
|
||||
case 0:
|
||||
cdvd.ReadMode = CDVD_MODE_2352;
|
||||
cdvd.BlockSize = 2352;
|
||||
break;
|
||||
default:
|
||||
ParamError = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ParamError)
|
||||
{
|
||||
DevCon.Warning("CDVD: CDDA Read Bad Parameter Error");
|
||||
cdvd.SpindlCtrl = oldSpindleCtrl;
|
||||
cdvd.Error = 0x22; // Invalid Parameter
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR;
|
||||
cdvdSetIrq();
|
||||
return;
|
||||
}
|
||||
|
||||
CDVD_LOG("CDRead > startSector=%d, seekTo=%d, nSectors=%d, RetryCnt=%x, Speed=%dx(%s), ReadMode=%x(%x) SpindleCtrl=%x",
|
||||
@@ -1889,23 +1969,40 @@ static void cdvdWrite04(u8 rt)
|
||||
// this'll skip the seek delay.
|
||||
cdvd.Reading = 1;
|
||||
break;
|
||||
|
||||
}
|
||||
case N_DVD_READ: // DvdRead
|
||||
{
|
||||
if (!cdvdIsDVD())
|
||||
{
|
||||
DevCon.Warning("CDVD: DVD Read when CD Error");
|
||||
cdvd.Error = 0x14; // Invalid for current disc type
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR;
|
||||
cdvdSetIrq();
|
||||
return;
|
||||
}
|
||||
// Assign the seek to sector based on cdvd.Param[0]-[3], and the number of sectors based on cdvd.Param[4]-[7].
|
||||
cdvd.SeekToSector = *(u32*)(cdvd.NCMDParam + 0);
|
||||
cdvd.nSectors = *(u32*)(cdvd.NCMDParam + 4);
|
||||
|
||||
u32 oldSpindleCtrl = cdvd.SpindlCtrl;
|
||||
|
||||
if (cdvd.NCMDParam[8] == 0)
|
||||
cdvd.RetryCnt = 0x100;
|
||||
else
|
||||
cdvd.RetryCnt = cdvd.NCMDParam[8];
|
||||
|
||||
cdvd.SpindlCtrl = cdvd.NCMDParam[9];
|
||||
if (cdvd.NCMDParam[9] & 0x3F)
|
||||
cdvd.SpindlCtrl = cdvd.NCMDParam[9];
|
||||
else
|
||||
cdvd.SpindlCtrl = (cdvd.NCMDParam[9] & 0x80) | 3; // Max speed for DVD
|
||||
|
||||
if (cdvd.NCMDParam[9] & CDVD_SPINDLE_NOMINAL)
|
||||
DevCon.Warning("CDVD: DVD Read using Nominal switch from CAV to CLV, unhandled");
|
||||
|
||||
bool ParamError = false;
|
||||
|
||||
switch (cdvd.SpindlCtrl & CDVD_SPINDLE_SPEED)
|
||||
{
|
||||
case 0: // Will use current speed
|
||||
break;
|
||||
case 1: // x1
|
||||
cdvd.Speed = 1;
|
||||
break;
|
||||
@@ -1916,11 +2013,24 @@ static void cdvdWrite04(u8 rt)
|
||||
cdvd.Speed = 4;
|
||||
break;
|
||||
default:
|
||||
Console.Error("Unknown DVD Speed SpindleCtrl=%x", cdvd.SpindlCtrl);
|
||||
cdvd.Speed = 4; // Just assume 4x for now
|
||||
Console.Error("Unknown CDVD Read Speed SpindleCtrl=%x", cdvd.SpindlCtrl);
|
||||
ParamError = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cdvd.NCMDParam[10] != 0)
|
||||
ParamError = true;
|
||||
|
||||
if (ParamError)
|
||||
{
|
||||
DevCon.Warning("CDVD: DVD Read Bad Parameter Error");
|
||||
cdvd.SpindlCtrl = oldSpindleCtrl;
|
||||
cdvd.Error = 0x22; // Invalid Parameter
|
||||
cdvd.Ready = CDVD_DRIVE_READY | CDVD_DRIVE_DEV9CON | CDVD_DRIVE_ERROR;
|
||||
cdvdSetIrq();
|
||||
return;
|
||||
}
|
||||
|
||||
cdvd.ReadMode = CDVD_MODE_2048;
|
||||
cdvd.BlockSize = 2064;
|
||||
|
||||
@@ -1947,7 +2057,7 @@ static void cdvdWrite04(u8 rt)
|
||||
// this'll skip the seek delay.
|
||||
cdvd.Reading = 1;
|
||||
break;
|
||||
|
||||
}
|
||||
case N_CD_GET_TOC: // CdGetToc & cdvdman_call19
|
||||
//Param[0] is 0 for CdGetToc and any value for cdvdman_call19
|
||||
//the code below handles only CdGetToc!
|
||||
@@ -2023,23 +2133,12 @@ static __fi void cdvdWrite07(u8 rt) // BREAK
|
||||
CDVD_LOG("cdvdWrite07(Break) %x", rt);
|
||||
|
||||
// If we're already in a Ready state or already Breaking, then do nothing:
|
||||
if (!(cdvd.Ready & CDVD_DRIVE_BUSY) || (cdvd.Action == cdvdAction_Break))
|
||||
if (!(cdvd.Ready & CDVD_DRIVE_BUSY) || cdvd.AbortRequested)
|
||||
return;
|
||||
|
||||
DbgCon.WriteLn("*PCSX2*: CDVD BREAK %x", rt);
|
||||
|
||||
// Aborts any one of several CD commands:
|
||||
// Pause, Seek, Read, Status, Standby, and Stop
|
||||
|
||||
psxRegs.interrupt &= ~((1 << IopEvt_Cdvd) | (1 << IopEvt_CdvdRead));
|
||||
|
||||
cdvd.Action = cdvdAction_Break;
|
||||
CDVD_INT(64);
|
||||
|
||||
// Clear the cdvd status:
|
||||
cdvd.Readed = 0;
|
||||
cdvd.Reading = 0;
|
||||
cdvdUpdateStatus(CDVD_STATUS_PAUSE);
|
||||
cdvd.AbortRequested = true;
|
||||
}
|
||||
|
||||
static __fi void cdvdWrite08(u8 rt)
|
||||
|
||||
@@ -157,6 +157,7 @@ struct cdvdStruct
|
||||
bool Spinning; // indicates if the Cdvd is spinning or needs a spinup delay
|
||||
cdvdTrayTimer Tray;
|
||||
u8 nextSectorsBuffered;
|
||||
bool AbortRequested;
|
||||
};
|
||||
|
||||
extern cdvdStruct cdvd;
|
||||
|
||||
@@ -111,7 +111,6 @@ enum cdvdActions
|
||||
cdvdAction_Seek,
|
||||
cdvdAction_Standby,
|
||||
cdvdAction_Stop,
|
||||
cdvdAction_Break,
|
||||
cdvdAction_Read // note: not used yet.
|
||||
};
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ typedef struct _cdvdTN
|
||||
|
||||
// SpindleCtrl Masks
|
||||
#define CDVD_SPINDLE_SPEED 0x7 // Speed ranges from 0-3 (1, 2, 3, 4x for DVD) and 0-5 (1, 2, 4, 12, 24x for CD)
|
||||
#define CDVD_SPINDLE_DVD16 0x40 // Forces DVD to 1.6x speed (Mentioned in open SDK not really anywhere else
|
||||
#define CDVD_SPINDLE_NOMINAL 0x40 // Changes the speed to be constant (CLV) based on current speed
|
||||
#define CDVD_SPINDLE_CAV 0x80 // CAV/CLV selector
|
||||
|
||||
// CDVDreadTrack mode values:
|
||||
|
||||
@@ -70,6 +70,8 @@ GSRendererSW::GSRendererSW(int threads)
|
||||
|
||||
GSRendererSW::~GSRendererSW()
|
||||
{
|
||||
// Need to destroy worker queue first to stop any pending thread work
|
||||
delete m_rl;
|
||||
delete m_tc;
|
||||
|
||||
for (GSTexture* tex : m_texture)
|
||||
@@ -77,8 +79,6 @@ GSRendererSW::~GSRendererSW()
|
||||
delete tex;
|
||||
}
|
||||
|
||||
delete m_rl;
|
||||
|
||||
_aligned_free(m_output);
|
||||
}
|
||||
|
||||
|
||||
+8
-9
@@ -431,17 +431,16 @@ static __ri void ipuBDEC(tIPU_CMD_BDEC bdec)
|
||||
|
||||
static __fi bool ipuVDEC(u32 val)
|
||||
{
|
||||
if (EmuConfig.GS.FMVAspectRatioSwitch != FMVAspectRatioSwitchType::Off) {
|
||||
static int count = 0;
|
||||
if (count++ > 5) {
|
||||
if (!FMVstarted) {
|
||||
EnableFMV = true;
|
||||
FMVstarted = true;
|
||||
}
|
||||
count = 0;
|
||||
static int count = 0;
|
||||
if (count++ > 5) {
|
||||
if (!FMVstarted) {
|
||||
EnableFMV = true;
|
||||
FMVstarted = true;
|
||||
}
|
||||
eecount_on_last_vdec = cpuRegs.cycle;
|
||||
count = 0;
|
||||
}
|
||||
eecount_on_last_vdec = cpuRegs.cycle;
|
||||
|
||||
switch (ipu_cmd.pos[0])
|
||||
{
|
||||
case 0:
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ enum class FreezeAction
|
||||
// the lower 16 bit value. IF the change is breaking of all compatibility with old
|
||||
// states, increment the upper 16 bit value, and clear the lower 16 bits to 0.
|
||||
|
||||
static const u32 g_SaveVersion = (0x9A2B << 16) | 0x0000;
|
||||
static const u32 g_SaveVersion = (0x9A2C << 16) | 0x0000;
|
||||
|
||||
// the freezing data between submodules and core
|
||||
// an interesting thing to note is that this dates back from before plugin
|
||||
|
||||
@@ -333,15 +333,11 @@ bool SysThreadBase::StateCheckInThread()
|
||||
if (m_ExecMode != ExecMode_Closing)
|
||||
{
|
||||
#ifndef PCSX2_CORE
|
||||
if (g_CDVDReset)
|
||||
// AppCoreThread deals with Reseting CDVD
|
||||
// Reinit all but GS, USB, DEV9, CDVD (just like with isSuspend = false previously)
|
||||
OnResumeInThread(static_cast<SystemsMask>(~(System_GS|System_USB|System_DEV9|System_CDVD)));
|
||||
else
|
||||
// Reinit previously torn down systems
|
||||
OnResumeInThread(systemsToTearDown);
|
||||
|
||||
// AppCoreThread deals with Reseting CDVD
|
||||
OnResumeInThread(g_CDVDReset ? static_cast<SystemsMask>(systemsToTearDown & ~(System_CDVD)) : systemsToTearDown);
|
||||
g_CDVDReset = false;
|
||||
#else
|
||||
OnResumeInThread(systemsToTearDown);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -85,10 +85,10 @@ Dialogs::GSDumpDialog::GSDumpDialog(wxWindow* parent)
|
||||
m_run->SetDefault();
|
||||
wxArrayString rdoverrides;
|
||||
rdoverrides.Add("None");
|
||||
rdoverrides.Add("OGL SW");
|
||||
rdoverrides.Add("OGL HW");
|
||||
rdoverrides.Add(Pcsx2Config::GSOptions::GetRendererName(GSRendererType::SW));
|
||||
rdoverrides.Add(Pcsx2Config::GSOptions::GetRendererName(GSRendererType::OGL));
|
||||
#if defined(_WIN32)
|
||||
rdoverrides.Add("D3D11 HW");
|
||||
rdoverrides.Add(Pcsx2Config::GSOptions::GetRendererName(GSRendererType::DX11));
|
||||
#endif
|
||||
m_renderer_overrides->Create(this, wxID_ANY, "Renderer overrides", wxDefaultPosition, wxDefaultSize, rdoverrides, 1);
|
||||
|
||||
@@ -708,20 +708,20 @@ void Dialogs::GSDumpDialog::GSThread::ExecuteTaskInThread()
|
||||
{
|
||||
GSDump::isRunning = true;
|
||||
u32 crc = 0, ss = 0;
|
||||
s8 renderer_override = 0;
|
||||
GSRendererType renderer = g_Conf->EmuOptions.GS.Renderer;
|
||||
switch (m_renderer)
|
||||
{
|
||||
// OGL SW
|
||||
// Software
|
||||
case 1:
|
||||
renderer_override = 13;
|
||||
renderer = GSRendererType::SW;
|
||||
break;
|
||||
// OGL HW
|
||||
// OpenGL
|
||||
case 2:
|
||||
renderer_override = 12;
|
||||
renderer = GSRendererType::OGL;
|
||||
break;
|
||||
// D3D11 HW
|
||||
// D3D11
|
||||
case 3:
|
||||
renderer_override = 3;
|
||||
renderer = GSRendererType::DX11;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -792,7 +792,7 @@ void Dialogs::GSDumpDialog::GSThread::ExecuteTaskInThread()
|
||||
g_FrameCount = 0;
|
||||
}
|
||||
|
||||
if (!GSopen(g_Conf->EmuOptions.GS, static_cast<GSRendererType>(renderer_override), (u8*)regs))
|
||||
if (!GSopen(g_Conf->EmuOptions.GS, renderer, (u8*)regs))
|
||||
{
|
||||
OnStop();
|
||||
return;
|
||||
|
||||
+23
-8
@@ -782,7 +782,7 @@ void vtlb_Term()
|
||||
//nothing to do for now
|
||||
}
|
||||
|
||||
constexpr size_t VMAP_SIZE = sizeof(VTLBVirtual) * VTLB_VMAP_ITEMS;
|
||||
static constexpr size_t VMAP_SIZE = sizeof(VTLBVirtual) * VTLB_VMAP_ITEMS;
|
||||
|
||||
// Reserves the vtlb core allocation used by various emulation components!
|
||||
// [TODO] basemem - request allocating memory at the specified virtual location, which can allow
|
||||
@@ -807,16 +807,26 @@ void vtlb_Core_Alloc()
|
||||
}
|
||||
}
|
||||
|
||||
static constexpr size_t PPMAP_SIZE = sizeof(*vtlbdata.ppmap) * VTLB_VMAP_ITEMS;
|
||||
|
||||
// The LUT is only used for 1 game so we allocate it only when the gamefix is enabled (save 4MB)
|
||||
// However automatic gamefix is done after the standard init so a new init function was done.
|
||||
void vtlb_Alloc_Ppmap()
|
||||
{
|
||||
if (vtlbdata.ppmap) return;
|
||||
if (vtlbdata.ppmap)
|
||||
return;
|
||||
|
||||
vtlbdata.ppmap = (u32*)_aligned_malloc( VTLB_VMAP_ITEMS * sizeof(*vtlbdata.ppmap), 16 );
|
||||
if (!vtlbdata.ppmap)
|
||||
throw Exception::OutOfMemory( L"VTLB PS2 Virtual Address Translation LUT" )
|
||||
.SetDiagMsg(pxsFmt("(%u megs)", VTLB_VMAP_ITEMS * sizeof(*vtlbdata.ppmap) / _1mb));
|
||||
static u32* ppmap = nullptr;
|
||||
|
||||
if (!ppmap)
|
||||
ppmap = (u32*)GetVmMemory().BumpAllocator().Alloc(PPMAP_SIZE);
|
||||
|
||||
bool okay = HostSys::MmapCommitPtr(ppmap, PPMAP_SIZE, PageProtectionMode().Read().Write());
|
||||
if (okay)
|
||||
vtlbdata.ppmap = ppmap;
|
||||
else
|
||||
throw Exception::OutOfMemory(L"VTLB PS2 Virtual Address Translation LUT")
|
||||
.SetDiagMsg(pxsFmt("(%u megs)", PPMAP_SIZE / _1mb));
|
||||
|
||||
// By default a 1:1 virtual to physical mapping
|
||||
for (u32 i = 0; i < VTLB_VMAP_ITEMS; i++)
|
||||
@@ -825,11 +835,16 @@ void vtlb_Alloc_Ppmap()
|
||||
|
||||
void vtlb_Core_Free()
|
||||
{
|
||||
if (vtlbdata.vmap) {
|
||||
if (vtlbdata.vmap)
|
||||
{
|
||||
HostSys::MmapResetPtr(vtlbdata.vmap, VMAP_SIZE);
|
||||
vtlbdata.vmap = nullptr;
|
||||
}
|
||||
safe_aligned_free( vtlbdata.ppmap );
|
||||
if (vtlbdata.ppmap)
|
||||
{
|
||||
HostSys::MmapResetPtr(vtlbdata.ppmap, PPMAP_SIZE);
|
||||
vtlbdata.ppmap = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
static wxString GetHostVmErrorMsg()
|
||||
|
||||
Reference in New Issue
Block a user