Merge branch 'dolphin-emu-maste2r'

This commit is contained in:
Nayla Hanegan 2024-12-24 20:47:11 -05:00
commit 1e1168432b
218 changed files with 53095 additions and 44354 deletions

2
.gitignore vendored
View file

@ -43,3 +43,5 @@ CMakeLists.txt.user
.idea/ .idea/
# Ignore Visual Studio Code's working dir # Ignore Visual Studio Code's working dir
/.vscode/ /.vscode/
# Ignore flatpak-builder's cache dir
.flatpak-builder

View file

@ -31,7 +31,7 @@ if(GIT_FOUND)
endif() endif()
# version number # version number
set(DOLPHIN_VERSION_MAJOR "2409") set(DOLPHIN_VERSION_MAJOR "2412")
set(DOLPHIN_VERSION_MINOR "0") set(DOLPHIN_VERSION_MINOR "0")
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION}) set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})

View file

@ -672,7 +672,7 @@ dolphin_make_imported_target_if_missing(LibLZMA::LibLZMA LIBLZMA)
dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Externals/zstd) dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Externals/zstd)
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals/zlib-ng) add_subdirectory(Externals/zlib-ng)
dolphin_find_optional_system_library_pkgconfig(MINIZIP dolphin_find_optional_system_library_pkgconfig(MINIZIP
"minizip>=4.0.4" minizip::minizip Externals/minizip-ng "minizip>=4.0.4" minizip::minizip Externals/minizip-ng

View file

@ -44,6 +44,18 @@
"title": "Dead to Rights", "title": "Dead to Rights",
"E23D98B2CE185C3993A40F2495D37E41B971BF91": "Fix audio issues" "E23D98B2CE185C3993A40F2495D37E41B971BF91": "Fix audio issues"
}, },
"GEDE01": {
"title": "Eternal Darkness",
"21068C3CE905FB0CFFAA7408A93154AF8A5295A2": "Fix startup hang"
},
"GEDJ01": {
"title": "Eternal Darkness",
"7061F3CF11BF64D3BA7F32CCF2BAC42FF3614AB6": "Fix startup hang"
},
"GEDP01": {
"title": "Eternal Darkness",
"6F1B00517CBA30BEB738EAA90E71221378CD570D": "Fix startup hang"
},
"GEME7F": { "GEME7F": {
"title": "Egg Mania: Eggstreme Madness", "title": "Egg Mania: Eggstreme Madness",
"CB04E00918C9C0F161715D21D046ED6620F7ADEF": "Force Progressive Scan" "CB04E00918C9C0F161715D21D046ED6620F7ADEF": "Force Progressive Scan"
@ -148,6 +160,10 @@
"title": "Gladius", "title": "Gladius",
"3D0894616C9A7FA5ED91C1D2F461BF14DF47ECEC": "Fix freeze in opening cutscene" "3D0894616C9A7FA5ED91C1D2F461BF14DF47ECEC": "Fix freeze in opening cutscene"
}, },
"GMSE01": {
"title": "Super Mario Sunshine",
"BD718F961DBA5372B1D0257D454D535746C453A0": "Widescreen"
},
"GNHE5d": { "GNHE5d": {
"title": "NHL HITZ 2002", "title": "NHL HITZ 2002",
"89393A24E2336841AA4CD0AD3BE1C9A66B89E9EF": "Nop Hack" "89393A24E2336841AA4CD0AD3BE1C9A66B89E9EF": "Nop Hack"
@ -236,6 +252,14 @@
"title": "Ten Pin Alley 2", "title": "Ten Pin Alley 2",
"793642AC6862C2F3412035A9E3D7172CC4A1D5C7": "Fix crash on main menu" "793642AC6862C2F3412035A9E3D7172CC4A1D5C7": "Fix crash on main menu"
}, },
"RMHE08": {
"title": "Monster Hunter Tri",
"CCF233DA57B3E75221870DE502955114B0D4E7FA": "Bloom OFF"
},
"RMHJ08": {
"title": "Monster Hunter Tri",
"29D3625B7ED577587E56AA07CB0EB8C47C97E823": "Bloom OFF"
},
"RMHP08": { "RMHP08": {
"title": "Monster Hunter Tri", "title": "Monster Hunter Tri",
"1720C1173D4698167080DBFC4232F21757C4DA08": "Bloom OFF" "1720C1173D4698167080DBFC4232F21757C4DA08": "Bloom OFF"

View file

@ -1,8 +1,7 @@
# GEDE01, GEDP01 - Eternal Darkness # GEDE01, GEDP01, GEDJ01, GEDW01 - Eternal Darkness
[Core] [Core]
# Values set here will override the main Dolphin settings. # Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame] [OnFrame]
# Add memory patches to be applied every frame here. # Add memory patches to be applied every frame here.

View file

@ -0,0 +1,11 @@
# GEDE01 - Eternal Darkness
[OnFrame]
$Fix startup hang
0x801EF444:dword:0x480371ED
[OnFrame_Enabled]
$Fix startup hang
[Patches_RetroAchievements_Verified]
$Fix startup hang

View file

@ -0,0 +1,11 @@
# GEDJ01 - Eternal Darkness
[OnFrame]
$Fix startup hang
0x801E4588:dword:0x48036E71
[OnFrame_Enabled]
$Fix startup hang
[Patches_RetroAchievements_Verified]
$Fix startup hang

View file

@ -0,0 +1,11 @@
# GEDP01 - Eternal Darkness
[OnFrame]
$Fix startup hang
0x801E3BC4:dword:0x48036F15
[OnFrame_Enabled]
$Fix startup hang
[Patches_RetroAchievements_Verified]
$Fix startup hang

View file

@ -0,0 +1,8 @@
# GEDW01 - Eternal Darkness
[OnFrame]
$Fix startup hang
0x801BE42C:dword:0x48036E65
[OnFrame_Enabled]
$Fix startup hang

View file

@ -10,3 +10,6 @@ MMU = True
[ActionReplay] [ActionReplay]
# Add action replay cheats here. # Add action replay cheats here.
[Video_Hacks]
# Needed for loading screens to show up.
EFBAccessEnable = True

View file

@ -175,3 +175,6 @@ C2363138 00000009
7C631670 54A5F0BE 7C631670 54A5F0BE
7C630194 7C630214 7C630194 7C630214
60000000 00000000 60000000 00000000
[Gecko_RetroAchievements_Verified]
$Widescreen

View file

@ -9,8 +9,5 @@
[ActionReplay] [ActionReplay]
# Add action replay cheats here. # Add action replay cheats here.
[Video_Settings]
[Video_Hacks] [Video_Hacks]
EFBAccessEnable = False
ImmediateXFBEnable = False ImmediateXFBEnable = False

View file

@ -1,14 +0,0 @@
# GXBE69, GXBP69 - SSX3
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
EFBAccessEnable = False

View file

@ -8,3 +8,6 @@ $Bloom OFF
[ActionReplay] [ActionReplay]
# Add action replay cheats here. # Add action replay cheats here.
[Patches_RetroAchievements_Verified]
$Bloom OFF

View file

@ -12,3 +12,6 @@ SafeTextureCacheColorSamples = 0
[ActionReplay] [ActionReplay]
# Add action replay cheats here. # Add action replay cheats here.
[Patches_RetroAchievements_Verified]
$Bloom OFF

View file

@ -11,3 +11,6 @@ $Bloom OFF
[ActionReplay] [ActionReplay]
# Add action replay cheats here. # Add action replay cheats here.
[Patches_RetroAchievements_Verified]
$Bloom OFF

View file

@ -16,6 +16,3 @@ $Disable blur
[Video_Settings] [Video_Settings]
SafeTextureCacheColorSamples = 0 SafeTextureCacheColorSamples = 0
[Video_Hacks]
EFBAccessEnable = False

View file

@ -0,0 +1,5 @@
# SCDE52, SCDP52 - Cabela's Dangerous Hunts 2011
[Video_Settings]
SafeTextureCacheColorSamples = 0

View file

@ -0,0 +1,5 @@
# SHUE52 - Cabela's Dangerous Hunts 2011: Special Edition
[Video_Settings]
SafeTextureCacheColorSamples = 0

View file

@ -1,14 +0,0 @@
# SNCE8P, SNCJ8P, SNCP8P - SONIC COLOURS
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
EFBAccessEnable = False

View file

@ -3,7 +3,7 @@
[OnFrame] [OnFrame]
$Bypass Metafortress [crediar, ported by RedStoneMatt] $Bypass Metafortress [crediar, ported by RedStoneMatt]
0x80176000:dword:0x48000084 0x80176000:dword:0x48000084
0x80176728:dword:0x60000000 0x80176730:dword:0x60000000
0x80176B6C:dword:0x60000000 0x80176B6C:dword:0x60000000
0x80176E88:dword:0x48000090 0x80176E88:dword:0x48000090
0x80177160:dword:0x60000000 0x80177160:dword:0x60000000
@ -48,7 +48,7 @@ $Bypass Metafortress [crediar, ported by RedStoneMatt]
0x80181974:dword:0x60000000 0x80181974:dword:0x60000000
0x80181930:dword:0x48000024 0x80181930:dword:0x48000024
0x80181D94:dword:0x60000000 0x80181D94:dword:0x60000000
0x80181FD0:dword:0x48000090 0x80181FE0:dword:0x48000090
0x801821BC:dword:0x60000000 0x801821BC:dword:0x60000000
0x80182374:dword:0x4800009C 0x80182374:dword:0x4800009C
0x8018250C:dword:0x60000000 0x8018250C:dword:0x60000000
@ -198,7 +198,7 @@ $Bypass Metafortress [crediar, ported by RedStoneMatt]
0x80210090:dword:0x60000000 0x80210090:dword:0x60000000
0x80210A10:dword:0x60000000 0x80210A10:dword:0x60000000
0x80210D84:dword:0x48000090 0x80210D84:dword:0x48000090
0x802113B8:dword:0x48000094 0x802115B0:dword:0x48000094
0x80211ABC:dword:0x4800008C 0x80211ABC:dword:0x4800008C
0x80211F34:dword:0x60000000 0x80211F34:dword:0x60000000
0x80216AB0:dword:0x60000000 0x80216AB0:dword:0x60000000
@ -1141,7 +1141,7 @@ $Bypass Metafortress [crediar, ported by RedStoneMatt]
0x8069ED00:dword:0x48000088 0x8069ED00:dword:0x48000088
0x8069EEB4:dword:0x60000000 0x8069EEB4:dword:0x60000000
0x8069F38C:dword:0x60000000 0x8069F38C:dword:0x60000000
0x8069FC4C:dword:0x60000000 0x8069FC50:dword:0x60000000
0x8069FE88:dword:0x48000090 0x8069FE88:dword:0x48000090
0x806A0C74:dword:0x7C600050 0x806A0C74:dword:0x7C600050
0x806A0DA8:dword:0x60000000 0x806A0DA8:dword:0x60000000
@ -1206,12 +1206,12 @@ $Bypass Metafortress [crediar, ported by RedStoneMatt]
0x806C3EE0:dword:0x48000088 0x806C3EE0:dword:0x48000088
0x806C421C:dword:0x48000084 0x806C421C:dword:0x48000084
0x806C4750:dword:0x4800009C 0x806C4750:dword:0x4800009C
0x806C4D04:dword:0x48000090 0x806C4CE8:dword:0x48000090
0x806C54E8:dword:0x4800008C 0x806C54E8:dword:0x4800008C
0x806C7C48:dword:0x48000090 0x806C7C48:dword:0x48000090
0x806C8088:dword:0x60000000 0x806C8088:dword:0x60000000
0x806C89A8:dword:0x48000094 0x806C89A8:dword:0x48000094
0x806C8F34:dword:0x60000000 0x806C8F5C:dword:0x60000000
0x806CA060:dword:0x7C800050 0x806CA060:dword:0x7C800050
0x806CAC60:dword:0x60000000 0x806CAC60:dword:0x60000000
0x806CADE4:dword:0x60000000 0x806CADE4:dword:0x60000000
@ -1233,7 +1233,7 @@ $Bypass Metafortress [crediar, ported by RedStoneMatt]
0x806CE150:dword:0x48000088 0x806CE150:dword:0x48000088
0x806CE7F8:dword:0x60000000 0x806CE7F8:dword:0x60000000
0x806CEC18:dword:0x48000094 0x806CEC18:dword:0x48000094
0x806CDCB4:dword:0x48000088 0x806CEDF0:dword:0x48000088
0x806CFD04:dword:0x60000000 0x806CFD04:dword:0x60000000
0x806CFEE8:dword:0x48000090 0x806CFEE8:dword:0x48000090
0x806D0CD4:dword:0x60000000 0x806D0CD4:dword:0x60000000

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: DE_unique version: 20230727194133) TITLES = https://www.gametdb.com (type: Wii language: DE_unique version: 20241114210104)
R22J01 = FlingSmash R22J01 = FlingSmash
R23P52 = Barbie und Die Drei Musketiere R23P52 = Barbie und Die Drei Musketiere
R25PWR = LEGO Harry Potter: Die Jahre 1-4 R25PWR = LEGO Harry Potter: Die Jahre 1-4
@ -56,7 +56,6 @@ R9EPNP = Brico Party: Werde Heimwerker-König
R9GPWR = Die Legende der Wächter R9GPWR = Die Legende der Wächter
R9LP41 = Girls Life: Pyjama-Party R9LP41 = Girls Life: Pyjama-Party
R9RPNG = Dance Party - Pop Hits R9RPNG = Dance Party - Pop Hits
RAAE01 = Disco de Startup Wii
RB7P54 = Bully: Die Ehrenrunde RB7P54 = Bully: Die Ehrenrunde
RBEP52 = Bee Movie: Das Game RBEP52 = Bee Movie: Das Game
RBEX52 = Bee Movie: Das Game RBEX52 = Bee Movie: Das Game
@ -419,7 +418,7 @@ SVQPVZ = Barbie und ihre Schwestern: Die Rettung der Welpen
SVVPAF = Die Croods: Steinzeit Party! SVVPAF = Die Croods: Steinzeit Party!
SW3PKM = Eurosport Winter Stars SW3PKM = Eurosport Winter Stars
CS4P00 = SingItStar NRJ Music Tour CS4P00 = SingItStar NRJ Music Tour
RMCPCA = Mario Kart Wii (Katalanische Übersetzung) RZDPCA = The Legend of Zelda: Twilight Princess (Katalanische Übersetzung)
SDNP01 = New SUPER DODO BROS wii SDNP01 = New SUPER DODO BROS wii
SIS1OH = SingItStar Custom: Volume 1 SIS1OH = SingItStar Custom: Volume 1
SISACD = SingItStar AC/DC SISACD = SingItStar AC/DC
@ -428,14 +427,11 @@ W2CP = Gehirntraining
W2FP = Physiofun - Balance Training W2FP = Physiofun - Balance Training
W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version) W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version)
W2GP = Phoenix Wright Ace Attorney: Justice for All W2GP = Phoenix Wright Ace Attorney: Justice for All
W2MP = Blaster Master: Overdrive
W2PP = Physiofun - Beckenboden Training W2PP = Physiofun - Beckenboden Training
W3GD = Phoenix Wright Ace Attorney 3: Trials And Tribulations W3GD = Phoenix Wright Ace Attorney 3: Trials And Tribulations
W3KP = ThruSpace: High Velocity 3D Puzzle
W3MP = Die Drei Musketiere Einer für alle! W3MP = Die Drei Musketiere Einer für alle!
W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker
W6BP = Eco-Shooter: Plant 530 W6BP = Eco-Shooter: Plant 530
W72P = Successfully Learning German Year 3
W73P = Lernerfolg Grundschule Deutsch Klasse 4 W73P = Lernerfolg Grundschule Deutsch Klasse 4
W74P = Lernerfolg Grundschule Deutsch Klasse 5 W74P = Lernerfolg Grundschule Deutsch Klasse 5
W7IP = Lernerfolg Grundschule Deutsch Klasse 2 W7IP = Lernerfolg Grundschule Deutsch Klasse 2
@ -444,12 +440,8 @@ W8WP = Happy Holidays Halloween
W9BP = Big Town Shoot W9BP = Big Town Shoot
W9RP = Happy Holidays Christmas W9RP = Happy Holidays Christmas
WA4P = WarioWare: Do It Yourself - Showcase WA4P = WarioWare: Do It Yourself - Showcase
WA7P = Toribash Violence Perfected
WA8P = Art Style: Penta Tentacles WA8P = Art Style: Penta Tentacles
WAEP = Around the world WAEP = Around the world
WAFP = Airport Mania: First Flight
WAHP = Trenches: Generals
WALP = Art Style: light trax
WAOP = The Very Hungry Caterpillar´s ABC WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4: Dangeresque 3 WB2P = Strong Bad Episode 4: Dangeresque 3
WB3P = Strong Bad Episode 5: 8-bit is Enough WB3P = Strong Bad Episode 5: 8-bit is Enough
@ -487,7 +479,6 @@ WGGP = Gabrielle's Ghostly Groove: Monster Mix
WGPP = Zenquaria Virtuelles Aquarium WGPP = Zenquaria Virtuelles Aquarium
WGSD = Phoenix Wright: Ace Attorney (Deutsche Version) WGSD = Phoenix Wright: Ace Attorney (Deutsche Version)
WGSF = Phoenix Wright: Ace Attorney (French Version) WGSF = Phoenix Wright: Ace Attorney (French Version)
WGSP = Phoenix Wright: Ace Attorney
WHEE = Heracles: Chariot Racing WHEE = Heracles: Chariot Racing
WHEP = Heracles: Chariot Racing WHEP = Heracles: Chariot Racing
WHFP = Heavy Fire: Special Operations WHFP = Heavy Fire: Special Operations
@ -562,6 +553,7 @@ WWIP = Where's Wally? Fantastic Journey 1
WWRP = Excitebike: World Challenge WWRP = Excitebike: World Challenge
WWXP = Paper Wars Cannon Fodder WWXP = Paper Wars Cannon Fodder
WXBP = Ben 10: Alien Force - The Rise of Hex WXBP = Ben 10: Alien Force - The Rise of Hex
WXIP = Lernerfolg Grundschule Englisch Klasse 1
WYIP = escapeVektor: Chapter 1 WYIP = escapeVektor: Chapter 1
WYSP = Yard Sale Hidden Treasures Sunnyville WYSP = Yard Sale Hidden Treasures Sunnyville
WZIP = Rubik's Puzzle Galaxy: RUSH WZIP = Rubik's Puzzle Galaxy: RUSH
@ -623,20 +615,13 @@ JDJP = Super Star Wars: The Empire Strikes Back
JDLP = Super Star Wars: Return of the Jedi JDLP = Super Star Wars: Return of the Jedi
JDWP = Aero The Acrobat JDWP = Aero The Acrobat
JDZD = Mystic Quest Legend JDZD = Mystic Quest Legend
NACE = The Legend of Zelda: Ocarina of Time
NACP = The Legend of Zelda: Ocarina of Time
NADE = Lylat wars NADE = Lylat wars
NAJN = Sin and Punishment NAJN = Sin and Punishment
NAKS = Pokémon Snap
NAME = Kirby 64: The Crystal Shards NAME = Kirby 64: The Crystal Shards
NAMP = Kirby 64: The Crystal Shards
NAND = Pokémon Puzzle League
NAOE = 1080° Snowboarding NAOE = 1080° Snowboarding
NAOP = 1080°: TenEighty Snowboarding NAOP = 1080°: TenEighty Snowboarding
NARE = The Legend of Zelda: Majora's Mask NARE = The Legend of Zelda: Majora's Mask
NARP = The Legend of Zelda: Majora's Mask
NAYE = Ogre Battle 64: Person of Lordly Caliber NAYE = Ogre Battle 64: Person of Lordly Caliber
NAYM = Ogre Battle 64: Person of Lordly Caliber
LALP = Fantasy Zone II LALP = Fantasy Zone II
LANP = Alex Kidd: The Lost Stars LANP = Alex Kidd: The Lost Stars
LAPP = Wonder Boy III: The Dragon's Trap LAPP = Wonder Boy III: The Dragon's Trap
@ -686,7 +671,6 @@ EAIP = Top Hunter
EBDP = Magical Drop 3 EBDP = Magical Drop 3
EBFP = Spin master EBFP = Spin master
EBSP = The Path of the Warrior: Art of Fighting 3 EBSP = The Path of the Warrior: Art of Fighting 3
ECAP = Real Bout Fatal Fury 2: The Newcomers
ECGP = Shock Troopers: 2nd Squad ECGP = Shock Troopers: 2nd Squad
E54P = GHOSTS'N GOBLINS E54P = GHOSTS'N GOBLINS
E55P = Commando E55P = Commando
@ -703,21 +687,24 @@ HADE = Internet Kanal
HADP = Internet-Kanal HADP = Internet-Kanal
HAFP = Wetterkanal HAFP = Wetterkanal
HAGA = Nachrichtenkanal HAGA = Nachrichtenkanal
HAGE = Nachrichtenkanal
HAGJ = Nachrichtenkanal HAGJ = Nachrichtenkanal
HAGP = Nachrichtenkanal HAGP = Nachrichtenkanal
HAJP = Meinungskanal HAJP = Meinungskanal
HAKP = Vertrag/Kontakt
HAPP = Mii-Wettbewerbskanal HAPP = Mii-Wettbewerbskanal
HATP = Nintendo-Kanal HATP = Nintendo-Kanal
HAVP = Glückstagskanal HAVP = Glückstagskanal
HAWP = Metroid Prime 3 Preview HAWP = Metroid Prime 3 Preview
HAYA = Fotokanal HAYA = Fotokanal
HCAP = Jam with the Band Live HCAP = Jam with the Band Live-Kanal
HCCJ = Adresseinstellungen
HCFE = Wii Speak-Kanal HCFE = Wii Speak-Kanal
HCFP = Wii Speak-Kanal HCFP = Wii Speak-Kanal
HCGP = Wii & Internet
HCMP = Kirby TV-Kanal HCMP = Kirby TV-Kanal
HCRE = The Legend of Zelda: Skyward Sword - Speicherdaten-Update-Kanal für HCRE = The Legend of Zelda: Skyward Sword - Speicherdaten-Update-Kanal für
HCRP = The Legend of Zelda: Skyward Sword - Speicherdaten-Update-Kanal für HCRP = The Legend of Zelda: Skyward Sword - Speicherdaten-Update-Kanal für
RFPP = Wii Fit Plus-Kanal
RMCP = Mario Kart-Kanal RMCP = Mario Kart-Kanal
OHBC = Homebrew-Kanal OHBC = Homebrew-Kanal
G2FD78 = Tak 2: Der Stab der Träume G2FD78 = Tak 2: Der Stab der Träume

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: ES_unique version: 20230727194141) TITLES = https://www.gametdb.com (type: Wii language: ES_unique version: 20241114210112)
DCHJAF = We Cheer: Ohasta Produce ! Gentei Collabo Game Disc DCHJAF = We Cheer: Ohasta Produce ! Gentei Collabo Game Disc
R22J01 = FlingSmash R22J01 = FlingSmash
R23E52 = Barbie y las Tres Mosqueteras R23E52 = Barbie y las Tres Mosqueteras
@ -90,6 +90,7 @@ R9EPNP = Brico Party: ¡Cuidado! Mancha
R9GPWR = Ga'Hoole: La Leyenda de los Guardianes R9GPWR = Ga'Hoole: La Leyenda de los Guardianes
R9LP41 = Girls Life: Pijama Party R9LP41 = Girls Life: Pijama Party
R9TK69 = Tiger Woods PGA Tour 09 R9TK69 = Tiger Woods PGA Tour 09
RAAE01 = Disco de Startup Wii
RB9D78 = Bratz: La Película RB9D78 = Bratz: La Película
RB9P78 = Bratz: La Película RB9P78 = Bratz: La Película
RB9X78 = Bratz: La Película RB9X78 = Bratz: La Película
@ -109,7 +110,7 @@ RC2E78 = Cars: Mater-National
RC2P78 = Cars: La Copa Internacional de Mate RC2P78 = Cars: La Copa Internacional de Mate
RC2X78 = Cars: La Copa Internacional de Mate RC2X78 = Cars: La Copa Internacional de Mate
RC2Y78 = Cars: La Copa Internacional de Mate RC2Y78 = Cars: La Copa Internacional de Mate
RC3P41 = Catz: Diviértete con Nuevos Felinos RC3P41 = Catz: ¡Diviértete con nuevos felinos!
RC3X41 = Catz: Diviértete con Nuevos Felinos RC3X41 = Catz: Diviértete con Nuevos Felinos
RC4SGT = Shin Chan: ¡Las Nuevas Aventuras para Wii! RC4SGT = Shin Chan: ¡Las Nuevas Aventuras para Wii!
RC8P7D = Crash: Guerra al Coco-Maníaco RC8P7D = Crash: Guerra al Coco-Maníaco
@ -187,6 +188,7 @@ RH5PKM = Horse Life 2: Amigos para Siempre
RH6K69 = Harry Potter and the Half-Blood Prince RH6K69 = Harry Potter and the Half-Blood Prince
RH6P69 = Harry Potter y el Misterio del Príncipe RH6P69 = Harry Potter y el Misterio del Príncipe
RHAK01 = Wii Play RHAK01 = Wii Play
RHAW01 = Wii Play
RHKJ18 = Hataraku Hit RHKJ18 = Hataraku Hit
RHKP18 = Job Island RHKP18 = Job Island
RHQP4Q = Hannah Montana: Únete a Su Gira Mundial RHQP4Q = Hannah Montana: Únete a Su Gira Mundial
@ -199,6 +201,7 @@ RHZP41 = Horsez: El Valle del Rancho
RI2P4Q = High School Musical: ¡Canta con ellos! RI2P4Q = High School Musical: ¡Canta con ellos!
RI8E41 = Brothers in Arms: Road to Hill 30 RI8E41 = Brothers in Arms: Road to Hill 30
RI9PGT = Divagirls: Princesas Sobre Hielo RI9PGT = Divagirls: Princesas Sobre Hielo
RIAE52 = Ice Age: Dawn of the Dinosaurs
RIAI52 = Ice Age 3: El Origen de los Dinosaurios RIAI52 = Ice Age 3: El Origen de los Dinosaurios
RIAP52 = Ice Age 3: El Origen de los Dinosaurios RIAP52 = Ice Age 3: El Origen de los Dinosaurios
RIBPKM = Igor: El Videojuego RIBPKM = Igor: El Videojuego
@ -225,7 +228,7 @@ RJAP52 = Call of Duty: Modern Warfare: Reflex
RJAX52 = Call of Duty: Modern Warfare: Reflex RJAX52 = Call of Duty: Modern Warfare: Reflex
RJDPKM = Mi Hospital de Animales RJDPKM = Mi Hospital de Animales
RJFE5G = Fitness Ultimatum 2009 de Jillian Michaels RJFE5G = Fitness Ultimatum 2009 de Jillian Michaels
RJFPKM = Fitness Ultimatum 2009 con Jillian Michaels RJFPKM = Ponte en forma con Jillian Michaels
RJMPRS = Jumper RJMPRS = Jumper
RJNE20 = Build 'n Race RJNE20 = Build 'n Race
RJOP99 = Ju-On: The Grudge RJOP99 = Ju-On: The Grudge
@ -437,7 +440,7 @@ RV9P78 = Avatar: La Leyenda de Aang - Dentro del Infierno
RVAP78 = Avatar: La Leyenda de Aang - La Tierra Ardiente RVAP78 = Avatar: La Leyenda de Aang - La Tierra Ardiente
RVBPRS = Alvin y las Ardillas RVBPRS = Alvin y las Ardillas
RVHP41 = Scrabble Interactivo: Edición 2009 RVHP41 = Scrabble Interactivo: Edición 2009
RVJPFR = So Blonde: Perdidos en el Caribe RVJPFR = So Blonde: De Vuelta en la Isla
RVKJ99 = Valhalla Knights: Elder Saga RVKJ99 = Valhalla Knights: Elder Saga
RVQP41 = Desafío Cine Party RVQP41 = Desafío Cine Party
RVTFMR = Veterinarios en Acción RVTFMR = Veterinarios en Acción
@ -499,6 +502,8 @@ RZRPGT = El Destino de El Zorro
RZYF41 = Mi Experto en Vocabulario RZYF41 = Mi Experto en Vocabulario
RZYP41 = Mi Experto en Vocabulario RZYP41 = Mi Experto en Vocabulario
RZYS41 = Mi Experto en Vocabulario RZYS41 = Mi Experto en Vocabulario
S26PML = 2 en 1: Pony Friends 2 + Mi Granja de Caballos
S2VPAF = Victorious: Salto a la fama
S2XE41 = Los Pitufos 2 S2XE41 = Los Pitufos 2
S2XP41 = Los Pitufos 2 S2XP41 = Los Pitufos 2
S2ZP52 = Zhu Zhu Pets: Los Amigos del Bosque S2ZP52 = Zhu Zhu Pets: Los Amigos del Bosque
@ -507,6 +512,7 @@ S3BEWR = Batman: El Intrépido Batman
S3BPWR = Batman: El Intrépido Batman S3BPWR = Batman: El Intrépido Batman
S3DJ18 = Deca Sporta 3 S3DJ18 = Deca Sporta 3
S3EP78 = Barbie: Planeta Fashionista S3EP78 = Barbie: Planeta Fashionista
S3EXVZ = Barbie: Planeta Fashionista
S3MP69 = Los Sims 3 S3MP69 = Los Sims 3
S3PP4Q = Disney Princesas: Reinos Mágicos S3PP4Q = Disney Princesas: Reinos Mágicos
S5BPKM = Regreso al Futuro: El juego S5BPKM = Regreso al Futuro: El juego
@ -524,6 +530,7 @@ SALE4Q = Alicia en el País de las Maravillas
SALP4Q = Alicia en el País de las Maravillas SALP4Q = Alicia en el País de las Maravillas
SAOP78 = Monster High: Instituto Monstruoso SAOP78 = Monster High: Instituto Monstruoso
SAOXVZ = Monster High: Instituto Monstruoso SAOXVZ = Monster High: Instituto Monstruoso
SAVX5G = Alvin y las ardillas 2
SB2PNP = My Baby 2: ¡Mi Bebé Ha Crecido! SB2PNP = My Baby 2: ¡Mi Bebé Ha Crecido!
SB4K01 = Super Mario Galaxy 2 SB4K01 = Super Mario Galaxy 2
SB6P52 = Bakugan: Defensores de la Tierra SB6P52 = Bakugan: Defensores de la Tierra
@ -551,6 +558,7 @@ SCYZ4Q = Cars 2: El Videojuego
SD2Y41 = Just Dance 2 (Edición Best Buy) SD2Y41 = Just Dance 2 (Edición Best Buy)
SD6PTV = Éxito en Primaria: Inglés - Curso 1-4 SD6PTV = Éxito en Primaria: Inglés - Curso 1-4
SD7PTV = Éxito en Primaria: Matemáticas - Curso 1-4 SD7PTV = Éxito en Primaria: Matemáticas - Curso 1-4
SDDPML = Sexos en Guerra: típicos tópicos
SDFP4Q = Disney Sing It: Éxitos de película SDFP4Q = Disney Sing It: Éxitos de película
SDLP78 = La Gran Aventura de Dood SDLP78 = La Gran Aventura de Dood
SDMEG9 = Gru, Mi Villano Favorito SDMEG9 = Gru, Mi Villano Favorito
@ -608,11 +616,12 @@ SJDZ41 = Just Dance 3 (Edición Target)
SJIEG9 = Fitness Ultimatum 2011 de Jillian Michaels SJIEG9 = Fitness Ultimatum 2011 de Jillian Michaels
SJME5G = Fitness Ultimatum 2010 de Jillian Michaels SJME5G = Fitness Ultimatum 2010 de Jillian Michaels
SJMPGT = Fitness Ultimatum 2010 de Jillian Michaels SJMPGT = Fitness Ultimatum 2010 de Jillian Michaels
SJXD41 = Just Dance 4 SJXD41 = Just Dance 4 Edición Especial
SK4E52 = Shrek: Felices Para Siempre SK4E52 = Shrek: Felices Para Siempre
SK4P52 = Shrek: Felices Para Siempre SK4P52 = Shrek: Felices Para Siempre
SK7PVZ = Disney Violetta: Ritmo & Música SK7PVZ = Disney Violetta: Ritmo & Música
SK7XVZ = Disney Violetta: Ritmo & Música SK7XVZ = Disney Violetta: Ritmo & Música
SKYZ52 = Skylanders Giants
SLAE78 = Airbender: El Último Guerrero SLAE78 = Airbender: El Último Guerrero
SLAP78 = Airbender: El Último Guerrero SLAP78 = Airbender: El Último Guerrero
SLAX78 = Airbender: El Último Guerrero (Edición Especial) SLAX78 = Airbender: El Último Guerrero (Edición Especial)
@ -636,7 +645,7 @@ SMNW01 = New Super Mario Bros. Wii (Chino Tradicional)
SN4JDA = Naruto Shippuuden Ryujinki SN4JDA = Naruto Shippuuden Ryujinki
SNBP41 = NCIS Navy Investigación Criminal SNBP41 = NCIS Navy Investigación Criminal
SNYEVZ = Monster High: 13 Deseos SNYEVZ = Monster High: 13 Deseos
SNYPVZ = Monster High: 13 Deseos SNYPVZ = Monster High: 13 Monstruo-deseos
SOTE52 = Wipeout SOTE52 = Wipeout
SOUJ01 = The Legend of Zelda: Skyward Sword SOUJ01 = The Legend of Zelda: Skyward Sword
SP5PVV = The Kore Gang: La Exvasión de los Intraterrestres SP5PVV = The Kore Gang: La Exvasión de los Intraterrestres
@ -824,7 +833,6 @@ RJJG52 = Guitar Hero III Custom: JJ-KwiK's Edition
RMCE88 = Mario Carritos Definitivo 3.0 RMCE88 = Mario Carritos Definitivo 3.0
RMCEB8 = Mario Kart Manía RMCEB8 = Mario Kart Manía
RMCEFO = Neptune777 Forza MAX Orígenes RMCEFO = Neptune777 Forza MAX Orígenes
RMCPCA = Mario Kart Wii (traducción al catalán)
RMGE52 = Guitar Hero III Custom: Megadeth RMGE52 = Guitar Hero III Custom: Megadeth
RMHC08 = Monster Hunter Tri (Personalizado) RMHC08 = Monster Hunter Tri (Personalizado)
RMMP52 = Guitar Hero III Custom: Metal Mayhem RMMP52 = Guitar Hero III Custom: Metal Mayhem
@ -835,6 +843,7 @@ RSFC99 = Muramasa: The Demon Blade (Personalizado)
RSJESD = Guitar Hero III Custom: System of a Down RSJESD = Guitar Hero III Custom: System of a Down
RSYP06 = Super Smash Bros. Brawl: YF06's Mod RSYP06 = Super Smash Bros. Brawl: YF06's Mod
RZDC01 = The Legend of Zelda: Twilight Princess (Personalizado) RZDC01 = The Legend of Zelda: Twilight Princess (Personalizado)
RZDPCA = The Legend of Zelda: Twilight Princess (Traducción al catalán - Traducció al català)
SB4C01 = Super Mario Galaxy 2 (Personalizado) SB4C01 = Super Mario Galaxy 2 (Personalizado)
SBOD3Q = SingItStar: Best of Disney SBOD3Q = SingItStar: Best of Disney
SDUEO1 = DU Super Mario Bros.: DU Edition SDUEO1 = DU Super Mario Bros.: DU Edition
@ -857,7 +866,6 @@ W2FP = Entrenamiento de Equilibrio Physiofun
W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version) W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version)
W2GE = Phoenix Wright: Ace Attorney Justice for All W2GE = Phoenix Wright: Ace Attorney Justice for All
W2GP = Phoenix Wright Ace Attorney: Justice for All W2GP = Phoenix Wright Ace Attorney: Justice for All
W2GS = Phoenix Wright Ace Attorney: Justice for All
W2JE = Just Jam W2JE = Just Jam
W2ME = Blaster Master: Overdrive W2ME = Blaster Master: Overdrive
W2MP = Blaster Master Overdrive W2MP = Blaster Master Overdrive
@ -866,7 +874,6 @@ W3AE = Carmen Sandiego Adventures in Math: The Big Ben Burglary
W3GD = Phoenix Wright: Ace Attorney - Trials and Tribulations W3GD = Phoenix Wright: Ace Attorney - Trials and Tribulations
W3GE = Phoenix Wright Ace Attorney: Trials and Tribulations W3GE = Phoenix Wright Ace Attorney: Trials and Tribulations
W3GP = Phoenix Wright: Ace Attorney - Trials and Tribulations W3GP = Phoenix Wright: Ace Attorney - Trials and Tribulations
W3GS = Phoenix Wright: Ace Attorney Trials and Tribulations
W3KE = Thruspace W3KE = Thruspace
W3KP = ThruSpace W3KP = ThruSpace
W3LE = Carmen Sandiego Adventures in Math: The Lady Liberty Larceny W3LE = Carmen Sandiego Adventures in Math: The Lady Liberty Larceny
@ -874,15 +881,10 @@ W3ME = The Three Musketeers: One for all
W3MP = Los Tres Mosqueteros ¡Uno para todos! W3MP = Los Tres Mosqueteros ¡Uno para todos!
W3TE = Pearl Harbor Trilogy - 1941: Red Sun Rising W3TE = Pearl Harbor Trilogy - 1941: Red Sun Rising
W44E = Stop Stress: A Day of Fury W44E = Stop Stress: A Day of Fury
W44P = Stop Stress: A Day of Fury
W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker
W5IE = 5 in 1 Solitaire W5IE = 5 in 1 Solitaire
W6BE = Eco Shooter: Plant 530 W6BE = Eco Shooter: Plant 530
W6BP = Eco-Shooter: Plant 530 W6BP = Eco-Shooter: Plant 530
W72P = Successfully Learning German Year 3
W73P = Successfully Learning German Year 4
W74P = Successfully Learning German Year 5
W7IP = Successfully Learning German Year 2
W8CE = Bit.Trip Core W8CE = Bit.Trip Core
W8CP = Bit.Trip Core W8CP = Bit.Trip Core
W8WE = Happy Holidays: Halloween W8WE = Happy Holidays: Halloween
@ -899,8 +901,6 @@ WA8E = Art Style: Rotozoa
WA8P = Art Style: Penta Tentacles WA8P = Art Style: Penta Tentacles
WAEE = Around The World WAEE = Around The World
WAFE = Airport Mania: First Flight WAFE = Airport Mania: First Flight
WAFP = Airport Mania: First Flight
WAHP = Trenches: Generals
WAKE = Carmen Sandiego Adventures in Math: The Case of the Crumbling Cathedral WAKE = Carmen Sandiego Adventures in Math: The Case of the Crumbling Cathedral
WALE = Art Style: Light Trax WALE = Art Style: Light Trax
WALP = Art Style: Light Trax WALP = Art Style: Light Trax
@ -946,7 +946,7 @@ WDHP = Art Style: Rotohex
WDMJ = Dr. Mario & Bactericida WDMJ = Dr. Mario & Bactericida
WDMP = Dr. Mario & Bactericida WDMP = Dr. Mario & Bactericida
WDPE = Dr. Mario Online Rx (Friend Battle Demo) WDPE = Dr. Mario Online Rx (Friend Battle Demo)
WDPP = Dr. Mario & Germ Buster (Friend Battle Demo) WDPP = Dr. Mario & Bactericida (Demo Batalla Amistosa)
WDRE = Mr Driller W WDRE = Mr Driller W
WEME = Aha! I Got It! Escape Game WEME = Aha! I Got It! Escape Game
WEMP = Aha! I Got It! Escape Game WEMP = Aha! I Got It! Escape Game
@ -981,7 +981,6 @@ WGPP = Zenquaria: El Acuario Virtual
WGSD = Phoenix Wright: Ace Attorney (Versión Alemana) WGSD = Phoenix Wright: Ace Attorney (Versión Alemana)
WGSE = Phoenix Wright: Ace Attorney WGSE = Phoenix Wright: Ace Attorney
WGSF = Phoenix Wright: Ace Attorney (French Version) WGSF = Phoenix Wright: Ace Attorney (French Version)
WGSP = Phoenix Wright: Ace Attorney
WGSS = Phoenix Wright: Ace Attorney (Textos en español) WGSS = Phoenix Wright: Ace Attorney (Textos en español)
WHBE = Hubert the Teddy Bear: Winter Games WHBE = Hubert the Teddy Bear: Winter Games
WHEE = Heracles: Chariot Racing WHEE = Heracles: Chariot Racing
@ -1130,6 +1129,7 @@ WWXE = Paper Wars: Cannon Fodder
WWXP = Paper Wars Cannon Fodder WWXP = Paper Wars Cannon Fodder
WXBE = Ben 10 Alien Force The Rise of Hex WXBE = Ben 10 Alien Force The Rise of Hex
WXBP = Ben 10: Alien Force - The Rise of Hex WXBP = Ben 10: Alien Force - The Rise of Hex
WXIP = Éxito en primaria Inglés, curso 1º
WXPE = Paint Splash! WXPE = Paint Splash!
WXRE = Reel Fishing Ocean Challenge WXRE = Reel Fishing Ocean Challenge
WYIE = escapeVektor: Chapter 1 WYIE = escapeVektor: Chapter 1
@ -1262,20 +1262,13 @@ JDWP = Aero The Acrobat
JDZD = Mystic Quest Legend JDZD = Mystic Quest Legend
JDZF = Mystic Quest Legend JDZF = Mystic Quest Legend
JDZP = Mystic Quest Legend JDZP = Mystic Quest Legend
NACE = The Legend of Zelda: Ocarina of Time
NACP = The Legend of Zelda: Ocarina of Time
NAJ8 = The Legend of Zelda: Ocarina of Time (traducido al español) NAJ8 = The Legend of Zelda: Ocarina of Time (traducido al español)
NAJN = Sin and Punishment NAJN = Sin and Punishment
NAKS = Pokémon Snap
NAME = Kirby 64: The Crystal Shards NAME = Kirby 64: The Crystal Shards
NAMP = Kirby 64: The Crystal Shards
NAND = Pokémon Puzzle League
NAOE = 1080° Snowboarding NAOE = 1080° Snowboarding
NAOP = 1080°: TenEighty Snowboarding NAOP = 1080°: TenEighty Snowboarding
NARE = The Legend of Zelda: Majora's Mask NARE = The Legend of Zelda: Majora's Mask
NARP = The Legend of Zelda: Majora's Mask
NAYE = Ogre Battle 64: Person of Lordly Caliber NAYE = Ogre Battle 64: Person of Lordly Caliber
NAYM = Ogre Battle 64: Person of Lordly Caliber
LAFN = Secret Commando LAFN = Secret Commando
LAGE = Sonic the Hedgehog LAGE = Sonic the Hedgehog
LAJE = Sonic the Hedgehog 2 LAJE = Sonic the Hedgehog 2
@ -1373,7 +1366,6 @@ EBQE = Ninja Master's
EBSE = The Path of the Warrior: Art of Fighting 3 EBSE = The Path of the Warrior: Art of Fighting 3
EBSP = The Path of the Warrior: Art of Fighting 3 EBSP = The Path of the Warrior: Art of Fighting 3
ECAE = Real Bout Fatal Fury 2: The Newcomers ECAE = Real Bout Fatal Fury 2: The Newcomers
ECAP = Real Bout Fatal Fury 2: The Newcomers
ECGE = Shock Troopers: 2nd Squad ECGE = Shock Troopers: 2nd Squad
ECGP = Shock Troopers: 2nd Squad ECGP = Shock Troopers: 2nd Squad
E54P = GHOSTS'N GOBLINS E54P = GHOSTS'N GOBLINS
@ -1403,6 +1395,8 @@ HAGJ = Canal Noticias
HAGP = Canal Noticias HAGP = Canal Noticias
HAJE = Canal Opiniones HAJE = Canal Opiniones
HAJP = Canal Opiniones HAJP = Canal Opiniones
HAKE = Documentos legales/Contacto
HAKP = Contrato/Contacto
HAPE = Canal Miirame HAPE = Canal Miirame
HAPP = Canal Concursos Mii HAPP = Canal Concursos Mii
HATE = Canal Nintendo HATE = Canal Nintendo
@ -1411,12 +1405,24 @@ HAVP = Canal La fortuna te sonríe
HAWE = Metroid Prime 3 Preview HAWE = Metroid Prime 3 Preview
HAWP = Metroid Prime 3 Preview HAWP = Metroid Prime 3 Preview
HAYA = Canal Fotos HAYA = Canal Fotos
HCAJ = Band Bros. DX Speaker Channel HCAP = Canal Jam with the Band Live
HCAP = Jam with the Band Live HCCJ = Ajustes de dirección
HCFE = Canal Wii Speak HCFE = Canal Wii Speak
HCFP = Canal Wii Speak HCFP = Canal Wii Speak
HCGP = Wii e Internet
HCGX = Wii e Internet
HCLE = Netflix
HCMP = Canal Kirby TV
HCRE = The Legend of Zelda: Skyward Sword - Canal de actualización de datos de guardado HCRE = The Legend of Zelda: Skyward Sword - Canal de actualización de datos de guardado
HCRP = The Legend of Zelda: Skyward Sword - Canal de actualización de datos de guardado HCRP = The Legend of Zelda: Skyward Sword - Canal Actualización de datos
HCSP = Transferencia Wii U
HCTP = Transferencia de datos de Wii
HCYP = Manual Electrónico del Menú de Wii (Wii Mini)
RFNP = Canal Wii Fit
RFPE = Canal Wii Fit Plus
RFPP = Canal Wii Fit Plus
RGWP = Canal Rabbids
RGWX = Canal Rabbids
RMCE = Canal Mario Kart RMCE = Canal Mario Kart
RMCP = Canal Mario Kart RMCP = Canal Mario Kart
D64A = Wii64 D64A = Wii64
@ -1429,10 +1435,12 @@ DSDA = SuperDump 1.3
JODI = Canal Homebrew JODI = Canal Homebrew
LULZ = Canal Homebrew LULZ = Canal Homebrew
OHBC = Canal Homebrew OHBC = Canal Homebrew
RMCX = Canal CTGP Revolution
G3AS69 = El Señor de los Anillos: La Tercera Edad G3AS69 = El Señor de los Anillos: La Tercera Edad
G3DX6L = Carmen Sandiego: El secreto de los tambores robados G3DX6L = Carmen Sandiego: El secreto de los tambores robados
G3FS69 = TimeSplitters: Futuro Perfecto G3FS69 = TimeSplitters: Futuro Perfecto
G4MP69 = Los Sims: Toman La Calle G4MP69 = Los Sims: Toman La Calle
G4ZP69 = Los Sims 2
G8MP01 = Paper Mario: La Puerta Milenaria G8MP01 = Paper Mario: La Puerta Milenaria
G9TP52 = El Espantatiburones G9TP52 = El Espantatiburones
GAZS69 = Harry Potter y el prisionero de Azkaban GAZS69 = Harry Potter y el prisionero de Azkaban
@ -1457,7 +1465,7 @@ GLNP69 = Looney Tunes: De Nuevo En Accion
GLOS69 = El Señor de los Anillos: Las Dos Torres GLOS69 = El Señor de los Anillos: Las Dos Torres
GNES78 = Buscando a Nemo GNES78 = Buscando a Nemo
GOYS69 = GoldenEye: Agente Corrupto GOYS69 = GoldenEye: Agente Corrupto
GPQP6L = Las Supernenas: Arrasando las Salsas GPQP6L = Las Supernenas: Escabeche Mutante
GPXP01 = Pokémon Box: Rubí y Zafiro GPXP01 = Pokémon Box: Rubí y Zafiro
GQQD78 = Bob Esponja: ¡Luces, Cámara, Esponja! GQQD78 = Bob Esponja: ¡Luces, Cámara, Esponja!
GQQE78 = Bob Esponja: ¡Luces, Cámara, Esponja! GQQE78 = Bob Esponja: ¡Luces, Cámara, Esponja!
@ -1467,7 +1475,7 @@ GQQP78 = Bob Esponja: ¡Luces, Cámara, Esponja!
GQWX69 = Harry Potter: Quidditch Copa del Mundo GQWX69 = Harry Potter: Quidditch Copa del Mundo
GR9P6L = El Imperio del Fuego GR9P6L = El Imperio del Fuego
GSXS64 = Star Wars: Las Guerras Clon GSXS64 = Star Wars: Las Guerras Clon
GTYP69 = Ty, el tigre de Tasmani GTYP69 = Ty, el tigre de Tasmania
GVLP69 = Marvel Némesis: La Rebelión de los Imperfectos GVLP69 = Marvel Némesis: La Rebelión de los Imperfectos
GWHP41 = Winnie the Pooh: La Fiesta de Cumpleaños GWHP41 = Winnie the Pooh: La Fiesta de Cumpleaños
GX2S52 = X-Men Legends II: El Ascenso de Apocalipsis GX2S52 = X-Men Legends II: El Ascenso de Apocalipsis

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: FR_unique version: 20230727194148) TITLES = https://www.gametdb.com (type: Wii language: FR_unique version: 20241114210121)
R22J01 = FlingSmash R22J01 = FlingSmash
R23P52 = Barbie et les Trois Mousquetaires R23P52 = Barbie et les Trois Mousquetaires
R25PWR = LEGO Harry Potter : Années 1 à 4 R25PWR = LEGO Harry Potter : Années 1 à 4
@ -127,7 +127,7 @@ RCGP54 = Carnival: Fête Foraine
RCIP41 = Les Experts : Morts Programmées RCIP41 = Les Experts : Morts Programmées
RCKPGN = Sports Challenge : Defi Sports RCKPGN = Sports Challenge : Defi Sports
RCLP4Q = Chicken Little : Aventures Intergalactiques RCLP4Q = Chicken Little : Aventures Intergalactiques
RCOPNP = Détective Conan : Enquête RCOPNP = Détective Conan : Enquête à Mirapolis
RCVP41 = Far Cry : Vengeance RCVP41 = Far Cry : Vengeance
RCXP78 = All Star Pom-pom Girl RCXP78 = All Star Pom-pom Girl
RD4PA4 = Dance Dance Revolution : Hottest Party 2 RD4PA4 = Dance Dance Revolution : Hottest Party 2
@ -198,6 +198,7 @@ RH3P4Q = High School Musical 3 Dance! Nos Années Lycée
RH5PKM = Horse Life : Amis pour la vie RH5PKM = Horse Life : Amis pour la vie
RH6P69 = Harry Potter et le Prince de Sang-Mêlé RH6P69 = Harry Potter et le Prince de Sang-Mêlé
RH8P4F = Tomb Raider : Underworld RH8P4F = Tomb Raider : Underworld
RHAW01 = Wii Play
RHCP52 = The History Channel : Battle for the Pacific RHCP52 = The History Channel : Battle for the Pacific
RHGP6Z = Agent Hugo : Lemoon Twist RHGP6Z = Agent Hugo : Lemoon Twist
RHKP18 = Job Island RHKP18 = Job Island
@ -598,6 +599,7 @@ SINPNG = We Sing : Robbie Williams
SJ2PWR = Scooby-Doo! Panique dans la Marmite SJ2PWR = Scooby-Doo! Panique dans la Marmite
SJ9P41 = Just Dance 2 : Extra Songs SJ9P41 = Just Dance 2 : Extra Songs
SJTP41 = Just Dance : Best Of SJTP41 = Just Dance : Best Of
SJXD41 = Just Dance 4 Edition Speciale
SK4P52 = Shrek 4: Il Etait une Fin SK4P52 = Shrek 4: Il Etait une Fin
SK7PVZ = Disney Violetta : Rythme et musique SK7PVZ = Disney Violetta : Rythme et musique
SK7XVZ = Disney Violetta : Rythme et musique SK7XVZ = Disney Violetta : Rythme et musique
@ -616,7 +618,7 @@ SMBP8P = Super Monkey Ball : Step & Roll
SMFP4Q = Phineas et Ferb: Voyage dans la Deuxième Dimension SMFP4Q = Phineas et Ferb: Voyage dans la Deuxième Dimension
SMGP78 = Megamind SMGP78 = Megamind
SMHPNK = Marvel Super Heroes 3D SMHPNK = Marvel Super Heroes 3D
SMSP78 = Marvel Super Hero Squad SMSP78 = Marvel Super Hero Squad : Le Gant de l'Infini
SN4XGT = Naruto Shippuden : Dragon Blade Chronicles SN4XGT = Naruto Shippuden : Dragon Blade Chronicles
SNBP41 = NCIS: Adapté de la série TV SNBP41 = NCIS: Adapté de la série TV
SNHP69 = Need for Speed SNHP69 = Need for Speed
@ -687,14 +689,13 @@ RMCE88 = Le Mario Kare Deluxa por jatras
RMCJ91 = Wiimms Mario Kart Fun 2021-09 Reservé RMCJ91 = Wiimms Mario Kart Fun 2021-09 Reservé
RMCK91 = Wiimms Mario Kart Fun 2021-09 Reservé RMCK91 = Wiimms Mario Kart Fun 2021-09 Reservé
RMCP91 = Wiimms Mario Kart Fun 2021-09 Réservé RMCP91 = Wiimms Mario Kart Fun 2021-09 Réservé
RMCPCA = Mario Kart Wii (traduction en catalan) RZDPCA = The Legend of Zelda: Twilight Princess (traduction catalane)
SBOD3Q = StarSing : Chansons Magiques de Disney v1.1 SBOD3Q = StarSing : Chansons Magiques de Disney v1.1
SILP4Q = SingItStar Latino SILP4Q = SingItStar Latino
SNBE66 = Nouveau Super Mario Bros. Wii Apocalypse SNBE66 = Nouveau Super Mario Bros. Wii Apocalypse
W2CP = Cérébral Challenge W2CP = Cérébral Challenge
W2FP = Entrainement d'équilibre Physiofun W2FP = Entrainement d'équilibre Physiofun
W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version) W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version)
W2GF = Phoenix Wright: Ace Attorney: Justice for All
W2GP = Phoenix Wright Ace Attorney : Justice for All W2GP = Phoenix Wright Ace Attorney : Justice for All
W2MP = Blaster Master Overdrive W2MP = Blaster Master Overdrive
W2PP = Programme de rééducation du périnée Physiofun W2PP = Programme de rééducation du périnée Physiofun
@ -707,10 +708,6 @@ W3MP = Les Trois Mousquetaires : Tous pour un!
W44P = Stop Stress : A Day of Fury W44P = Stop Stress : A Day of Fury
W4AP = Arcade Sports : Air Hockey, Bowling, Pool, Snooker W4AP = Arcade Sports : Air Hockey, Bowling, Pool, Snooker
W6BP = Eco-Shooter: Plant 530 W6BP = Eco-Shooter: Plant 530
W72P = Successfully Learning German Year 3
W73P = Successfully Learning German Year 4
W74P = Successfully Learning German Year 5
W7IP = Successfully Learning German Year 2
W8CP = Bit.Trip Core W8CP = Bit.Trip Core
W8WP = Happy Holidays Halloween W8WP = Happy Holidays Halloween
W9BP = Big Town Shoot W9BP = Big Town Shoot
@ -719,8 +716,6 @@ WA4P = WarioWare : Do It Yourself - Showcase
WA7P = Toribash - La violence perfectionnée WA7P = Toribash - La violence perfectionnée
WA8P = ArtStyle: Penta Tentacles WA8P = ArtStyle: Penta Tentacles
WAEP = Around the world WAEP = Around the world
WAFP = Airport Mania: First Flight
WAHP = Trenches: Generals
WALP = Art Style : light trax WALP = Art Style : light trax
WAOP = The Very Hungry Caterpillar´s ABC WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4 : Dangeresque 3 WB2P = Strong Bad Episode 4 : Dangeresque 3
@ -761,7 +756,6 @@ WGGP = Gabrielle's Ghostly Groove: Monster Mix
WGPP = Zenquaria L'aquarium Virtuel WGPP = Zenquaria L'aquarium Virtuel
WGSE = Phoenix Wright: Ace Attorney WGSE = Phoenix Wright: Ace Attorney
WGSF = Phoenix Wright: Ace Attorney (French Version) WGSF = Phoenix Wright: Ace Attorney (French Version)
WGSP = Phoenix Wright: Ace Attorney
WHEE = Heracles : Chariot Racing WHEE = Heracles : Chariot Racing
WHEP = Heracles : Chariot Racing WHEP = Heracles : Chariot Racing
WHFP = Heavy Fire: Special Operations WHFP = Heavy Fire: Special Operations
@ -853,6 +847,7 @@ WWRP = Excitebike: World Challenge
WWXP = Paper Wars Cannon Fodder WWXP = Paper Wars Cannon Fodder
WXBE = Ben 10 Alien Force The Rise of Hex WXBE = Ben 10 Alien Force The Rise of Hex
WXBP = Ben 10 Alien Force The Rise of Hex WXBP = Ben 10 Alien Force The Rise of Hex
WXIP = Succès au primaire : Anglais, CP
WYIP = escapeVektor: Chapter 1 WYIP = escapeVektor: Chapter 1
WYSP = Yard Sale Hidden Treasures Sunnyville WYSP = Yard Sale Hidden Treasures Sunnyville
WZIP = Rubik's Puzzle Galaxy : RUSH WZIP = Rubik's Puzzle Galaxy : RUSH
@ -923,14 +918,11 @@ JDWP = Aero The Acrobat
JDZF = Mystic Quest Legend JDZF = Mystic Quest Legend
NACP = The Legend of Zelda : Ocarina of Time NACP = The Legend of Zelda : Ocarina of Time
NAJN = Sin and Punishment NAJN = Sin and Punishment
NAKS = Pokémon Snap
NAME = Kirby 64 : The Crystal Shards NAME = Kirby 64 : The Crystal Shards
NAMP = Kirby 64 : The Crystal Shards NAMP = Kirby 64 : The Crystal Shards
NAND = Pokémon Puzzle League
NAOP = 1080°: TenEighty Snowboarding NAOP = 1080°: TenEighty Snowboarding
NARP = The Legend of Zelda : Majora's Mask NARP = The Legend of Zelda : Majora's Mask
NAYE = Ogre Battle 64: Person of Lordly Caliber NAYE = Ogre Battle 64: Person of Lordly Caliber
NAYM = Ogre Battle 64: Person of Lordly Caliber
LALP = Fantasy Zone II LALP = Fantasy Zone II
LANP = Alex Kidd: The Lost Stars LANP = Alex Kidd: The Lost Stars
LAPP = Wonder Boy III: The Dragon's Trap LAPP = Wonder Boy III: The Dragon's Trap
@ -990,7 +982,6 @@ EASE = Samurai Shodown 2
EBDP = Magical Drop 3 EBDP = Magical Drop 3
EBFP = Spin master EBFP = Spin master
EBSP = The Path of the Warrior: Art of Fighting 3 EBSP = The Path of the Warrior: Art of Fighting 3
ECAP = Real Bout Fatal Fury 2: The Newcomers
ECGP = Shock Troopers: 2nd Squad ECGP = Shock Troopers: 2nd Squad
E54P = GHOSTS'N GOBLINS E54P = GHOSTS'N GOBLINS
E55P = Commando E55P = Commando
@ -1006,30 +997,38 @@ HACK = Chaîne Mii
HADE = Chaîne Internet HADE = Chaîne Internet
HADP = Chaîne Internet HADP = Chaîne Internet
HAFA = Chaîne météo HAFA = Chaîne météo
HAFE = Chaîne météo
HAFP = Chaîne météo HAFP = Chaîne météo
HAGA = Chaîne infos HAGA = Chaîne infos
HAGE = Chaîne infos HAGE = Chaîne infos
HAGJ = Chaîne infos HAGJ = Chaîne infos
HAGP = Chaîne infos HAGP = Chaîne infos
HAJP = Chaîne votes HAJP = Chaîne votes
HAKE = Documents légaux/Contact
HAKP = Contrat/Contact
HAPE = Chaîne Regardez-Mii HAPE = Chaîne Regardez-Mii
HAPP = Chaîne concours Mii HAPP = Chaîne concours Mii
HATE = Chaîne Nintendo
HATP = Chaîne Nintendo HATP = Chaîne Nintendo
HAVP = Chaîne jour de chance HAVP = Chaîne jour de chance
HAWP = Metroid Prime 3 Preview HAWP = Metroid Prime 3 Preview
HAYA = Chaîne photos HAYA = Chaîne photos
HAYK = Chaîne Photo HAYK = Chaîne Photo
HCAP = Jam with the Band Live HCAP = Chaîne Jam with the Band Live
HCCJ = Paramètres d'adresse
HCFE = Chaîne Wii Speak HCFE = Chaîne Wii Speak
HCFP = Chaîne Wii Speak HCFP = Chaîne Wii Speak
HCGP = Wii et Internet
HCMP = Chaîne Kirby TV HCMP = Chaîne Kirby TV
HCRE = The Legend of Zelda: Skyward Sword - Chaîne mise à jour des données HCRE = The Legend of Zelda: Skyward Sword - Chaîne mise à jour des données
HCRP = The Legend of Zelda: Skyward Sword - Chaîne mise à jour des données HCRP = The Legend of Zelda: Skyward Sword - Chaîne mise à jour des données
RFPE = Chaîne Wii Fit Plus
RFPP = Chaîne Wii Fit Plus
RMCE = Chaîne Mario Kart RMCE = Chaîne Mario Kart
RMCP = Chaîne Mario Kart RMCP = Chaîne Mario Kart
DNUA = Donut Wii DNUA = Donut Wii
OHBC = Chaîne Homebrew OHBC = Chaîne Homebrew
RMCX = Chaîne Mario Kart Wii CTGP Revolution RMCX = Chaîne CTGP Revolution
G2FF78 = Tak 2: Le Sceptre des Rêves G2FF78 = Tak 2: Le Sceptre des Rêves
G3AF69 = Le Seigneur des Anneaux: Le Tiers Âge G3AF69 = Le Seigneur des Anneaux: Le Tiers Âge
G3DP6L = Carmen Sandiego : Le Secret des Tam-Tams Volés G3DP6L = Carmen Sandiego : Le Secret des Tam-Tams Volés
@ -1057,7 +1056,6 @@ GENF69 = James Bond 007: Quitte ou Double
GF4F52 = Les 4 Fantastiques GF4F52 = Les 4 Fantastiques
GFHP6V = Un Voisin d'Enfer! GFHP6V = Un Voisin d'Enfer!
GFSF69 = Coupe du Monde FIFA 2002 GFSF69 = Coupe du Monde FIFA 2002
GGVX78 = Bob l'Eponge : Le Film
GH2P69 = Need for Speed : Poursuite Infernale 2 GH2P69 = Need for Speed : Poursuite Infernale 2
GH4F69 = Harry Potter et la Coupe de Feu GH4F69 = Harry Potter et la Coupe de Feu
GH5F52 = Nos Voisins, les Hommes GH5F52 = Nos Voisins, les Hommes

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: IT_unique version: 20230727194156) TITLES = https://www.gametdb.com (type: Wii language: IT_unique version: 20241114210129)
R23P52 = Barbie e le Tre Moschettiere R23P52 = Barbie e le Tre Moschettiere
R25PWR = LEGO Harry Potter: Anni 1-4 R25PWR = LEGO Harry Potter: Anni 1-4
R2AP7D = L'Era Glaciale 2: Il Disgelo R2AP7D = L'Era Glaciale 2: Il Disgelo
@ -298,6 +298,7 @@ SIAI52 = L'Era Glaciale 4: Continenti alla Deriva - Giochi Polari
SIIP8P = Mario & Sonic ai Giochi Olimpici di Londra 2012 SIIP8P = Mario & Sonic ai Giochi Olimpici di Londra 2012
SJ2PWR = Scooby-Doo! e la palude del mistero SJ2PWR = Scooby-Doo! e la palude del mistero
SJ9P41 = Just Dance 2 - Extra Songs SJ9P41 = Just Dance 2 - Extra Songs
SJXD41 = Just Dance 4 Edizione Speciale
SK4I52 = Shrek e vissero felici e contenti SK4I52 = Shrek e vissero felici e contenti
SK4P52 = Shrek: E Vissero Felici E Contenti SK4P52 = Shrek: E Vissero Felici E Contenti
SK7PVZ = Disney Violetta: Musica e Ritmo SK7PVZ = Disney Violetta: Musica e Ritmo
@ -356,40 +357,29 @@ G01E01 = Super Smash Bros. Melee: Remix SD
MILPSI = SingItStar Miliki MILPSI = SingItStar Miliki
R15POH = SingItStar Radio 105 R15POH = SingItStar Radio 105
RGGE52 = Guitar Hero III Custom: Rock The Games RGGE52 = Guitar Hero III Custom: Rock The Games
RMCPCA = Mario Kart Wii (traduzione in catalano)
RSJESD = Guitar Hero III Custom: System Of A Down RSJESD = Guitar Hero III Custom: System Of A Down
RZDPCA = The Legend of Zelda: Twilight Princess (traduzione in catalano)
S02PES = SingItStar 90's S02PES = SingItStar 90's
SILP4Q = Sing It: Latino SILP4Q = Sing It: Latino
SP9P4Q = SingItStar POP 2009 SP9P4Q = SingItStar POP 2009
WFFF4I = Fatal Frame 4: La Maschera dell'eclissi lunare WFFF4I = Fatal Frame 4: La Maschera dell'eclissi lunare
W2CP = Brain Challenge L'Allena-Mente W2CP = Brain Challenge L'Allena-Mente
W2FP = Physiofun - Balance Training W2FP = Physiofun: Balance Training
W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version) W2GD = Phoenix Wright Ace Attorney: Justice for All (Deutsche Version)
W2GI = Phoenix Wright: Ace Attorney: Justice for All W2GI = Phoenix Wright: Ace Attorney: Justice for All
W2GP = Phoenix Wright Ace Attorney: Justice for All W2GP = Phoenix Wright Ace Attorney: Justice for All
W2MP = Blaster Master: Overdrive
W2PP = Physiofun: Pelvic Floor Training W2PP = Physiofun: Pelvic Floor Training
W3GI = Phoenix Wright: Ace Attorney: Trials and Tribulations W3GI = Phoenix Wright: Ace Attorney: Trials and Tribulations
W3KP = ThruSpace: High Velocity 3D Puzzle
W3MP = I Tre Moschettieri Uno per tutti! W3MP = I Tre Moschettieri Uno per tutti!
W44P = Stop Stress: A Day of Fury
W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker
W6BP = 530 ECO SHOOTER W6BP = 530 ECO SHOOTER
W72P = Successfully Learning German Year 3
W73P = Successfully Learning German Year 4
W74P = Successfully Learning German Year 5
W7IP = Successfully Learning German Year 2
W8CP = Bit.Trip Core W8CP = Bit.Trip Core
W8WP = Happy Holidays Halloween W8WP = Happy Holidays Halloween
W9BP = Big Town Shoot W9BP = Big Town Shoot
W9RP = Happy Holidays Christmas W9RP = Happy Holidays Christmas
WA4P = WarioWare: Do It Yourself - Showcase WA4P = WarioWare: Do It Yourself - Showcase
WA7P = Toribash Violence Perfected
WA8P = Art Style: Penta Tentacles WA8P = Art Style: Penta Tentacles
WAEP = Around the world WAEP = Around the world
WAFP = Airport Mania: First Flight
WAHP = Trenches: Generals
WALP = Art Style: light trax
WAOP = The Very Hungry Caterpillar´s ABC WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4: Dangeresque 3 WB2P = Strong Bad Episode 4: Dangeresque 3
WB3P = Strong Bad Episode 5: 8-bit is Enough WB3P = Strong Bad Episode 5: 8-bit is Enough
@ -423,8 +413,6 @@ WGFP = Girlfriends Forever: Magic Skate
WGGP = Gabrielle's Ghostly Groove: Monster Mix WGGP = Gabrielle's Ghostly Groove: Monster Mix
WGPP = Zenquaria™: Acquario virtuale WGPP = Zenquaria™: Acquario virtuale
WGSF = Phoenix Wright: Ace Attorney (French Version) WGSF = Phoenix Wright: Ace Attorney (French Version)
WGSI = Phoenix Wright: Ace Attorney
WGSP = Phoenix Wright: Ace Attorney
WHEP = Heracles: Chariot Racing WHEP = Heracles: Chariot Racing
WHFP = Heavy Fire: Special Operations WHFP = Heavy Fire: Special Operations
WHRP = Heron: Steam Machine WHRP = Heron: Steam Machine
@ -557,12 +545,7 @@ JDLP = Super Star Wars: Return of the Jedi
JDWP = Aero The Acrobat JDWP = Aero The Acrobat
JDZP = Mystic Quest Legend JDZP = Mystic Quest Legend
JECM = CHRONO TRIGGER JECM = CHRONO TRIGGER
NACP = The Legend of Zelda: Ocarina of Time
NAKS = Pokémon Snap
NAMP = Kirby 64: The Crystal Shards
NAOP = 1080°: TenEighty Snowboarding NAOP = 1080°: TenEighty Snowboarding
NARP = The Legend of Zelda: Majora's Mask
NAYM = Ogre Battle 64: Person of Lordly Caliber
LALP = Fantasy Zone II LALP = Fantasy Zone II
LANP = Alex Kidd: The Lost Stars LANP = Alex Kidd: The Lost Stars
LAPP = Wonder Boy III: The Dragon's Trap LAPP = Wonder Boy III: The Dragon's Trap
@ -615,7 +598,6 @@ EAIP = Top Hunter
EBDP = Magical Drop 3 EBDP = Magical Drop 3
EBFP = Spin master EBFP = Spin master
EBSP = The Path of the Warrior: Art of Fighting 3 EBSP = The Path of the Warrior: Art of Fighting 3
ECAP = Real Bout Fatal Fury 2: The Newcomers
ECGP = Shock Troopers: 2nd Squad ECGP = Shock Troopers: 2nd Squad
E54P = GHOSTS'N GOBLINS E54P = GHOSTS'N GOBLINS
E55P = Wolf of the Battlefield: Commando E55P = Wolf of the Battlefield: Commando
@ -631,20 +613,24 @@ HADE = Canale Internet
HADP = Canale Internet HADP = Canale Internet
HAFP = Canale Meteo HAFP = Canale Meteo
HAGA = Canale Notizie HAGA = Canale Notizie
HAGE = Canale Notizie
HAGJ = Canale Notizie HAGJ = Canale Notizie
HAGP = Canale Notizie HAGP = Canale Notizie
HAJP = Canale Vota Anche Tu HAJP = Canale Vota Anche Tu
HAKP = Accordo/Contatto
HAPP = Canale Concorsi Mii HAPP = Canale Concorsi Mii
HATP = Canale Nintendo HATP = Canale Nintendo
HAVP = Canal La fortuna ti sorride HAVP = Canale La fortuna ti sorride
HAWP = Metroid Prime 3 Preview HAWP = Metroid Prime 3 Preview
HAYA = Canale Foto HAYA = Canale Foto
HCAP = Canale Jam with the Band Live
HCCJ = Impostazioni indirizzo
HCFE = Canale Wii Speak HCFE = Canale Wii Speak
HCFP = Canale Wii Speak HCFP = Canale Wii Speak
HCGP = Wii e Internet
HCMP = Canale TV Kirby HCMP = Canale TV Kirby
HCRE = The Legend of Zelda: Skyward Sword - Canale Aggrioornamento dati di HCRE = The Legend of Zelda: Skyward Sword - Canale Aggrioornamento dati di
HCRP = The Legend of Zelda: Skyward Sword - Canale Aggrioornamento dati di HCRP = The Legend of Zelda: Skyward Sword - Canale Aggrioornamento dati di
RFPP = Canale Wii Fit Plus
RMCP = Canale Mario Kart RMCP = Canale Mario Kart
JODI = Canale Homebrew JODI = Canale Homebrew
LULZ = Canale Homebrew LULZ = Canale Homebrew

View file

@ -1,6 +1,7 @@
TITLES = https://www.gametdb.com (type: Wii language: JA_unique version: 20240420135206) TITLES = https://www.gametdb.com (type: Wii language: JA_unique version: 20241114210137)
D2AJAF = みんなで冒険!ファミリートレーナー 体験版 D2AJAF = みんなで冒険!ファミリートレーナー 体験版
DCHJAF = WE CHEER: おはスタプロデュース!限定コラボゲームディスク DCHJAF = WE CHEER: おはスタプロデュース!限定コラボゲームディスク
DFNJ01 = Wiiフィット 体験版
DHHJ8J = 平野綾 Premiumムービーディスク from 涼宮ハルヒの激動 DHHJ8J = 平野綾 Premiumムービーディスク from 涼宮ハルヒの激動
DK6J18 = コロリンパ2 -アンソニーと黃金のひまわりのタネ- DK6J18 = コロリンパ2 -アンソニーと黃金のひまわりのタネ-
DMHJ08 = モンスターハンター 3 -tri- (Demo) DMHJ08 = モンスターハンター 3 -tri- (Demo)
@ -396,6 +397,7 @@ S5KJAF = 太鼓の達人Wii 超ごうか版
S5QJC8 = 戦国無双 3 猛将伝 S5QJC8 = 戦国無双 3 猛将伝
S5SJHF = イナズマイレブンGO ストライカーズ 2013 S5SJHF = イナズマイレブンGO ストライカーズ 2013
S6TJGD = ドラゴンクエストX オールインワンパッケージ S6TJGD = ドラゴンクエストX オールインワンパッケージ
S72E01 = 星のカービィ 20周年スペシャルコレクション
S72J01 = 星のカービィ 20周年スペシャルコレクション S72J01 = 星のカービィ 20周年スペシャルコレクション
S7CJAF = 仮面ライダー クライマックスヒーローズ フォーゼ S7CJAF = 仮面ライダー クライマックスヒーローズ フォーゼ
SAAJA4 = ウイニングイレブン プレーメーカー 2013 SAAJA4 = ウイニングイレブン プレーメーカー 2013
@ -500,6 +502,7 @@ STKJ08 = タツノコ VS.カプコン アルティメットオール・スター
STQJHF = イナズマイレブン ストライカーズ STQJHF = イナズマイレブン ストライカーズ
SUKE01 = 星のカービィWii SUKE01 = 星のカービィWii
SUKJ01 = 星のカービィWii SUKJ01 = 星のカービィWii
SUKP01 = 星のカービィWii
SUMJC8 = ウイニングポストワールド 2010 SUMJC8 = ウイニングポストワールド 2010
SUPJ01 = Wiiパーティー SUPJ01 = Wiiパーティー
SUXJA4 = ウイニングイレブン プレーメーカー 2010 SUXJA4 = ウイニングイレブン プレーメーカー 2010
@ -587,7 +590,7 @@ WBAJ = バクたん
WBBJ = ボードウォリアーズ WBBJ = ボードウォリアーズ
WBJJ = 牧場物語シリーズ まきばのおみせ WBJJ = 牧場物語シリーズ まきばのおみせ
WBKJ = ARKANOID Plus WBKJ = ARKANOID Plus
WBLJ = BUBBLE BOBBLE Wii WBLJ = バブルボブルWii
WBMJ = みんなのポケモン牧場 プラチナ対応版 WBMJ = みんなのポケモン牧場 プラチナ対応版
WBNJ = 盆栽バーバー WBNJ = 盆栽バーバー
WBSJ = POP ~ポップ~ WBSJ = POP ~ポップ~
@ -760,7 +763,7 @@ WZJJ = @SIMPLEシリーズ Vol.5 THE 柔道
WZMJ = @SIMPLEシリーズ Vol.3 THE 麻雀 WZMJ = @SIMPLEシリーズ Vol.3 THE 麻雀
WZPJ = ゾンビ イン ワンダーランド WZPJ = ゾンビ イン ワンダーランド
WZZJ = くまなげ ~ピイナの好きな赤いキャンディ パズル編~ WZZJ = くまなげ ~ピイナの好きな赤いキャンディ パズル編~
XHCJ = 光と闇の姫君と世界征服の塔 -FINAL FANTASY CHRISTAL CHRONICLES- (Demo) XHCJ = 光と闇の姫君と世界征服の塔 -FINAL FANTASY CRYSTAL CHRONICLES- (Demo)
XHEJ = BIT.TRIP BEAT (Demo) XHEJ = BIT.TRIP BEAT (Demo)
XHFJ = グーの惑星 (Demo) XHFJ = グーの惑星 (Demo)
XHHJ = ポケモン不思議のダンジョン めざせ!光の冒険団 (Demo) XHHJ = ポケモン不思議のダンジョン めざせ!光の冒険団 (Demo)
@ -1003,6 +1006,7 @@ JCYJ = 大航海時代Ⅱ
JCZJ = スーパー蒼き狼と白き牝鹿 元朝秘史 JCZJ = スーパー蒼き狼と白き牝鹿 元朝秘史
JD2J = 美少女雀士 スーチーパイ JD2J = 美少女雀士 スーチーパイ
JD3J = SUPER E.D.F. EARTH DEFENSE FORCE JD3J = SUPER E.D.F. EARTH DEFENSE FORCE
JD4J = ラッシングビート
JD5J = ラッシング・ビート 乱 複製都市 JD5J = ラッシング・ビート 乱 複製都市
JD6J = ファイヤー・ファイティング JD6J = ファイヤー・ファイティング
JD7J = 高橋名人の大冒険島 JD7J = 高橋名人の大冒険島
@ -1718,7 +1722,9 @@ GKRJB2 = ケロケロキングDX
GKTJA4 = キャプテン翼 ~黄金世代の挑戦~ GKTJA4 = キャプテン翼 ~黄金世代の挑戦~
GKWJ18 = ドリームミックスTV ワールドファイターズ GKWJ18 = ドリームミックスTV ワールドファイターズ
GKXJE7 = 極・麻雀DXⅡ The 4th MONDO21Cup GKXJE7 = 極・麻雀DXⅡ The 4th MONDO21Cup
GKYE01 = カービィのエアライド
GKYJ01 = カービィのエアライド GKYJ01 = カービィのエアライド
GKYP01 = カービィのエアライド
GL3JE8 = ルパン三世:海に消えた秘宝 GL3JE8 = ルパン三世:海に消えた秘宝
GLEJ08 = バイオハザード 3 ラストエスケープ GLEJ08 = バイオハザード 3 ラストエスケープ
GLIJA7 = SPECIAL人生ゲーム GLIJA7 = SPECIAL人生ゲーム
@ -1830,7 +1836,9 @@ GYBJ01 = ドンキーコング ジャングルビート
GYFJA4 = 遊戯王 フォルスバウンドキングダム 虚構に閉ざされた王国 GYFJA4 = 遊戯王 フォルスバウンドキングダム 虚構に閉ざされた王国
GYKJB2 = 金色のガッシュベル!! 友情タッグバトル2 GYKJB2 = 金色のガッシュベル!! 友情タッグバトル2
GYMJA4 = 実況パワフルメジャーリーグ GYMJA4 = 実況パワフルメジャーリーグ
GYQE01 = スーパーマリオスタジアム ミラクルベースボール
GYQJ01 = スーパーマリオスタジアム ミラクルベースボール GYQJ01 = スーパーマリオスタジアム ミラクルベースボール
GYQP01 = スーパーマリオスタジアム ミラクルベースボール
GYWJ99 = 牧場物語 ワンダフルライフ GYWJ99 = 牧場物語 ワンダフルライフ
GZ2J01 = ゼルダの伝説 トワイライトプリンセス [GC] GZ2J01 = ゼルダの伝説 トワイライトプリンセス [GC]
GZBJB2 = ドラゴンボールZ GZBJB2 = ドラゴンボールZ

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: KO_unique version: 20230727194210) TITLES = https://www.gametdb.com (type: Wii language: KO_unique version: 20241114210146)
091E00 = 영화 채널 설치 디스크 Ver. A 091E00 = 영화 채널 설치 디스크 Ver. A
410E01 = Wii 백업 디스크 v1.31 410E01 = Wii 백업 디스크 v1.31
413E01 = 디스크업데이트 디스크 413E01 = 디스크업데이트 디스크
@ -31,7 +31,6 @@ DQGP69 = 마이심즈 레이싱 체험판
DRME18 = 룸즈: 메인 빌딩 체험판 DRME18 = 룸즈: 메인 빌딩 체험판
DSFE7U = 무라마사: 데몬 블레이드 체험판 DSFE7U = 무라마사: 데몬 블레이드 체험판
DSRJ8P = 소닉과 비밀의 링 체험판 DSRJ8P = 소닉과 비밀의 링 체험판
DTOJ8P = 428: 봉쇄된 시부야에서 체험판
DTZJ08 = 보물섬 Z 발바로스의 보물 체험판 DTZJ08 = 보물섬 Z 발바로스의 보물 체험판
DWEJA4 = 위닝 일레븐 플레이 메이커 2008 체험판 DWEJA4 = 위닝 일레븐 플레이 메이커 2008 체험판
DWEPA4 = 프로 에볼루션 사커 2008 체험판 DWEPA4 = 프로 에볼루션 사커 2008 체험판
@ -134,12 +133,12 @@ R3JE5G = 고 플레이 써커스 스타
R3KP6N = 고층 건물 R3KP6N = 고층 건물
R3LEWR = 그린 랜턴: 반지의 선택 R3LEWR = 그린 랜턴: 반지의 선택
R3LPWR = 그린 랜턴: 맨헌터의 위협 R3LPWR = 그린 랜턴: 맨헌터의 위협
R3ME01 = 메트로이드 프라임: 3부작 R3ME01 = 메트로이드 프라임 트릴로지
R3MP01 = 메트로이드 프라임: 3부작 R3MP01 = 메트로이드 프라임 트릴로지
R3NEXS = 길티기어 이그젝스 액센트 코어 플러스 R3NEXS = 길티기어 이그젝스 액센트 코어 플러스
R3NPH3 = 길티기어 이그젝스 액센트 코어 플러스 R3NPH3 = 길티기어 이그젝스 액센트 코어 플러스
R3OE01 = 메트로이드: 다른 M R3OE01 = 메트로이드: 다른 M
R3OJ01 = 메트로이드: 다른 M R3OJ01 = 메트로이드: 다른 M
R3OP01 = 메트로이드: 다른 M R3OP01 = 메트로이드: 다른 M
R3PEWR = 스피드 레이서: 비디오게임 R3PEWR = 스피드 레이서: 비디오게임
R3PJ52 = 스피드 레이서 R3PJ52 = 스피드 레이서
@ -445,10 +444,10 @@ R92J01 = Wii로 즐기는 피크민 2
R92P01 = 피크민 2 R92P01 = 피크민 2
R94PMR = 얼티밋 레드 볼 첼린지 R94PMR = 얼티밋 레드 볼 첼린지
R94XMR = 얼티밋 레드 볼 첼린지 R94XMR = 얼티밋 레드 볼 첼린지
R96EAF = 바람의 크로노아 - 판토마일의 문 R96EAF = 바람의 크로노아 Door to Phantomile
R96JAF = 바람의 크로노아 - 판토마일의 문 R96JAF = 바람의 크로노아 Door to Phantomile
R96KAF = 바람의 크로노아: 판토마일의 문 R96KAF = 바람의 크로노아 Door to Phantomile
R96PAF = 바람의 크로노아 - 판토마일의 문 R96PAF = 바람의 크로노아 Door to Phantomile
R97E9B = 패밀리 펀 풋볼 R97E9B = 패밀리 펀 풋볼
R9AE52 = 엑티비젼 데모 액션 팩 체험판 R9AE52 = 엑티비젼 데모 액션 팩 체험판
R9BPMT = 뚝딱뚝딱 밥아저씨: 즐거운 축제 R9BPMT = 뚝딱뚝딱 밥아저씨: 즐거운 축제
@ -500,8 +499,8 @@ RB4X08 = 레지던트 이블 4: Wii 에디션
RB5E41 = 브라더스 인 암즈: 언드 인 블러드 RB5E41 = 브라더스 인 암즈: 언드 인 블러드
RB5P41 = 브라더스 인 암즈: 언드 인 블러드 RB5P41 = 브라더스 인 암즈: 언드 인 블러드
RB6J18 = 봄버맨 RB6J18 = 봄버맨
RB7E54 = 불리: 장학금 에디션 RB7E54 = 불리: 스칼라쉽 에디션
RB7P54 = 불리: 장학금 에디션 RB7P54 = 불리: 스칼라쉽 에디션
RB8E70 = 백야드 야구 '09 RB8E70 = 백야드 야구 '09
RB9D78 = 브라츠: 영화 RB9D78 = 브라츠: 영화
RB9E78 = 브라츠: 영화 RB9E78 = 브라츠: 영화
@ -576,7 +575,7 @@ RC3E41 = 애완동물 고양이들 2
RC3J41 = 고양이와 마법의 모자 RC3J41 = 고양이와 마법의 모자
RC3P41 = 고양이들 RC3P41 = 고양이들
RC3X41 = 고양이들 RC3X41 = 고양이들
RC4JD9 = 크레용 신 짱: 최강 가족 카스카베 Wii RC4JD9 = 크레용 신 짱: 최강 가족 카스카베 Wii
RC4SGT = 짱구는 못말려: 새로운 모험 Wii RC4SGT = 짱구는 못말려: 새로운 모험 Wii
RC5JDQ = 청소 전대 크린 키퍼 RC5JDQ = 청소 전대 크린 키퍼
RC7E20 = 바다 몬스터들: 선사시대 모험 RC7E20 = 바다 몬스터들: 선사시대 모험
@ -618,7 +617,7 @@ RCLE4Q = 디즈니의 치킨 리틀: 액션 에이스
RCLP4Q = 디즈니의 치킨 리틀: 액션 에이스 RCLP4Q = 디즈니의 치킨 리틀: 액션 에이스
RCOJ99 = 명탐정 코난: 추억의 환상 RCOJ99 = 명탐정 코난: 추억의 환상
RCOK99 = 명탐정 코난: 추억의 환상 RCOK99 = 명탐정 코난: 추억의 환상
RCOKZF = 명탐정 홈즈 추억의 환상 RCOKZF = 명탐정 코난: 추억의 환상
RCOPNP = 명탐정 코난: 추억의 환상 RCOPNP = 명탐정 코난: 추억의 환상
RCPE18 = 코로린파: 구슬 매니아 RCPE18 = 코로린파: 구슬 매니아
RCPJ18 = 코로린파 RCPJ18 = 코로린파
@ -1095,10 +1094,10 @@ RK2JEB = 트라우마 센터: 새로운 피
RK2P01 = 트라우마 센터: 새로운 피 RK2P01 = 트라우마 센터: 새로운 피
RK3J01 = 앤드 검색 RK3J01 = 앤드 검색
RK4JAF = 결계사: 흑망루의 그림자 RK4JAF = 결계사: 흑망루의 그림자
RK5E01 = 털실 커비 이야기 RK5E01 = 털실 커비 이야기
RK5J01 = 털실 커비 이야기 RK5J01 = 털실 커비 이야기
RK5K01 = 털실 커비 이야기 RK5K01 = 털실 커비 이야기
RK5P01 = 털실 커비 이야기 RK5P01 = 털실 커비 이야기
RK6E18 = 구슬 이야기: 코로린파 RK6E18 = 구슬 이야기: 코로린파
RK6J18 = 코로린파 2 - 앤써니와 황금 해바라기 씨앗 RK6J18 = 코로린파 2 - 앤써니와 황금 해바라기 씨앗
RK6P18 = 마블! 균형 도전 RK6P18 = 마블! 균형 도전
@ -1255,12 +1254,11 @@ RM9PGM = 버섯맨: 포자 대전
RMAE01 = 마리오 파워 테니스 RMAE01 = 마리오 파워 테니스
RMAJ01 = Wii로 즐기는 마리오 테니스 GC RMAJ01 = Wii로 즐기는 마리오 테니스 GC
RMAP01 = 마리오 파워 테니스 RMAP01 = 마리오 파워 테니스
RMBE01 = 마리오 슈퍼 강타자들 RMBE01 = 마리오 슈퍼 슬러거즈
RMBJ01 = 슈퍼 마리오 스타디움 패밀리 야구 RMBJ01 = 슈퍼 마리오 스타디움 패밀리 베이스볼
RMCE01 = 마리오 카트 Wii RMCE01 = 마리오 카트 Wii
RMCJ01 = 마리오 카트 Wii RMCJ01 = 마리오 카트 Wii
RMCK01 = 마리오 카트 Wii RMCK01 = 마리오 카트 Wii
RMCK50 = Wiimms 마리오 카트-텍스쳐즈 2022-12.한국
RMCKBR = 마리오 카트 Brown RMCKBR = 마리오 카트 Brown
RMCP01 = 마리오 카트 Wii RMCP01 = 마리오 카트 Wii
RMDE69 = 매든 NFL 07 RMDE69 = 매든 NFL 07
@ -1302,7 +1300,7 @@ RMRXNK = 코코토 매직 써커스
RMSE52 = 마벨: 얼티밋 얼라이언스 2 RMSE52 = 마벨: 얼티밋 얼라이언스 2
RMSP52 = 마벨: 얼티밋 얼라이언스 2 RMSP52 = 마벨: 얼티밋 얼라이언스 2
RMTJ18 = 모모타로 전철 16 홋카이도 대이동의 권! RMTJ18 = 모모타로 전철 16 홋카이도 대이동의 권!
RMUE52 = 마: 얼티밋 얼라이언스 RMUE52 = 마: 얼티밋 얼라이언스
RMUJ2K = 마벨: 얼티밋 얼라이언스 RMUJ2K = 마벨: 얼티밋 얼라이언스
RMUP52 = 마벨: 얼티밋 얼라이언스 RMUP52 = 마벨: 얼티밋 얼라이언스
RMVE69 = 메달 오브 아너: 선봉 RMVE69 = 메달 오브 아너: 선봉
@ -1671,7 +1669,7 @@ RS3P52 = 스파이더맨 3
RS3X52 = 스파이더맨 3 RS3X52 = 스파이더맨 3
RS4EXS = 식신의 성 III RS4EXS = 식신의 성 III
RS4JJF = 식신의 성 III RS4JJF = 식신의 성 III
RS4PXS = 식신의 성 III RS4PH3 = 식신의 성 III
RS5EC8 = 사무라이 전사들: 카타나 RS5EC8 = 사무라이 전사들: 카타나
RS5JC8 = 전국무쌍 카타나 RS5JC8 = 전국무쌍 카타나
RS5PC8 = 사무라이 전사들: 카타나 RS5PC8 = 사무라이 전사들: 카타나
@ -1684,7 +1682,7 @@ RSAE78 = 스펀지밥 - 아틀란티스
RSAP78 = 스펀지밥 - 아틀란티스 RSAP78 = 스펀지밥 - 아틀란티스
RSBE01 = 대난투 스매시 브라더스 X RSBE01 = 대난투 스매시 브라더스 X
RSBJ01 = 대난투 스매시 브라더스 X RSBJ01 = 대난투 스매시 브라더스 X
RSBK01 = 대난투 스매시 브라더스 RSBK01 = 대난투 스매시 브라더스 X
RSBP01 = 대난투 스매시 브라더스 X RSBP01 = 대난투 스매시 브라더스 X
RSCD7D = 스카페이스: 세상은 너의 것 RSCD7D = 스카페이스: 세상은 너의 것
RSCE7D = 스카페이스: 세상은 너의 것 RSCE7D = 스카페이스: 세상은 너의 것
@ -1708,10 +1706,10 @@ RSJP41 = 파검: 기사단의 그림자 (감독판)
RSKE52 = 슈렉 3 RSKE52 = 슈렉 3
RSKP52 = 슈렉 3 RSKP52 = 슈렉 3
RSKX52 = 슈렉 3 RSKX52 = 슈렉 3
RSLEAF = 소울 칼리버: 전설들 RSLEAF = 소울 칼리버 레전즈
RSLJAF = 소울 칼리버: 전설들 RSLJAF = 소울 칼리버 레전즈
RSLKAF = 소울칼리버: 전설들 RSLKAF = 소울 칼리버 레전즈
RSLPAF = 소울 칼리버: 전설들 RSLPAF = 소울 칼리버 레전즈
RSME8P = 슈퍼 몽키 볼: 바나나 블리츠 RSME8P = 슈퍼 몽키 볼: 바나나 블리츠
RSMJ8P = 슈퍼 몽키 볼: 우키 우키 파티 대집합 RSMJ8P = 슈퍼 몽키 볼: 우키 우키 파티 대집합
RSMP8P = 슈퍼 몽키 볼: 바나나 블리츠 RSMP8P = 슈퍼 몽키 볼: 바나나 블리츠
@ -1788,10 +1786,10 @@ RTDK8M = 신중화대선 ~마이클과 메이메이의 모험~
RTEE78 = 파우스 & 클라우스 : 애완동물 수의사 RTEE78 = 파우스 & 클라우스 : 애완동물 수의사
RTEHMR = 실제 이야기들: 수의사 RTEHMR = 실제 이야기들: 수의사
RTEPFR = 나의 수의사 연습 RTEPFR = 나의 수의사 연습
RTFE52 = 트랜스포머: 게임 RTFE52 = 트랜스포머: 게임
RTFJ52 = 트랜스포머: 게임 RTFJ52 = 트랜스포머: 게임
RTFK52 = 트랜스포머: 더 게임 RTFK52 = 트랜스포머: 더 게임
RTFP52 = 트랜스포머: 게임 RTFP52 = 트랜스포머: 게임
RTFX52 = 트랜스포머즈: 게임 RTFX52 = 트랜스포머즈: 게임
RTFY52 = 트랜스포머즈: 게임 RTFY52 = 트랜스포머즈: 게임
RTGJ18 = 엄선 테이블 게임 Wii RTGJ18 = 엄선 테이블 게임 Wii
@ -1932,7 +1930,6 @@ RVEFMR = 알로, 슈티
RVFE20 = 빅풋: 충돌 진로 RVFE20 = 빅풋: 충돌 진로
RVFP7J = 빅풋: 충돌 진로 RVFP7J = 빅풋: 충돌 진로
RVGE78 = 머브 그리핀의 십자말풀이 RVGE78 = 머브 그리핀의 십자말풀이
RVGP78 = 마곳의 워드 브레인
RVHP41 = 스크래블 인터렉티브: 2009 에디션 RVHP41 = 스크래블 인터렉티브: 2009 에디션
RVIE4F = 바이오니클 히어로즈 RVIE4F = 바이오니클 히어로즈
RVIP4F = 바이오니클 히어로즈 RVIP4F = 바이오니클 히어로즈
@ -2345,8 +2342,8 @@ S6IP78 = 디즈니 공주들: 매혹적인 이야기 책들
S6RE52 = 주먹왕 랄프 S6RE52 = 주먹왕 랄프
S6RP52 = 주먹왕 랄프 S6RP52 = 주먹왕 랄프
S6TJGD = 드래곤 퀘스트 X (올 인 원 팩키지) S6TJGD = 드래곤 퀘스트 X (올 인 원 팩키지)
S72E01 = 커비의 꿈 컬렉션: 스페셜 에디 S72E01 = 별의 커비 20주년 스페셜 컬렉
S72J01 = 별의 커비: 20 주년 스페셜 컬렉션 S72J01 = 별의 커비 20주년 스페셜 컬렉션
S75E69 = 모노폴리 스트리츠 S75E69 = 모노폴리 스트리츠
S75P69 = 모노폴리 스트리츠 S75P69 = 모노폴리 스트리츠
S7AEWR = 레고 배트맨 2: DC 슈퍼 히어로즈 S7AEWR = 레고 배트맨 2: DC 슈퍼 히어로즈
@ -2611,7 +2608,7 @@ SESEWR = 세서미 스트리트: 레디, 세트, 그로버!
SESPWR = 세서미 스트리트: 레디, 세트, 그로버! SESPWR = 세서미 스트리트: 레디, 세트, 그로버!
SESUWR = 세서미 스트리트: 레디, 세트, 그로버! SESUWR = 세서미 스트리트: 레디, 세트, 그로버!
SEUPEY = 레트로 시티 램페이지 DX SEUPEY = 레트로 시티 램페이지 DX
SEVPEY = 강탈: 하와이 SEVPEY = 쉐이크다운: 하와이
SEZJHF = 이나즈마 일레븐 스트라이커즈 2012 익스트림 SEZJHF = 이나즈마 일레븐 스트라이커즈 2012 익스트림
SF2P64 = 스타 워즈: 해방된 포스 II SF2P64 = 스타 워즈: 해방된 포스 II
SF4E20 = 플랫아웃 SF4E20 = 플랫아웃
@ -2620,9 +2617,9 @@ SF5E41 = 핏 인 식스
SF5J41 = 핏 인 식스: 몸을 단련하는 6 가지 요소 SF5J41 = 핏 인 식스: 몸을 단련하는 6 가지 요소
SF5P41 = 나의 피트니스 코치: 클럽 SF5P41 = 나의 피트니스 코치: 클럽
SF7E41 = 패밀리 Feud 2012 에디션 SF7E41 = 패밀리 Feud 2012 에디션
SF8E01 = 동키 콩: 컨트리 리턴즈 SF8E01 = 동키 리턴즈
SF8J01 = 동키콩 리턴즈 SF8J01 = 동키콩 리턴즈
SF8P01 = 동키 콩: 컨트리 리턴즈 SF8P01 = 동키 리턴즈
SFAE41 = 패밀리 퓨드 데케이드즈 SFAE41 = 패밀리 퓨드 데케이드즈
SFAJGD = 강철의 연금술사: 황혼의 소녀 SFAJGD = 강철의 연금술사: 황혼의 소녀
SFBE70 = 백야드 스포츠 풋볼: 루키 러쉬 SFBE70 = 백야드 스포츠 풋볼: 루키 러쉬
@ -2996,7 +2993,7 @@ SMUJAF = 대괴수 배틀: 울트라 콜로세움 DX - 울트라 전사 대집
SMVE54 = 메이저 리그 야구 2K11 SMVE54 = 메이저 리그 야구 2K11
SMWE4Z = 베어 그릴스의 인간과 자연의 대결 SMWE4Z = 베어 그릴스의 인간과 자연의 대결
SMYE20 = 사소한 도전 60초 SMYE20 = 사소한 도전 60초
SMZE78 = 마 슈퍼 히어로 스쿼드: 코믹 컴뱃 SMZE78 = 마 슈퍼 히어로 스쿼드: 코믹 컴뱃
SMZP78 = 마벨 슈퍼 히어로 스쿼드: 코믹 컴뱃 SMZP78 = 마벨 슈퍼 히어로 스쿼드: 코믹 컴뱃
SN2E69 = 너프 N-스트라이크 더블 블래스트 번들 SN2E69 = 너프 N-스트라이크 더블 블래스트 번들
SN3EYG = 맥시멈 레이싱: 랠리 레이서 SN3EYG = 맥시멈 레이싱: 랠리 레이서
@ -3044,9 +3041,9 @@ SNRE52 = 나스카 언리쉬드
SNSE52 = 나스카 2011: 게임 SNSE52 = 나스카 2011: 게임
SNTEXN = 넷플릭스 인스턴트 스트리밍 디스크 SNTEXN = 넷플릭스 인스턴트 스트리밍 디스크
SNUPJW = 해피 뉴런 아카데미 SNUPJW = 해피 뉴런 아카데미
SNVE69 = 니드 포 스피드: 도망 SNVE69 = 니드 포 스피드: 더 런
SNVJ13 = 니드 포 스피드: 도망 SNVJ13 = 니드 포 스피드: 더 런
SNVP69 = 니드 포 스피드: 도망 SNVP69 = 니드 포 스피드: 더 런
SNXJDA = 나루토 질풍전: 격투 닌자 대전! 스페셜 SNXJDA = 나루토 질풍전: 격투 닌자 대전! 스페셜
SNYEVZ = 몬스터 하이: 13 개의 소원들 SNYEVZ = 몬스터 하이: 13 개의 소원들
SNYPVZ = 몬스터 하이: 13 개의 소원들 SNYPVZ = 몬스터 하이: 13 개의 소원들
@ -3345,10 +3342,10 @@ SU8PNG = 위 싱: 독일 히츠 2
SU9E4Q = 디즈니 비행기들 SU9E4Q = 디즈니 비행기들
SU9P4Q = 디즈니 비행기들 SU9P4Q = 디즈니 비행기들
SU9X4Q = 디즈니 비행기들 SU9X4Q = 디즈니 비행기들
SUKE01 = 커비의 드림랜드 귀환 SUKE01 = 별의 커비 Wii
SUKJ01 = 별의 커비 Wii SUKJ01 = 별의 커비 Wii
SUKK01 = 별의 커비 Wii SUKK01 = 별의 커비 Wii
SUKP01 = 커비의 모험 Wii SUKP01 = 별의 커비 Wii
SUMJC8 = 위닝 포스트 월드 2010 SUMJC8 = 위닝 포스트 월드 2010
SUNEYG = 디어 드라이브 레전드즈 SUNEYG = 디어 드라이브 레전드즈
SUOE41 = 힙합 댄스 익스피리언스 SUOE41 = 힙합 댄스 익스피리언스
@ -3442,7 +3439,7 @@ SX2PNG = 정글 카트즈
SX3EXJ = 판도라의 탑 SX3EXJ = 판도라의 탑
SX3J01 = 판도라의 탑: 너의 곁으로 돌아갈 때까지 SX3J01 = 판도라의 탑: 너의 곁으로 돌아갈 때까지
SX3P01 = 판도라의 탑 SX3P01 = 판도라의 탑
SX4E01 = 제노블레이드 연대기 SX4E01 = 제노블레이드 크로니클스
SX4J01 = 제노블레이드 SX4J01 = 제노블레이드
SX4P01 = 제노블레이드 연대기 SX4P01 = 제노블레이드 연대기
SX5E4Z = 산타 클로스가 마을로 오고 있어! SX5E4Z = 산타 클로스가 마을로 오고 있어!
@ -3724,6 +3721,7 @@ GZBEB2 = 금색의 갓슈벨: 고! 고! 마물 파이트!!
GZLK01 = 젤다의 전설: 바람의 지휘봉 GZLK01 = 젤다의 전설: 바람의 지휘봉
HBWE01 = 뉴 슈퍼 마리오 브라더스 Wii: 헬보이 에디션 HBWE01 = 뉴 슈퍼 마리오 브라더스 Wii: 헬보이 에디션
HSMP01 = 하더 슈퍼 마리오 브라더스 Wii HSMP01 = 하더 슈퍼 마리오 브라더스 Wii
J5EE41 = 저스트 댄스 2025 에디션
JF3E41 = 저스트 댄스 포커스 3 JF3E41 = 저스트 댄스 포커스 3
JOUE01 = 뉴 슈퍼 마리오 브라더스 Wii 10 여행 JOUE01 = 뉴 슈퍼 마리오 브라더스 Wii 10 여행
KHPE01 = 커비 에어 라이드 핵 팩 KHPE01 = 커비 에어 라이드 핵 팩
@ -4001,6 +3999,8 @@ RMCK46 = Wiimms 마리오 카트 Wii 펀 2021-09.한국
RMCK47 = Wiimms 마리오 카트 Wii 히스토리 2021-12.한국 RMCK47 = Wiimms 마리오 카트 Wii 히스토리 2021-12.한국
RMCK48 = Wiimms 마리오 카트 Wii 펀 2022-05.한국 RMCK48 = Wiimms 마리오 카트 Wii 펀 2022-05.한국
RMCK49 = Wiimms 마리오 카트-펀 2022-11.한국 RMCK49 = Wiimms 마리오 카트-펀 2022-11.한국
RMCK50 = Wiimms 마리오 카트-텍스쳐즈 2022-12.한국
RMCK51 = Wiimms 마리오 카트 Wii 펀 2023-09.한국
RMCK86 = 마리오 카트 크리스 3.5 캐럿 RMCK86 = 마리오 카트 크리스 3.5 캐럿
RMCKYP = 요시 레이싱 리조트 플러스 RMCKYP = 요시 레이싱 리조트 플러스
RMCP02 = Wiimms 마리오 카트 Wii 펀 2010-02.유럽 RMCP02 = Wiimms 마리오 카트 Wii 펀 2010-02.유럽
@ -4051,7 +4051,6 @@ RMCP76 = 프로 CT 팩
RMCP86 = 마리오 카트 크리스 3.500CT RMCP86 = 마리오 카트 크리스 3.500CT
RMCP93 = 마리오 카트 Wii 핵 팩 RMCP93 = 마리오 카트 Wii 핵 팩
RMCPA1 = 마리오 카트 어드벤처 RMCPA1 = 마리오 카트 어드벤처
RMCPCA = 마리오 카트 Wii (카탈루냐어 번역)
RMCPG2 = 마리오 카트 Wii CTGP 레볼루션 RMCPG2 = 마리오 카트 Wii CTGP 레볼루션
RMCPGP = 마리오 카트 CTGP 레볼루션 RMCPGP = 마리오 카트 CTGP 레볼루션
RMCPL1 = Luma의 CT 팩 RMCPL1 = Luma의 CT 팩
@ -4066,6 +4065,7 @@ RNEEUD = 나루토 질풍전: 닌자 격돌 레볼루션 3 (언덥)
ROMESD = 몬스터 헌터 G (영어 패치) ROMESD = 몬스터 헌터 G (영어 패치)
RPJEUD = 아크 라이즈 판타지아 (언덥) RPJEUD = 아크 라이즈 판타지아 (언덥)
RQQE52 = 기타 히어로 III 커스텀 : 퀸 RQQE52 = 기타 히어로 III 커스텀 : 퀸
RS4PXS = 식신의 성 III
RSBE02 = 슈퍼 스매시 브라더스 프로젝트 엠 레드 버전 RSBE02 = 슈퍼 스매시 브라더스 프로젝트 엠 레드 버전
RSBE03 = 대난투 스매시 브라더스 X DX RSBE03 = 대난투 스매시 브라더스 X DX
RSBE04 = 슈퍼 스매시 브라더스 프로젝트 엠+ RSBE04 = 슈퍼 스매시 브라더스 프로젝트 엠+
@ -4313,6 +4313,7 @@ SMNE68 = 요시의 전설 DLC
SMNE69 = 리바이즈드 슈퍼 마리오 브라더스 Wii SMNE69 = 리바이즈드 슈퍼 마리오 브라더스 Wii
SMNE90 = 커스텀 레벨의 전설 SMNE90 = 커스텀 레벨의 전설
SMNEAM = 어드벤처 슈퍼 마리오 브라더스 Wii SMNEAM = 어드벤처 슈퍼 마리오 브라더스 Wii
SMNED3 = 뉴어 슈퍼 마리오 브라더스 Wii
SMNELL = 뉴어 슈퍼 루이지 Wii SMNELL = 뉴어 슈퍼 루이지 Wii
SMNELM = 뉴어 슈퍼 루이지 Wii: 검은 달 SMNELM = 뉴어 슈퍼 루이지 Wii: 검은 달
SMNEMI = Midi의 슈퍼 마리오 브라더스 Wii: 그냥 작은 모험 SMNEMI = Midi의 슈퍼 마리오 브라더스 Wii: 그냥 작은 모험
@ -5738,6 +5739,7 @@ FCWP = 슈퍼 마리오 브라더스 3
FCWQ = 슈퍼 마리오 브라더스 3 FCWQ = 슈퍼 마리오 브라더스 3
FCYE = 요시의 쿠키 FCYE = 요시의 쿠키
FCYJ = 요시의 쿠키 FCYJ = 요시의 쿠키
FCYK = 요시의 쿠키
FCYP = 요시의 쿠키 FCYP = 요시의 쿠키
FCYT = 요시의 쿠키 FCYT = 요시의 쿠키
FCZE = 왕의 기사 FCZE = 왕의 기사
@ -6258,7 +6260,6 @@ NAZJ = 마리오 파티 2
NAZP = 마리오 파티 2 NAZP = 마리오 파티 2
NEEA = 젤다의 전설: 시간의 오카리나 마스터 퀘스트 NEEA = 젤다의 전설: 시간의 오카리나 마스터 퀘스트
NTLC = 슈퍼 마리오 64 멀티플레이어 NTLC = 슈퍼 마리오 64 멀티플레이어
NZXM = 슈퍼 마리오 64 멀티플레이어
LAAJ = 북두의 권 LAAJ = 북두의 권
LABE = 판타지 존 LABE = 판타지 존
LABJ = 판타지 존 LABJ = 판타지 존
@ -6543,13 +6544,13 @@ MCVP = 피트폴: 메이안 어드벤처
MCWE = 갤럭시 포스 II MCWE = 갤럭시 포스 II
MCWJ = 갤럭시 포스 II MCWJ = 갤럭시 포스 II
MCWP = 갤럭시 포스 II MCWP = 갤럭시 포스 II
MCXJ = 드래곤 슬레이어: 영웅전설 MCXJ = 드래곤 슬레이어: 영웅전설 II
MCYE = 시노비의 복수 MCYE = 시노비의 복수
MCYJ = 슈퍼 시노비 MCYJ = 슈퍼 시노비
MCYP = 시노비의 복수 MCYP = 시노비의 복수
MCZE = 상하이 II: 용의 눈 MCZE = 상하이 II: 용의 눈
MCZP = 상하이 II: 용의 눈 MCZP = 상하이 II: 용의 눈
PA2J = 열혈고교 돗지볼 부: CD 축구 편 PA2J = 요괴도 중기
PA3J = 사라만다 PA3J = 사라만다
PA4J = 파라솔 스타즈 PA4J = 파라솔 스타즈
PA6E = 블러디 울프 PA6E = 블러디 울프
@ -6734,7 +6735,7 @@ PDEJ = S.C.I.: 특수 범죄 수사
PDFJ = 지옥순례 PDFJ = 지옥순례
PDGJ = 파이어 프로레슬링 3: 레전드 바우트 PDGJ = 파이어 프로레슬링 3: 레전드 바우트
PDHJ = 라스탄 사가 II PDHJ = 라스탄 사가 II
PDIJ = 챔피언 레슬러® PDIJ = 챔피언 레슬러
PDJJ = 스트리트 파이터 II': 챔피언 에디션 PDJJ = 스트리트 파이터 II': 챔피언 에디션
PDJL = 스트리트 파이터 II': 챔피언 에디션 PDJL = 스트리트 파이터 II': 챔피언 에디션
PDJN = 스트리트 파이터 II: 챔피언 에디션 PDJN = 스트리트 파이터 II: 챔피언 에디션
@ -7124,6 +7125,7 @@ C9MP = 핏스톱 II
C9PP = 마지막 닌자 3 C9PP = 마지막 닌자 3
C9QP = 점프맨 C9QP = 점프맨
C9RP = 인터내셔널 카라테 + C9RP = 인터내셔널 카라테 +
C9SP = 불가능한 임무 II
C9XE = 마지막 닌자 C9XE = 마지막 닌자
C9XJ = 마지막 닌자 C9XJ = 마지막 닌자
C9XP = 마지막 닌자 C9XP = 마지막 닌자
@ -7165,10 +7167,10 @@ HAGP = 뉴스 채널
HAJE = 모두의 투표 채널 HAJE = 모두의 투표 채널
HAJJ = 모두의 투표 채널 HAJJ = 모두의 투표 채널
HAJP = 모두의 투표 채널 HAJP = 모두의 투표 채널
HAKE = 최종 사용자 라이선스 동의 HAKE = 이용 약관
HAKJ = 최종 사용자 라이선스 동의 HAKJ = 이용 약관
HAKK = 최종 사용자 라이선스 동의 HAKK = 이용 약관
HAKP = 최종 사용자 라이선스 동의 HAKP = 이용 약관
HALE = 지역 선택 HALE = 지역 선택
HALJ = 지역 선택 HALJ = 지역 선택
HALK = 지역 선택 HALK = 지역 선택
@ -7180,7 +7182,7 @@ HATE = 닌텐도 채널
HATJ = 닌텐도 채널 HATJ = 닌텐도 채널
HATP = 닌텐도 채널 HATP = 닌텐도 채널
HAVJ = 운세 채널 HAVJ = 운세 채널
HAVK = 운세 채널 HAVK = 즐거운 하루 운세 채널
HAVP = 즐거운 하루 운세 채널 HAVP = 즐거운 하루 운세 채널
HAWE = 메트로이드 프라임 3 프리뷰 HAWE = 메트로이드 프라임 3 프리뷰
HAWP = 메트로이드 프라임 3 프리뷰 HAWP = 메트로이드 프라임 3 프리뷰
@ -7194,12 +7196,12 @@ HC4P = 크런치롤
HCAJ = 밴드 브라더스 DX 스피커 채널 HCAJ = 밴드 브라더스 DX 스피커 채널
HCAP = 밴드 라이브와 함께하는 잼 HCAP = 밴드 라이브와 함께하는 잼
HCBJ = 사진 채널 1.0 복구 프로그램 HCBJ = 사진 채널 1.0 복구 프로그램
HCCJ = 개인 데이터 설정 HCCJ = 주소 설정
HCDJ = 디지탈 카메라 프린트 채널 HCDJ = 디지탈 카메라 프린트 채널
HCFE = Wi 스피크 채널 HCFE = Wii 스피크 채널
HCFJ = Wi 스피크 채널 HCFJ = Wii 스피크 채널
HCFK = Wii 스피크 채널 HCFK = Wii 스피크 채널
HCFP = Wi 스피크 채널 HCFP = Wii 스피크 채널
HCGE = Wii + 인터넷 HCGE = Wii + 인터넷
HCGJ = Wii + 인터넷 HCGJ = Wii + 인터넷
HCGP = Wii + 인터넷 HCGP = Wii + 인터넷
@ -7210,8 +7212,6 @@ HCJP = BBC iPlayer 채널
HCLE = 넷플릭스 HCLE = 넷플릭스
HCLP = 넷플릭스 HCLP = 넷플릭스
HCMP = 커비 TV 채널 HCMP = 커비 TV 채널
HCQE = 훌루 플러스
HCQJ = 훌루
HCRE = 젤다의 전설 스카이워드 소드 데이터 복구 채널 HCRE = 젤다의 전설 스카이워드 소드 데이터 복구 채널
HCRJ = 젤다의 전설 스카이워드 소드 데이터 복구 채널 HCRJ = 젤다의 전설 스카이워드 소드 데이터 복구 채널
HCRK = 젤다의 전설 스카이워드 소드 데이터 복구 채널 HCRK = 젤다의 전설 스카이워드 소드 데이터 복구 채널
@ -7225,7 +7225,6 @@ HCTP = Wii 시스템 전송
HCUE = Wii 메뉴 전자 매뉴얼 HCUE = Wii 메뉴 전자 매뉴얼
HCUJ = Wii 메뉴 전자 매뉴얼 HCUJ = Wii 메뉴 전자 매뉴얼
HCUP = Wii 메뉴 전자 매뉴얼 HCUP = Wii 메뉴 전자 매뉴얼
HCVA = Wii U 메뉴
HCWE = 아마존 인스턴트 비디오 HCWE = 아마존 인스턴트 비디오
HCWP = 아마존 인스턴트 비디오 HCWP = 아마존 인스턴트 비디오
HCXE = 유튜브 HCXE = 유튜브
@ -7240,10 +7239,11 @@ RFNJ = Wii 핏 채널
RFNK = Wii 핏 채널 RFNK = Wii 핏 채널
RFNP = Wii 핏 채널 RFNP = Wii 핏 채널
RFNW = Wii 핏 채널 RFNW = Wii 핏 채널
RFPE = Wii 핏 플러스 채널 RFPE = Wii Fit Plus 채널
RFPJ = Wii 핏 플러스 채널 RFPJ = Wii Fit Plus 채널
RFPP = Wii 핏 플러스 채널 RFPK = Wii Fit Plus 채널
RFPW = Wii 핏 플러스 채널 RFPP = Wii Fit Plus 채널
RFPW = Wii Fit Plus 채널
RGWE = 레비즈 채널 RGWE = 레비즈 채널
RGWJ = 레비즈 채널 RGWJ = 레비즈 채널
RGWP = 레비즈 채널 RGWP = 레비즈 채널
@ -7878,10 +7878,11 @@ HWFL = 핵위플로우
JODI = 홈브류 채널 JODI = 홈브류 채널
LULZ = 홈브류 채널 LULZ = 홈브류 채널
MAUI = 백업 홈브류 채널 MAUI = 백업 홈브류 채널
NZXM = 슈퍼 마리오 64 멀티플레이어
OHBC = 홈브류 채널 OHBC = 홈브류 채널
PXWE = 프로젝트 X: 사랑의 묘약 참사 PXWE = 프로젝트 X: 사랑의 묘약 참사
RIIV = 리볼루션 RIIV = 리볼루션
RMCX = 마리오 카트 Wii CTGP 레볼루션 채널 RMCX = CTGP 레볼루션 채널
SEGA = 제네시스 플러스 GX SEGA = 제네시스 플러스 GX
SMGX = 세이브게임 매니저 GX SMGX = 세이브게임 매니저 GX
ULFW = u로더 ULFW = u로더
@ -8043,8 +8044,8 @@ G3RF52 = 슈렉 2
G3RM52 = 슈렉 2 G3RM52 = 슈렉 2
G3RP52 = 슈렉 2 G3RP52 = 슈렉 2
G3SE41 = 버스트 어 무브 3000 G3SE41 = 버스트 어 무브 3000
G3SJC0 = 슈퍼 퍼즐 보글 올 스타즈 G3SJC0 = 슈퍼 퍼즐 보블 올스타즈
G3SWC0 = 슈퍼 퍼즐 보글 올 스타즈 G3SWC0 = 슈퍼 퍼즐 보블 올스타즈
G3TJ8P = 더비 레이싱 3: 경주마를 만들자! G3TJ8P = 더비 레이싱 3: 경주마를 만들자!
G3VE69 = NBA 스트리트 볼륨 3 G3VE69 = NBA 스트리트 볼륨 3
G3VJ13 = NBA 스트리트 V3: 마리오 덩크 G3VJ13 = NBA 스트리트 V3: 마리오 덩크
@ -8105,7 +8106,7 @@ G6ME69 = 매든 NFL 06
G6MP69 = 매든 NFL 06 G6MP69 = 매든 NFL 06
G6NE69 = NBA 라이브 06 G6NE69 = NBA 라이브 06
G6NP69 = NBA 라이브 06 G6NP69 = NBA 라이브 06
G6QE08 = 메가맨 기념 컬렉션 G6QE08 = 메가맨 애니버서리 컬렉션
G6SE7D = 스파이로의 전설: 새로운 시작 G6SE7D = 스파이로의 전설: 새로운 시작
G6SP7D = 스파이로의 전설: 새로운 시작 G6SP7D = 스파이로의 전설: 새로운 시작
G6TE5G = 틴 타이탄즈 G6TE5G = 틴 타이탄즈
@ -8116,10 +8117,10 @@ G7ME69 = 매든 NFL 07
G89EAF = 팩 맨 월드 랠리 G89EAF = 팩 맨 월드 랠리
G8FE8P = 버추어 퀘스트 G8FE8P = 버추어 퀘스트
G8FJ8P = 버추어 파이터 사이버 제너레이션 G8FJ8P = 버추어 파이터 사이버 제너레이션
G8ME01 = 페이퍼 마리오: 천년의 문 G8ME01 = 페이퍼 마리오 1000년의 문
G8MJ01 = 페이퍼 마리오 RPG G8MJ01 = 페이퍼 마리오 1000년의 문
G8MK01 = 페이퍼 마리오 - 천년의 문 G8MK01 = 페이퍼 마리오 - 천년의 문
G8MP01 = 페이퍼 마리오: 천년의 문 G8MP01 = 페이퍼 마리오 1000년의 문
G8OJ18 = 무적 코털 보보보 탈출!! 하지케 로얄 G8OJ18 = 무적 코털 보보보 탈출!! 하지케 로얄
G8SJAF = 배틀 스타디움 D.O.N G8SJAF = 배틀 스타디움 D.O.N
G8WE01 = 배탤리언 워즈 G8WE01 = 배탤리언 워즈
@ -8197,8 +8198,8 @@ GAZM69 = 해리 포터와 아즈카반의 죄수
GAZP69 = 해리 포터와 아즈카반의 죄수 GAZP69 = 해리 포터와 아즈카반의 죄수
GAZS69 = 해리 포터와 아즈카반의 죄수 GAZS69 = 해리 포터와 아즈카반의 죄수
GB2J18 = 봄버맨 랜드 2 - 게임 사상 최대 규모의 테마파크 GB2J18 = 봄버맨 랜드 2 - 게임 사상 최대 규모의 테마파크
GB4E51 = 번아웃 2: 탄착점 GB4E51 = 번아웃 2: 포인트 오브 임팩트
GB4P51 = 번아웃 2: 탄착점 GB4P51 = 번아웃 2: 포인트 오브 임팩트
GBDE5G = 블러드레인 GBDE5G = 블러드레인
GBDF7D = 블러드레인 GBDF7D = 블러드레인
GBDP7D = 블러드레인 GBDP7D = 블러드레인
@ -8266,10 +8267,10 @@ GCAE5H = 큐빅스: 모두를 위한 로봇 대결
GCBE7D = 크래쉬 밴디쿳: 마왕의 부활 GCBE7D = 크래쉬 밴디쿳: 마왕의 부활
GCBJA4 = 크래쉬 밴디쿳 4: 작렬! 마신 파워 GCBJA4 = 크래쉬 밴디쿳 4: 작렬! 마신 파워
GCBP7D = 크래쉬 밴디쿳: 마왕의 부활 GCBP7D = 크래쉬 밴디쿳: 마왕의 부활
GCCE01 = 파이널 판타지 크리스탈 연대기 GCCE01 = 파이널 판타지 크리스탈 크로니클
GCCJ01 = 파이널 판타지 크리스탈 연대기 GCCJ01 = 파이널 판타지 크리스탈 크로니클
GCCJGC = 파이널 판타지 크리스탈 연대기 GCCJGC = 파이널 판타지 크리스탈 연대기
GCCP01 = 파이널 판타지 크리스탈 연대기 GCCP01 = 파이널 판타지 크리스탈 크로니클
GCDE08 = 레지던트 이블 코드: 베로니카 X GCDE08 = 레지던트 이블 코드: 베로니카 X
GCDJ08 = 바이오하자드 코드: 베로니카 완전판 GCDJ08 = 바이오하자드 코드: 베로니카 완전판
GCDP08 = 레지던트 이블 코드: 베로니카 X GCDP08 = 레지던트 이블 코드: 베로니카 X
@ -8444,7 +8445,7 @@ GFAP69 = 피파 축구 2003
GFAS69 = 피파 축구 2003 GFAS69 = 피파 축구 2003
GFBE5D = 파이어블레이드 GFBE5D = 파이어블레이드
GFBP5D = 파이어블레이드 GFBP5D = 파이어블레이드
GFCP69 = F1 경력 도전 GFCP69 = F1 커리어 챌린지
GFDD69 = 프리덤 파이터즈 GFDD69 = 프리덤 파이터즈
GFDE69 = 프리덤 파이터즈 GFDE69 = 프리덤 파이터즈
GFDF69 = 프리덤 파이터즈 GFDF69 = 프리덤 파이터즈
@ -8522,7 +8523,7 @@ GGZJB2 = 마다가스카: 왜 비추고 난리야
GGZP52 = 마다가스카: 왜 비추고 난리야 GGZP52 = 마다가스카: 왜 비추고 난리야
GGZS52 = 마다가스카: 왜 비추고 난리야 GGZS52 = 마다가스카: 왜 비추고 난리야
GGZX52 = 마다가스카: 왜 비추고 난리야 GGZX52 = 마다가스카: 왜 비추고 난리야
GH2E69 = 니드 포 스피드: 맹열한 추적 2 GH2E69 = 니드 포 스피드: 핫 퍼슈트 2
GH2P69 = 니드 포 스피드: 맹열한 추적 2 GH2P69 = 니드 포 스피드: 맹열한 추적 2
GH4D69 = 해리 포터와 불의 잔 GH4D69 = 해리 포터와 불의 잔
GH4E69 = 해리 포터와 불의 잔 GH4E69 = 해리 포터와 불의 잔
@ -8731,9 +8732,9 @@ GKTJA4 = 캡틴 츠바사: 황금 세대의 도전
GKUE9G = 스케일러 GKUE9G = 스케일러
GKWJ18 = 드림믹스 TV 월드 파이터즈 GKWJ18 = 드림믹스 TV 월드 파이터즈
GKXJE7 = 극・마작 DXII: 제 4회 몬도21 컵 GKXJE7 = 극・마작 DXII: 제 4회 몬도21 컵
GKYE01 = 커비 에어 라이드 GKYE01 = 커비 에어라이드
GKYJ01 = 커비의 에어라이드 GKYJ01 = 커비의 에어라이드
GKYP01 = 커비 에어 라이드 GKYP01 = 커비 에어라이드
GKZD54 = 코드네임: 키즈 넥스트 도어 - 오퍼레이션: 비디오게임 GKZD54 = 코드네임: 키즈 넥스트 도어 - 오퍼레이션: 비디오게임
GKZE9G = 코드네임: 키즈 넥스트 도어 - 오퍼레이션: 비디오게임 GKZE9G = 코드네임: 키즈 넥스트 도어 - 오퍼레이션: 비디오게임
GKZP54 = 코드네임: 키즈 넥스트 도어 - 오퍼레이션: 비디오게임 GKZP54 = 코드네임: 키즈 넥스트 도어 - 오퍼레이션: 비디오게임
@ -8806,8 +8807,9 @@ GM2J8P = 슈퍼 몽키 볼 2
GM2P8P = 슈퍼 몽키 볼 2 GM2P8P = 슈퍼 몽키 볼 2
GM3E69 = 매든 NFL 2003 GM3E69 = 매든 NFL 2003
GM3P69 = 매든 NFL 2003 GM3P69 = 매든 NFL 2003
GM4E01 = 마리오 카트: 더블 대!! GM4E01 = 마리오 카트: 더블 대!!
GM4J01 = 마리오 카트: 더블 대쉬!! GM4J01 = 마리오 카트: 더블 대쉬!!
GM4K01 = 마리오 카트: 더블 대시!!
GM4P01 = 마리오 카트: 더블 대쉬!! GM4P01 = 마리오 카트: 더블 대쉬!!
GM5D7D = 메탈 암즈: 시스템 글리치 GM5D7D = 메탈 암즈: 시스템 글리치
GM5E7D = 메탈 암즈: 시스템 글리치 GM5E7D = 메탈 암즈: 시스템 글리치
@ -8894,6 +8896,7 @@ GNDP69 = 니드 포 스피드: 언더그라운드
GNED78 = 니모를 찾아서 GNED78 = 니모를 찾아서
GNEE78 = 니모를 찾아서 GNEE78 = 니모를 찾아서
GNEF78 = 니모를 찾아서 GNEF78 = 니모를 찾아서
GNEK78 = 니모를 찾아서
GNEP78 = 니모를 찾아서 GNEP78 = 니모를 찾아서
GNES78 = 니모를 찾아서 GNES78 = 니모를 찾아서
GNFE5D = NFL 블리츠 2002 GNFE5D = NFL 블리츠 2002
@ -8964,11 +8967,11 @@ GOSP41 = 오픈 시즌
GOSX41 = 오픈 시즌 GOSX41 = 오픈 시즌
GOTJB2 = TV 애니메이션: 원피스 트레저 배틀! GOTJB2 = TV 애니메이션: 원피스 트레저 배틀!
GOUPNK = 코코토 놀이공원 GOUPNK = 코코토 놀이공원
GOWD69 = 니드 포 스피드: 지명 수배 GOWD69 = 니드 포 스피드: 모스트 원티드
GOWE69 = 니드 포 스피드: 지명 수배 GOWE69 = 니드 포 스피드: 모스트 원티드
GOWF69 = 니드 포 스피드: 지명 수배 GOWF69 = 니드 포 스피드: 모스트 원티드
GOWJ13 = 니드 포 스피드: 지명 수배 GOWJ13 = 니드 포 스피드: 모스트 원티드
GOWP69 = 니드 포 스피드: 지명 수배 GOWP69 = 니드 포 스피드: 모스트 원티드
GOYD69 = 골든아이: 로그 에이전트 GOYD69 = 골든아이: 로그 에이전트
GOYE69 = 골든아이: 로그 에이전트 GOYE69 = 골든아이: 로그 에이전트
GOYF69 = 골든아이: 로그 에이전트 GOYF69 = 골든아이: 로그 에이전트
@ -9465,9 +9468,9 @@ GYFPA4 = 유희왕! 허구에 갇힌 왕국
GYKEB2 = 금색의 갓슈!! 우정 태그 배틀 2 GYKEB2 = 금색의 갓슈!! 우정 태그 배틀 2
GYKJB2 = 금색의 갓슈!! 우정 태그 배틀 2 GYKJB2 = 금색의 갓슈!! 우정 태그 배틀 2
GYMJA4 = 실황 파워풀 메이저 리그 GYMJA4 = 실황 파워풀 메이저 리그
GYQE01 = 마리오 슈퍼스타즈 야구 GYQE01 = 마리오 슈퍼스타 베이스볼
GYQJ01 = 슈퍼 마리오 스테이디움 기적의 야구 GYQJ01 = 슈퍼 마리오 스디움 기적의 야구
GYQP01 = 마리오 슈퍼스타즈 야구 GYQP01 = 마리오 슈퍼스타 베이스볼
GYRE41 = 돌연변이 닌자 거북 GYRE41 = 돌연변이 닌자 거북
GYRP41 = 돌연변이 닌자 거북 GYRP41 = 돌연변이 닌자 거북
GYTE69 = 타이 더 태즈메이니언 타이거 2: 부쉬 구조대 GYTE69 = 타이 더 태즈메이니언 타이거 2: 부쉬 구조대

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: NL_unique version: 20230727194218) TITLES = https://www.gametdb.com (type: Wii language: NL_unique version: 20241114210155)
R23P52 = Barbie en De Drie Musketiers R23P52 = Barbie en De Drie Musketiers
R25PWR = LEGO Harry Potter: Jaren 1-4 R25PWR = LEGO Harry Potter: Jaren 1-4
R27X54 = Dora redt het Land van Kristal R27X54 = Dora redt het Land van Kristal
@ -177,7 +177,7 @@ SHDP52 = Hoe Tem Je Een Draak
SIAP52 = Ice Age 4: Continental Drift SIAP52 = Ice Age 4: Continental Drift
SIIP8P = Mario & Sonic op de Olympische Spelen Londen 2012 SIIP8P = Mario & Sonic op de Olympische Spelen Londen 2012
SJ2PWR = Scooby-Doo! En Het Spookmoeras SJ2PWR = Scooby-Doo! En Het Spookmoeras
SJXD41 = Just Dance 4 SJXD41 = Just Dance 4 Speciale Editie
SK4P52 = Shrek Voor Eeuwig En Altijd SK4P52 = Shrek Voor Eeuwig En Altijd
SLHPWR = LEGO Harry Potter: Jaren 5-7 SLHPWR = LEGO Harry Potter: Jaren 5-7
SM4PXT = Monster Trucks SM4PXT = Monster Trucks
@ -199,32 +199,20 @@ SVQEVZ = Barbie En Haar Zusjes In Het Grote Puppy Avontuur
SVQPVZ = Barbie En Haar Zusjes In Het Grote Puppy Avontuur SVQPVZ = Barbie En Haar Zusjes In Het Grote Puppy Avontuur
SVZPVZ = Hoe Tem Je Een Draak 2 SVZPVZ = Hoe Tem Je Een Draak 2
CG1P52 = Guitar Hero III Custom : Guitar Hero I CG1P52 = Guitar Hero III Custom : Guitar Hero I
RMCPCA = Mario Kart Wii (Catalaanse vertaling) RZDPCA = The Legend of Zelda: Twilight Princess (Catalaanse vertaling)
W2FP = Physiofun - Balance Training W2FP = Physiofun: Balance Training
W2GP = Phoenix Wright Ace Attorney: Justice for All W2GP = Phoenix Wright Ace Attorney: Justice for All
W2MP = Blaster Master: Overdrive
W2PP = Physiofun: Pelvic Floor Training W2PP = Physiofun: Pelvic Floor Training
W3GP = Phoenix Wright Ace Attorney: Trials and Tribulations W3GP = Phoenix Wright Ace Attorney: Trials and Tribulations
W3KP = ThruSpace: High Velocity 3D Puzzle
W3MP = The Three Musketeers: One for all W3MP = The Three Musketeers: One for all
W44P = Stop Stress: A Day of Fury
W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker
W6BP = Eco-Shooter: Plant 530 W6BP = Eco-Shooter: Plant 530
W72P = Successfully Learning German Year 3
W73P = Successfully Learning German Year 4
W74P = Successfully Learning German Year 5
W7IP = Successfully Learning German Year 2
W8CP = Bit.Trip Core W8CP = Bit.Trip Core
W8WP = Happy Holidays: Halloween
W9BP = Big Town Shoot W9BP = Big Town Shoot
W9RP = Happy Holidays: Christmas W9RP = Happy Holidays: Christmas
WA4P = WarioWare: Do It Yourself - Showcase WA4P = WarioWare: Do It Yourself - Showcase
WA7P = Toribash Violence Perfected
WA8P = Art Style: Penta Tentacles WA8P = Art Style: Penta Tentacles
WAEP = Around the world WAEP = Around the world
WAFP = Airport Mania: First Flight
WAHP = Trenches: Generals
WALP = Art Style: light trax
WAOP = The Very Hungry Caterpillar´s ABC WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4: Dangeresque 3 WB2P = Strong Bad Episode 4: Dangeresque 3
WB3P = Strong Bad Episode 5: 8-bit is Enough WB3P = Strong Bad Episode 5: 8-bit is Enough
@ -258,8 +246,6 @@ WFYP = Family Games Pen & Paper Edition
WGDP = Gradius Rebirth WGDP = Gradius Rebirth
WGFP = Girlfriends Forever: Magic Skate WGFP = Girlfriends Forever: Magic Skate
WGGP = Gabrielle's Ghostly Groove: Monster Mix WGGP = Gabrielle's Ghostly Groove: Monster Mix
WGPP = Zenquaria: Virtual Aquarium
WGSP = Phoenix Wright: Ace Attorney
WHEP = Heracles: Chariot Racing WHEP = Heracles: Chariot Racing
WHFP = Heavy Fire: Special Operations WHFP = Heavy Fire: Special Operations
WHRP = Heron: Steam Machine WHRP = Heron: Steam Machine
@ -387,11 +373,7 @@ JDJP = Super Star Wars: The Empire Strikes Back
JDLP = Super Star Wars: Return of the Jedi JDLP = Super Star Wars: Return of the Jedi
JDWP = Aero The Acrobat JDWP = Aero The Acrobat
JDZP = Mystic Quest Legend JDZP = Mystic Quest Legend
NACP = The Legend of Zelda: Ocarina of Time
NAMP = Kirby 64: The Crystal Shards
NAOP = 1080°: TenEighty Snowboarding NAOP = 1080°: TenEighty Snowboarding
NARP = The Legend of Zelda: Majora's Mask
NAYM = Ogre Battle 64: Person of Lordly Caliber
LALP = Fantasy Zone II LALP = Fantasy Zone II
LANP = Alex Kidd: The Lost Stars LANP = Alex Kidd: The Lost Stars
LAPP = Wonder Boy III: The Dragon's Trap LAPP = Wonder Boy III: The Dragon's Trap
@ -442,7 +424,6 @@ EAIP = Top Hunter
EBDP = Magical Drop 3 EBDP = Magical Drop 3
EBFP = Spin master EBFP = Spin master
EBSP = The Path of the Warrior: Art of Fighting 3 EBSP = The Path of the Warrior: Art of Fighting 3
ECAP = Real Bout Fatal Fury 2: The Newcomers
ECGP = Shock Troopers: 2nd Squad ECGP = Shock Troopers: 2nd Squad
E54P = GHOSTS'N GOBLINS E54P = GHOSTS'N GOBLINS
E55P = Commando E55P = Commando
@ -460,14 +441,18 @@ HAFP = Weerkanaal
HAGA = Nachrichtenkanaal HAGA = Nachrichtenkanaal
HAGP = Nieuwskanaal HAGP = Nieuwskanaal
HAJP = Enquêtekanaal HAJP = Enquêtekanaal
HAKP = Overeenkomst/bedrijfsinformatie
HAPP = Mii-wedstrijdkanaal HAPP = Mii-wedstrijdkanaal
HATP = Nintendo-kanaal HATP = Nintendo-kanaal
HAVP = Geluksdagkanaal HAVP = Geluksdagkanaal
HAWP = Metroid Prime 3 Preview HAWP = Metroid Prime 3 Preview
HAYA = Fotokanaal HAYA = Fotokanaal
HCAP = Jam with the Band Live HCAP = Jam with the Band Channel Live Channel
HCFE = Wii Speak-Kanaal HCCJ = Adresinstellingen
HCFP = Wii Speak-Kanaal HCFE = Wii Speak-kanaal
HCFP = Wii Speak-kanaal
HCGP = Wii en Internet
HCRE = The Legend of Zelda - Skyward Sword - Save Data Update Channel
OHBC = Homebrew-Kanaal OHBC = Homebrew-Kanaal
G4BP08 = Resident Evil 4: Wii Edition G4BP08 = Resident Evil 4: Wii Edition
G4CP54 = Sjakie en chocolade G4CP54 = Sjakie en chocolade

View file

@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: PT_unique version: 20230727194225) TITLES = https://www.gametdb.com (type: Wii language: PT_unique version: 20241114210204)
R42P69 = Os SIMS 2: Naufragos R42P69 = Os SIMS 2: Naufragos
R43P69 = EA Sports Active R43P69 = EA Sports Active
R4PP69 = Os SIMS 2: Animais de Estimação R4PP69 = Os SIMS 2: Animais de Estimação
@ -39,7 +39,6 @@ SIIP8P = Mario & Sonic nos Jogos Olímpicos de Londres 2012
GFEK01 = Fire Emblem: Path of Radiance GFEK01 = Fire Emblem: Path of Radiance
GMSE02 = Super Mario Sunshine Multijogador GMSE02 = Super Mario Sunshine Multijogador
PT2PSI = SingIt Portugal Hits Festa de Verão PT2PSI = SingIt Portugal Hits Festa de Verão
RMCPCA = Mario Kart Wii (tradução catalã)
WA4E = WarioWare: D.I.Y. Showcase WA4E = WarioWare: D.I.Y. Showcase
WA4P = _D.I.Y. Showcase WA4P = _D.I.Y. Showcase
WAQJ = Yakuman Wii: Ide Yousuke no Kenkou Mahjong WAQJ = Yakuman Wii: Ide Yousuke no Kenkou Mahjong
@ -63,6 +62,18 @@ WZIP = Rubik's Puzzle Galaxy RUSH
MC3E = Super Street Fighter II: The New Challengers MC3E = Super Street Fighter II: The New Challengers
MC3P = Super Street Fighter II: The New Challengers MC3P = Super Street Fighter II: The New Challengers
HAAA = Canal Photo HAAA = Canal Photo
HAFE = Canal do Tempo
HAFP = Canal do Tempo
HAGE = Canal de Notícias
HAGP = Canal de Notícias
HAJE = Canal de Opiniões
HAJP = Canal de Opiniões
HAPE = Canal Mii Veja
HAPP = Canal de Concursos Mii
HATE = Canal Nintendo
HATP = Canal Nintendo
HAYA = Canal de Fotos
HCCJ = Definições do endereço
G6TE5G = Os Jovens Titãs G6TE5G = Os Jovens Titãs
GAXE5D = Lucas: Um Intruso no Formigueiro GAXE5D = Lucas: Um Intruso no Formigueiro
GAZD69 = Harry Potter e o Prisoneiro de Azkaban GAZD69 = Harry Potter e o Prisoneiro de Azkaban

View file

@ -1,14 +1,21 @@
TITLES = https://www.gametdb.com (type: Wii language: RU_unique version: 20230727194232) TITLES = https://www.gametdb.com (type: Wii language: RU_unique version: 20241114210212)
R5IR4Q = История игрушек: Парк развлечений R5IR4Q = История игрушек: Парк развлечений
RN4P41 = Anno: Create A New World RN4P41 = Anno: Create A New World
RWAR78 = Валл-И RWAR78 = Валл-И
RXDR4Q = Disney Отвечай Не Зевай RXDR4Q = Disney Отвечай Не Зевай
RY2R41 = Возвращение бешеных кроликов RY2R41 = Возвращение бешеных кроликов
RYBP69 = BOOM BLOX Bash Party RYBP69 = BOOM BLOX Bash Party
SFDPAF = 家庭训练机 梦幻主题乐园(欧) SJXD41 = Just Dance 4 Специальное издание
SKSE54 = NBA 2K13(美) SKSE54 = NBA 2K13(美)
SP5E70 = 恶徒 来自地底的侵略者(美) SP5E70 = 恶徒 来自地底的侵略者(美)
STNP41 = Приключения Тинтина: Тайна Единорога STNP41 = Приключения Тинтина: Тайна Единорога
GMSE02 = Супер Марио Саншайн Мультиплеер GMSE02 = Супер Марио Саншайн Мультиплеер
SOMR01 = Ритм небес SOMR01 = Ритм небес
HAFP = Канал новостей
HAGP = Канал новостей
HAJP = Канал голосований
HAPP = Канал конкурсов Mii
HATP = Канал Nintendo
HAYA = Фотоканал
HCCJ = Настройки адреса
G3EP51 = XGIII: 익스트림 G 레이싱 G3EP51 = XGIII: 익스트림 G 레이싱

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

21
Flatpak/SDL2/SDL2.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "SDL2",
"buildsystem": "autotools",
"config-opts": ["--disable-static"],
"sources": [
{
"type": "dir",
"path": "../../Externals/SDL/SDL"
}
],
"cleanup": [ "/bin/sdl2-config",
"/include",
"/lib/libSDL2.la",
"/lib/libSDL2main.a",
"/lib/libSDL2main.la",
"/lib/libSDL2_test.a",
"/lib/libSDL2_test.la",
"/lib/cmake",
"/share/aclocal",
"/lib/pkgconfig"]
}

8
Flatpak/fill_release_node.sh Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
DATE=$(git log -1 --pretty=%cd --date=iso8601 --date=format:'%Y-%m-%d')
sed -i -e "s/@DATE_PLACEHOLDER/${DATE}/" org.DolphinEmu.dolphin-emu.metainfo.xml
VERSION=$(git describe --tags | sed -E 's/^([0-9]+-[0-9]+).*/\1/')
sed -i -e "s/@VERSION_PLACEHOLDER/${VERSION}/" org.DolphinEmu.dolphin-emu.metainfo.xml

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2016 Jeremy Newton -->
<component type="desktop-application">
<id>org.DolphinEmu.dolphin-emu</id>
<name>Dolphin Emulator</name>
<developer id="org.dolphin-emu">
<name>Dolphin Emulator Project</name>
</developer>
<summary>GameCube / Wii</summary>
<metadata_license>CC-BY-SA-3.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<content_rating type="oars-1.0"/>
<!-- Descriptions taken from Dolphin Homepage -->
<description><p>Dolphin is an emulator for two recent Nintendo video game consoles: the GameCube and the Wii. It allows PC gamers to enjoy games for these two consoles in full HD (1080p) with several enhancements: compatibility with all PC controllers, turbo speed, networked multiplayer, and even more!</p></description>
<screenshots>
<screenshot type="default">
<caption>Dolphin's main window</caption>
<image type="source">http://dolphin-emu.org/m/user/flatpak/screenshot_1.png</image>
</screenshot>
<screenshot>
<caption>In-game</caption>
<image type="source">http://dolphin-emu.org/m/user/flatpak/screenshot_2.png</image>
</screenshot>
<screenshot>
<caption>Graphics configuration</caption>
<image type="source">http://dolphin-emu.org/m/user/flatpak/screenshot_3.png</image>
</screenshot>
<screenshot>
<caption>Controller configuration</caption>
<image type="source">http://dolphin-emu.org/m/user/flatpak/screenshot_4.png</image>
</screenshot>
</screenshots>
<launchable type="desktop-id">dolphin-emu.desktop</launchable>
<provides>
<binary>dolphin-emu</binary>
<id>dolphin-emu.desktop</id>
</provides>
<releases>
<release version="@VERSION_PLACEHOLDER" date="@DATE_PLACEHOLDER"/>
</releases>
<url type="homepage">https://dolphin-emu.org</url>
<url type="bugtracker">https://bugs.dolphin-emu.org/projects/emulator/issues</url>
<url type="faq">https://dolphin-emu.org/docs/faq/</url>
<url type="help">https://dolphin-emu.org/docs/guides/</url>
<url type="translate">https://www.transifex.com/projects/p/dolphin-emu</url>
<url type="contact">https://dolphin-emu.org/docs/faq/#ive-got-idea-make-dolphin-better-how-should-i-tell</url>
<url type="vcs-browser">https://github.com/dolphin-emu/dolphin</url>
<url type="contribute">https://github.com/dolphin-emu/dolphin/blob/master/Contributing.md</url>
</component>

View file

@ -0,0 +1,83 @@
app-id: org.DolphinEmu.dolphin-emu
runtime: org.kde.Platform
runtime-version: '6.8'
sdk: org.kde.Sdk
command: dolphin-emu-wrapper
rename-desktop-file: dolphin-emu.desktop
rename-icon: dolphin-emu
finish-args:
- --device=all
- --socket=pulseaudio
# dolphin doesn't work on wayland (only the ui does), if a user were to set
# this env variable globally to wayland then games wouldn't work.
# we overwrite the setting and force xcb to prevent this from happening.
- --env=QT_QPA_PLATFORM=xcb
- --socket=x11
- --share=network
- --share=ipc
# required for the emulated bluetooth adapter feature to work.
- --allow=bluetooth
- --filesystem=xdg-run/app/com.discordapp.Discord:create
- --talk-name=org.freedesktop.ScreenSaver
# required for Gamescope on Steam Deck
- --filesystem=xdg-run/gamescope-0:ro
modules:
# enables motion controls on non-wii controllers (switch, ps4, etc)
# requires a udev rule enabling Motion Sensors access
- name: libevdev
buildsystem: meson
config-opts:
- -Dtests=disabled
- -Ddocumentation=disabled
sources:
- type: archive
url: https://www.freedesktop.org/software/libevdev/libevdev-1.13.3.tar.xz
sha256: abf1aace86208eebdd5d3550ffded4c8d73bb405b796d51c389c9d0604cbcfbf
x-checker-data:
type: anitya
project-id: 20540
stable-only: true
url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz
# needed for screensaver inhibition
- name: xdg-screensaver-shim
buildsystem: meson
sources:
- type: archive
url: https://github.com/Unrud/xdg-screensaver-shim/archive/0.0.2.tar.gz
sha256: 0ed2a69fe6ee6cbffd2fe16f85116db737f17fb1e79bfb812d893cf15c728399
# build the vendored SDL2 from Externals until the runtime gets 2.30.9
- SDL2/SDL2.json
- name: dolphin-emu
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DENABLE_ALSA=OFF
- -DENABLE_SDL=ON
- -DENABLE_EVDEV=ON
- -DDISTRIBUTOR=dolphin-emu.org
cleanup:
- /share/man
post-install:
- install -D -t ${FLATPAK_DEST}/bin/ dolphin-emu-wrapper
- "${FLATPAK_BUILDER_BUILDDIR}/Flatpak/fill_release_node.sh"
- install -Dm644 -t ${FLATPAK_DEST}/share/metainfo/ org.DolphinEmu.dolphin-emu.metainfo.xml
- desktop-file-edit --set-key=Exec --set-value='/app/bin/dolphin-emu-wrapper'
/app/share/applications/dolphin-emu.desktop
sources:
- type: dir
path: ..
- type: file
path: org.DolphinEmu.dolphin-emu.metainfo.xml.in
dest-filename: org.DolphinEmu.dolphin-emu.metainfo.xml
- type: script
commands:
- |
for i in {0..9}; do
test -S $XDG_RUNTIME_DIR/discord-ipc-$i ||
ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
done
dolphin-emu "$@"
dest-filename: dolphin-emu-wrapper

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -302,7 +302,7 @@ public final class NativeLibrary
public static native int DefaultCPUCore(); public static native int DefaultCPUCore();
public static native String GetDefaultGraphicsBackendName(); public static native String GetDefaultGraphicsBackendConfigName();
public static native int GetMaxLogLevel(); public static native int GetMaxLogLevel();

View file

@ -789,7 +789,7 @@ enum class BooleanSetting(
Settings.FILE_GFX, Settings.FILE_GFX,
Settings.SECTION_GFX_HACKS, Settings.SECTION_GFX_HACKS,
"EFBAccessEnable", "EFBAccessEnable",
true false
), ),
GFX_HACK_EFB_DEFER_INVALIDATION( GFX_HACK_EFB_DEFER_INVALIDATION(
Settings.FILE_GFX, Settings.FILE_GFX,

View file

@ -45,7 +45,7 @@ enum class StringSetting(
Settings.FILE_DOLPHIN, Settings.FILE_DOLPHIN,
Settings.SECTION_INI_CORE, Settings.SECTION_INI_CORE,
"GFXBackend", "GFXBackend",
NativeLibrary.GetDefaultGraphicsBackendName() NativeLibrary.GetDefaultGraphicsBackendConfigName()
), ),
MAIN_DUMP_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "DumpPath", ""), MAIN_DUMP_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "DumpPath", ""),
MAIN_LOAD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "LoadPath", ""), MAIN_LOAD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "LoadPath", ""),

View file

@ -62,7 +62,7 @@ bool IsPathAndroidContent(std::string_view uri)
std::string OpenModeToAndroid(std::string mode) std::string OpenModeToAndroid(std::string mode)
{ {
// The 'b' specifier is not supported by Android. Since we're on POSIX, it's fine to just skip it. // The 'b' specifier is not supported by Android. Since we're on POSIX, it's fine to just skip it.
mode.erase(std::remove(mode.begin(), mode.end(), 'b')); std::erase(mode, 'b');
if (mode == "r") if (mode == "r")
return "r"; return "r";

View file

@ -101,6 +101,10 @@ void Host_PPCSymbolsChanged()
{ {
} }
void Host_PPCBreakpointsChanged()
{
}
void Host_RefreshDSPDebuggerWindow() void Host_RefreshDSPDebuggerWindow()
{ {
} }
@ -146,7 +150,7 @@ void Host_UpdateDisasmDialog()
{ {
} }
void Host_JitCacheCleared() void Host_JitCacheInvalidation()
{ {
} }
@ -408,9 +412,10 @@ JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_DefaultCPUCo
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDefaultGraphicsBackendName(JNIEnv* env, jclass) Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDefaultGraphicsBackendConfigName(JNIEnv* env,
jclass)
{ {
return ToJString(env, VideoBackendBase::GetDefaultBackendName()); return ToJString(env, VideoBackendBase::GetDefaultBackendConfigName());
} }
JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLevel(JNIEnv*, jclass) JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLevel(JNIEnv*, jclass)

View file

@ -47,7 +47,7 @@ private:
std::array<uint32_t, 36 + sizeof...(ExtraMatches)> _conns; std::array<uint32_t, 36 + sizeof...(ExtraMatches)> _conns;
std::optional<V> _val; std::optional<V> _val;
TrieEntry() { std::fill(_conns.begin(), _conns.end(), INVALID_CONN); } TrieEntry() { _conns.fill(INVALID_CONN); }
}; };
constexpr size_t IndexOf(char c) const constexpr size_t IndexOf(char c) const

View file

@ -98,7 +98,8 @@ std::vector<std::string> DoFileSearch(const std::vector<std::string>& directorie
// not because std::filesystem returns duplicates). Also note that this pathname-based uniqueness // not because std::filesystem returns duplicates). Also note that this pathname-based uniqueness
// isn't as thorough as std::filesystem::equivalent. // isn't as thorough as std::filesystem::equivalent.
std::ranges::sort(result); std::ranges::sort(result);
result.erase(std::unique(result.begin(), result.end()), result.end()); const auto unique_result = std::ranges::unique(result);
result.erase(unique_result.begin(), unique_result.end());
// Dolphin expects to be able to use "/" (DIR_SEP) everywhere. // Dolphin expects to be able to use "/" (DIR_SEP) everywhere.
// std::filesystem uses the OS separator. // std::filesystem uses the OS separator.

View file

@ -17,72 +17,72 @@
namespace Common namespace Common
{ {
SettingsHandler::SettingsHandler() : m_buffer{}, m_position{0}, m_key{INITIAL_SEED}, decoded{""} namespace
{
// Key used to encrypt/decrypt setting.txt contents
constexpr u32 INITIAL_SEED = 0x73B5DBFA;
} // namespace
SettingsWriter::SettingsWriter() : m_buffer{}, m_position{0}, m_key{INITIAL_SEED}
{ {
} }
SettingsHandler::SettingsHandler(const Buffer& buffer) : SettingsHandler() const SettingsBuffer& SettingsWriter::GetBytes() const
{
m_buffer = buffer;
Decrypt();
}
const SettingsHandler::Buffer& SettingsHandler::GetBytes() const
{ {
return m_buffer; return m_buffer;
} }
std::string SettingsHandler::GetValue(std::string_view key) const std::string SettingsReader::GetValue(std::string_view key) const
{ {
constexpr char delim[] = "\n"; constexpr char delim[] = "\n";
std::string toFind = std::string(delim).append(key).append("="); std::string toFind = std::string(delim).append(key).append("=");
size_t found = decoded.find(toFind); size_t found = m_decoded.find(toFind);
if (found != std::string_view::npos) if (found != std::string_view::npos)
{ {
size_t delimFound = decoded.find(delim, found + toFind.length()); size_t delimFound = m_decoded.find(delim, found + toFind.length());
if (delimFound == std::string_view::npos) if (delimFound == std::string_view::npos)
delimFound = decoded.length() - 1; delimFound = m_decoded.length() - 1;
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length())); return m_decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
} }
else else
{ {
toFind = std::string(key).append("="); toFind = std::string(key).append("=");
found = decoded.find(toFind); found = m_decoded.find(toFind);
if (found == 0) if (found == 0)
{ {
size_t delimFound = decoded.find(delim, found + toFind.length()); size_t delimFound = m_decoded.find(delim, found + toFind.length());
if (delimFound == std::string_view::npos) if (delimFound == std::string_view::npos)
delimFound = decoded.length() - 1; delimFound = m_decoded.length() - 1;
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length())); return m_decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
} }
} }
return ""; return "";
} }
void SettingsHandler::Decrypt() SettingsReader::SettingsReader(const SettingsBuffer& buffer) : m_decoded{""}
{ {
while (m_position < m_buffer.size()) u32 key = INITIAL_SEED;
for (u32 position = 0; position < buffer.size(); ++position)
{ {
decoded.push_back((u8)(m_buffer[m_position] ^ m_key)); m_decoded.push_back((u8)(buffer[position] ^ key));
m_position++; key = (key >> 31) | (key << 1);
m_key = (m_key >> 31) | (m_key << 1);
} }
// The decoded data normally uses CRLF line endings, but occasionally // The decoded data normally uses CRLF line endings, but occasionally
// (see the comment in WriteLine), lines can be separated by CRLFLF. // (see the comment in WriteLine), lines can be separated by CRLFLF.
// To handle this, we remove every CR and treat LF as the line ending. // To handle this, we remove every CR and treat LF as the line ending.
// (We ignore empty lines.) // (We ignore empty lines.)
std::erase(decoded, '\x0d'); std::erase(m_decoded, '\x0d');
} }
void SettingsHandler::AddSetting(std::string_view key, std::string_view value) void SettingsWriter::AddSetting(std::string_view key, std::string_view value)
{ {
WriteLine(fmt::format("{}={}\r\n", key, value)); WriteLine(fmt::format("{}={}\r\n", key, value));
} }
void SettingsHandler::WriteLine(std::string_view str) void SettingsWriter::WriteLine(std::string_view str)
{ {
const u32 old_position = m_position; const u32 old_position = m_position;
const u32 old_key = m_key; const u32 old_key = m_key;
@ -106,7 +106,7 @@ void SettingsHandler::WriteLine(std::string_view str)
} }
} }
void SettingsHandler::WriteByte(u8 b) void SettingsWriter::WriteByte(u8 b)
{ {
if (m_position >= m_buffer.size()) if (m_position >= m_buffer.size())
return; return;
@ -116,7 +116,7 @@ void SettingsHandler::WriteByte(u8 b)
m_key = (m_key >> 31) | (m_key << 1); m_key = (m_key >> 31) | (m_key << 1);
} }
std::string SettingsHandler::GenerateSerialNumber() std::string SettingsWriter::GenerateSerialNumber()
{ {
const std::time_t t = std::time(nullptr); const std::time_t t = std::time(nullptr);

View file

@ -13,34 +13,35 @@
namespace Common namespace Common
{ {
class SettingsHandler using SettingsBuffer = std::array<u8, 0x100>;
class SettingsWriter
{ {
public: public:
enum SettingsWriter();
{
SETTINGS_SIZE = 0x100,
// Key used to encrypt/decrypt setting.txt contents
INITIAL_SEED = 0x73B5DBFA
};
using Buffer = std::array<u8, SETTINGS_SIZE>;
SettingsHandler();
explicit SettingsHandler(const Buffer& buffer);
void AddSetting(std::string_view key, std::string_view value); void AddSetting(std::string_view key, std::string_view value);
const Buffer& GetBytes() const; const SettingsBuffer& GetBytes() const;
std::string GetValue(std::string_view key) const;
static std::string GenerateSerialNumber(); static std::string GenerateSerialNumber();
private: private:
void Decrypt();
void WriteLine(std::string_view str); void WriteLine(std::string_view str);
void WriteByte(u8 b); void WriteByte(u8 b);
std::array<u8, SETTINGS_SIZE> m_buffer; SettingsBuffer m_buffer;
u32 m_position, m_key; u32 m_position, m_key;
std::string decoded; };
class SettingsReader
{
public:
explicit SettingsReader(const SettingsBuffer& buffer);
std::string GetValue(std::string_view key) const;
private:
std::string m_decoded;
}; };
} // namespace Common } // namespace Common

View file

@ -44,6 +44,7 @@ struct Symbol
std::string name; std::string name;
std::string function_name; // stripped function name std::string function_name; // stripped function name
std::string object_name; // name of object/source file symbol belongs to
std::vector<SCall> callers; // addresses of functions that call this function std::vector<SCall> callers; // addresses of functions that call this function
std::vector<SCall> calls; // addresses of functions that are called by this function std::vector<SCall> calls; // addresses of functions that are called by this function
u32 hash = 0; // use for HLE function finding u32 hash = 0; // use for HLE function finding

View file

@ -16,6 +16,7 @@
#include "Common/Assert.h" #include "Common/Assert.h"
#include "Common/BitUtils.h" #include "Common/BitUtils.h"
#include "Common/CommonPaths.h" #include "Common/CommonPaths.h"
#include "Common/Config/Config.h"
#include "Common/FileUtil.h" #include "Common/FileUtil.h"
#include "Common/IOFile.h" #include "Common/IOFile.h"
#include "Common/Image.h" #include "Common/Image.h"
@ -23,8 +24,12 @@
#include "Common/ScopeGuard.h" #include "Common/ScopeGuard.h"
#include "Common/Version.h" #include "Common/Version.h"
#include "Common/WorkQueueThread.h" #include "Common/WorkQueueThread.h"
#include "Core/ActionReplay.h"
#include "Core/Config/AchievementSettings.h" #include "Core/Config/AchievementSettings.h"
#include "Core/Config/FreeLookSettings.h"
#include "Core/Config/MainSettings.h"
#include "Core/Core.h" #include "Core/Core.h"
#include "Core/GeckoCode.h"
#include "Core/HW/Memmap.h" #include "Core/HW/Memmap.h"
#include "Core/HW/VideoInterface.h" #include "Core/HW/VideoInterface.h"
#include "Core/PatchEngine.h" #include "Core/PatchEngine.h"
@ -62,7 +67,8 @@ void AchievementManager::Init()
[](const char* message, const rc_client_t* client) { [](const char* message, const rc_client_t* client) {
INFO_LOG_FMT(ACHIEVEMENTS, "{}", message); INFO_LOG_FMT(ACHIEVEMENTS, "{}", message);
}); });
rc_client_set_hardcore_enabled(m_client, Config::Get(Config::RA_HARDCORE_ENABLED)); Config::AddConfigChangedCallback([this] { SetHardcoreMode(); });
SetHardcoreMode();
m_queue.Reset("AchievementManagerQueue", [](const std::function<void()>& func) { func(); }); m_queue.Reset("AchievementManagerQueue", [](const std::function<void()>& func) { func(); });
m_image_queue.Reset("AchievementManagerImageQueue", m_image_queue.Reset("AchievementManagerImageQueue",
[](const std::function<void()>& func) { func(); }); [](const std::function<void()>& func) { func(); });
@ -361,6 +367,12 @@ std::recursive_mutex& AchievementManager::GetLock()
void AchievementManager::SetHardcoreMode() void AchievementManager::SetHardcoreMode()
{ {
rc_client_set_hardcore_enabled(m_client, Config::Get(Config::RA_HARDCORE_ENABLED)); rc_client_set_hardcore_enabled(m_client, Config::Get(Config::RA_HARDCORE_ENABLED));
if (Config::Get(Config::RA_HARDCORE_ENABLED))
{
if (Config::Get(Config::MAIN_EMULATION_SPEED) < 1.0f)
Config::SetBaseOrCurrent(Config::MAIN_EMULATION_SPEED, 1.0f);
Config::SetBaseOrCurrent(Config::FREE_LOOK_ENABLED, false);
}
} }
bool AchievementManager::IsHardcoreModeActive() const bool AchievementManager::IsHardcoreModeActive() const
@ -373,10 +385,11 @@ bool AchievementManager::IsHardcoreModeActive() const
return rc_client_is_processing_required(m_client); return rc_client_is_processing_required(m_client);
} }
void AchievementManager::FilterApprovedPatches(std::vector<PatchEngine::Patch>& patches, template <typename T>
void AchievementManager::FilterApprovedIni(std::vector<T>& codes,
const std::string& game_ini_id) const const std::string& game_ini_id) const
{ {
if (patches.empty()) if (codes.empty())
{ {
// There's nothing to verify, so let's save ourselves some work // There's nothing to verify, so let's save ourselves some work
return; return;
@ -387,20 +400,58 @@ void AchievementManager::FilterApprovedPatches(std::vector<PatchEngine::Patch>&
if (!IsHardcoreModeActive()) if (!IsHardcoreModeActive())
return; return;
// Approved codes list failed to hash
if (!m_ini_root->is<picojson::value::object>())
{
codes.clear();
return;
}
for (auto& code : codes)
{
if (code.enabled && !CheckApprovedCode(code, game_ini_id))
code.enabled = false;
}
}
template <typename T>
bool AchievementManager::CheckApprovedCode(const T& code, const std::string& game_ini_id) const
{
if (!IsHardcoreModeActive())
return true;
// Approved codes list failed to hash
if (!m_ini_root->is<picojson::value::object>())
return false;
const bool known_id = m_ini_root->contains(game_ini_id); const bool known_id = m_ini_root->contains(game_ini_id);
auto patch_itr = patches.begin(); INFO_LOG_FMT(ACHIEVEMENTS, "Verifying code {}", code.name);
while (patch_itr != patches.end())
{
INFO_LOG_FMT(ACHIEVEMENTS, "Verifying patch {}", patch_itr->name);
bool verified = false; bool verified = false;
if (known_id) if (known_id)
{
auto digest = GetCodeHash(code);
verified = m_ini_root->get(game_ini_id).contains(Common::SHA1::DigestToString(digest));
}
if (!verified)
{
OSD::AddMessage(fmt::format("Failed to verify code {} from file {}.", code.name, game_ini_id),
OSD::Duration::VERY_LONG, OSD::Color::RED);
OSD::AddMessage("Disable hardcore mode to enable this code.", OSD::Duration::VERY_LONG,
OSD::Color::RED);
}
return verified;
}
Common::SHA1::Digest AchievementManager::GetCodeHash(const PatchEngine::Patch& patch) const
{ {
auto context = Common::SHA1::CreateContext(); auto context = Common::SHA1::CreateContext();
context->Update(Common::BitCastToArray<u8>(static_cast<u64>(patch_itr->entries.size()))); context->Update(Common::BitCastToArray<u8>(static_cast<u64>(patch.entries.size())));
for (const auto& entry : patch_itr->entries) for (const auto& entry : patch.entries)
{ {
context->Update(Common::BitCastToArray<u8>(entry.type)); context->Update(Common::BitCastToArray<u8>(entry.type));
context->Update(Common::BitCastToArray<u8>(entry.address)); context->Update(Common::BitCastToArray<u8>(entry.address));
@ -408,25 +459,61 @@ void AchievementManager::FilterApprovedPatches(std::vector<PatchEngine::Patch>&
context->Update(Common::BitCastToArray<u8>(entry.comparand)); context->Update(Common::BitCastToArray<u8>(entry.comparand));
context->Update(Common::BitCastToArray<u8>(entry.conditional)); context->Update(Common::BitCastToArray<u8>(entry.conditional));
} }
auto digest = context->Finish(); return context->Finish();
verified = m_ini_root->get(game_ini_id).contains(Common::SHA1::DigestToString(digest));
} }
if (!verified) Common::SHA1::Digest AchievementManager::GetCodeHash(const Gecko::GeckoCode& code) const
{ {
patch_itr = patches.erase(patch_itr); auto context = Common::SHA1::CreateContext();
OSD::AddMessage( context->Update(Common::BitCastToArray<u8>(static_cast<u64>(code.codes.size())));
fmt::format("Failed to verify patch {} from file {}.", patch_itr->name, game_ini_id), for (const auto& entry : code.codes)
OSD::Duration::VERY_LONG, OSD::Color::RED);
OSD::AddMessage("Disable hardcore mode to enable this patch.", OSD::Duration::VERY_LONG,
OSD::Color::RED);
}
else
{ {
patch_itr++; context->Update(Common::BitCastToArray<u8>(entry.address));
context->Update(Common::BitCastToArray<u8>(entry.data));
} }
return context->Finish();
} }
Common::SHA1::Digest AchievementManager::GetCodeHash(const ActionReplay::ARCode& code) const
{
auto context = Common::SHA1::CreateContext();
context->Update(Common::BitCastToArray<u8>(static_cast<u64>(code.ops.size())));
for (const auto& entry : code.ops)
{
context->Update(Common::BitCastToArray<u8>(entry.cmd_addr));
context->Update(Common::BitCastToArray<u8>(entry.value));
}
return context->Finish();
}
void AchievementManager::FilterApprovedPatches(std::vector<PatchEngine::Patch>& patches,
const std::string& game_ini_id) const
{
FilterApprovedIni(patches, game_ini_id);
}
void AchievementManager::FilterApprovedGeckoCodes(std::vector<Gecko::GeckoCode>& codes,
const std::string& game_ini_id) const
{
FilterApprovedIni(codes, game_ini_id);
}
void AchievementManager::FilterApprovedARCodes(std::vector<ActionReplay::ARCode>& codes,
const std::string& game_ini_id) const
{
FilterApprovedIni(codes, game_ini_id);
}
bool AchievementManager::CheckApprovedGeckoCode(const Gecko::GeckoCode& code,
const std::string& game_ini_id) const
{
return CheckApprovedCode(code, game_ini_id);
}
bool AchievementManager::CheckApprovedARCode(const ActionReplay::ARCode& code,
const std::string& game_ini_id) const
{
return CheckApprovedCode(code, game_ini_id);
} }
void AchievementManager::SetSpectatorMode() void AchievementManager::SetSpectatorMode()

View file

@ -45,6 +45,16 @@ namespace PatchEngine
struct Patch; struct Patch;
} // namespace PatchEngine } // namespace PatchEngine
namespace Gecko
{
class GeckoCode;
} // namespace Gecko
namespace ActionReplay
{
struct ARCode;
} // namespace ActionReplay
class AchievementManager class AchievementManager
{ {
public: public:
@ -70,8 +80,8 @@ public:
static constexpr std::string_view BLUE = "#0B71C1"; static constexpr std::string_view BLUE = "#0B71C1";
static constexpr std::string_view APPROVED_LIST_FILENAME = "ApprovedInis.json"; static constexpr std::string_view APPROVED_LIST_FILENAME = "ApprovedInis.json";
static const inline Common::SHA1::Digest APPROVED_LIST_HASH = { static const inline Common::SHA1::Digest APPROVED_LIST_HASH = {
0x50, 0x2F, 0x58, 0x02, 0x94, 0x60, 0x1B, 0x9F, 0x92, 0xC7, 0xA4, 0x98, 0x59, 0x23, 0x10, 0x56, 0x45, 0x30, 0xA9, 0xC5,
0x04, 0x17, 0x50, 0x2E, 0xF3, 0x09, 0x8C, 0x8C, 0xD6, 0xC0}; 0x68, 0x5A, 0xB6, 0x47, 0x67, 0xF8, 0xF0, 0x7D, 0x1D, 0x14};
struct LeaderboardEntry struct LeaderboardEntry
{ {
@ -122,11 +132,18 @@ public:
void DoIdle(); void DoIdle();
std::recursive_mutex& GetLock(); std::recursive_mutex& GetLock();
void SetHardcoreMode();
bool IsHardcoreModeActive() const; bool IsHardcoreModeActive() const;
void SetGameIniId(const std::string& game_ini_id) { m_game_ini_id = game_ini_id; } void SetGameIniId(const std::string& game_ini_id) { m_game_ini_id = game_ini_id; }
void FilterApprovedPatches(std::vector<PatchEngine::Patch>& patches, void FilterApprovedPatches(std::vector<PatchEngine::Patch>& patches,
const std::string& game_ini_id) const; const std::string& game_ini_id) const;
void FilterApprovedGeckoCodes(std::vector<Gecko::GeckoCode>& codes,
const std::string& game_ini_id) const;
void FilterApprovedARCodes(std::vector<ActionReplay::ARCode>& codes,
const std::string& game_ini_id) const;
bool CheckApprovedGeckoCode(const Gecko::GeckoCode& code, const std::string& game_ini_id) const;
bool CheckApprovedARCode(const ActionReplay::ARCode& code, const std::string& game_ini_id) const;
void SetSpectatorMode(); void SetSpectatorMode();
std::string_view GetPlayerDisplayName() const; std::string_view GetPlayerDisplayName() const;
u32 GetPlayerScore() const; u32 GetPlayerScore() const;
@ -181,6 +198,16 @@ private:
void* userdata); void* userdata);
void DisplayWelcomeMessage(); void DisplayWelcomeMessage();
void SetHardcoreMode();
template <typename T>
void FilterApprovedIni(std::vector<T>& codes, const std::string& game_ini_id) const;
template <typename T>
bool CheckApprovedCode(const T& code, const std::string& game_ini_id) const;
Common::SHA1::Digest GetCodeHash(const PatchEngine::Patch& patch) const;
Common::SHA1::Digest GetCodeHash(const Gecko::GeckoCode& code) const;
Common::SHA1::Digest GetCodeHash(const ActionReplay::ARCode& code) const;
static void LeaderboardEntriesCallback(int result, const char* error_message, static void LeaderboardEntriesCallback(int result, const char* error_message,
rc_client_leaderboard_entry_list_t* list, rc_client_leaderboard_entry_list_t* list,
rc_client_t* client, void* userdata); rc_client_t* client, void* userdata);
@ -249,11 +276,21 @@ private:
#include <string> #include <string>
namespace ActionReplay
{
struct ARCode;
}
namespace DiscIO namespace DiscIO
{ {
class Volume; class Volume;
} }
namespace Gecko
{
class GeckoCode;
}
class AchievementManager class AchievementManager
{ {
public: public:
@ -265,6 +302,18 @@ public:
constexpr bool IsHardcoreModeActive() { return false; } constexpr bool IsHardcoreModeActive() { return false; }
constexpr bool CheckApprovedGeckoCode(const Gecko::GeckoCode& code,
const std::string& game_ini_id)
{
return true;
};
constexpr bool CheckApprovedARCode(const ActionReplay::ARCode& code,
const std::string& game_ini_id)
{
return true;
};
constexpr void LoadGame(const std::string&, const DiscIO::Volume*) {} constexpr void LoadGame(const std::string&, const DiscIO::Volume*) {}
constexpr void SetBackgroundExecutionAllowed(bool allowed) {} constexpr void SetBackgroundExecutionAllowed(bool allowed) {}

View file

@ -39,6 +39,7 @@
#include "Common/MsgHandler.h" #include "Common/MsgHandler.h"
#include "Core/ARDecrypt.h" #include "Core/ARDecrypt.h"
#include "Core/AchievementManager.h"
#include "Core/CheatCodes.h" #include "Core/CheatCodes.h"
#include "Core/Config/MainSettings.h" #include "Core/Config/MainSettings.h"
#include "Core/PowerPC/MMU.h" #include "Core/PowerPC/MMU.h"
@ -112,7 +113,7 @@ struct ARAddr
// ---------------------- // ----------------------
// AR Remote Functions // AR Remote Functions
void ApplyCodes(std::span<const ARCode> codes) void ApplyCodes(std::span<const ARCode> codes, const std::string& game_id)
{ {
if (!Config::AreCheatsEnabled()) if (!Config::AreCheatsEnabled())
return; return;
@ -121,7 +122,10 @@ void ApplyCodes(std::span<const ARCode> codes)
s_disable_logging = false; s_disable_logging = false;
s_active_codes.clear(); s_active_codes.clear();
std::copy_if(codes.begin(), codes.end(), std::back_inserter(s_active_codes), std::copy_if(codes.begin(), codes.end(), std::back_inserter(s_active_codes),
[](const ARCode& code) { return code.enabled; }); [&game_id](const ARCode& code) {
return code.enabled &&
AchievementManager::GetInstance().CheckApprovedARCode(code, game_id);
});
s_active_codes.shrink_to_fit(); s_active_codes.shrink_to_fit();
} }
@ -169,9 +173,10 @@ void AddCode(ARCode code)
} }
} }
void LoadAndApplyCodes(const Common::IniFile& global_ini, const Common::IniFile& local_ini) void LoadAndApplyCodes(const Common::IniFile& global_ini, const Common::IniFile& local_ini,
const std::string& game_id)
{ {
ApplyCodes(LoadCodes(global_ini, local_ini)); ApplyCodes(LoadCodes(global_ini, local_ini), game_id);
} }
// Parses the Action Replay section of a game ini file. // Parses the Action Replay section of a game ini file.

View file

@ -45,12 +45,13 @@ struct ARCode
void RunAllActive(const Core::CPUThreadGuard& cpu_guard); void RunAllActive(const Core::CPUThreadGuard& cpu_guard);
void ApplyCodes(std::span<const ARCode> codes); void ApplyCodes(std::span<const ARCode> codes, const std::string& game_id);
void SetSyncedCodesAsActive(); void SetSyncedCodesAsActive();
void UpdateSyncedCodes(std::span<const ARCode> codes); void UpdateSyncedCodes(std::span<const ARCode> codes);
std::vector<ARCode> ApplyAndReturnCodes(std::span<const ARCode> codes); std::vector<ARCode> ApplyAndReturnCodes(std::span<const ARCode> codes);
void AddCode(ARCode new_code); void AddCode(ARCode new_code);
void LoadAndApplyCodes(const Common::IniFile& global_ini, const Common::IniFile& local_ini); void LoadAndApplyCodes(const Common::IniFile& global_ini, const Common::IniFile& local_ini,
const std::string& game_id);
std::vector<ARCode> LoadCodes(const Common::IniFile& global_ini, const Common::IniFile& local_ini); std::vector<ARCode> LoadCodes(const Common::IniFile& global_ini, const Common::IniFile& local_ini);
void SaveCodes(Common::IniFile* local_ini, std::span<const ARCode> codes); void SaveCodes(Common::IniFile* local_ini, std::span<const ARCode> codes);

View file

@ -605,7 +605,9 @@ bool CBoot::BootUp(Core::System& system, const Core::CPUThreadGuard& guard,
ppc_state.pc = executable.reader->GetEntryPoint(); ppc_state.pc = executable.reader->GetEntryPoint();
if (executable.reader->LoadSymbols(guard, system.GetPPCSymbolDB())) const std::string filename = PathToFileName(executable.path);
if (executable.reader->LoadSymbols(guard, system.GetPPCSymbolDB(), filename))
{ {
Host_PPCSymbolsChanged(); Host_PPCSymbolsChanged();
HLE::PatchFunctions(system); HLE::PatchFunctions(system);

View file

@ -215,7 +215,8 @@ public:
virtual bool IsValid() const = 0; virtual bool IsValid() const = 0;
virtual bool IsWii() const = 0; virtual bool IsWii() const = 0;
virtual bool LoadIntoMemory(Core::System& system, bool only_in_mem1 = false) const = 0; virtual bool LoadIntoMemory(Core::System& system, bool only_in_mem1 = false) const = 0;
virtual bool LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db) const = 0; virtual bool LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db,
const std::string& filename) const = 0;
protected: protected:
std::vector<u8> m_bytes; std::vector<u8> m_bytes;

View file

@ -371,12 +371,12 @@ bool CBoot::SetupWiiMemory(Core::System& system, IOS::HLE::IOSC::ConsoleType con
const auto fs = system.GetIOS()->GetFS(); const auto fs = system.GetIOS()->GetFS();
{ {
Common::SettingsHandler::Buffer data; Common::SettingsBuffer data;
const auto file = fs->OpenFile(IOS::SYSMENU_UID, IOS::SYSMENU_GID, settings_file_path, const auto file = fs->OpenFile(IOS::SYSMENU_UID, IOS::SYSMENU_GID, settings_file_path,
IOS::HLE::FS::Mode::Read); IOS::HLE::FS::Mode::Read);
if (file && file->Read(data.data(), data.size())) if (file && file->Read(data.data(), data.size()))
{ {
Common::SettingsHandler settings_reader(data); const Common::SettingsReader settings_reader(data);
serno = settings_reader.GetValue("SERNO"); serno = settings_reader.GetValue("SERNO");
model = settings_reader.GetValue("MODEL"); model = settings_reader.GetValue("MODEL");
@ -413,7 +413,7 @@ bool CBoot::SetupWiiMemory(Core::System& system, IOS::HLE::IOSC::ConsoleType con
if (Core::WantsDeterminism()) if (Core::WantsDeterminism())
serno = "123456789"; serno = "123456789";
else else
serno = Common::SettingsHandler::GenerateSerialNumber(); serno = Common::SettingsWriter::GenerateSerialNumber();
INFO_LOG_FMT(BOOT, "No previous serial number found, generated one instead: {}", serno); INFO_LOG_FMT(BOOT, "No previous serial number found, generated one instead: {}", serno);
} }
else else
@ -421,20 +421,21 @@ bool CBoot::SetupWiiMemory(Core::System& system, IOS::HLE::IOSC::ConsoleType con
INFO_LOG_FMT(BOOT, "Using serial number: {}", serno); INFO_LOG_FMT(BOOT, "Using serial number: {}", serno);
} }
Common::SettingsHandler gen; Common::SettingsWriter settings_writer;
gen.AddSetting("AREA", region_setting.area); settings_writer.AddSetting("AREA", region_setting.area);
gen.AddSetting("MODEL", model); settings_writer.AddSetting("MODEL", model);
gen.AddSetting("DVD", "0"); settings_writer.AddSetting("DVD", "0");
gen.AddSetting("MPCH", "0x7FFE"); settings_writer.AddSetting("MPCH", "0x7FFE");
gen.AddSetting("CODE", region_setting.code); settings_writer.AddSetting("CODE", region_setting.code);
gen.AddSetting("SERNO", serno); settings_writer.AddSetting("SERNO", serno);
gen.AddSetting("VIDEO", region_setting.video); settings_writer.AddSetting("VIDEO", region_setting.video);
gen.AddSetting("GAME", region_setting.game); settings_writer.AddSetting("GAME", region_setting.game);
constexpr IOS::HLE::FS::Mode rw_mode = IOS::HLE::FS::Mode::ReadWrite; constexpr IOS::HLE::FS::Mode rw_mode = IOS::HLE::FS::Mode::ReadWrite;
const auto settings_file = fs->CreateAndOpenFile(IOS::SYSMENU_UID, IOS::SYSMENU_GID, const auto settings_file = fs->CreateAndOpenFile(IOS::SYSMENU_UID, IOS::SYSMENU_GID,
settings_file_path, {rw_mode, rw_mode, rw_mode}); settings_file_path, {rw_mode, rw_mode, rw_mode});
if (!settings_file || !settings_file->Write(gen.GetBytes().data(), gen.GetBytes().size())) if (!settings_file ||
!settings_file->Write(settings_writer.GetBytes().data(), settings_writer.GetBytes().size()))
{ {
PanicAlertFmtT("SetupWiiMemory: Can't create setting.txt file"); PanicAlertFmtT("SetupWiiMemory: Can't create setting.txt file");
return false; return false;
@ -443,7 +444,7 @@ bool CBoot::SetupWiiMemory(Core::System& system, IOS::HLE::IOSC::ConsoleType con
auto& memory = system.GetMemory(); auto& memory = system.GetMemory();
// Write the 256 byte setting.txt to memory. // Write the 256 byte setting.txt to memory.
memory.CopyToEmu(0x3800, gen.GetBytes().data(), gen.GetBytes().size()); memory.CopyToEmu(0x3800, settings_writer.GetBytes().data(), settings_writer.GetBytes().size());
INFO_LOG_FMT(BOOT, "Setup Wii Memory..."); INFO_LOG_FMT(BOOT, "Setup Wii Memory...");

View file

@ -27,7 +27,8 @@ public:
bool IsAncast() const { return m_is_ancast; } bool IsAncast() const { return m_is_ancast; }
u32 GetEntryPoint() const override { return m_dolheader.entryPoint; } u32 GetEntryPoint() const override { return m_dolheader.entryPoint; }
bool LoadIntoMemory(Core::System& system, bool only_in_mem1 = false) const override; bool LoadIntoMemory(Core::System& system, bool only_in_mem1 = false) const override;
bool LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db) const override bool LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db,
const std::string& filename) const override
{ {
return false; return false;
} }

View file

@ -180,7 +180,8 @@ SectionID ElfReader::GetSectionByName(const char* name, int firstSection) const
return -1; return -1;
} }
bool ElfReader::LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db) const bool ElfReader::LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db,
const std::string& filename) const
{ {
bool hasSymbols = false; bool hasSymbols = false;
SectionID sec = GetSectionByName(".symtab"); SectionID sec = GetSectionByName(".symtab");
@ -218,7 +219,7 @@ bool ElfReader::LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_
default: default:
continue; continue;
} }
ppc_symbol_db.AddKnownSymbol(guard, value, size, name, symtype); ppc_symbol_db.AddKnownSymbol(guard, value, size, name, filename, symtype);
hasSymbols = true; hasSymbols = true;
} }
} }

View file

@ -36,7 +36,8 @@ public:
u32 GetEntryPoint() const override { return entryPoint; } u32 GetEntryPoint() const override { return entryPoint; }
u32 GetFlags() const { return (u32)(header->e_flags); } u32 GetFlags() const { return (u32)(header->e_flags); }
bool LoadIntoMemory(Core::System& system, bool only_in_mem1 = false) const override; bool LoadIntoMemory(Core::System& system, bool only_in_mem1 = false) const override;
bool LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db) const override; bool LoadSymbols(const Core::CPUThreadGuard& guard, PPCSymbolDB& ppc_symbol_db,
const std::string& filename) const override;
// TODO: actually check for validity. // TODO: actually check for validity.
bool IsValid() const override { return true; } bool IsValid() const override { return true; }
bool IsWii() const override; bool IsWii() const override;

View file

@ -178,7 +178,7 @@ const Info<int> GFX_STEREO_DEPTH_PERCENTAGE{{System::GFX, "Stereoscopy", "Stereo
// Graphics.Hacks // Graphics.Hacks
const Info<bool> GFX_HACK_EFB_ACCESS_ENABLE{{System::GFX, "Hacks", "EFBAccessEnable"}, true}; const Info<bool> GFX_HACK_EFB_ACCESS_ENABLE{{System::GFX, "Hacks", "EFBAccessEnable"}, false};
const Info<bool> GFX_HACK_EFB_DEFER_INVALIDATION{ const Info<bool> GFX_HACK_EFB_DEFER_INVALIDATION{
{System::GFX, "Hacks", "EFBAccessDeferInvalidation"}, false}; {System::GFX, "Hacks", "EFBAccessDeferInvalidation"}, false};
const Info<int> GFX_HACK_EFB_ACCESS_TILE_SIZE{{System::GFX, "Hacks", "EFBAccessTileSize"}, 64}; const Info<int> GFX_HACK_EFB_ACCESS_TILE_SIZE{{System::GFX, "Hacks", "EFBAccessTileSize"}, 64};

View file

@ -212,7 +212,7 @@ const Info<bool> MAIN_RAM_OVERRIDE_ENABLE{{System::Main, "Core", "RAMOverrideEna
const Info<u32> MAIN_MEM1_SIZE{{System::Main, "Core", "MEM1Size"}, Memory::MEM1_SIZE_RETAIL}; const Info<u32> MAIN_MEM1_SIZE{{System::Main, "Core", "MEM1Size"}, Memory::MEM1_SIZE_RETAIL};
const Info<u32> MAIN_MEM2_SIZE{{System::Main, "Core", "MEM2Size"}, Memory::MEM2_SIZE_RETAIL}; const Info<u32> MAIN_MEM2_SIZE{{System::Main, "Core", "MEM2Size"}, Memory::MEM2_SIZE_RETAIL};
const Info<std::string> MAIN_GFX_BACKEND{{System::Main, "Core", "GFXBackend"}, const Info<std::string> MAIN_GFX_BACKEND{{System::Main, "Core", "GFXBackend"},
VideoBackendBase::GetDefaultBackendName()}; VideoBackendBase::GetDefaultBackendConfigName()};
const Info<HSP::HSPDeviceType> MAIN_HSP_DEVICE{{System::Main, "Core", "HSPDevice"}, const Info<HSP::HSPDeviceType> MAIN_HSP_DEVICE{{System::Main, "Core", "HSPDevice"},
HSP::HSPDeviceType::None}; HSP::HSPDeviceType::None};
const Info<u32> MAIN_ARAM_EXPANSION_SIZE{{System::Main, "Core", "ARAMExpansionSize"}, 0x400000}; const Info<u32> MAIN_ARAM_EXPANSION_SIZE{{System::Main, "Core", "ARAMExpansionSize"}, 0x400000};
@ -751,8 +751,7 @@ bool IsDefaultGCIFolderPathConfigured(ExpansionInterface::Slot slot)
bool AreCheatsEnabled() bool AreCheatsEnabled()
{ {
return Config::Get(::Config::MAIN_ENABLE_CHEATS) && return Config::Get(::Config::MAIN_ENABLE_CHEATS);
!AchievementManager::GetInstance().IsHardcoreModeActive();
} }
bool IsDebuggingEnabled() bool IsDebuggingEnabled()

View file

@ -6,19 +6,14 @@
#include <algorithm> #include <algorithm>
#include <array> #include <array>
#include "Common/Config/Config.h"
#include "Core/Config/AchievementSettings.h"
#include "Core/Config/GraphicsSettings.h"
#include "Core/Config/MainSettings.h"
#include "Core/Config/UISettings.h"
#include "Core/Config/WiimoteSettings.h" #include "Core/Config/WiimoteSettings.h"
namespace ConfigLoaders namespace ConfigLoaders
{ {
bool IsSettingSaveable(const Config::Location& config_location) bool IsSettingSaveable(const Config::Location& config_location)
{ {
static constexpr std::array<Config::System, 3> systems_not_saveable = { static constexpr std::array systems_not_saveable = {Config::System::GCPad, Config::System::WiiPad,
Config::System::GCPad, Config::System::WiiPad, Config::System::GCKeyboard}; Config::System::GCKeyboard};
if (std::find(begin(systems_not_saveable), end(systems_not_saveable), config_location.system) == if (std::find(begin(systems_not_saveable), end(systems_not_saveable), config_location.system) ==
end(systems_not_saveable)) end(systems_not_saveable))

View file

@ -11,6 +11,7 @@
#include "Common/Config/Config.h" #include "Common/Config/Config.h"
#include "Common/FileUtil.h" #include "Common/FileUtil.h"
#include "Core/Config/AchievementSettings.h"
#include "Core/Config/GraphicsSettings.h" #include "Core/Config/GraphicsSettings.h"
#include "Core/Config/MainSettings.h" #include "Core/Config/MainSettings.h"
#include "Core/Config/SYSCONFSettings.h" #include "Core/Config/SYSCONFSettings.h"
@ -33,6 +34,9 @@ public:
layer->Set(Config::MAIN_CPU_THREAD, m_settings.cpu_thread); layer->Set(Config::MAIN_CPU_THREAD, m_settings.cpu_thread);
layer->Set(Config::MAIN_CPU_CORE, m_settings.cpu_core); layer->Set(Config::MAIN_CPU_CORE, m_settings.cpu_core);
layer->Set(Config::MAIN_ENABLE_CHEATS, m_settings.enable_cheats); layer->Set(Config::MAIN_ENABLE_CHEATS, m_settings.enable_cheats);
#ifdef USE_RETRO_ACHIEVEMENTS
layer->Set(Config::RA_HARDCORE_ENABLED, m_settings.enable_hardcore);
#endif // USE_RETRO_ACHIEVEMENTS
layer->Set(Config::MAIN_GC_LANGUAGE, m_settings.selected_language); layer->Set(Config::MAIN_GC_LANGUAGE, m_settings.selected_language);
layer->Set(Config::MAIN_OVERRIDE_REGION_SETTINGS, m_settings.override_region_settings); layer->Set(Config::MAIN_OVERRIDE_REGION_SETTINGS, m_settings.override_region_settings);
layer->Set(Config::MAIN_DSP_HLE, m_settings.dsp_hle); layer->Set(Config::MAIN_DSP_HLE, m_settings.dsp_hle);

View file

@ -217,7 +217,7 @@ void SConfig::OnNewTitleLoad(const Core::CPUThreadGuard& guard)
} }
CBoot::LoadMapFromFilename(guard, ppc_symbol_db); CBoot::LoadMapFromFilename(guard, ppc_symbol_db);
HLE::Reload(system); HLE::Reload(system);
PatchEngine::Reload(); PatchEngine::Reload(system);
HiresTexture::Update(); HiresTexture::Update();
WC24PatchEngine::Reload(); WC24PatchEngine::Reload();
} }

View file

@ -375,6 +375,7 @@ void RSOView::LoadAll(const Core::CPUThreadGuard& guard, u32 address)
void RSOView::Apply(const Core::CPUThreadGuard& guard, PPCSymbolDB* symbol_db) const void RSOView::Apply(const Core::CPUThreadGuard& guard, PPCSymbolDB* symbol_db) const
{ {
const std::string rso_name = GetName();
for (const RSOExport& rso_export : GetExports()) for (const RSOExport& rso_export : GetExports())
{ {
u32 address = GetExportAddress(rso_export); u32 address = GetExportAddress(rso_export);
@ -389,15 +390,17 @@ void RSOView::Apply(const Core::CPUThreadGuard& guard, PPCSymbolDB* symbol_db) c
{ {
// Function symbol // Function symbol
symbol->Rename(export_name); symbol->Rename(export_name);
symbol->object_name = rso_name;
} }
else else
{ {
// Data symbol // Data symbol
symbol_db->AddKnownSymbol(guard, address, 0, export_name, Common::Symbol::Type::Data); symbol_db->AddKnownSymbol(guard, address, 0, export_name, rso_name,
Common::Symbol::Type::Data);
} }
} }
} }
DEBUG_LOG_FMT(SYMBOLS, "RSO({}): {} symbols applied", GetName(), GetExportsCount()); DEBUG_LOG_FMT(SYMBOLS, "RSO({}): {} symbols applied", rso_name, GetExportsCount());
} }
u32 RSOView::GetNextEntry() const u32 RSOView::GetNextEntry() const

View file

@ -15,8 +15,10 @@
#include "Common/Config/Config.h" #include "Common/Config/Config.h"
#include "Common/FileUtil.h" #include "Common/FileUtil.h"
#include "Core/AchievementManager.h"
#include "Core/Config/MainSettings.h" #include "Core/Config/MainSettings.h"
#include "Core/Core.h" #include "Core/Core.h"
#include "Core/Host.h"
#include "Core/PowerPC/MMU.h" #include "Core/PowerPC/MMU.h"
#include "Core/PowerPC/PowerPC.h" #include "Core/PowerPC/PowerPC.h"
#include "ConfigManager.h" #include "ConfigManager.h"
@ -52,7 +54,7 @@ static std::vector<GeckoCode> s_active_codes;
static std::vector<GeckoCode> s_synced_codes; static std::vector<GeckoCode> s_synced_codes;
static std::mutex s_active_codes_lock; static std::mutex s_active_codes_lock;
void SetActiveCodes(std::span<const GeckoCode> gcodes) void SetActiveCodes(std::span<const GeckoCode> gcodes, const std::string& game_id)
{ {
std::lock_guard lk(s_active_codes_lock); std::lock_guard lk(s_active_codes_lock);
@ -60,8 +62,12 @@ void SetActiveCodes(std::span<const GeckoCode> gcodes)
if (Config::AreCheatsEnabled()) if (Config::AreCheatsEnabled())
{ {
s_active_codes.reserve(gcodes.size()); s_active_codes.reserve(gcodes.size());
std::copy_if(gcodes.begin(), gcodes.end(), std::back_inserter(s_active_codes), std::copy_if(gcodes.begin(), gcodes.end(), std::back_inserter(s_active_codes),
[](const GeckoCode& code) { return code.enabled; }); [&game_id](const GeckoCode& code) {
return code.enabled &&
AchievementManager::GetInstance().CheckApprovedGeckoCode(code, game_id);
});
} }
s_active_codes.shrink_to_fit(); s_active_codes.shrink_to_fit();
@ -272,6 +278,7 @@ static Installation InstallCodeHandlerLocked(const Core::CPUThreadGuard& guard)
{ {
ppc_state.iCache.Invalidate(INSTALLER_BASE_ADDRESS + j); ppc_state.iCache.Invalidate(INSTALLER_BASE_ADDRESS + j);
} }
Host_JitCacheInvalidation();
return Installation::Installed; return Installation::Installed;
} }

View file

@ -80,7 +80,7 @@ constexpr u32 HLE_TRAMPOLINE_ADDRESS = INSTALLER_END_ADDRESS - 4;
// preserve the emulation performance. // preserve the emulation performance.
constexpr u32 MAGIC_GAMEID = 0xD01F1BAD; constexpr u32 MAGIC_GAMEID = 0xD01F1BAD;
void SetActiveCodes(std::span<const GeckoCode> gcodes); void SetActiveCodes(std::span<const GeckoCode> gcodes, const std::string& game_id);
void SetSyncedCodesAsActive(); void SetSyncedCodesAsActive();
void UpdateSyncedCodes(std::span<const GeckoCode> gcodes); void UpdateSyncedCodes(std::span<const GeckoCode> gcodes);
std::vector<GeckoCode> SetAndReturnActiveCodes(std::span<const GeckoCode> gcodes); std::vector<GeckoCode> SetAndReturnActiveCodes(std::span<const GeckoCode> gcodes);

View file

@ -18,6 +18,7 @@
#include "Core/HLE/HLE_Misc.h" #include "Core/HLE/HLE_Misc.h"
#include "Core/HLE/HLE_OS.h" #include "Core/HLE/HLE_OS.h"
#include "Core/HW/Memmap.h" #include "Core/HW/Memmap.h"
#include "Core/Host.h"
#include "Core/IOS/ES/ES.h" #include "Core/IOS/ES/ES.h"
#include "Core/PowerPC/PPCSymbolDB.h" #include "Core/PowerPC/PPCSymbolDB.h"
#include "Core/PowerPC/PowerPC.h" #include "Core/PowerPC/PowerPC.h"
@ -187,6 +188,8 @@ void PatchFunctions(Core::System& system)
INFO_LOG_FMT(OSHLE, "Patching {} {:08x}", os_patches[i].name, symbol->address); INFO_LOG_FMT(OSHLE, "Patching {} {:08x}", os_patches[i].name, symbol->address);
} }
} }
Host_JitCacheInvalidation();
} }
void Clear() void Clear()
@ -305,6 +308,7 @@ u32 UnPatch(Core::System& system, std::string_view patch_name)
++i; ++i;
} }
} }
Host_JitCacheInvalidation();
return addr; return addr;
} }
@ -317,6 +321,7 @@ u32 UnPatch(Core::System& system, std::string_view patch_name)
s_hooked_addresses.erase(addr); s_hooked_addresses.erase(addr);
ppc_state.iCache.Invalidate(addr); ppc_state.iCache.Invalidate(addr);
} }
Host_JitCacheInvalidation();
return symbol->address; return symbol->address;
} }
@ -338,6 +343,7 @@ u32 UnpatchRange(Core::System& system, u32 start_addr, u32 end_addr)
i = s_hooked_addresses.erase(i); i = s_hooked_addresses.erase(i);
count += 1; count += 1;
} }
Host_JitCacheInvalidation();
return count; return count;
} }

View file

@ -418,7 +418,7 @@ void AXWiiUCode::WritePB(Memory::MemoryManager& memory, u32 addr, const AXPBWii&
case 0xadbc06bd: case 0xadbc06bd:
memory.CopyToEmuSwapped<u16>(addr, (const u16*)src, updates_begin); memory.CopyToEmuSwapped<u16>(addr, (const u16*)src, updates_begin);
memory.CopyToEmuSwapped<u16>(addr + updates_begin, (const u16*)(src + updates_end), memory.CopyToEmuSwapped<u16>(addr + updates_begin, (const u16*)(src + updates_end),
sizeof(PBUpdatesWii)); gap_begin - updates_end);
memory.CopyToEmuSwapped<u16>(addr + gap_begin, (const u16*)(src + gap_end), memory.CopyToEmuSwapped<u16>(addr + gap_begin, (const u16*)(src + gap_end),
sizeof(pb) - gap_end); sizeof(pb) - gap_end);
break; break;

View file

@ -834,7 +834,7 @@ BbaTcpSocket::ConnectingState BbaTcpSocket::Connected(StackRef* ref)
fd_set read_fds; fd_set read_fds;
fd_set write_fds; fd_set write_fds;
fd_set except_fds; fd_set except_fds;
struct timeval t = {0, 0}; timeval t = {0, 0};
FD_ZERO(&read_fds); FD_ZERO(&read_fds);
FD_ZERO(&write_fds); FD_ZERO(&write_fds);
FD_ZERO(&except_fds); FD_ZERO(&except_fds);
@ -965,7 +965,7 @@ sf::Socket::Status BbaUdpSocket::Bind(u16 port, u32 net_ip)
// Subscribe to the SSDP multicast group // Subscribe to the SSDP multicast group
// NB: Other groups aren't supported because of HLE // NB: Other groups aren't supported because of HLE
struct ip_mreq mreq; ip_mreq mreq;
mreq.imr_multiaddr.s_addr = std::bit_cast<u32>(Common::IP_ADDR_SSDP); mreq.imr_multiaddr.s_addr = std::bit_cast<u32>(Common::IP_ADDR_SSDP);
mreq.imr_interface.s_addr = net_ip; mreq.imr_interface.s_addr = net_ip;
if (setsockopt(getHandle(), IPPROTO_IP, IP_ADD_MEMBERSHIP, reinterpret_cast<const char*>(&mreq), if (setsockopt(getHandle(), IPPROTO_IP, IP_ADD_MEMBERSHIP, reinterpret_cast<const char*>(&mreq),

View file

@ -99,6 +99,10 @@ void ProcessorInterfaceManager::RegisterMMIO(MMIO::Mapping* mmio, u32 base)
{ {
system.GetGPFifo().ResetGatherPipe(); system.GetGPFifo().ResetGatherPipe();
// Assume that all bytes that made it into the GPU fifo did in fact execute
// before this MMIO write takes effect.
system.GetFifo().SyncGPUForRegisterAccess();
// Call Fifo::ResetVideoBuffer() from the video thread. Since that function // Call Fifo::ResetVideoBuffer() from the video thread. Since that function
// resets various pointers used by the video thread, we can't call it directly // resets various pointers used by the video thread, we can't call it directly
// from the CPU thread, so queue a task to do it instead. In single-core mode, // from the CPU thread, so queue a task to do it instead. In single-core mode,

View file

@ -8,21 +8,12 @@
#include "AudioCommon/AudioCommon.h" #include "AudioCommon/AudioCommon.h"
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
#include "Common/Logging/Log.h" #include "Common/Logging/Log.h"
#include "Common/MathUtil.h"
#include "Core/ConfigManager.h" #include "Core/ConfigManager.h"
#include "Core/HW/WiimoteEmu/WiimoteEmu.h" #include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include "Core/System.h" #include "Core/System.h"
#include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h" #include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h"
#include "InputCommon/ControllerEmu/Setting/NumericSetting.h" #include "InputCommon/ControllerEmu/Setting/NumericSetting.h"
//#define WIIMOTE_SPEAKER_DUMP
#ifdef WIIMOTE_SPEAKER_DUMP
#include <cstdlib>
#include <fstream>
#include "AudioCommon/WaveFile.h"
#include "Common/FileUtil.h"
#endif
namespace WiimoteEmu namespace WiimoteEmu
{ {
// Yamaha ADPCM decoder code based on The ffmpeg Project (Copyright (s) 2001-2003) // Yamaha ADPCM decoder code based on The ffmpeg Project (Copyright (s) 2001-2003)
@ -60,17 +51,6 @@ static s16 adpcm_yamaha_expand_nibble(ADPCMState& s, u8 nibble)
return s.predictor; return s.predictor;
} }
#ifdef WIIMOTE_SPEAKER_DUMP
std::ofstream ofile;
WaveFileWriter wav;
void stopdamnwav()
{
wav.Stop();
ofile.close();
}
#endif
void SpeakerLogic::SpeakerData(const u8* data, int length, float speaker_pan) void SpeakerLogic::SpeakerData(const u8* data, int length, float speaker_pan)
{ {
// TODO: should we still process samples for the decoder state? // TODO: should we still process samples for the decoder state?
@ -151,28 +131,6 @@ void SpeakerLogic::SpeakerData(const u8* data, int length, float speaker_pan)
const unsigned int sample_rate = sample_rate_dividend / reg_data.sample_rate; const unsigned int sample_rate = sample_rate_dividend / reg_data.sample_rate;
sound_stream->GetMixer()->PushWiimoteSpeakerSamples( sound_stream->GetMixer()->PushWiimoteSpeakerSamples(
samples.get(), sample_length, Mixer::FIXED_SAMPLE_RATE_DIVIDEND / (sample_rate * 2)); samples.get(), sample_length, Mixer::FIXED_SAMPLE_RATE_DIVIDEND / (sample_rate * 2));
#ifdef WIIMOTE_SPEAKER_DUMP
static int num = 0;
if (num == 0)
{
File::Delete("rmtdump.wav");
File::Delete("rmtdump.bin");
atexit(stopdamnwav);
File::OpenFStream(ofile, "rmtdump.bin", ofile.binary | ofile.out);
wav.Start("rmtdump.wav", 6000);
}
wav.AddMonoSamples(samples.get(), length * 2);
if (ofile.good())
{
for (int i = 0; i < length; i++)
{
ofile << data[i];
}
}
num++;
#endif
} }
void SpeakerLogic::Reset() void SpeakerLogic::Reset()

Some files were not shown because too many files have changed in this diff Show more