Compare commits

...

437 Commits

Author SHA1 Message Date
Jordan Woyak 5865116f97 ScmRevGen: Bump version to 2509 2025-09-15 19:42:21 -04:00
Jordan Woyak 8ade8fa3b3 Merge tag '2506a' into release-prep-2509
First hotfix release for 2506
2025-09-15 14:08:02 -05:00
JMC47 695e06ca98 Merge pull request #13930 from Dentomologist/retroachievements_avoid_leaderboard_list_crash
RetroAchievements: Avoid crash due to uninitialized memory read
2025-09-13 03:36:56 -04:00
Jordan Woyak f66bee48e4 Merge pull request #13936 from TryTwo/imgui_bugfix
ImGui: Fix broken imgui text in Metal backend.
2025-09-08 18:00:28 -05:00
TryTwo 38cef5a3fc Fix broken imgui text in Metal backend. 2025-09-08 12:49:31 -07:00
Jordan Woyak 11b9e40275 Merge pull request #13933 from JoshuaVandaele/rt-firmware-shadow
RealtekFirmwareLoader: Fix shadowed variable warning
2025-09-07 10:32:01 -05:00
Joshua Vandaële 83cbedd609 RealtekFirmwareLoader: Fix shadowed variable warning 2025-09-07 16:54:11 +02:00
Admiral H. Curtiss e0332f3749 Merge pull request #13923 from AdmiralCurtiss/dark-progress-bar
DolphinQt/Styles/Dark: Adjust progress bar
2025-09-07 15:38:24 +02:00
Dentomologist 85a89eb420 RetroAchievements: Avoid uninitialized memory access
Avoid creating and then destroying a leaderboard list when game is null,
as doing so causes an access to uninitialized memory due to a bug in
rcheevos.

This can be triggered by starting a game with an invalid or expired
login token.
2025-09-05 17:23:39 -07:00
JosJuice 489952cf89 Translation resources sync with Transifex 2025-09-03 08:04:21 +02:00
Admiral H. Curtiss c7ff0bf475 DolphinQt/Styles/Dark: Adjust progress bar 2025-08-31 22:02:00 +02:00
Admiral H. Curtiss 88ef583c0e DolphinQt/Styles/Dark: Fix inconsistent formatting 2025-08-31 21:41:42 +02:00
Tilka 033a0540f7 Merge pull request #13899 from SuperSamus/patch-cheats-osd
PatchEngine: OSD message showing number of enabled patches and cheats
2025-08-31 00:27:23 +01:00
Martino Fontana 64a20c74fc PatchEngine: OSD message showing number of enabled patches and cheats 2025-08-30 16:51:51 +02:00
Tilka 76c114a02b Merge pull request #13910 from Tilka/ub
Fix some undefined behavior
2025-08-30 06:17:45 +01:00
Tillmann Karras c248f1afa4 IOS/WD: fix wrong BitSet ctor being called
We don't want list initialization here.

Thank you, UB-san.
2025-08-30 03:05:35 +01:00
Tillmann Karras 63257d1ee9 CoreTiming: set default overclock factors to 1.0
I'm not aware of any issue here but let's set meaningful defaults
anyway.
2025-08-30 03:05:35 +01:00
Tillmann Karras 18f0bd1d4b VI: set default overclock factor to 1.0
GetTicksPerHalfLine() gets called via Preset() before RefreshConfig()
has a chance to replace the dummy value 0.0.

Thank you, UB-san.
2025-08-30 03:03:21 +01:00
Tilka 2ff3a7215b Merge pull request #13902 from Tilka/fix_color_clamp
VideoSW: fix clamping after vertex color interpolation
2025-08-30 03:02:42 +01:00
Tilka b47a75fa2d Merge pull request #13912 from jordan-woyak/simplify-saturating-cast
MathUtil: Simplify SaturatingCast implementation and fix edge case.
2025-08-30 03:00:15 +01:00
Tilka 25be1cfe97 Merge pull request #13911 from Dentomologist/gamelist_gridview_sorting
GameList: Use List View's sorting for Grid View
2025-08-30 02:56:18 +01:00
JMC47 e0c72cd963 Merge pull request #13825 from jordan-woyak/dont-count-playtime-while-suspended
Common/Timer: Add a SteadyAwakeClock class to make play time tracking ignore time while suspended.
2025-08-28 13:58:26 -04:00
JMC47 dce27fb58a Merge pull request #13913 from dreamsyntax/titledb-update
Sys: Sync wiitdb files with GameTDB 2025.08
2025-08-28 01:11:14 -04:00
Jordan Woyak da546bebb8 MathUtil: Simplify SaturatingCast implementation with std::cmp_less/cmp_greater and fix a floating point edge case.
Thanks to Dentomologist for catching the edge case.
2025-08-27 21:24:46 -05:00
Dentomologist 489fd643d3 GameList: Use List View's sorting for Grid View
Since Grid View doesn't have a header for users to change sorting
options with, use List View's sorting in Grid View too.
2025-08-27 15:35:38 -07:00
dreamsyntax 9e61bee2e0 Sys: Sync wiitdb files with GameTDB
Sync with 20250826093514
2025-08-26 00:37:31 -07:00
JMC47 2b7faeb920 Merge pull request #13894 from iwubcode/material_asset_update
VideoCommon: update material asset to support additional features in custom pipelines
2025-08-23 23:49:22 -04:00
Tillmann Karras bc417bdcee VideoSW: fix clamping after vertex color interpolation 2025-08-24 02:47:56 +01:00
iwubcode 440999d778 VideoCommon: update material asset to support render state properties, support multi-pass, and textures are now split out (as well as supporting a way to calculate sampler origin) 2025-08-23 15:17:49 -05:00
Tilka 7782e32d9e Merge pull request #13901 from iwubcode/render_state_rename
VideoBackends / VideoCommon: rename member variables in RenderState
2025-08-23 20:56:47 +01:00
iwubcode 14459bcc1b VideoBackends / VideoCommon: rename member variables in RenderState to be consistent 2025-08-23 13:50:22 -05:00
Tilka ab8a02566d Merge pull request #13893 from TryTwo/PR_Slider_Fixes
Qt: Prevent QSlider's QLabels from resizing.
2025-08-23 12:44:17 +01:00
Tilka 50d3a5510c Merge pull request #13898 from SuperSamus/patch-invalidate-cache-fixup
ActionReplay: Fixup #13764
2025-08-23 12:20:25 +01:00
Martino Fontana 8026289775 ActionReplay: Fixup #13764 2025-08-23 12:04:04 +02:00
Tilka a1423e386c Merge pull request #13896 from Tilka/mismatched_tags
VideoCommon: fix -Wmismatched-tags warning
2025-08-23 04:04:01 +01:00
Tillmann Karras 10d0bc66b3 VideoCommon: fix -Wmismatched-tags warning 2025-08-23 03:05:04 +01:00
JMC47 b9affd5bc8 Merge pull request #13869 from TryTwo/ImGui_Updates
Externals: Update ImGui to 1.92.2 and ImPlot. Update code to use new features.
2025-08-22 21:24:27 -04:00
JMC47 8bfe9ec595 Merge pull request #13886 from Tilka/drag_lag
FIFOAnalyzer: fix command description updates
2025-08-22 20:27:15 -04:00
JMC47 95781c9ac9 Merge pull request #13764 from SuperSamus/patch-invalidate-cache
ActionReplay/PatchEngine: Make writes invalidate cache
2025-08-22 19:16:47 -04:00
TryTwo d69056aab4 Qt: Prevent Sliders from resizing due to text changing in their label. 2025-08-22 14:46:33 -07:00
Tillmann Karras 30017632dd FIFOAnalyzer: fix command description updates
When dragging the selection, the mismatch between signal
(itemSelectionChanged) and data consumed (currentRow) seemed to cause
the description to lag behind by one row.
2025-08-22 02:02:28 +01:00
JMC47 2e09dc0fdd Merge pull request #13891 from jordan-woyak/grooverider-ini
GameINI: Disable ImmediateXFBEnable for Grooverider.
2025-08-21 16:17:20 -04:00
JosJuice 0c7fe651bb Translation resources sync with Transifex 2025-08-21 21:05:28 +02:00
Jordan Woyak ac715a7750 GameINI: Disable ImmediateXFBEnable for Grooverider. 2025-08-21 12:14:21 -05:00
Tilka 90a137ffdc Merge pull request #13888 from Sintendo/unused-psg
VideoCommon: Remove unused EnumMaps from PixelShaderGen
2025-08-20 23:03:54 +01:00
JosJuice 09e68e707e Merge pull request #13836 from Sintendo/jitarm64-subfe
JitArm64_Integer: Minor subfe optimizations
2025-08-20 22:40:14 +02:00
Sintendo aa085a76bc VideoCommon: Remove unused EnumMaps from PixelShaderGen
They appear to have been unused since #13432.
2025-08-20 21:22:53 +02:00
JMC47 5aaf522a6f Merge pull request #13877 from iwubcode/vertex_shader_custom_uniforms
VideoBackends: allow custom pixel uniforms to be passed to the vertex shader as well
2025-08-20 13:16:00 -04:00
Tilka be6a6bce9f Merge pull request #13873 from Dentomologist/dolphinanalytics_use_pascal_case_for_gamequirk_enum
DolphinAnalytics: Use Pascal case for GameQuirk enum
2025-08-19 21:57:34 +01:00
Tilka 2696e053ea Merge pull request #13887 from Tilka/unused_sign_bit
Jit64: drop unused constant
2025-08-19 19:40:49 +01:00
JMC47 37f5ae4209 Merge pull request #13868 from Geotale/master
Fix Single-Precision-Only Inputs to FMAs Instructions in Interpreter
2025-08-18 18:25:38 -04:00
Tillmann Karras 84b5a73b2a Jit64: drop unused constant
Unused since c4799e5977.
2025-08-18 23:09:37 +01:00
Tilka 8701944dd1 Merge pull request #13883 from Dentomologist/fifoplayerwindow_geometry_fixes
FIFOPlayerWindow geometry fixes
2025-08-18 20:23:24 +01:00
TryTwo affc22f17d Update code to work with new version of ImGui.
UpdateImGuiTexture now handles creating font textures and modifying them.
2025-08-18 05:38:14 -07:00
JMC47 32e621765e Merge pull request #13879 from Tilka/get_vertex_size
OpcodeDecoder: provide default GetVertexSize() implementation
2025-08-17 22:34:30 -04:00
Geotale 07443e2d41 Improve Interpreted FMADDS Precision
Improves the accuracy of FMADDS and other single precision FMA operations
This is accomplished by using an error-free transformation
It also thoroughly explains the quirks and difficulty of these operations
This fixes Mario Strikers and is necessary for fully fixing 1080 Avalanche
For single precision inputs it should be equivalent to a 32-bit FMA
2025-08-17 21:15:55 -05:00
Tillmann Karras 37758fa290 OpcodeDecoder: provide default GetVertexSize() implementation 2025-08-18 01:41:14 +01:00
TryTwo 7315acb981 Update ImGui to 1.92.2b 2025-08-17 17:21:05 -07:00
TryTwo 8a8d15799c Update submodule implot 2025-08-17 17:21:05 -07:00
iwubcode 0e73a01279 VideoBackends: allow custom pixel uniforms to be passed to the vertex shader as well 2025-08-17 18:55:40 -05:00
Dentomologist 1841c151c4 FIFOPlayerWindow: Save and restore window geometry
Aside from allowing users to persistently set the window to their
desired size, this is also necessary to allow saving of the splitter
positions in FIFOAnalyzer to work correctly.
2025-08-17 14:39:40 -07:00
Dentomologist 99be30c0e1 FIFOPlayerWindow: Trigger destructor on Dolphin shutdown
Make MainWindow::m_fifo_window a unique_ptr to ensure its destructor is
triggered when MainWindow is destroyed.

FIFOPlayerWindow doesn't set MainWindow as its parent in order to
prevent raising MainWindow when focusing FIFOPlayerWindow. This avoids
MainWindow covering up RenderWidget when, e.g., trying to use the object
range feature to pinpoint the index of a particular object.

As a consequence, unlike most QObjects FIFOPlayerWindow wasn't destroyed
when its parent widget was since it didn't have one.
2025-08-17 14:39:40 -07:00
Dentomologist 6f43f8eef5 FIFOPlayerWindow: Add stretch to Play/Record tab 2025-08-17 14:39:40 -07:00
OatmealDome 52806b3dc8 Merge pull request #13881 from OatmealDome/clang-floating-point-nonsense-2
FloatUtils: Replace quieting SNaNs via `0.0 + x` with MakeQuiet
2025-08-17 13:00:19 -04:00
OatmealDome 221d396b3a FloatUtils: Replace quieting SNaNs via 0.0 + x with MakeQuiet 2025-08-17 11:24:38 -04:00
OatmealDome cfb78dc816 FloatUtils: Move MakeQuiet function here from Interpreter_FPUtils 2025-08-17 11:23:12 -04:00
Tilka ab1f75b4d6 Merge pull request #13853 from LillyJadeKatrin/retroachievements-patch-fix
Fixed Patch Allowlist Check
2025-08-17 10:25:30 +01:00
Pokechu22 b8352eeeb9 Merge pull request #13865 from Pokechu22/dsi-mention-mmu
Mention enable MMU in the DSI Exception message (Invalid read from ###/Invalid write to ###)
2025-08-15 10:11:47 -07:00
Dentomologist 3cc00c0676 DolphinAnalytics: Use Pascal case for GameQuirk enum 2025-08-14 13:54:23 -07:00
JMC47 aa45b7fe61 Merge pull request #13867 from TryTwo/gfx_bug_fix
GFX: Fix bugs for AbstractStagingTextures that perform an Upload.
2025-08-13 19:09:07 -04:00
Pokechu22 dfbf39c768 Mention enable MMU in the DSI Exception message (Invalid read from ###/Invalid write to ###)
This has been possible for a long time now (see https://dolphin-emu.org/blog/2016/09/06/booting-the-final-gc-game/#side-effects-of-a-hardcode-rewrite), but it seems like people still aren't aware of it.
2025-08-13 11:55:40 -07:00
TryTwo 6b683517dc Fix bugs related to AbstractStagingTextures that perform an Upload (write to existing texture). This code path had probably never been used before. 2025-08-12 23:43:55 -07:00
Tilka 72ef27c157 Merge pull request #13861 from Tilka/unused_lambda_captures
DolphinQt: fix two -Wunused-lambda-capture warnings
2025-08-10 20:26:32 +01:00
Tillmann Karras f04c2799dd VideoSW: fix comment 2025-08-10 19:37:21 +01:00
Tillmann Karras df3dc80190 DolphinQt: fix two -Wunused-lambda-capture warnings 2025-08-10 19:37:21 +01:00
Tilka ba656e641e Merge pull request #13854 from dreamsyntax/fix-regression-callers-broken
PPCSymbolDB: Fix callers not updating
2025-08-10 19:13:29 +01:00
JMC47 4140c6f383 Merge pull request #13860 from SuperSamus/vbi-height-fix
HW/VideoInterface: Don't affect aspect ratio with VBI Frequency Override
2025-08-10 13:48:44 -04:00
Jordan Woyak 292f7401b3 HW/VideoInterface: Don't affect aspect ratio with VBI Frequency Override 2025-08-10 15:45:15 +02:00
LillyJadeKatrin 39ea49fc39 Fixed Patch Allowlist Check
Previous changes to the patch allowlist format were not reflected in AchievementManager; this corrects that and re-enables patches and codes in hardcore mode.
2025-08-10 07:47:19 -04:00
Tilka e099a9c180 Merge pull request #13838 from Tilka/videosw2
VideoSW: reuse Common::Vec2/3/4
2025-08-10 08:26:02 +01:00
Tilka 4fc3106761 Merge pull request #13859 from Tilka/root_path_assert
IOS/FS: add safety assert
2025-08-10 05:29:05 +01:00
Tillmann Karras fa4127b145 VideoSW: reuse Common::Vec2/3/4 2025-08-10 05:17:26 +01:00
Tilka a07974e2c3 Merge pull request #13846 from JoshuaVandaele/better-xcb
Qt: Better wayland detection to enforce xcb
2025-08-10 05:09:25 +01:00
Tilka 5a6c5e2639 Merge pull request #13787 from jordan-woyak/game-config-highlighter-fix
DolphinQt: Make GameConfigHighlighter better handle large files.
2025-08-10 05:02:21 +01:00
Tillmann Karras ec8b8bdb8d IOS/FS: add safety assert
This is to prevent someone (me) from accidentally deleting their entire
/tmp directory just by not initializing the config system correctly.
2025-08-10 04:58:57 +01:00
dreamsyntax d946656b87 PPCSymbolDB: Fix callers not updating
Fixes regression from http://github.com/dolphin-emu/dolphin/pull/13821
2025-08-09 09:36:17 -07:00
Jordan Woyak c5893093fc DolphinQt: Make GameConfigHighlighter better handle large files. 2025-08-08 23:49:24 -05:00
JMC47 e6ed939952 Merge pull request #13839 from Tilka/videosw3
VideoSW: allow disabling the copy filter
2025-08-07 02:18:01 -04:00
JMC47 3111a785a1 Merge pull request #13725 from Sam-Belliveau/more-consistent-looping
Fade audio after an entire loop
2025-08-05 20:02:58 -04:00
JMC47 804cf465fc Merge pull request #13819 from jordan-woyak/null-sound-stream-drop-samples
AudioCommon/Mixer: Skip sample processing when NullSoundStream is being used.
2025-08-05 16:46:57 -04:00
JMC47 ab990018f2 Merge pull request #13831 from JoshuaVandaele/dualcore-conf
Config: Change default value for Dual Core from enabled to disabled
2025-08-05 13:45:15 -04:00
JosJuice be669c7ce3 Merge pull request #13841 from JosJuice/android-opt-out-back
Android: Opt out of back invoked callback
2025-08-05 08:10:43 +02:00
JMC47 c6d55d1b50 Merge pull request #13791 from jordan-woyak/realtek-firmware-loader
BTReal: Implement Realtek firmware loading.
2025-08-04 19:42:59 -04:00
JosJuice 222dda3305 Merge pull request #13845 from Dentomologist/host_remove_unnecessary_functions
Host: Remove unnecessary functions
2025-08-04 19:49:58 +02:00
Joshua Vandaële f8b85edd0c Qt: Better wayland detection to enforce xcb
In certain cases, the platform can be "wayland-egl", "wayland-xcomposite", and other values for which I haven't found a full list yet. Instead of matching only "wayland", we now look for "wayland" anywhere in the `QT_QPA_PLATFORM` string in a case-insensitive manner.

Acknowledgements:
`CaseInsensitiveContains`' implementation was heavily inspired by GNU's non-standard glibc `strcasestr` function, which can be found here licensed under GPLv2 or later: https://ftp.gnu.org/gnu/libc/
2025-08-04 19:34:31 +02:00
Dentomologist 3b832e84e4 Host: Remove outdated comment
Host_RequestFullscreen and Host_UpdateMainFrame have been removed, and
Host_RequestRenderWindowSize has been used by DolphinQt since 80699096
and by Android since e8739156.
2025-08-03 13:24:50 -07:00
Dentomologist 530ea7528e Host: Remove unnecessary functions
Remove Host_RefreshDSPDebuggerWindow (which hasn't done anything since
DolphinWX was removed in 44b22c90) and DSP::Host::UpdateDebugger (which
only called Host_RefreshDSPDebuggerWindow).
2025-08-03 13:19:30 -07:00
Dentomologist d0de0a3f47 Host: Remove unnecessary function
Remove Host_UpdateMainFrame(). The only non-empty call happened in
DolphinNoGUI which called s_update_main_frame_event.Set(), but
DolphinNoGUI never waits on that event.
2025-08-03 13:12:01 -07:00
Jordan Woyak 6ca486ffb2 Merge pull request #13843 from Dentomologist/gamelist_fix_games_not_being_displayed
Game List: Fix games not being displayed
2025-08-01 18:28:35 -05:00
Dentomologist 38accd7fc3 GameTracker: Fix games not being displayed 2025-08-01 16:04:53 -07:00
Jordan Woyak cc3a13d4e4 Merge pull request #13842 from Dentomologist/memorywidget_fix_build_breakage_from_conflicting_prs
MemoryWidget: Fix build breakage from conflicting PRs
2025-08-01 18:03:40 -05:00
Dentomologist c880210ec1 MemoryWidget: Fix build breakage from conflicting PRs
PRs https://github.com/dolphin-emu/dolphin/pull/13786 and
https://github.com/dolphin-emu/dolphin/pull/13797 had incompatible
changes that resulted in the build being broken when they were both
merged.
2025-08-01 15:31:38 -07:00
Martino Fontana 5d71ac268f ActionReplay/PatchEngine: Replace HostWrite with ApplyMemoryPatch
Compared to the former, the latter invalidates the icache, which is
something that is likely desired for patches (especially if they are
applied while the game is running).
2025-08-01 23:25:06 +02:00
Martino Fontana aa7b13f353 PPCDebugInterface: Small refactor to ApplyMemoryPatch
Invalidate icache only if target address has a different value. Take separate arguements,
instead of a struct, to allow easier usage elsewhere. Overload with u8,
u16 and u32 values for the same reason.
2025-08-01 23:24:39 +02:00
Admiral H. Curtiss bec5624287 Merge pull request #13177 from jordan-woyak/remove-nunchuk-hax
ControllerEmu: Remove nunchuk stick data hax.
2025-08-01 22:00:17 +02:00
Admiral H. Curtiss 3fb80bec9b Merge pull request #13780 from jordan-woyak/fix-text-filter-nearest
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-08-01 21:59:04 +02:00
Admiral H. Curtiss 9e271c3f67 Merge pull request #13797 from TryTwo/PR_Memory_Symbols
MemoryWidget: Add Symbols and Notes.
2025-08-01 21:47:43 +02:00
Admiral H. Curtiss 03b709019d Merge pull request #13749 from iwubcode/vertex_shadergen_expand_fix
VideoCommon: fix regression in vertexshadergen for line/point expansion
2025-08-01 21:44:41 +02:00
Admiral H. Curtiss 06e05e0f90 Merge pull request #13794 from Sintendo/doouble-lookup
Avoid map/set double lookups
2025-08-01 21:43:12 +02:00
Admiral H. Curtiss 36aa7b6f3f Merge pull request #13776 from jordan-woyak/win-dark-mode-styles
DolphinQt: Fix Windows dark theme when using external stylesheets.
2025-08-01 21:26:17 +02:00
Admiral H. Curtiss 63064591e8 Merge pull request #13760 from jordan-woyak/allow-skip-ipl
DolphinQt: Always enable the "Skip Main Menu" checkbox when "SkipIPL" is disabled.
2025-08-01 21:24:10 +02:00
Admiral H. Curtiss 5439a345a7 Merge pull request #13829 from JosJuice/android-retroachievements-pause-override
Android: Don't let RetroAchievements override onPause
2025-08-01 21:23:28 +02:00
Admiral H. Curtiss 6b82389f45 Merge pull request #13833 from jordan-woyak/exi-ethernet-atomic-interrupt
HW/EXI_DeviceEthernet: Make interrupt state atomic.
2025-08-01 21:19:17 +02:00
JosJuice 5c7e8db26e Android: Opt out of back invoked callback
When 9d9b6d8 changed our target SDK version to Android 16, it made
Android 16 stop calling onBackPressed and stop delivering KEYCODE_BACK
events. Dolphin's code isn't ready for that yet.

Android lets us opt out of this new behavior for now, so let's do so.
But the opt-out will presumably stop working once we start targeting
Android 17, so we're going to have to update Dolphin's code within the
next one or two years to support the replacement API.
2025-08-01 19:18:09 +02:00
JMC47 c63d74e6c0 Merge pull request #13790 from SuperSamus/retroachivements-update
GameSettings: Minor approved cheats update
2025-07-31 16:34:19 -04:00
Sintendo e9d28649dc JitArm64_Integer: Clean up includes 2025-07-31 20:18:33 +02:00
Sintendo ed5cea2635 JitArm64_Integer: subfex - Explicitly handle a == b
Number of instructions stays the same, but we remove the false
dependency on the input registers.

Before:
0x7a1b037a   sbcs   w26, w27, w27

After:
0x5a9f23fa   csetm  w26, lo
2025-07-31 20:18:21 +02:00
Tillmann Karras 9ff5943ac6 VideoSW: allow disabling the copy filter 2025-07-31 15:51:51 +01:00
TryTwo f7e7b0f6b0 MemoryWidget: Add symbols and Notes.
Add option to hide them.
Add box to search.
Add ability to edit data symbols and notes in MemoryViewWidget.
2025-07-30 17:40:24 -07:00
Tilka 812c6c2ea4 Merge pull request #13830 from CrossVR/broken-depth-clamp-control
DriverDetails: Disable depth_clamp_control on official AMD drivers
2025-07-31 01:06:00 +01:00
Jordan Woyak 9224d2f827 Merge pull request #13821 from AlexanderHarrison/codeview-update-timer
CodeViewWidget: Improve Update performance
2025-07-30 17:42:45 -05:00
JosJuice f26af63c6d Merge pull request #13828 from JosJuice/retroachievements-ipl
Boot: Fix RetroAchievements for GameCube games launched with IPL
2025-07-30 21:51:03 +02:00
JosJuice 62bc93473f Merge pull request #13781 from Dentomologist/controllerinterface_fix_windows_deadlock
ControllerInterface: Fix Windows deadlock
2025-07-30 21:49:23 +02:00
Alex Harrison 56f04b5406 PPCSymbolDB: Fill in callers after loading map files 2025-07-30 13:43:02 -06:00
Alex Harrison 6cb7868286 CodeViewWidget: Improve performance by removing unnecessary FillInCallers computation during update 2025-07-30 13:41:42 -06:00
Tilka d6a4421386 Merge pull request #13835 from Tilka/unused_xf_enumerators
VideoCommon: drop unused XF enumerators
2025-07-30 20:31:56 +01:00
Sintendo 854979937c JitArm64_Integer: subfex - Improve codegen for zero with InHostCarry
Another instance where we needlessly materialized constant zero in a
register. We can just write the carry flag directly.

Before:
0x5280001a   mov    w26, #0x0                 ; =0
0x1a1f035a   adc    w26, w26, wzr

After:
0x1a9f37fa   cset   w26, hs
2025-07-30 21:29:10 +02:00
Tillmann Karras cc71401e29 VideoCommon: drop unused XF enumerators
We handle all six registers (scale/offset * xyz) via the viewport name.
Keeping around unused enumerators only for the z component is confusing.
2025-07-30 19:56:30 +01:00
Tilka 131ca1ba9b Merge pull request #13786 from JosJuice/symboldb-locking
PPCSymbolDB: Improve locking
2025-07-30 17:15:28 +01:00
Tilka cd142aa18d Merge pull request #13834 from AGuy27/master
GameINI: Disable ImmediateXFB for Pétanque Master
2025-07-30 13:33:10 +01:00
AGuy27 6105d025ca Create SP4.ini 2025-07-29 20:05:23 -04:00
CrossVR 0d87f835e2 VKPipeline: Don't include depth clamp control struct when not supported
This should not be needed
2025-07-29 08:42:22 +09:00
CrossVR 59e9267e3d DriverDetails: Disable depth_clamp_control on AMD official drivers 2025-07-29 08:42:22 +09:00
Jordan Woyak 4e0d41627e HW/EXI_DeviceEthernet: Make interrupt state atomic. 2025-07-28 18:30:46 -05:00
Tilka 4d0cf1315e Merge pull request #13832 from Tilka/docs_dsp
docs/DSP: fix some bit pattern inconsistencies
2025-07-28 01:10:35 +01:00
Joshua Vandaële ee68efeee8 Config: Change default value for Dual Core from enabled to disabled
Dual Core is primarily known as one of the first troubleshooting steps when emulation or NetPlay misbehave.

I believe(?) the original intent with having it on by default was likely to support users with weaker machines. However, I believe it would be a lot more reasonable for users to manually enable dual core if they really need the performance boost, rather than it is for them to have come ask us in support channel why their cleanly-installed Dolphin is not emulating their games properly.

Instead, this creates a fragile first impression where a clean install of Dolphin is already set up in a way that leads to inexplicable crashes, subtle timing bugs, and NetPlay desyncs.

Note: This changes only applies to the Desktop application, since mobile devices *do* really need the performance boost.
2025-07-27 19:07:08 +02:00
JosJuice 9f32562e36 PPCSymbolDB: Don't return non-const pointers
For thread safety, we shouldn't return any pointers or references that
can be used to mutate the state of the PPCSymbolDB. This should be the
final part of making PPCSymbolDB thread safe unless I've missed
something.
2025-07-27 17:03:57 +02:00
JosJuice fef77a5f20 PPCSymbolDB: Add missing locking
9395238 added locking in some PPCSymbolDB functions that access member
variables, but far from all. To ensure thread safety, this commit adds
the missing locking.
2025-07-27 16:26:47 +02:00
JosJuice 803e6b017b PPCSymbolDB: Reduce lock contention in LoadMap/LoadMapOnBoot
By building the map in a local variable and then swapping it with the
member variable, we avoid the need to hold a lock while building the
map.
2025-07-27 16:26:47 +02:00
JosJuice 59d126d215 PPCSymbolDB: Rename m_write_lock to m_mutex
This mutex needs to be locked both when reading and writing, not just
when writing.
2025-07-27 16:26:46 +02:00
JosJuice d62e21e7b6 PPCSymbolDB: Wait for locking to succeed
9395238 added a mutex to PPCSymbolDB, and made functions return with an
"empty" result if called while the mutex is locked. This new behavior
has the potential to affect not only less important call sites like the
symbol printing mentioned in a comment, but also the JIT deciding if it
should HLE a function.

A later commit in this pull request decreases the amount of lock
contention, reducing the performance impact of this commit.
2025-07-27 16:26:46 +02:00
Tillmann Karras 288da38dc3 docs/DSP: fix some bit pattern inconsistencies
Thanks to @Oaisus who reported this.
2025-07-27 14:22:10 +01:00
Martino Fontana e2ecafcaf3 GameSettings: Minor approved cheats update 2025-07-27 11:22:28 +02:00
JosJuice c3be049571 Android: Don't let RetroAchievements override onPause
When Android sends Dolphin to the background, emulation *must* pause,
otherwise emulation continues running and continues outputting audio to
the user. RetroAchievements mustn't be allowed to override it.
2025-07-26 19:59:08 +02:00
JosJuice 0fa15342ec Boot: Fix RetroAchievements for GameCube games launched with IPL
The SetDisc function calls AchievementManager::LoadGame with the game's
volume. Calling AchievementManager::LoadGame again afterwards with
nullptr prevents RetroAchievements from working.
2025-07-26 18:08:19 +02:00
JosJuice a6642d5f79 Merge pull request #13789 from Simonx22/update-sdk36-gradle813
Android: Bump SDK to 36 and Gradle to 8.13
2025-07-26 11:19:44 +02:00
Jordan Woyak 57b145990d Merge pull request #13446 from JosJuice/breakpoints-delayed-update
PowerPC: Add RAII handling for breakpoint updates
2025-07-25 23:26:25 -05:00
JMC47 36627f55bb Merge pull request #13827 from jordan-woyak/fix-mplus-save
InputCommon/ControllerEmu: Fix saving of Wii Remote "MotionPlus Attached" setting.
2025-07-25 02:40:39 -04:00
Jordan Woyak 81ebf45c9b Core: Make play time tracking use SteadyAwakeClock. 2025-07-24 23:56:10 -05:00
Jordan Woyak 62c773ac75 Common/Timer: Add a SteadyAwakeClock class which counts non-suspended system running time. 2025-07-24 23:56:10 -05:00
Jordan Woyak dcb289be8f InputCommon/ControllerEmu: Fix saving of Wii Remote "Attach MotionPlus" setting. 2025-07-24 18:44:42 -05:00
Admiral H. Curtiss 64d4c4020c Merge pull request #13822 from jordan-woyak/libusb-init-error
LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT
2025-07-25 00:20:34 +02:00
Admiral H. Curtiss 027c78ee4f Merge pull request #13826 from Dentomologist/gameconfigwidget_unify_tooltips
GameConfigWidget: Unify tooltips
2025-07-25 00:19:56 +02:00
Admiral H. Curtiss 1aadd01038 Merge pull request #13820 from apteryks/gc-font-tool-gcc14-fix
fix building gc-font-tool.cpp with GCC 14
2025-07-25 00:18:17 +02:00
Simon 9d9b6d8705 Android: Bump SDK to 36 and Gradle to 8.13
Starting August 31, 2025, targeting at least Android 15 (API level 35) will be required: https://support.google.com/googleplay/android-developer/answer/11926878
This commit sets the target SDK to API level 36 (Android 16), the latest available version.
2025-07-24 15:43:52 -04:00
Dentomologist e2a8e7da48 GameConfigWidget: Unify tooltips
Use ToolTipWidget::SetDescription insead of QWidget::setTooltip to put
the description in the BalloonTip with the title, instead of having the
description be in a separate standard tooltip.
2025-07-24 12:03:57 -07:00
Jordan Woyak 7871b24b59 LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT. 2025-07-23 21:16:04 -05:00
Jordan Woyak 95ad2d804d RealtekFirmwareLoader: Automatically download missing firmware from gitlab.com. 2025-07-23 19:58:25 -05:00
Jordan Woyak bfef65a9d1 BTReal: Implement Realtek Bluetooth firmware loading.
Logic and structures are largely taken from Linux source:
drivers/bluetooth/btusb.c
drivers/bluetooth/btrtl.c
drivers/bluetooth/btrtl.h
2025-07-23 19:58:25 -05:00
Jordan Woyak 0e90b85bab LibUSBBluetoothAdapter: Add SendBlockingCommand function. 2025-07-23 19:58:25 -05:00
Jordan Woyak 5336c23329 Core: Move HCICommandPayload struct template from BTReal to LibUSBBluetoothAdapter header. 2025-07-23 19:58:25 -05:00
Jordan Woyak 2b541361c6 Common: Move AsU8Span utility function from BTReal to Common/BitUtils. 2025-07-23 19:58:25 -05:00
JMC47 45ba6ed6b1 Merge pull request #13770 from JoshuaVandaele/usbutils
USBUtils: Refactor USB device handling
2025-07-23 20:57:17 -04:00
Jordan Woyak ff0560574e AudioCommon/Mixer: Skip sample processing when NullSoundStream is being used. 2025-07-23 17:53:21 -05:00
JosJuice 10cedc90af Translation resources sync with Transifex 2025-07-23 18:55:15 +02:00
JosJuice f4a86931a4 Merge pull request #13818 from Amphitryon0/show-code-default
DolphinQt: Stop re-enabling Code widget when toggling debug mode
2025-07-23 18:13:33 +02:00
Jules Blok 69f331e989 Merge pull request #13100 from CrossVR/unrestricted-depth-range
Vulkan: Add support for unrestricted depth range.
2025-07-23 19:25:09 +09:00
Joshua Vandaële 4ae195ee60 USBUtils: Refactor USB device handling 2025-07-23 03:26:25 +02:00
Maxim Cournoyer 74814b3203 fix gc-font-tool.cpp with GCC 14 2025-07-22 16:58:57 +09:00
Amphitryon 8e84943e37 DolphinQt: Stop re-enabling Code widget when toggling debug mode
It is useful enough for the Code widget to be enabled the first time
debugging is enabled, but it should not be re-enabled every time the
setting is toggled off and then back on. This also ensures that the
interface is consistent if debugging is enabled without using the
checkbox.
2025-07-21 22:46:55 -05:00
Tilka 79a3af2e6e Merge pull request #13805 from SuperSamus/vulkan-present-sempahore-reuse-fix
Vulkan: Fix present semaphores reuse
2025-07-22 03:03:04 +01:00
JMC47 c6de692d01 Merge pull request #13784 from jordan-woyak/btreal-restore-keys-on-hci-reset
BTReal: Always restore link keys on HCI reset.
2025-07-21 21:00:20 -04:00
Martino Fontana b80e178403 Vulkan: Fix present semaphores reuse
Fixes validation errors.
See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html
2025-07-21 16:02:53 +02:00
CrossVR 0ace5f5d3d Vulkan: Add support for unrestricted depth range. 2025-07-21 14:07:26 +09:00
Jordan Woyak c39c8277b7 Merge pull request #13674 from JosJuice/android-visualize-input
Android: Show input indicators in controller settings
2025-07-20 17:46:47 -05:00
Tilka dccd8709d8 Merge pull request #13803 from JoshuaVandaele/msgmerge-sort
Translation: Remove deprecated --sorted-output/-s option
2025-07-20 17:40:02 +01:00
JMC47 3700eddf0c Merge pull request #13815 from AdmiralCurtiss/windows-common-funcs
Common: Move GetDeviceProperty() into its own header
2025-07-19 20:14:23 -04:00
Admiral H. Curtiss 68713e08b4 Common: Move GetDeviceProperty() into its own header
Otherwise we include Windows headers in the entire codebase through CommonFuncs.h
2025-07-19 21:24:51 +02:00
Tilka 5cc0a5a3be Merge pull request #13816 from Tilka/fix_di_init
WII_IPC: fix homebrew that uses the disc drive
2025-07-19 20:13:18 +01:00
Tillmann Karras 6a55a1bf68 WII_IPC: fix homebrew that uses the disc drive
Dolphin never emulated the AHBPROT register before, but the default
value when reading from unimplemented MMIO registers used to be -1,
which happened to match what AHBPROT reads as when all restrictions are
disabled. In 6f25e20c6a I changed the
default to 0 to match observed hardware behavior in the memory range of
the command processor. This broke libogc's DI_Init() which checks
AHBPROT for full hardware access (presumably to ensure that bypassing
IPC for Video DVDs will work).
2025-07-19 16:42:15 +01:00
Admiral H. Curtiss 2da774b2f7 Merge pull request #13811 from TryTwo/Update_darkmode
Darkmode qtoolbuttons and checked state.
2025-07-19 13:06:16 +02:00
TryTwo 3bd110a210 Darkmode qtoolbuttons and checked state.
Generic qtoolbuttons can be much smaller than qpushbuttons.
2025-07-18 22:46:15 -07:00
JMC47 b2b2808d01 Merge pull request #13812 from Dentomologist/memoryviewwidget_fix_updates_at_end_of_address_space
MemoryViewWidget: Fix updates at end of address space
2025-07-19 00:42:34 -04:00
Admiral H. Curtiss 4868970504 Merge pull request #13799 from JoshuaVandaele/gitmodules
.gitmodules: Various ameliorations
2025-07-19 05:08:07 +02:00
Joshua Vandaële 4788af92bc .gitmodules: Update URLs for lz4, hidapi, and minizip-ng submodules to include .git extension 2025-07-19 04:29:17 +02:00
Joshua Vandaële 0019256707 .gitmodules: Add shallow option for all submodules 2025-07-19 04:29:14 +02:00
Joshua Vandaële 0611880c56 .gitmodules: Remove branch specifications for submodules 2025-07-19 04:28:19 +02:00
Admiral H. Curtiss 47b74c0e74 Merge pull request #13813 from Dentomologist/memorywidget_fix_splitter_state_restoration
MemoryWidget: Fix splitter state restoration
2025-07-19 04:23:23 +02:00
JMC47 b25e293cc8 Merge pull request #13767 from SuperSamus/misc-gameini-updates
GameINI: Misc updates
2025-07-18 16:43:13 -04:00
JMC47 575b6a9cd8 Merge pull request #13648 from SuperSamus/dbz-budokai-xfb
GameINI: Disable Immediately Present XFB for Dragon Ball Z: Budokai and Dragon Ball Z: Budokai 2
2025-07-18 14:14:56 -04:00
Dentomologist c29b3e098d MemoryWidget: Fix splitter state restoration
Fix a copy-paste error causing MemoryWidget's splitter to load the wrong
state data when creating the MemoryWidget.

For me this caused the side panel to be scrunched up every time I
started Dolphin, but the exact effects probably depend on the state of
your MemoryWidget and CodeWidget.
2025-07-17 14:40:14 -07:00
Dentomologist 43ab79ae23 MemoryViewWidget: Fix updates at end of address space
Fix two bugs that occurred when viewing a memory range starting shortly
before 0xffffffff.

Bug 1: When there was at least one visible memory address at or after
0x0 none of the values would be displayed even when some of the
addresses were valid. This happened because the loop condition in
GetValues immediately returned false since m_address_range.first >
m_address_range.second, causing m_values to be empty. This in turn led
every address to be considered INVALID_MEMORY in UpdateColumns.

Bug 2: When m_address_range.second was equal to 0xffffffff GetValues
would enter an infinite loop. This happened because address would
overflow to 0 after printing the last value in the table, causing the
loop condition address <= m_address_range.second to be true forever.
2025-07-17 13:45:08 -07:00
JMC47 b6be5ee5d3 Merge pull request #13801 from jordan-woyak/usb-add-device-dialog-adjust-size
USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size.
2025-07-16 20:30:36 -04:00
JMC47 9e05063929 Merge pull request #13793 from jordan-woyak/libusb-unicode-descriptor
LibusbUtils: Add GetStringDescriptor function.
2025-07-16 20:30:12 -04:00
JMC47 295ae819f5 Merge pull request #13792 from Tilka/wii_banners
WiiSaveBanner: fall back to $userdir/Load/WiiBanners
2025-07-16 20:29:46 -04:00
JMC47 9f076d4707 Merge pull request #13783 from jordan-woyak/schedule-event-from-thread-fix
CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread.
2025-07-16 20:29:18 -04:00
JMC47 291c410e8e Merge pull request #13683 from JoshuaVandaele/miniupnpc-cmake4
miniupnpc: Update to 2.3.3 and make it a submodule
2025-07-16 20:28:16 -04:00
Jordan Woyak d3336d1129 Merge pull request #13808 from LillyJadeKatrin/retroachievements-submodule
Update rcheevos submodule to latest version
2025-07-16 18:01:59 -05:00
Joshua Vandaële 81a9809525 Translation: Re-order translation strings 2025-07-16 23:55:03 +02:00
Joshua Vandaële 4a520c62a0 Translation: Remove deprecated --sorted-output/-s option
See https://lists.nongnu.org/archive/html/info-gnu/2024-12/msg00000.html
2025-07-16 23:54:29 +02:00
Joshua Vandaële ebcca270cc Translation: Update source and translated strings 2025-07-16 23:54:19 +02:00
Joshua Vandaële 5c7743e617 Translation: Specify encodings for Qt strings
This is required for update-source-strings.sh to work with xgettext 0.25.0
2025-07-16 23:52:07 +02:00
Joshua Vandaële 12482c8c3b Translation: Ensure files are treated in the same order
This also tells `sort` to ignore the case, and to only consider using alphanumeric characters, to ensure parity across different filesystems.
2025-07-16 23:52:04 +02:00
JMC47 c2bace5967 Merge pull request #13798 from TryTwo/PR_CodeWidget_NoUpdate
CodeWidget: Add button that locks the view's address
2025-07-16 14:32:21 -04:00
LillyJadeKatrin 79230c38f1 Update rcheevos submodule to latest version 2025-07-16 00:03:20 -04:00
TryTwo d53e766d65 CodeWidget: Add button that prevents automatic updates to the address, such as navigating to the PC on pause. 2025-07-15 12:23:47 -07:00
JosJuice 5674afa63d Merge pull request #13804 from jordan-woyak/add-device-shorter-placeholder-text
USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text.
2025-07-15 18:44:21 +02:00
JosJuice 2e26c03378 Merge pull request #13802 from Dentomologist/cexiagp_dont_create_save_file_if_path_is_empty
CEXIAgp: Don't create save file if path is empty
2025-07-15 18:32:39 +02:00
Jordan Woyak 1dbb9a193e Merge pull request #13806 from Dentomologist/iofile_require_trivially_copyable_types
IOFile: Require trivially copyable types
2025-07-14 16:03:40 -05:00
Dentomologist 8a28b95480 IOFile: Require trivially copyable types
Require ReadArray and WriteArray to be called with a trivially copyable
type.

ReadArray and WriteArray call std::fread and std::fwrite respectively.
These functions trigger undefined behavior when the objects are not
trivially copyable, so this adds that requirement to the callers.
2025-07-14 11:55:24 -07:00
Jordan Woyak 9e57447fd3 USBDeviceAddToWhitelistDialog: Limit VID/PID entry to 4 characters. 2025-07-12 16:58:46 -05:00
Jordan Woyak 2bbd1fcf6b USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text. 2025-07-12 16:54:44 -05:00
Jordan Woyak 633fd5df70 Merge pull request #13775 from jordan-woyak/sdl-gamepad-rename
InputCommon: Rename SDL input backend GameController to Gamepad.
2025-07-12 16:50:04 -05:00
Jordan Woyak d92f7f194c Merge pull request #13747 from JoshuaVandaele/warns-only
Fix various warnings
2025-07-12 15:37:53 -05:00
Dentomologist 30bd7e18f0 CEXIAgp: Don't create save file if path is empty
Fix creation of a ".sav" file in the current working directory on
emulation shutdown when a slot is set to "Advance Game Port" and the
"GBA Cartridge Path" is empty.

Fixes https://bugs.dolphin-emu.org/issues/12975.
2025-07-12 13:07:44 -07:00
Joshua Vandaële 06882bd2dc Fix various warnings 2025-07-12 12:47:30 +02:00
Jordan Woyak 3f314c81e9 USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size. 2025-07-12 05:13:47 -05:00
Jordan Woyak f76ab86326 Merge pull request #13800 from ITotalJustice/master
AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack.
2025-07-10 19:23:09 -05:00
ITotalJustice 8d2a15be3f AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack. 2025-07-11 01:01:03 +01:00
Jordan Woyak 29964ff55e Merge pull request #13796 from Dentomologist/videobackendbase_remove_redundant_unique_ptr_reset
VideoBackendBase: Remove redundant unique_ptr reset
2025-07-09 17:11:58 -05:00
Dentomologist 72ea7a2128 VideoBackendBase: Remove redundant unique_ptr reset
Remove redundant reset of g_presenter in ShutdownShared, which is
already reset earlier in the function.
2025-07-09 14:12:06 -07:00
Sintendo f2392e4048 Avoid map/set double lookups
Fix some common anti-patterns with these data structures.

- You can dereference the iterator returned by `find` to access the
  underlying value directly, without an extra `operator[]`/`at`.
- Rather than checking for an element before insertion/deletion, you can
  just do the operation and if needed check the return value to
  determine if the insertion/deletion succeeded.
2025-07-08 06:53:42 +02:00
Jordan Woyak d55012f8d0 Merge pull request #13726 from hoogmin/cpp23_ranges_patch
Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
2025-07-07 21:05:28 -05:00
Joshua Vandaële 57cbd98f42 miniupnpc: Update to 2.3.3 and make it a submodule 2025-07-08 03:48:37 +02:00
Jordan Woyak b23da4f15c Merge pull request #13678 from JoshuaVandaele/SFML-cmake4
SFML: Update to 3.0.1
2025-07-07 20:40:46 -05:00
Jordan Woyak c37882de77 Merge pull request #13753 from JoshuaVandaele/netplay-hoverblur
ClickBlurLabel: Create a label which is blurred until it is clicked
2025-07-07 20:07:11 -05:00
Jordan Woyak 13784f842e LibusbUtils: Add GetStringDescriptor function to return unicode strings and replace our libusb_get_string_descriptor_ascii calls. 2025-07-06 19:41:14 -05:00
Tillmann Karras fe6fd2279c WiiSaveBanner: fall back to $userdir/Load/WiiBanners
Unlike custom banners which work as an override, this mechanism works as
a fallback. The use case is if you have games you don't really play but
want to keep around for testing purposes without filling up your NAND
with lots of saves. For ease of use, the directory structure is the same
but only title/$title_hi/$title_lo/data/banner.bin files are
relevant.
2025-07-04 23:15:50 +01:00
Jordan Woyak a5e85caf0a Merge pull request #13736 from jordan-woyak/main-config-gfx
DolphinQt: Move graphics config to main Settings window.
2025-07-03 01:31:01 -05:00
Admiral H. Curtiss b03a7821f2 Merge pull request #13778 from matheuswillder/GameINI-Disable-Dual-Core-for-Rally-Championship
GameINI: Disable Dual Core for Rally Championship
2025-07-01 23:09:07 +02:00
Admiral H. Curtiss a84fa387de Merge pull request #13785 from Dentomologist/memorywidget_fix_hex_input_validation_errors
MemoryWidget: Fix hex input validation errors
2025-07-01 22:54:37 +02:00
Admiral H. Curtiss 74eeeebfde Merge pull request #13788 from jordan-woyak/post-proc-config-window-adjust-size
DolphinQt: Adjust PostProcessingConfigWindow size on creation.
2025-07-01 22:51:30 +02:00
Jordan Woyak 4126b4e904 DolphinQt: Adjust PostProcessingConfigWindow size on creation. 2025-07-01 15:26:13 -05:00
JMC47 2871fe08c9 Merge pull request #13782 from noahpistilli/wii_no_pad
IOS/KD: Pad Wii Numbers to 16 digits
2025-07-01 14:52:41 -04:00
Dentomologist 0093ed1ac8 MemoryWidget: Fix "Hex Byte String" validation failures
Fix the input string failing to validate when the "Hex Byte
String" input type is selected and either the user adds a 0x prefix or
the "Hex" box is checked (or both).

The latter failure was particularly troublesome because when "Hex Byte
String" is selected the "Hex" checkbox is disabled. Users would have to
switch to a data type that enabled the box, toggle it, then switch back
to "Hex Byte String" to fix it.

Fix these errors by not adding a prefix when the "Hex" box is checked,
and removing the "0x" prefix from the user's input if present.
2025-06-30 11:34:20 -07:00
Jordan Woyak 8b2d569932 BTReal: Always restore link keys on HCI reset. 2025-06-30 04:07:45 -05:00
Dentomologist 8f4a0b0e77 MemoryWidget: Allow 0x prefix when Hex box is checked.
Fix validation failing when the user has checked the Hex box and also
includes a "0x" or "-0x" prefix in their input.

Previously an extra "0x" would be inserted, causing the user's input of
"0x13" to become "0x0x13" which would then fail to validate.
2025-06-30 00:12:48 -07:00
Jordan Woyak c597c70316 CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread. 2025-06-29 20:55:43 -05:00
JMC47 9a0d4501f8 Merge pull request #13751 from jordan-woyak/btreal-improvements
Bluetooth Passthrough Improvements
2025-06-29 18:00:02 -04:00
JMC47 626315d50a Merge pull request #13750 from TryTwo/PR_Symbol_Loading
PPCSymbols: Restructure loading on boot and add a mutex to prevent crashes.
2025-06-29 15:44:52 -04:00
Jordan Woyak 936887838a BTReal: Don't falsely increase a controller's ACL packet number buffer size. WARN_LOG if the size is smaller than that of the original BT module. 2025-06-28 18:54:21 -05:00
Jordan Woyak 7fe4a6e4f3 LibUSBBluetoothAdapter: Change the request type of our generated HCI commands from LIBUSB_RECIPIENT_INTERFACE to LIBUSB_RECIPIENT_DEVICE.
This changes the value from 0x21 to 0x20 which now matches the value that Wii software generates.
2025-06-28 18:54:21 -05:00
Jordan Woyak 25583658d2 State: Increase STATE_VERSION. 2025-06-28 18:54:21 -05:00
Jordan Woyak 0e25979449 BTReal: Attempt to configure HCI_SERVICE_TYPE_GUARANTEED on all connections for improved performance with certain adapters. 2025-06-28 18:54:21 -05:00
Jordan Woyak 350ec54779 BTReal: Improvements:
Separate LibUSB logic into LibUSBBluetoothAdapter class.
Submit transfers on thread with proper timing.
Throttle before ACL input for reduced input latency.
Immediately send IPC replies for outgoing data.
Continuously submit libusb transfers to fill HCI/ACL input queues.
Simplify endpoint handling and state saving.
Other cleanups.
2025-06-28 18:54:16 -05:00
Jordan Woyak 541dbdfead IOS: Move DoStateForMessage from BTEmu to BTBase. 2025-06-28 18:45:52 -05:00
Jordan Woyak b3e349b4df Merge pull request #13772 from rastshawn/use-btdevice-selection
BTReal: bugfix - BT passthrough uses selected device rather than first compatible device in list
2025-06-28 18:45:05 -05:00
Noah Pistilli f8e22f448d IOS/KD: Pad Wii Numbers to 16 digits 2025-06-28 19:22:14 -04:00
Dentomologist c613d3ca10 ControllerInterface: Fix Windows deadlock
Remove the redundant s_populate_mutex and only use
ControllerInterface::m_devices_population_mutex instead to prevent a
deadlock caused by locking them in opposite orders.

The device population functions in the win32 InputBackend previously
locked s_populate_mutex first before calling various functions that
locked m_devices_population_mutex. This normally worked but
ControllerInterface::RefreshDevices locks m_devices_population_mutex
first and then calls HandleWindowChange which then locked
s_populate_mutex, potentially causing the deadlock.

Fix this by using PlatformPopulateDevices to lock
m_devices_population_mutex before running the code that was previously
protected by s_populate_mutex. The functions in question lock
m_devices_population_mutex anyway, so this shouldn't meaningfully
increase contention on the lock.

Reproduction steps:

* Let Dolphin finish startup.
* In Win32.cpp::OnDevicesChanged set a breakpoint on the call to
  PlatformPopulateDevices. When the breakpoint is triggered the function
  will have locked s_populate_mutex, but since PlatformPopulateDevices
  won't have run yet m_devices_population_mutex will still be unlocked.
* Unplug a device from your computer.
* Wait for the breakpoint to trigger. (At this point you can plug the
  device back in).
* Freeze the ntdll.dll!TppWorkerThread() that triggered the breakpoint.
* Resume Dolphin and start a game.
* Core::EmuThread will call ControllerInterface::ChangeWindow which
  calls RefreshDevices. It locks m_devices_population_mutex, then calls
  InputBackend::HandleWindowChange, which tries to lock
  s_populate_mutex.
* Unfreeze ntdll.dll!TppWorkerThread().

At this point EmuThread and TppWorkerThread are deadlocked. The UI is
still responsive since the Host thread is unaffected, but trying to stop
the game or close Dolphin normally will fail since EmuThread is unable
to stop.
2025-06-28 14:00:27 -07:00
Jordan Woyak 60156f4f94 VideoCommon: Fix "Force Nearest" texture filter setting. 2025-06-28 15:52:27 -05:00
JosJuice 8d7bb0a44a Translation resources sync with Transifex 2025-06-28 22:45:47 +02:00
Jordan Woyak 3a32013740 Merge pull request #13773 from JosJuice/i18n-2025-06-22
i18n: Add comments
2025-06-28 15:13:03 -05:00
JosJuice bc1d8ffcbb i18n: Add comments 2025-06-28 21:41:44 +02:00
Matheus Willder 48a209d76e GameINI: Disable Dual Core for Rally Championship
When selecting cars, this game crashes with GFX FIFO: Unknown Opcode. This is solved by disabling Dual Core, as the error message suggests.

There is no information about this on the Wiki, just a link to a gameplay on YouTube.

This is my first PR here and one of the first ones on GitHub. Due to personal issues I don't have much free time to dedicate to this, but I'm doing my best to get everything right.
2025-06-27 20:47:28 -03:00
Martino Fontana 99be5eb6c8 GameINI: Misc updates 2025-06-28 00:44:51 +02:00
Jordan Woyak 4af2e27821 DolphinQt: Fix Windows dark theme when using external stylesheets. 2025-06-25 21:53:04 -05:00
TryTwo 9395238159 PPCSymbolDB: Add a mutex to prevent m_functions from being accessed by two different threads on boot.
On boot should be the only time this happens.
2025-06-25 12:11:46 -07:00
TryTwo fe121e4c6e PPCSymbolDB: Move loading map on boot logic from boot.cpp into PPCSymbolDB, as it will be needing a mutex.
Cleanup loading code and reduce amount of signals.

On boot. allow previously loaded map to be kept, if its filename matches. Useful for restarting a game with a large symbol map.
2025-06-25 12:01:16 -07:00
Jordan Woyak 609d91156a InputCommon: Rename SDL input backend GameController to Gamepad. 2025-06-25 00:23:48 -05:00
Joshua Vandaële 8f0ef62a71 ClickBlurLabel: Create a label which is blurred until it is clicked
This is particularly useful for people who stream their desktop and don't want to accidentally leak their IP or room.
2025-06-25 04:08:04 +02:00
JMC47 43aa7e9b96 Merge pull request #13694 from jordan-woyak/sdl3
Update to SDL3
2025-06-24 18:59:48 -04:00
JMC47 43c156084b Merge pull request #13759 from jordan-woyak/calibrate-autocomplete
DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position.
2025-06-24 18:22:48 -04:00
Shawn Rast 71fa08813a BT passthrough uses selected device rather than first alphabetical compatible device 2025-06-24 15:39:46 -05:00
JMC47 e9b57393a6 Merge pull request #13766 from JosJuice/powerpc-missing-updates
PowerPC: Add missing SDRUpdated/MSRUpdated calls
2025-06-24 16:36:49 -04:00
JMC47 97febd9477 Merge pull request #13763 from Dentomologist/mainwindow_show_hardcore_mode_error_for_recording_playback
MainWindow: Show hardcore mode error for recording playback
2025-06-24 16:35:56 -04:00
JMC47 0946814711 Merge pull request #13761 from Dentomologist/qt_use_nonautodismissiblemenu_in_more_places
Qt: Use NonAutodismissibleMenu in more places
2025-06-24 16:35:40 -04:00
JMC47 3627cfb7b1 Merge pull request #13758 from Dentomologist/threadwidget_fix_line_edit_margins
ThreadWidget: Fix line edit margins
2025-06-24 16:35:12 -04:00
JMC47 2e8da29ca2 Merge pull request #13756 from Tilka/price_is_right
GameSettings: some updates
2025-06-24 16:34:47 -04:00
JMC47 f7fa59e05d Merge pull request #13754 from SuperSamus/nsmbw-pal-remove-speedhack
GameINI: Remove NSMBW PAL speed hack
2025-06-24 16:34:27 -04:00
Jordan Woyak fbced5d0f5 Merge pull request #13774 from Tilka/cp_cleanup
VideoCommon: remove unused struct fields
2025-06-24 14:41:25 -05:00
Tillmann Karras 59d2611a94 VideoCommon: remove unused struct fields 2025-06-24 19:38:45 +01:00
Jordan Woyak 6a0963908d DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position. 2025-06-24 02:18:25 -05:00
JMC47 fa9f71e482 Merge pull request #13769 from JosJuice/merge-dbat-mappings
Memmap: Optimize UpdateLogicalMemory by merging mappings
2025-06-22 15:29:51 -04:00
TryTwo 5836ca133c PPCSymbolDB: Move function for finding file path to PPCSymbolDB, so MenuBar doesn't have to randomly access boot.cpp to get the file path. 2025-06-22 11:03:03 -07:00
JMC47 c2aaca2b16 Merge pull request #13765 from TryTwo/CodeWidget_clear_unused
CodeWidget: Clear calls/callers if no symbol exists.
2025-06-22 01:05:59 -04:00
JMC47 19f3b7e61f Merge pull request #13691 from TryTwo/PR_Notes
Debugger Add note-type symbols .
2025-06-22 01:05:42 -04:00
JosJuice ac84ea17a6 Memmap: Optimize UpdateLogicalMemory by merging mappings
Instead of creating many 128 KiB mappings, we can create a few large
mappings. On my Windows PC, this speeds up GameCube (FakeVMEM) game boot
times by about 200 ms and Wii game boot times by about 60 ms. Loading
savestates is also faster, by about 45 ms for GameCube (FakeVMEM) games
and 5 ms for Wii games. The impact is presumably smaller on other OSes
because Windows is particularly slow at creating mappings.
2025-06-21 20:54:05 +02:00
TryTwo 10c3b0b4e4 CodeWidget: Clear calls and callers box if there is no symbol, otherwise outdated data will persist. 2025-06-20 10:55:11 -07:00
JosJuice e002fcdf2f PowerPC: Use SPR_LR constant in an additional location 2025-06-20 10:42:47 +02:00
JosJuice 8c643693a9 PowerPC: Add missing SDRUpdated/MSRUpdated calls 2025-06-20 10:42:43 +02:00
TryTwo c9b815526c Debugger CodeViewWidget: Add context options for making and managing Notes. Add popup dialog for editing functions and notes. 2025-06-19 18:00:10 -07:00
TryTwo 78065359bb Debugger CodeWidget : Add search box for notes. 2025-06-19 17:55:45 -07:00
TryTwo 040d9a4336 Debugger symbols: Add new symbol type: Notes.. Notes are for naming single instructions, or small groups of instructions.
Notes are separate from function symbols, and can be searched separately.
Unlike functions, notes of different length can overlap each other.
In the instruction window, a note will always display over the function symbol.
2025-06-19 17:55:35 -07:00
Dentomologist e21ae90073 MainWindow: Show hardcore mode error for recording playback
Show an error message when attempting to play an input recording while
RetroAchievements hardcore mode is active, instead of silently doing
nothing.
2025-06-17 12:21:39 -07:00
Jordan Woyak 413b7475ec Merge pull request #13762 from Dentomologist/dolphinqt_add_vcxproj_clinclude
DolphinQt: Add DolphinQt.vcxproj ClInclude line
2025-06-17 13:06:04 -05:00
Dentomologist e8c9c7a403 DolphinQt: Add DolphinQt.vcxproj ClInclude line
Add a missing ClInclude line in DolphinQt.vcxproj for
NonAutodismissibleMenu.h. Missing the ClInclude doesn't break
compilation, but prevents various IntelliSense features in Visual
Studio from working properly with the file.
2025-06-16 23:11:11 -07:00
Dentomologist c488545091 GameListModel: Update tag list and sorting immediately
Emit the dataChanged signal when adding or removing tags from a game.
This both updates the contents of the game's Tags column immediately
(instead of having to wait for the context menu to be closed), and
updates the sorting if games are being sorted by the Tags column.
2025-06-16 22:58:30 -07:00
Dentomologist 2fd74990b7 Qt: Use NonAutodismissibleMenu in more places
Use NonAutodismissibleMenu for MenuBar's Options, JIT, and
Tools->"Connect Wii Remotes" menus, as well as for the Tags menu in
GameList's context menu.

NonAutodismissibleMenu allows users to check or uncheck multiple
checkable menu items without closing the menu between selections.
2025-06-16 22:56:26 -07:00
Dentomologist ab25632992 ThreadWidget: Don't set fixed width on QLineEdits
Fix clipping of QLineEdit contents by having them take up half the grid
width instead of trying to match the contents width in an unreliable
manner.
2025-06-16 22:33:20 -07:00
Dentomologist 6a0d8ca3f8 MenuBar: Rename menu variable
The Tools menu has a number of submenus, so rename menu to
connect_wii_remotes_menu for clarity.
2025-06-16 21:06:55 -07:00
Tillmann Karras ca004e35f7 GameSettings: add performance hack for Baby And Me
The patch is not enabled by default.
2025-06-16 20:08:36 +01:00
Tillmann Karras c39b067479 GameSettings: don't force EFB-to-tex for Fireblade
This ini is from the initial mega commit. The game seems to work fine
without it.
2025-06-16 19:48:31 +01:00
Tillmann Karras 58b86074ae GameSettings: fix purple flickering in Trivial Pursuit - Bet You Know It 2025-06-16 19:48:31 +01:00
Tillmann Karras cc5933a6ce GameSettings: fix purple screen in The Price Is Right 2025-06-16 19:48:31 +01:00
Jordan Woyak 5f6cc197ce DolphinQt: Always enable the "Skip Main Menu" checkbox when "SkipIPL" is disabled. 2025-06-15 20:37:50 -05:00
Jordan Woyak 28a6eb26cc Merge pull request #13703 from jordan-woyak/map-and-calibrate
DolphinQt/InputCommon: Make the "Calibrate" button also map inputs.
2025-06-15 15:45:04 -05:00
Jordan Woyak 3a94289ad6 Merge pull request #13744 from JoshuaVandaele/windows-specific-getdevicename
Host: Implement a Windows-only implementation of `GetDeviceNameFromVIDPID`
2025-06-15 15:44:31 -05:00
Jordan Woyak 2fb66e9708 Merge pull request #12938 from tygyh/Split-IsTranslatedRAMAddress
Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods
2025-06-14 17:12:24 -05:00
Jordan Woyak 83beebaf8b DolphinQt/InputCommon: Move some calibration logic to InputCommon and make the "Calibrate" button also map inputs. 2025-06-14 16:29:25 -05:00
Dr. Dystopia 6591fa3751 Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods 2025-06-14 23:29:03 +02:00
Jordan Woyak 0780458069 InputCommon: Make InputDetector::Start take a span instead of a vector. 2025-06-14 16:28:09 -05:00
Jordan Woyak 11c3f7ea8d InputCommon: Fix occasional misidentification of analog input detection. 2025-06-14 16:28:09 -05:00
Jordan Woyak 344080b7a9 DolphinQt: Fix ControllersPane group box spacing. 2025-06-14 16:26:09 -05:00
Jordan Woyak 89b8edea03 DolphinQt: Move graphics config to main Settings window. 2025-06-14 16:26:09 -05:00
Jordan Woyak 2047eaf1d8 Merge pull request #13671 from tygyh/Source/Remove-redundant-lambda-parameter-lists
Source: Remove redundant lambda parameter lists
2025-06-14 03:49:47 -05:00
Dr. Dystopia ca8f9b672b Source: Remove redundant lambda parameter lists 2025-06-14 10:19:31 +02:00
JMC47 95f6c76713 Merge pull request #13696 from fothugiyo/gecko-codes
Tales of Symphonia AR and Gecko Codes
2025-06-13 17:32:24 -04:00
Martino Fontana 46ce355d93 GameINI: Remove NSMBW PAL speed hack 2025-06-13 22:27:21 +02:00
Joshua Vandaële d93245cc7a Host: Implement a Windows-only implementation of GetDeviceNameFromVIDPID 2025-06-13 17:46:53 +02:00
JMC47 a163877413 Merge pull request #13746 from LillyJadeKatrin/retroachievements-hardcore-changed
MainWindow - Avoid excessive emulation state changes
2025-06-10 17:32:04 -04:00
LillyJadeKatrin 417badc55c MainWindow - Avoid excessive emulation state changes
Updates the Hardcore Changed callback to only signal EmulationStateChanged if the new Hardcore Mode setting is different from the previous one.
2025-06-10 16:03:14 -04:00
iwubcode 6ab83bdd05 VideoCommon: fix regression where scenes with expanded lines or points would cause issues if doing per-vertex transformations in the vertex shader 2025-06-09 19:08:21 -05:00
JMC47 5800b874d7 Merge pull request #13741 from Tilka/bean_menu
GameSettings: add bean menu patch for A Boy and His Blob
2025-06-09 00:12:52 -04:00
JMC47 1526c06133 Merge pull request #13658 from jordan-woyak/vk-present-done-race
Vulkan: Eliminate m_last_present_done flag.
2025-06-09 00:10:31 -04:00
JMC47 7ad85e875d Merge pull request #13738 from Tilka/convert_banner
QtUtils/ImageConverter: simplify
2025-06-09 00:10:03 -04:00
JMC47 42d5f2b705 Merge pull request #13702 from CostPerUnit/master
MappingWidget: Add Advanced Configuration Button to Point And Point Passthrough "Enable" boxes
2025-06-09 00:09:35 -04:00
JMC47 5064b615ba Merge pull request #13737 from LillyJadeKatrin/retroachievements-gamecube-bulk-fix
AchievementManager - Fix Gamecube Bulk Copy
2025-06-08 13:08:02 -04:00
JMC47 33b529a510 Merge pull request #13719 from LillyJadeKatrin/retroachievements-wii-menu-fix
AchievementManager - Block Wii Menu Exploits
2025-06-08 13:04:27 -04:00
JMC47 8c3ca46988 Merge pull request #13676 from LillyJadeKatrin/retroachievements-allowlist-test-improvements
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-06-08 12:56:19 -04:00
Admiral H. Curtiss 944dd711b7 Merge pull request #13743 from JosJuice/audiocommon-missing-includes
AudioCommon: Re-add missing includes
2025-06-08 13:41:41 +02:00
JosJuice 1b7d42f775 AudioCommon: Re-add missing includes
7c237bb ("AudioCommon: Remove unused includes") removed some includes
that were in fact in use.
2025-06-08 11:35:02 +02:00
JMC47 24b0bf01d5 Merge pull request #12836 from JosJuice/opensles-buffer-size
Android: Ask system for optimal audio buffer size and sample rate
2025-06-07 23:07:37 -04:00
Tilka 19fbbf0dba Merge pull request #13727 from JoshuaVandaele/fmt-11.2.0-localtime-deprec
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-08 04:04:37 +01:00
Jordan Woyak 1786e34bd3 Merge pull request #13665 from jordan-woyak/dark-mode-filter
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 18:19:13 -05:00
Jordan Woyak 65f3ba70f5 Merge pull request #13522 from tygyh/Enforce-overriding-destructor-style-Core&UnitTests
Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-07 17:55:14 -05:00
Jordan Woyak ec52a74967 Merge pull request #13023 from tygyh/Replace-ties-with-structured-bindings
UnitTests: Replace ties with structured bindings
2025-06-07 17:50:34 -05:00
Jordan Woyak 8b7669550f Merge pull request #13454 from tygyh/Use-constants-DolphinQt-FifoAnalyzer
DolphinQt/FIFO/FIFOAnalyzer: Make parameters, arguments etc. constant
2025-06-07 17:50:08 -05:00
Jordan Woyak 46e66fe945 Merge pull request #13544 from tygyh/DolphinNoGUI-Replace-deprecated-signal-header
DolphinNoGUI: Apply style-alignment refactorings
2025-06-07 17:47:11 -05:00
Jordan Woyak 056ece6f29 Merge pull request #13697 from tygyh/AudioCommon/Remove-unused-includes
AudioCommon: Remove unused includes
2025-06-07 17:45:50 -05:00
Jordan Woyak a07a2fe398 Merge pull request #13698 from tygyh/AudioCommon/Remove-unused-qualifiers-and-make-variables-constant
AudioCommon: Remove unused qualifiers and make variables constant
2025-06-07 17:45:33 -05:00
Tillmann Karras 61e8fa060b QtUtils/ImageConverter: simplify 2025-06-07 23:06:07 +01:00
Tillmann Karras b6ff1b5573 GameSettings: add bean menu patch for A Boy and His Blob
The bean menu in this game does not react when the analog control stick
is moved perfectly to the right (0 degress). This happens when the
analog stick is mapped to digital inputs.

Currently, Dolphin contains a hardcoded controller hack to work around
this issue. With this patch, it should no longer be needed; see #13177.
2025-06-07 23:01:17 +01:00
Jordan Woyak 6da3f5f26a InputCommon: Update to use SDL3 and bump the SDL submodule in Externals to release-3.2.16. 2025-06-07 16:27:54 -05:00
Jordan Woyak 5906512847 DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter. 2025-06-07 16:15:34 -05:00
JMC47 52fcdde485 Merge pull request #13386 from iwubcode/resource_manager_system
VideoCommon: add resource manager, tracks resources to load assets in optimal way and manage memory
2025-06-07 15:51:34 -04:00
JMC47 5eb61024c6 Merge pull request #13740 from JoshuaVandaele/bsod-fix-i-hope
Host: Clean up device handle in all cases
2025-06-07 12:27:49 -04:00
Admiral H. Curtiss a27b845514 Merge pull request #13710 from TryTwo/UI_Sliders_Update
Advanced Panel convert QSliders into ConfigSliders
2025-06-07 17:39:40 +02:00
Admiral H. Curtiss 1b1ca019a4 Merge pull request #13724 from SuperSamus/gamelist-properties-noduplicates
GameList: Prevent opening Properties multiple times for the same game
2025-06-07 17:24:50 +02:00
Joshua Vandaële 241834709b Host: Clean up device handle 2025-06-07 16:55:45 +02:00
LillyJadeKatrin c68549e9ef AchievementManager - Load unknown games
Prior to this change, any game unrecognized by RetroAchievements would ultimately result in the game being "Closed" by AchievementManager. As a result, if any game was run while in this state without any other closing being done, AchievementManager would simply load it like a new game, despite memory already being accessed.
However, testing and documentation determined that the rcheevos client doesn't actually complain when it fails to hash a game; it just runs this as "Unidentified Game" with RA ID = 0. As such, this change utilizes that in AchievementManager to differentiate between no software running and unidentified software running.

As a result of this, now LoadGame needs to be called for every piece of runnable software, supported format or otherwise. If a supported format is not available, LoadGame can now be called with a nullptr to ensure that rcheevos still properly sets up an unidentified game.
2025-06-07 07:02:24 -04:00
LillyJadeKatrin 5545a386cf AchievementManager - Fix Gamecube Bulk Copy
The memory copy algorithm (only needed for RetroAchievements devs) was broken for Gamecube as it assumed EXRAM size was zero when in reality it's using ARAM. For the time being, we do not need to use or access ARAM so instead this sets that value to zero for Gamecube titles.
2025-06-07 07:00:47 -04:00
JosJuice 185b080f03 Merge pull request #13142 from JosJuice/fifo-window-starting-stopping
DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
2025-06-07 10:43:19 +02:00
JosJuice 43b254aaad Android: Update advanced mapping dialog when devices change
Without this, there was a bug where if you turned the device's screen
off and on again while in the advanced mapping dialog, the input
indicators would stop updating. This is because turning the screen on
again causes devices to refresh, which causes all devices to be
recreated, leaving the AdvancedMappingControlViewHolders stuck
referencing controls belonging to devices that are no longer being
updated.
2025-06-07 10:20:21 +02:00
JosJuice 1002f29691 Android: Show input indicators in controller settings 2025-06-07 10:20:20 +02:00
JosJuice 0dd601577d Android: Set parent when inflating RecyclerView.ViewHolders
This makes sure view holders get proper widths when they use
layout_width="match_parent". This becomes quite noticeable for
AdvancedMappingControlAdapter in the next commit, but I'm also
making the change for other adapters while I'm at it.
2025-06-07 10:20:19 +02:00
JosJuice cf7b141eb9 Android: Make input mapping view holders observe input state changes 2025-06-07 10:20:19 +02:00
JosJuice 22fd0472ed Android: Pass CoreDevice.Control to AdvancedMappingControlViewHolder 2025-06-07 10:20:19 +02:00
JosJuice 4b4a775d5a Android: Make AdvancedMappingControlViewHolder a LifecycleOwner 2025-06-07 10:20:19 +02:00
JosJuice 5d7cba8cd9 Android: Make SettingViewHolder a LifecycleOwner 2025-06-07 10:20:19 +02:00
JosJuice 4214cb6eb8 Android: Make input state changes observable 2025-06-07 10:20:18 +02:00
iwubcode c3d3b81533 VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore 2025-06-06 23:03:02 -05:00
iwubcode 774a84a953 VideoCommon: avoid race conditions with asset load/unload by moving the lock to the entire function, favor atomics for the memory/time getters 2025-06-06 23:03:02 -05:00
iwubcode b3f50c969e VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded 2025-06-06 23:03:02 -05:00
iwubcode 3b83907b88 VideoCommon: update CustomAsset's load time to be before the load occurs (this prevents issues where the load time might be incorrectly inflated by long load operations)
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode d940d62cae VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures) 2025-06-06 23:03:02 -05:00
iwubcode 7afa9e6c6f VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures 2025-06-06 23:03:02 -05:00
iwubcode 12d178a8df VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down 2025-06-06 23:03:02 -05:00
iwubcode f910c1d934 Core: add CustomResourceManager to System 2025-06-06 23:03:02 -05:00
iwubcode 70abcb2030 VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode d8ea31ca46 VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions 2025-06-06 23:03:02 -05:00
iwubcode 2ae43324cb VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later 2025-06-06 23:03:02 -05:00
iwubcode 7d59c2743d Common: Add class 'FilesystemWatcher' that is used to watch paths and receive callbacks about filesystem level events for anything under that path 2025-06-06 23:03:02 -05:00
iwubcode 8113399b68 Externals: add watcher, a library used to watch a filesystem location for changes 2025-06-06 23:03:02 -05:00
iwubcode bafe78203d VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times 2025-06-06 23:03:02 -05:00
iwubcode 15f125ebee VideoCommon: change asset loading to return the number of bytes loaded instead of a pass/fail 2025-06-06 23:03:02 -05:00
iwubcode 316740daed VideoCommon: add 'Unload' functionality to CustomAsset 2025-06-06 23:03:02 -05:00
Jordan Woyak 903eafcf65 Merge pull request #13714 from Dentomologist/dolphinqt_remove_redundant_window_hints
DolphinQt: Remove redundant window hints
2025-06-06 22:13:01 -05:00
Dentomologist 2a7e8a4003 DolphinQt: Remove redundant window hints
Remove window hints clearing the flag Qt::WindowContextHelpButtonHint,
which is already off by default in Qt 6.

In Qt 5 this flag was set by default for QDialogs, and on Windows put a
? button in the corner of the title bar allowing users to activate Qt's
QWhatsThis help system for a given widget. Since we don't set that text
the ? button was useless and so we hid it manually.
2025-06-06 19:35:13 -07:00
iwubcode 9ec69b5925 VideoCommon: add a handle to custom asset, this is an id that is only relevant for a particular game session but is slightly faster as a numeric value for lookups than the traditional asset id 2025-06-06 19:20:25 -05:00
iwubcode d7de49ccf6 Core / VideoCommon: Remove original custom asset loader 2025-06-06 19:20:25 -05:00
JMC47 5ec5db9240 Merge pull request #13392 from jordan-woyak/frame-pacing-accurate-time
CoreTiming: Add setting to pursue accurate overall emulation runtime
2025-06-06 19:17:44 -04:00
JMC47 974c56d3c5 Merge pull request #13731 from iwubcode/pixel_shader_gen_fix_complete_initialize
VideoCommon: ensure pixel shader gen input structure is completely initialized
2025-06-06 19:08:57 -04:00
Jordan Woyak 977f2da6a7 Merge pull request #13735 from JMC47/triopatch
GamePatch: Disney Trio of Destruction Pagetable Speedhack.
2025-06-06 17:54:36 -05:00
JMC47 b1d114f7f7 Merge pull request #13730 from jordan-woyak/controllers-on-main-config-dialog
DolphinQt: Move "Controllers" to main settings window.
2025-06-06 18:54:12 -04:00
JMC47 be3d48ec5f GamePatch: Disney Trio of Destruction Pagetable Speedhack. 2025-06-06 17:17:11 -04:00
Javier Martinez d766c527c7 Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
Common: Use feature macros for better compatibility

Common/Contains.h: fix linting issue

Common/Contains.h: Add C++23 TODO

Common/Contains.h: Fix comment lint issue.
2025-06-05 19:18:08 -04:00
Jordan Woyak a0611b512b Merge pull request #13713 from Dentomologist/filesystemwidget_center_header_text
FilesystemWidget: Center header text
2025-06-05 14:34:36 -05:00
JMC47 fadc2ac223 Merge pull request #13732 from AdmiralCurtiss/dsp-jit-exceptions
DSP LLE Recompiler: Fix exception handling after #10766
2025-06-05 15:17:30 -04:00
Admiral H. Curtiss ea959f2651 DSP/Jit: Don't return to dispatcher if no exception was generated 2025-06-05 20:57:27 +02:00
Admiral H. Curtiss a43fc68452 DSPAnalyzer: Set store instructions as potentially generating exceptions 2025-06-05 19:10:42 +02:00
OatmealDome 9843115ad8 ScmRevGen: Bump version to 2506a 2025-06-05 02:52:15 -04:00
JosJuice a834df67ae Android: Add android.hardware.microphone to manifest
Google Play is now blocking distribution for Android TV unless we
explicitly set the android.hardware.microphone hardware feature as
android:required="false", because it's inferring
android.hardware.microphone from the android.permission.RECORD_AUDIO we
added for Wii Speak emulation, with android:required defaulting to true.
I was under the belief that setting android:required="false" on
android.permission.RECORD_AUDIO would solve this, but looking closer at
the definition of <uses-permission>, it doesn't actually support
android:required attributes, so that presumably has no effect.
2025-06-05 02:51:47 -04:00
iwubcode ae26b38fc0 VideoCommon: fix pixel shader gen error about structure not being fully initialized 2025-06-05 01:37:45 -05:00
Jordan Woyak b9bea58f0f DolphinQt: Move "Controllers" to main settings window. 2025-06-04 19:33:01 -05:00
JosJuice b7fb2fa737 Merge pull request #13728 from JosJuice/android-uses-microphone
Android: Add android.hardware.microphone to manifest
2025-06-04 23:37:17 +02:00
Martino Fontana 2de9122b5f GameList: Prevent opening Properties multiple times for the same game 2025-06-04 23:11:09 +02:00
JMC47 8665b22822 Merge pull request #13651 from jordan-woyak/config-list
DolphinQt: Change Config QTabWidget into a QListWidget and QStackedWidget.
2025-06-04 16:01:51 -04:00
Dr. Dystopia bae0e5f67a DolphinNoGUI: Make override explicit 2025-06-04 21:49:29 +02:00
Dr. Dystopia 2ae928ca79 DolphinNoGUI: Make parameters constant 2025-06-04 21:49:15 +02:00
Dr. Dystopia f04f659710 DolphinNoGUI: Replace C-style cast with reinterpret_cast 2025-06-04 21:49:01 +02:00
Dr. Dystopia ec1d659363 DolphinNoGUI: Make classes final 2025-06-04 21:48:53 +02:00
Dr. Dystopia c37933932d DolphinNoGUI: Make variables constant 2025-06-04 21:48:40 +02:00
Dr. Dystopia 23af1e025b DolphinNoGUI: Make function static 2025-06-04 21:30:59 +02:00
Dr. Dystopia 135b6840e5 DolphinNoGUI: Remove unused include directives 2025-06-04 21:30:59 +02:00
Dr. Dystopia e3df00b7f4 DolphinNoGUI: Make variables constexpr 2025-06-04 21:30:59 +02:00
Dr. Dystopia 71da0f2d24 DolphinNoGUI: Replace deprecated signal.h header 2025-06-04 21:30:59 +02:00
JosJuice 5d2518d490 Android: Add android.hardware.microphone to manifest
Google Play is now blocking distribution for Android TV unless we
explicitly set the android.hardware.microphone hardware feature as
android:required="false", because it's inferring
android.hardware.microphone from the android.permission.RECORD_AUDIO we
added for Wii Speak emulation, with android:required defaulting to true.
I was under the belief that setting android:required="false" on
android.permission.RECORD_AUDIO would solve this, but looking closer at
the definition of <uses-permission>, it doesn't actually support
android:required attributes, so that presumably has no effect.
2025-06-04 21:30:51 +02:00
JMC47 3f090dd474 Merge pull request #13681 from iwubcode/material_overhaul_custom_vertex
VideoCommon: move vertex shader gen logic to a 'process_vertex()' for use in future custom shaders
2025-06-04 15:27:47 -04:00
JMC47 8def02072b Merge pull request #13379 from JoshuaVandaele/system-ng
Use minizip-ng in non-compatibility mode
2025-06-04 15:21:05 -04:00
JMC47 84f2af73e6 Merge pull request #13649 from SuperSamus/scooby-doo-night-of-100-texture-caches
GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL
2025-06-04 15:17:10 -04:00
Jordan Woyak 19a3f25a71 Merge pull request #13723 from Dentomologist/wavefile_add_prefix_to_member_variables
WaveFile: Add m_ prefix to member variables
2025-06-04 13:11:14 -05:00
Joshua Vandaële 4b65cc9a4c fmt: Replace deprecated fmt::localtime usage with Common::LocalTime 2025-06-04 13:32:12 +02:00
OatmealDome 5309c440d2 Merge branch 'release-prep-2506' 2025-06-04 04:09:08 -04:00
Sam Belliveau d7f45c7b96 Fade audio after an entire loop 2025-06-02 14:37:30 -04:00
Dentomologist 61ccdb0a3c WaveFile: Add m_ prefix to member variables 2025-06-01 11:41:09 -07:00
Dr. Dystopia 8192d9d2a9 Make parameters, arguments etc. constant 2025-05-31 20:57:54 +02:00
Dr. Dystopia a6b04f53e0 AudioCommon: Remove unused qualifiers and make variables constant 2025-05-30 21:48:38 +02:00
Jordan Woyak a8eafa4ccd DolphinQt: Move the "Point (Passthrough)" "Enabled" checkbox below the mapping indicator. 2025-05-29 19:46:53 -05:00
CostPerUnit a5b4a0b9e4 InputCommon/DolphinQt: Add advanced settings button for "Point" and "Point (Passthrough)" "Enabled" checkboxes. 2025-05-29 19:39:10 -05:00
LillyJadeKatrin fd285f6348 AchievementManager - Minor cleanup
Deleting the unused m_game_data and m_is_game_loaded fields.
2025-05-29 18:35:30 -04:00
Dentomologist 3dc1605569 FilesystemWidget: Center header text
Center header text to match all the other headers.
2025-05-27 12:34:20 -07:00
TryTwo a6a5e201b6 Qt Advanced Panel: Convert QSliders into ConfigSliders.
Part of the refactor into the config system.
2025-05-26 19:52:30 -07:00
Jordan Woyak aafe961177 DolphinQt: Make GeckoCodeWidget default size not taller than it needs to be. 2025-05-26 20:58:48 -05:00
Jordan Woyak eed7843d4a DolphinQt: Add stretch to the end of the game config Info tab. 2025-05-26 20:58:48 -05:00
Jordan Woyak 1e4dfc0956 DolphinQt: Fix the WiiPane hinting a larger than required size. 2025-05-26 20:58:48 -05:00
Jordan Woyak 5bc661aeca DolphinQt/AudioPane: Fix Volume QGroupBox title uglyness on Windows and inconsistent percent-sign spacing. 2025-05-26 20:58:48 -05:00
Jordan Woyak fcff7a3a49 DolphinQt: Fix FilesystemWidget QTreeView visual style. 2025-05-26 20:58:48 -05:00
Jordan Woyak 543b85a451 DolphinQt: Make WrapInScrollArea and GetWrappedWidget less hacky. 2025-05-26 20:58:48 -05:00
Jordan Woyak e796e82e8c DolphinQt: Change game properties QTabWidget to QListWidget. 2025-05-26 20:58:48 -05:00
Jordan Woyak 2b9935e6f4 DolphinQt: Change main settings window QTabWidget into a QListWidget and QStackedWidget. 2025-05-26 20:58:48 -05:00
JosJuice f99d3dbd5c Android: Ask system for optimal audio buffer size and sample rate
This can reduce audio latency according to
https://developer.android.com/ndk/guides/audio/opensl/opensl-prog-notes#perform.

Previously we were using the hardcoded values of 48000 Hz and 256 frames
per buffer. The sample rate we use with this change is 48000 Hz on all
devices I'm aware of, but the buffer size does vary across devices.

Terminology note: The old code used the term "sample" to refer to what
Android refers to as a "frame". "Frame" is a clearer term to use for
this, so I've changed OpenSLESStream's terminology. One frame consists
of one sample per channel.
2025-05-25 11:59:33 +02:00
JosJuice 34e8fb068f Android: Get rid of OpenSLESStream's global state
Not sure if we're ever going to want to have more than one of these at
the same time, but these global variables are a code smell nonetheless.

I'm also deleting the existing member variables because they were
unused.
2025-05-25 11:55:22 +02:00
Dr. Dystopia 7c237bbd7c AudioCommon: Remove unused includes 2025-05-25 10:30:41 +02:00
iwubcode b23dddea4e VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, to eventually allow for custom shaders to override vertex logic 2025-05-24 01:27:58 -05:00
Joshua Vandaële 2ed5f16600 minizip-ng: Stop using compatibility mode 2025-05-22 12:51:55 +02:00
fothugiyo 67f73d95e3 Tales of Symphonia AR and Gecko Codes
Prior codes were reorganized and new codes added. All codes have been thoroughly tested and are ensured to work on a vanilla NTSC .iso
2025-05-22 01:47:34 -06:00
LillyJadeKatrin c23b4e1020 RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
Refactors the PatchAllowlistTest to streamline the experience for developers. Instead of a textual description of what needs to change in ApprovedInis.json for RetroAchievements compatibility, the test will now generate a replacement file and instruct the coder where to copy it in their local branch, and what to update APPROVED_LIST_HASH to. The result should be easier and more instructive for developers to make changes, while still maintaining that allowed codes cannot be added or modified without recompiling Dolphin.

As ApprovedInis.json no longer needs to be user-readable for this process, it no longer contains titles or pretty formatting and as such is updated in this commit, hash included.
2025-05-21 21:38:34 -04:00
Joshua Vandaële d4afa1ebfa SFML: Update to 3.0.1 2025-05-18 01:49:55 +02:00
Martino Fontana 8b228503d9 GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL 2025-05-17 13:35:17 +02:00
Jordan Woyak 1554e4ab6c Vulkan: Eliminate m_last_present_done flag. 2025-05-13 20:13:18 -05:00
Martino Fontana e7f22515d3 GameINI: Disable Immediately Present XFB for Dragon Ball Z: Budokai and Dragon Ball Z: Budokai 2 2025-05-10 14:14:12 +02:00
Jordan Woyak ec29d120b5 CoreTiming: Add a setting to pursue accurate emulation time. 2025-05-02 15:23:43 -05:00
Dr. Dystopia f240e20e3f Make overriding explicit and remove redundant virtual specifiers on overriding destructors - Core & UnitTests 2025-05-01 15:00:37 +02:00
JosJuice 303366b1ce PowerPC: Add RAII handling for breakpoint updates
bbf72e7 made a change where you can pass `false` to certain MemChecks
functions to get them to skip performing an "update" step. It was then
up to the caller to call the Update function later.

This commit changes the implementation so that, instead of the caller
passing in a boolean that controls whether a function calls Update, the
function now returns an object that on destruction will call Update.
Callers that are fine with Update being called right away can skip
storing the object in a variable and thereby call Update immediately,
and callers that want to call Update later can keep the object around.
This new design reduces the risk that someone will forget calling
Update.
2025-03-23 15:29:19 +01:00
Jordan Woyak 649e49c9e2 ControllerEmu: Remove nunchuk stick data hax. 2024-11-05 19:22:30 -06:00
JosJuice d48e6e25ad DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
Follow-up for
https://github.com/dolphin-emu/dolphin/pull/12918#discussion_r1785153070.
2024-10-20 13:38:24 +02:00
Dr. Dystopia 096ab8c026 Replace ties with structured bindings - UnitTests 2024-08-20 15:09:44 +02:00
778 changed files with 457450 additions and 442601 deletions
+27 -11
View File
@@ -1,32 +1,26 @@
[submodule "Externals/Qt"]
path = Externals/Qt
url = https://github.com/dolphin-emu/ext-win-qt.git
branch = master
shallow = true
[submodule "Externals/mGBA/mgba"]
path = Externals/mGBA/mgba
url = https://github.com/mgba-emu/mgba.git
branch = master
shallow = true
[submodule "Externals/FFmpeg-bin"]
path = Externals/FFmpeg-bin
url = https://github.com/dolphin-emu/ext-win-ffmpeg.git
branch = master
shallow = true
[submodule "libusb"]
path = Externals/libusb/libusb
url = https://github.com/libusb/libusb.git
branch = master
shallow = true
[submodule "Externals/spirv_cross/SPIRV-Cross"]
path = Externals/spirv_cross/SPIRV-Cross
url = https://github.com/KhronosGroup/SPIRV-Cross.git
branch = main
shallow = true
[submodule "SDL"]
path = Externals/SDL/SDL
url = https://github.com/libsdl-org/SDL.git
branch = SDL2
shallow = true
[submodule "Externals/zlib-ng/zlib-ng"]
path = Externals/zlib-ng/zlib-ng
@@ -35,58 +29,80 @@
[submodule "Externals/libspng/libspng"]
path = Externals/libspng/libspng
url = https://github.com/randy408/libspng.git
branch = v0.7.2
shallow = true
[submodule "Externals/VulkanMemoryAllocator"]
path = Externals/VulkanMemoryAllocator
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
shallow = true
[submodule "Externals/cubeb/cubeb"]
path = Externals/cubeb/cubeb
url = https://github.com/mozilla/cubeb.git
branch = master
shallow = true
[submodule "Externals/implot/implot"]
path = Externals/implot/implot
url = https://github.com/epezent/implot.git
shallow = true
[submodule "Externals/gtest"]
path = Externals/gtest
url = https://github.com/google/googletest.git
shallow = true
[submodule "Externals/rcheevos/rcheevos"]
path = Externals/rcheevos/rcheevos
url = https://github.com/RetroAchievements/rcheevos.git
shallow = true
[submodule "Externals/libadrenotools"]
path = Externals/libadrenotools
url = https://github.com/bylaws/libadrenotools.git
shallow = true
[submodule "Externals/curl/curl"]
path = Externals/curl/curl
url = https://github.com/curl/curl.git
shallow = true
[submodule "Externals/fmt/fmt"]
path = Externals/fmt/fmt
url = https://github.com/fmtlib/fmt.git
shallow = true
[submodule "Externals/lz4/lz4"]
path = Externals/lz4/lz4
url = https://github.com/lz4/lz4
url = https://github.com/lz4/lz4.git
shallow = true
[submodule "Externals/xxhash/xxHash"]
path = Externals/xxhash/xxHash
url = https://github.com/Cyan4973/xxHash.git
shallow = true
[submodule "Externals/enet/enet"]
path = Externals/enet/enet
url = https://github.com/lsalzman/enet.git
shallow = true
[submodule "hidapi-src"]
path = Externals/hidapi/hidapi-src
url = https://github.com/libusb/hidapi
url = https://github.com/libusb/hidapi.git
shallow = true
[submodule "Externals/tinygltf/tinygltf"]
path = Externals/tinygltf/tinygltf
url = https://github.com/syoyo/tinygltf.git
shallow = true
[submodule "Externals/minizip-ng/minizip-ng"]
path = Externals/minizip-ng/minizip-ng
url = https://github.com/zlib-ng/minizip-ng
url = https://github.com/zlib-ng/minizip-ng.git
shallow = true
[submodule "Externals/Vulkan-Headers"]
path = Externals/Vulkan-Headers
url = https://github.com/KhronosGroup/Vulkan-Headers.git
shallow = true
[submodule "Externals/watcher/watcher"]
path = Externals/watcher/watcher
url = https://github.com/e-dant/watcher.git
shallow = true
[submodule "Externals/SFML/SFML"]
path = Externals/SFML/SFML
url = https://github.com/SFML/SFML.git
shallow = true
[submodule "Externals/zstd/zstd"]
path = Externals/zstd/zstd
url = https://github.com/facebook/zstd.git
shallow = true
[submodule "Externals/miniupnpc/miniupnp"]
path = Externals/miniupnpc/miniupnp
url = https://github.com/miniupnp/miniupnp.git
shallow = true
+1 -1
View File
@@ -33,7 +33,7 @@ endif()
string(TIMESTAMP DOLPHIN_WC_BUILD_DATE "%Y-%m-%d" UTC)
# version number
set(DOLPHIN_VERSION_MAJOR "2506")
set(DOLPHIN_VERSION_MAJOR "2509")
set(DOLPHIN_VERSION_MINOR "0")
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})
+7 -3
View File
@@ -137,6 +137,8 @@ else()
endif()
if(APPLE)
enable_language(OBJC)
enable_language(OBJCXX)
option(MACOS_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF)
option(SKIP_POSTPROCESS_BUNDLE "Skip postprocessing bundle for redistributability" OFF)
# Enable adhoc code signing by default (otherwise makefile builds on ARM will not work)
@@ -602,7 +604,7 @@ if(UNIX)
endif()
if(ENABLE_SDL)
dolphin_find_optional_system_library(SDL2 Externals/SDL 2.30.9)
dolphin_find_optional_system_library(SDL3 Externals/SDL 3.2.0)
endif()
if(ENABLE_ANALYTICS)
@@ -691,8 +693,8 @@ dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Ex
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib>=1.3.1 ZLIB::ZLIB Externals/zlib-ng)
dolphin_find_optional_system_library_pkgconfig(MINIZIP
"minizip>=4.0.4" minizip::minizip Externals/minizip-ng
dolphin_find_optional_system_library_pkgconfig(minizip-ng
"minizip-ng>=4.0.4" minizip-ng::minizip-ng Externals/minizip-ng
)
dolphin_find_optional_system_library(LZO Externals/LZO)
@@ -784,6 +786,8 @@ if (USE_RETRO_ACHIEVEMENTS)
add_subdirectory(Externals/rcheevos)
endif()
add_subdirectory(Externals/watcher)
########################################
# Pre-build events: Define configuration variables and write SCM info header
#
File diff suppressed because one or more lines are too long
+3
View File
@@ -59,9 +59,12 @@ C202F310 00000003
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
04199598 4E800020
0441F6D8 3FE38E39
$No Letterbox [Ralf]
0400E3D4 48000070
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
$No Letterbox
+3
View File
@@ -32,9 +32,12 @@ C202F3F8 00000003
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
0419B274 4E800020
0442C158 3FE38E39
$No Letterbox [Ralf]
0400E598 48000070
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
$No Letterbox
+2 -2
View File
@@ -1,4 +1,4 @@
# GC6E01, GC6P01 - Pokemon Colosseum
# GC6E01, GC6P01, GC6J01 - Pokemon Colosseum
[Core]
# Values set here will override the main Dolphin settings.
@@ -13,5 +13,5 @@
SafeTextureCacheColorSamples = 0
# Many areas of the game have unused vertexes, especially with cutscenes
# involving Shadow Pokémon, such as the purification cutscene.
# CPU Cull ends up greatly boosting performance for these cases.
# CPU Cull ends up greatly boosting performance for these cases.
CPUCull = True
+3
View File
@@ -36,9 +36,12 @@ $16:9 Widescreen
04005308 4809E62C
040A3930 4BF619D0
0447E724 3FAAAAAB
$60 FPS [Nerdzilla]
04005D98 38600000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS [Nerdzilla]
+3 -19
View File
@@ -30,27 +30,11 @@ $Allow Memory Card saving with Savestates
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen
04261AC0 000034E0
04261AC4 000034E4
F6000001 80008180
FFA01090 93E10024
D2000000 00000003
3DC03FAA 61CEAAAB
91C20000 C2620000
EFB300B2 00000000
E0000000 80008000
F6000001 80008180
FF601090 7C7F1B78
D2000000 00000004
3DC03FAA 61CEAAAB
91C20004 C2220004
EF7100B2 39C00000
60000000 00000000
E0000000 80008000
$60 FPS [Nerdzilla]
04005CFC 38600000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS [Nerdzilla]
+3
View File
@@ -36,9 +36,12 @@ $16:9 Widescreen [Ralf]
04005308 480A1C68
040A6F6C 4BF5E394
044CBCA4 3FAAAAAB
$60 FPS [Nerdzilla]
04005E90 38600000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen [Ralf]
$60 FPS [Nerdzilla]
+5
View File
@@ -0,0 +1,5 @@
# GD7JB2, GD7E70, GD7PB2 - Dragon Ball Z: Budokai
[Video_Hacks]
# Frame pacing
ImmediateXFBEnable = False
+17
View File
@@ -0,0 +1,17 @@
# GD7PB2 - Dragon Ball Z: Budokai
[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.
[Gecko]
$Deinterlacing Fix
0044E9A8 00000000
[Gecko_RetroAchievements_Verified]
$Deinterlacing Fix
+5
View File
@@ -0,0 +1,5 @@
# GIHP78 - Scooby-Doo! Night of 100 Frights
[Video_Settings]
# Fixes video stuttering on FMVs encoded at 25 FPS
SafeTextureCacheColorSamples = 512
+3
View File
@@ -12,4 +12,7 @@
[Video_Settings]
[Video_Hacks]
# Fixes FMVs tearing.
EarlyXFBOutput = False
# Fixes FMVs not showing.
ImmediateXFBEnable = False
+21 -16
View File
@@ -101,23 +101,28 @@ C2434EBC 00000002
3DC03F36 91DC00CC
60000000 00000000
$60 FPS
04423540 3BC00001 # `setFramerate`: force 60 FPS
0451D804 40100000 # Map translation speed 1
C2312B04 00000002 # Map translation speed 2
3C003F80 9001FFFC
C121FFFC 00000000
C242DF28 00000004 # Set to 30 FPS when cutscene starts
3C608042 6063352C
7C6903A6 806D9AEC
38800002 4E800421
801F01F0 00000000
C242E040 00000004 # Set to 60 FPS when cutscene ends
3C608042 6063352C
7C6903A6 806D9AEC
38800001 4E800421
801F01F0 00000000
0414B778 38800001 # `BaseGameSection::init`, force `setFramerate` argument to 60 FPS (2P mode doesn't start with a cutscene)
04513C5C 40100000 # Map translation speed 1
04513C60 3F800000 # Map translation speed 2
0451D7B0 3C75C28F # Map scale speed
04520628 3F911111 # Cutscene delta time
0452062C 20000000
C2010654 00000002 # Double cutscene sections' "frame duration"
5484083C 909F002C
60000000 00000000
C242ED28 00000002 # Cutscene: objects spawn/despawn timing
3C003F00 9001FFFC
C001FFFC 00000000
C24374DC 00000002 # Cutscene: trigger `startFadeblack` a frame earlier (fixes black screen in Day 1 cutscene)
806D9AEC C0230054
FC020840 00000000
04514128 3ECCCCCD # Final floor animation
04516140 3F000000 # Pay dept animation
04520078 3EB33333 # Ready-go animation
04410FA4 388000C8 # Win/Lose reason duration 1
04410FAC 386000FA # Win/Lose reason duration 2
04520224 3F000000 # Win/Lose animation
044106DC 38800078 # Win/Lose duration 1
044106E4 38600168 # Win/Lose duration 2
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
File diff suppressed because it is too large Load Diff
@@ -1,14 +1,11 @@
# GFBE5D - FireBlade
# GRAE5Z, GRAP75 - Rally Championship
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
EFBToTextureEnable = True
+11 -3
View File
@@ -1,8 +1,16 @@
# GTRE78, GTRP78 - Tetris Worlds
# GTRE78, GTRJ8N, GTRP78 - Tetris Worlds
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
[Video_Settings]
# Add action replay cheats here.
[Video_Hacks]
# Fixes FMVs tearing.
EarlyXFBOutput = False
# Fixes FMVs not showing.
ImmediateXFBEnable = False
[Gecko]
+2 -2
View File
@@ -8,7 +8,7 @@
$16:9 Widescreen
043438A8 3FAF0000
043486A8 406CB800
$60Hz
$60 FPS
040B66F8 60000000
0402F0E4 38600002
0402F1CC 60000000
@@ -16,4 +16,4 @@ $60Hz
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz
$60 FPS
+2 -2
View File
@@ -8,7 +8,7 @@
$16:9 Widescreen
04343EC8 3FAF0000
04348D30 406CB800
$60Hz
$60 FPS
040B6F08 60000000
0402F130 38600002
0402F218 60000000
@@ -16,4 +16,4 @@ $60Hz
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz
$60 FPS
+2 -2
View File
@@ -8,7 +8,7 @@
$16:9 Widescreen
04336CE8 3FABA000
0433B920 406C4F00
$50Hz
$50 FPS
040B6408 60000000
0402F214 38600001
0402F300 60000000
@@ -16,4 +16,4 @@ $50Hz
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$50Hz
$50 FPS
+15
View File
@@ -0,0 +1,15 @@
# GVRE7H - Grooverider: Slot Car Thunder
[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_Settings]
[Video_Hacks]
ImmediateXFBEnable = False
+2 -2
View File
@@ -1,4 +1,4 @@
# GXXE01, GXXP01, GXXJ01 - POKeMON XD
# GXXE01, GXXP01, GXXJ01 - Pokemon XD: Gale of Darkness
[Core]
# Prevents crash when Greevil's henchman and Zook show up
@@ -18,5 +18,5 @@ MMU = True
SafeTextureCacheColorSamples = 0
# Many areas of the game have unused vertexes, especially with cutscenes
# involving Shadow Pokémon, such as the purification cutscene.
# CPU Cull ends up greatly boosting performance for these cases.
# CPU Cull ends up greatly boosting performance for these cases.
CPUCull = True
+6 -10
View File
@@ -12,17 +12,13 @@ $Allow Memory Card saving with Savestates
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[Gecko]
[ActionReplay]
$16:9 Widescreen
042EB168 00001783
042EB16C 000017EA
0400F614 60000000
0405C984 60000000
040875BC 60000000
0405C8AC 60000000
04086A34 60000000
04086930 60000000
044ED860 3FC962F9
$60 FPS
042AF894 38000000
042AEBEC 38000000
[Gecko_RetroAchievements_Verified]
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS
+11
View File
@@ -11,3 +11,14 @@ $Allow Memory Card saving with Savestates
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen
044CACE8 3FC962F9
$60 FPS
042AA2BC 38000000
042A9614 38000000
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS
+6 -2
View File
@@ -12,13 +12,17 @@ $Allow Memory Card saving with Savestates
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[Gecko]
[ActionReplay]
$16:9 Widescreen
04005300 C3A2BFBC
04005304 EFBD00B2
04005308 480AF7A8
040B4AAC 4BF50854
0452A35C 3FAAAAAB
$60 FPS
042B17F8 38000000
042B0B50 38000000
[Gecko_RetroAchievements_Verified]
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS
+5
View File
@@ -0,0 +1,5 @@
# GZ3E70, GZ3PB2 - Dragon Ball Z: Budokai 2
[Video_Hacks]
# Frame pacing
ImmediateXFBEnable = False
-4
View File
@@ -11,7 +11,3 @@
[Video_Settings]
SafeTextureCacheColorSamples = 512
[Video_Hacks]
EFBEmulateFormatChanges = True
+8
View File
@@ -0,0 +1,8 @@
# R6APPU - Baby and Me
[OnFrame]
# The game busyloops for frame pacing but not in a way Dolphin can
# currently optimize, so lots of CPU time is wasted.
# This patch adds a call to VIWaitForRetrace to avoid this.
$Performance hack
0x80016E28:dword:0x4807BD89
+4 -1
View File
@@ -10,8 +10,11 @@
# Add action replay cheats here.
[Video_Settings]
# Responsive car painting.
SafeTextureCacheColorSamples = 512
[Video_Hacks]
# Functional pointing while car painting.
EFBAccessEnable = True
# Customizable cars load as completely black otherwise (even in their default state), sun bloom.
EFBToTextureEnable = False
+3
View File
@@ -13,4 +13,7 @@
SuggestedAspectRatio = 2
[Video_Hacks]
# Avoid purple screen.
XFBToTextureEnable = False
# Make Wiimote pointer visible.
ImmediateXFBEnable = False
+1
View File
@@ -2,6 +2,7 @@
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
+5
View File
@@ -0,0 +1,5 @@
# S7BE69, S7BP69 - Trivial Pursuit: Bet You Know It
[Video_Hacks]
# Avoid purple flickering.
XFBToTextureEnable = False
+8
View File
@@ -0,0 +1,8 @@
# SBLE5G - A Boy and His Blob
[OnFrame]
$Fix selecting right-most bean
0x800BD308:dword:0x4181000C
[OnFrame_Enabled]
$Fix selecting right-most bean
+8
View File
@@ -0,0 +1,8 @@
# SBLP5G - A Boy and His Blob
[OnFrame]
$Fix selecting right-most bean
0x800BE268:dword:0x4181000C
[OnFrame_Enabled]
$Fix selecting right-most bean
-4
View File
@@ -11,7 +11,3 @@
[Video_Settings]
SafeTextureCacheColorSamples = 512
[Video_Hacks]
EFBEmulateFormatChanges = True
+9
View File
@@ -0,0 +1,9 @@
# SCYE4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019CB1C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SCYP4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019CB1C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SCYR4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019B4EC:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SCYX4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019CBBC:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SCYY4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019B55C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SCYZ4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019B55C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
-4
View File
@@ -8,7 +8,3 @@
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
EFBToTextureEnable = False
+2
View File
@@ -10,5 +10,7 @@
# Add action replay cheats here.
[Video_Hacks]
# Properly emulate the blur in the backgrounds.
EFBEmulateFormatChanges = True
# Prevent epilepsy-inducing FMVs.
ImmediateXFBEnable = False
+2
View File
@@ -10,5 +10,7 @@
# Add action replay cheats here.
[Video_Hacks]
# Properly emulates the blur in the pause screen.
EFBEmulateFormatChanges = True
# Prevent epilepsy-inducing FMVs and menus.
ImmediateXFBEnable = False
-3
View File
@@ -2,9 +2,6 @@
[OnFrame]
# Add memory patches to be applied every frame here.
$Speed hack
0x801D5B10:dword:0x60000000
0x801D5B14:dword:0x60000000
[ActionReplay]
# Add action replay cheats here.
+5
View File
@@ -0,0 +1,5 @@
# SP4PJW - Pétanque Master
[Video_Hacks]
# Immediate XFB causes seizure-inducing flickering
ImmediateXFBEnable = False
+1 -1
View File
@@ -1,4 +1,4 @@
# SQIE4Q, SQIP4Q - Disney Infinity
# SQIE4Q, SQIP4Q, SQIY4Q - Disney Infinity
[Core]
# Values set here will override the main Dolphin settings.
+9
View File
@@ -0,0 +1,9 @@
# SQIE4Q - Disney Infinity
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8008E60C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SQIP4Q - Disney Infinity
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8008E60C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# SQIY4Q - Disney Infinity
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8008E60C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+2
View File
@@ -10,5 +10,7 @@
# Add action replay cheats here.
[Video_Hacks]
# Properly emulates the blur in the pause screen.
EFBEmulateFormatChanges = True
# Prevent epilepsy-inducing FMVs and menus.
ImmediateXFBEnable = False
+9
View File
@@ -0,0 +1,9 @@
# STSE4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# STSP4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# STSP4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA354:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# STSX4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA354:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# STSY4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# STSY4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA354:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+9
View File
@@ -0,0 +1,9 @@
# STSZ4Q - Toy Story 3 Toy Box Special Edition
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack
+1
View File
@@ -10,4 +10,5 @@
# Add action replay cheats here.
[Video_Hacks]
# Prevent epilepsy-inducing FMVs.
ImmediateXFBEnable = False
+120 -59
View File
@@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: DE_unique version: 20241114210104)
TITLES = https://www.gametdb.com (type: Wii language: DE_unique version: 20250826093526)
R22J01 = FlingSmash
R23P52 = Barbie und Die Drei Musketiere
R25PWR = LEGO Harry Potter: Die Jahre 1-4
@@ -6,17 +6,21 @@ R29P52 = Millennium Championship Paintball 2009
R2AP7D = Ice Age 2 - Jetzt taut's
R2AX7D = Ice Age 2: Jetzt taut's
R2FP70 = Fritzi Fisch und der verschwundene Schatz
R2WPA4 = Pro Evolution Soccer 2009
R2YP54 = Alles gute zum Geburtstag!
R3MP01 = Metroid Prime: Trilogy
R3YP70 = Sam & Max: Season Two: All-Zeit Bereit
R42P69 = Die Sims 2: Gestrandet
R43P69 = EA Sports Active
R48P7D = Die Geheimnisse der Spiderwicks
R49P01 = Donkey Kong: Jungle Beat
R4BPGT = Tischfußball 2008
R4EP01 = Endless Ocean 2: Der Ruf des Meeres
R4LPUG = Schweine Party
R4LXUG = Schweine Party
R4PP69 = Die Sims 2: Haustiere
R4ZJ01 = Fatal Frame 4: Mask of the Lunar Eclipse
R52P08 = Neopets Puzzle Adventure
R55P41 = Wer wird Millionär
R59D4Q = Club Penguin: Game Day!
R5AP8P = Der Goldene Kompass
@@ -31,13 +35,15 @@ R5UP41 = CSI: Tödliche Absichten
R5VP41 = James Cameron's Avatar: Das Spiel
R5VX41 = James Cameron's Avatar: Das Spiel
R5XJ13 = MySims Agents
R63PG9 = Family Party: 30 Great Games Outdoor Fun
R6APPU = Mein Baby und ich
R6MPML = America´s Next Top Model
R6OP78 = Cars Race-O-Rama
R6OX78 = Cars Race-O-Rama
R6WP68 = AMF Bowling: World Lanes
R6XP69 = Hasbro: Spiel mal wieder!
R7AP69 = SimAnimals Afrika
R7BP7J = Jelly Belly - Ballistic Beans
R7SP5G = Escape the Museum
R7ZP41 = Die verrückte TV Show
R82P52 = Animal Planet: Tierarzt
R84P99 = Harvest Moon: Baum der Stille
@@ -47,6 +53,7 @@ R8HX4Q = Hannah Montana: Der Film
R8IP78 = SpongeBob's Eiskalt Entwischt
R8JPWR = Der Herr der Ringe: Die Abenteuer von Aragorn
R8OX54 = Wir gehen in den Zirkus
R8QPRT = Crazy Quiz! Are You Crazy Enough?
R8RP41 = Arthur 2 und die Minimoys: Die Rückkehr Des Bösen M
R8UXMR = Addy Junior und die verzauberte Natur
R8VP41 = Einsatz Erde: Die Tierretter
@@ -78,8 +85,10 @@ RCIP41 = CSI: Eindeutige Beweise
RCKPGN = Klaus Gronewalds Sports Challenge
RCLP4Q = Himmel und Huhn: Ace in Action
RCOPNP = Detective Conan - Die Mirapolis Ermittlung
RCVP41 = Far Cry: Vengeance
RDGPA4 = Castlevania Judgement
RDHP78 = Destroy All Humans! Big Willy: Entfesselt
RDIP41 = The Dog Island
RDLP70 = Spy Fox: Das Milchkartell
RDMPHZ = Minon: Der Held der Stunde
RDOP41 = Petz: Hundefreunde
@@ -90,17 +99,21 @@ REGP36 = Alarm: Brennpunkt City
REKP41 = Mein Fitness Coach: Cardio Workout
RENP8P = Sonic und der Schwarze Ritter
REWYMR = My Horse Club: Auf der Spur der Appaloosas
REYP4Q = Disney Sing It: High School Musical 3
REZPKM = Fritz by Chessbase
RF3P6M = Ferrari Challenge: Trofeo Pirelli
RF9P69 = FIFA 09 All-Play
RF9X69 = FIFA 09 All-Play
RFKP41 = Mein Fitness-Coach: Gut in Form
RFKX41 = Mein Fitness Coach: Gut in Form
RFOX52 = Spider-Man: Freund oder Feind
RFQP69 = FaceBreaker: K.O. Party
RFVP52 = Affenzirkus! 20 Spiele
RFWPNK = Safari-Abenteuer in Afrika
RFZP41 = Sophies Freunde: Fashion-Show
RG5PWR = Guinness World Records: Das Videospiel
RG6P69 = Boogie Superstar
RG8P41 = Petz Sports: Wilder Hunde-Spaß
RG9P54 = Carnival Games: Mini Golf
RGAP8P = Planet 51: Das Spiel
RGJP7U = George Der aus dem Dschungel kam
RGQE70 = Ghostbusters: Das Videospiel
@@ -108,14 +121,12 @@ RGQP70 = Ghostbusters: Das Videospiel
RGZP70 = Godzilla Unle고질라 봉인 해제ashed
RH5PKM = Horse Life: Freunde für immer
RH6P69 = Harry Potter und der Halbblutprinz
RHKP18 = Job Island
RHNP70 = My Horse & Me: Mein Pferd und ich
RHQP4Q = Hannah Montana: Welttournee im Rampenlicht
RHQX4Q = Hannah Montana: Welttournee im Rampenlicht
RHQY4Q = Hannah Montana: Welttournee im Rampenlicht
RHVPFR = Moorhuhn: Das verbotene Schloss
RHZP41 = Abenteuer auf dem Reiterhof: Die Pferdeflüsterin
RI2P4Q = High School Musical: Sing It!
RI3P5D = Lucas der Ameisenschreck
RIAP52 = Ice Age 3: Die Dinosaurier sind los
RIBPKM = Igor: Das Spiel
@@ -124,16 +135,23 @@ RIJP69 = G.I. Joe: Geheimauftrag Cobra
RIOPSU = Schauderhafte Geschichten: Skrupellose Römer
RIRP8P = Iron Man: The Video Game
RIUPAF = One Piece: Unlimited Cruise 2: Das Erwachen eines Helden
RIVP99 = Ivy The Kiwi?
RJ2P52 = 007: Ein Quantum Trost
RJ6P69 = MySims Sky Heroes
RJ8P64 = Indiana Jones und der Stab der Könige
RJ9PFR = Think Logic Trainer - Training für Körper und Geist
RJAD52 = Call of Duty: Modern Warfare - Reflex Edition
RJAP52 = Call of Duty: Modern Warfare - Reflex Edition
RJAX52 = Call of Duty: Modern Warfare - Reflex Edition
RJDPKM = Meine Tierklinik
RJFPKM = Jillian Michaels Fitness Ultimatum 2009
RJJP8P = Jambo! Safari Die Wildhuter
RJOP99 = Ju-On Der Fluch
RJQP70 = Pyjama Pit: Keine Angst im Dunkeln
RJXXFR = Go Play Lumberjacks - Die verrückte Holzfäller-Meisterschaft
RJZP7U = SNK Arcade Classics Volume 1
RK5P01 = Kirby und das magische Garn
RKGPGY = Bratz: Kidz Party
RKHP52 = Kung Fu Panda: Legendäre Kämpfer
RL2PFR = Pferd & Pony: Mein Gestüt - Ein Leben für die Pferde
RL4P64 = LEGO Indiana Jones 2: Die neuen Abenteuer
@@ -141,25 +159,36 @@ RL7P69 = Littlest Pet Shop: Freunde
RLADMR = Deal Or No Deal: Der Banker Schlägt Zurück
RLAPMR = Deal Or No Deal: Der Banker Schlägt Zurück
RLBPWR = LEGO Batman: Das Videospiel
RLCP7J = Love is... in bloom
RLDPFK = Legend Of The Dragon
RLFP64 = Star Wars The Clone Wars: Lichtschwertduelle
RLGP64 = LEGO Star Wars: Die komplette Saga
RLIP64 = LEGO Indiana Jones: Die legendären Abenteuer
RLLP70 = Go West! Ein Abenteuer mit Lucky Luke
RLRP4F = Tomb Raider: Anniversary
RLUX4Q = Bolt: Ein Hund für alle Fälle!
RLVP78 = Avatar - Der Herr der Elemente
RM5P7D = Die Mumie: Das Grabmal des Drachenkaisers
RM9PGM = Mushroom Men: Der Sporenkrieg
RMNDFR = Meine Tierpension
RMFP68 = AMF Bowling Pinbusters!
RMNPFR = Meine Tierpension
RMXF78 = MX vs. ATV: Untamed
RMXP78 = MX vs. ATV: Untamed
RN3P78 = SpongeBob und seine Freunde: Angriff der Spielzeugroboter
RN3X78 = SpongeBob und seine Freunde: Angriff der Spielzeugroboter
RN4P41 = ANNO: Erschaffe eine neue Welt
RN9P4F = Escape From Bug Island
RNIPGT = Mind.Body.Soul: Ernährung ist Wichtig
RNKP69 = NERF N-Strike
RNNP4Q = Die Chroniken von Narnia: Prinz Kaspian von Narnia
RNNX4Q = Die Chroniken von Narnia: Prinz Kaspian
RNNY4Q = Die Chroniken von Narnia: Prinz Kaspian
RNNZ4Q = Die Chroniken von Narnia: Prinz Kaspian
RNOP01 = Another Code: R - Die Suche nach der verborgenen Erinnerung
RNRP41 = Nitro Bike
RNXPDA = Naruto: Clash of Ninja Revolution
RNYPDA = Naruto: Clash of Ninja Revolution 2
ROBPPL = Obscure 2
ROEPGT = Das Hundehotel
ROGP78 = Tak - Das Geheimnis des glühenden Kristalls
ROJP52 = Rapala: Angel-Spaß
@@ -168,6 +197,7 @@ ROPP41 = Jagdfieber
ROTP7J = Twin Strike: Operation Thunderstorm
ROUPAF = One Piece: Unlimited Cruise 1: Der Schatz unter den Wellen
ROVPHM = Playmobil Circus: Manege frei!
ROWP08 = Ōkami
ROYP41 = Wolkig Mit Aussicht Auf Fleischbällchen: Das Videospiel
ROYX41 = Wolkig mit Aussicht auf Fleischbällchen
RP2P69 = Smarty Pants: Das Besserwisserspiel
@@ -176,20 +206,24 @@ RP7P52 = Piraten: Die Jagd nach Blackbeards Schatz
RP9PRS = Space Chimps: Affen Im All
RP9XRS = Space Chimps: Affen Im All
RPFP52 = Pitfall: Das große Abenteuer
RPKP52 = World Series of Poker: Tournament of Champions 2007 Edition
RPSP4Q = Disney Prinzessinnen: Märchenhafte Reise
RPTD52 = Tierbabys - Mein kleiner Welpe
RPVPKM = Mein erstes Katzenbaby
RPWX41 = Prince of Persia: Die vergessene Zeit
RPYP9B = Pangya! Golf with Style
RQ4P78 = SpongeBob Schwammkopf: Die Kreatur aus der Krossen Krabbe
RQ8P08 = Moto GP
RQ9P69 = NBA Live 09 All-Play
RQEP6V = Agatha Christie: Das Böse unter der Sonne
RQFP6V = Safecracker: Das ultimative Puzzle-Abenteuer
RQKP41 = Kirmes Party
RQLP64 = Star Wars The Clone Wars: Republic Heroes
RQNPWR = Scooby-Doo! Geheimnisvolle Abenteuer
RQOP69 = Spore Helden
RQTP6V = Agatha Christie: Und dann gabs keines mehr
RQXP70 = Asterix bei den Olympischen Spielen
RRAXUG = Rock 'N' Roll Adventures
RRBP41 = Rayman Raving Rabbids
RRCP52 = Barbie Pferdeabenteuer: Im Reitercamp
RRGP52 = Madagascar 2
RRHPUJ = Mary King's Reitschule: 2nd Edition
@@ -205,17 +239,14 @@ RSAP78 = SpongeBob's Atlantisches Abenteuer
RSJP41 = Baphomets Fluch - The Director's Cut
RSKP52 = Shrek der Dritte
RSKX52 = Shrek der Dritte
RSLPAF = Soulcalibur Legends
RSND69 = Die Simpsons: Das Spiel
RSNP69 = Die Simpsons: Das Spiel
RSNX69 = Die Simpsons: Das Spiel
RSRP8P = Sonic und die Geheimen Ringe
RT3P54 = Rockstar Games präsentiert: Tischtennis
RT6PKM = Das Zauberkarussell
RTEHMR = Tierliebe Groß Geschrieben
RTEPFR = Meine Tierarztpraxis
RTIP8P = Die wahnsinnige Welt des Sports
RTUFKM = Geheimakte: Tunguska
RTMP41 = TMNT: Teenage Mutant Ninja Turtles
RTUPKM = Geheimakte: Tunguska
RTVP64 = Thrillville: Verrückte Achterbahn
RTYP01 = Wii Schach
@@ -230,9 +261,9 @@ RUEP4Q = G-Force: Agenten mit Biss
RUEX4Q = G-Force: Agenten mit Biss
RUEY4Q = G-Force: Agenten mit Biss
RUFP99 = Rune Factory Frontier
RUHP52 = Bakugan Battle Brawlers
RUIP4Q = Disney Sing It
RUOPPL = Die Noobs - Klein aber Gemein
RUQD78 = Oben
RUQI78 = Oben
RUQP78 = Oben
RUQS78 = Oben
@@ -255,23 +286,28 @@ RWAD78 = WALL-E: Der Letzte räumt die Erde auf
RWAP78 = WALL•E: Der Letzte räumt die Erde auf
RWAU78 = WALL•E: Der Letzte räumt die Erde auf
RWAZ78 = WALL•E: Der Letzte räumt die Erde auf
RWEPA4 = Pro Evolution Soccer 2008
RWFH41 = Mein Wortschatz-Coach: Verbessere dein Ausdrucksvermögen
RWMP78 = Worms: Odyssee im Wurmraum
RWSP8P = Mario & Sonic bei den Olympischen Spielen
RX2P70 = My Horse & Me 2: Mein Pferd und ich
RX4PMT = Casper's Schreckensschule: Der gruselige Sporttag
RXDD4Q = Disney Th!nk - Das Schnelldenker-Quiz
RXDX4Q = Disney Th!nk: Schnelldenkerquiz
RXDY4Q = Disney Th!nk: Schnelldenkerquiz
RXIP52 = Transformers: Die Rache
RXNPGT = Big Catch Bass Fishing 2
RXQPWR = Wo die wilden Kerle wohnen
RXRXRS = Despereaux: Der kleine Mäuseheld
RXUP41 = Könige Der Wellen
RXUX41 = Könige Der Wellen
RXXP4Q = Spectrobes: Der Ursprung
RY2P41 = Rayman Raving Rabbids 2
RY3P41 = Rayman Raving Rabbids: TV Party
RYBP69 = Boom Blox: Smash Party
RYDP6V = Pet Pals: Tierdoktor
RYEPHZ = 101-in-1 Party Megamix
RYJPTV = Prinzessin Lillifee: Die große Feenparty
RYLDSV = Germany's Next Top Model
RYWP01 = Big Brain Academy für Wii
RZAPTV = Lernerfolg Grundschule: Power Mathe - Der Kopfrechentrainer
RZEP52 = Science Papa: Der Wissenschafts-Trainer
@@ -282,10 +318,14 @@ RZYF41 = Mein Wortschatz-Coach: Verbessere Dein Ausdrucksvermögen
RZYP41 = Mein Wortschatz:Coach
S2CP54 = Die Neue Carnival Jahrmarkt-Party
S2LP01 = PokéPark 2: Die Dimension der Wünsche
S2PXA4 = Pro Evolution Soccer 2012
S2XE41 = Die Schlümpfe 2
S2XP41 = Die Schlümpfe 2
S2ZP52 = Zhu Zhu Pets: Lustige Waldtiere
S33DKM = Let's Sing 2017 - Mit Deutschen Hits!
S3BPWR = Batman: The Brave and the Bold
S3EP78 = Barbie: Fashionista Inc.
S3IXA4 = Pro Evolution Soccer 2013
S3MP69 = Die Sims 3
S3PP4Q = Disney Princess: Mein Märchenhaftes Abenteuer
S5BPKM = Zurück in die Zukunft: Das Spiel
@@ -294,23 +334,26 @@ S6BP4Q = Merida - Legende der Highlands
S6IP78 = Disney Prinzessin: Bezaubernde Geschichten
S6RP52 = Ralph Reichts
S7BP69 = Trivial Pursuit: Wetten & Gewinnen
S7DP52 = Angry Birds: Star Wars
S7FPGT = Zumba Kids: Die ultimate Zumba tanz-party
S7SP41 = Die Schlümpfe Party Pack
SA3P5G = Alvin und Die Chipmunks 3: Chip Brunch
SA3XGT = Alvin und Die Chipmunks 3: Chip Brunch
SA9D7K = Bibi & Tina: Das große Reiterfest
SALP4Q = Alice im Wunderland
SAOP78 = Monster High: Monsterkrasse Highschool-Klasse!
SAOXVZ = Monster High: Monsterkrasse Highschool-Klasse!
SARPNK = Aladin: Magic Racer
SAVX5G = Alvin und die Chipmunks 2: Ohren zu und durch
SAYP41 = Das verrückte Soldaten-Camp
SB2PNP = My Baby 2: Mein Baby wird Erwachsen!
SB6P52 = Bakugan Battle Brawlers: Beschützer des Kerns
SB9P78 = Barbie: Fun and Fashion Dogs
SBIPVZ = Dein Friseursalon
SBJPAF = Ben 10: Ultimate Alien: Cosmic Destruction
SBNPG9 = Ben 10: Alien Force: Vilgax Attacks
SBLP5G = A Boy and His Blob
SBRPKM = Spielen wir Ballerina
SBVP78 = SpongeBob Schwammkopf: Volle Kanne Vollgas
SCBPNK = Cyberbike Cycling Sports
SCIP41 = CSI: Tödliche Verschwörung
SCJP4Q = LEGO Pirates of the Caribbean: Das Videospiel
SCRPJH = Chicken Riot: Die wilde Hühnerjagd
@@ -319,6 +362,11 @@ SCWP41 = Mein Fitness-Coach: Dance Workout
SCYP4Q = Cars 2: Das Videospiel
SCYY4Q = Cars 2: Das Videospiel
SCYZ4Q = Cars 2: Das Videospiel
SD3DSV = Der Gesundheitscoach
SD5PTV = Lernerfolg Grundschule: Deutsch - Klasse 1-4
SD6PTV = Lernerfolg Grundschule: Englisch - Klasse 1-4
SD7PTV = Lernerfolg Grundschule: Mathematik - Klasse 1-4
SD8DSV = Mein neues Leben Abenteuer auf Tropicana
SDDPML = Das Duell - Männer vs Frauen
SDFP4Q = Disney Sing It: Filmhits
SDGP4Q = Disney Channel: All Star Party Games
@@ -329,15 +377,17 @@ SDPP54 = Dora - Das große Geburtstagsabenteuer
SDUP41 = Die Schlümpfe: Dance Party
SDWP18 = Der Schattenläufer und die Rätsel des dunklen Turms
SDYPA4 = Dance Dance Revolution - Hottest Party 4
SE2P69 = EA Sports Active 2
SEAP69 = EA Sports Active: Mehr Workouts
SEMP4Q = Disney Micky Epic
SEMX4Q = Disney Micky Epic
SERF4Q = Disney Micky Epic: Die Macht der 2
SERP4Q = Disney Micky Epic: Die Macht der 2
SF5P41 = Mein Fitness-Coach: Club
SFGP69 = Hasbro: Family Game Night 4 - The Game Show
SFIP01 = Mystery Case Files: Der Fall Malgrave
SFLDSV = Der Fluch der Osterinsel
SFPPFR = Fussball Fan Party
SFRDRV = Fit for Fun
SFRPXT = Fit for Fun
SFWP69 = FIFA Fußball-Weltmeisterschaft Südafrika 2010
SFWX69 = FIFA Fussball-Weltmeisterschaft Südafrika 2010
@@ -347,35 +397,44 @@ SG5PSV = Galileo Family Quiz
SG7PVL = Die Garfield Show - Invasion der Space Lasagne
SG8PAF = Yogi Bär: Das Videospiel
SGDPKM = Der total verrückte Gartenspaß
SGJDSV = Galileo Mystery: Die Krone des Midas
SGJPSV = Galileo Mystery: Die Krone des Midas
SGLPA4 = Gormiti: Die Herrscher der Natur!
SGQDSV = Germany's Next Top Model 2011
SGRPGT = Grease
SGWD7K = Bibi Blocksberg: Das große Hexenbesen-Rennen!
SGXP41 = Kampf der Giganten: Angriff der Dinosaurier
SGYPNJ = Gummy Bears Mini Golf
SH5P69 = Harry Potter und die Heiligtümer des Todes - Teil 2
SHBP69 = Hasbro: Spiel mal wieder 3
SHDP52 = Drachenzähmen leicht gemacht
SHEDRM = Der Bauernhof
SHHP69 = Harry Potter und die Heiligtümer des Todes - Teil 1
SHMPLR = Henry der Schreckliche
SHOXKR = Hugo - Zauberei im Trollwald
SIAP52 = Ice Age 4: Voll verschoben - Die arktischen Spiele
SIIP8P = Mario & Sonic bei den Olympischen Spielen London 2012
SIJP52 = iCarly 2: Ab in die Klicke!
SITPNG = We Sing: Deutsche Hits
SJ2PWR = Scooby-Doo! und der Spuk im Sumpf
SJ6P41 = Just Dance Disney Party
SK4P52 = Für immer Shrek
SK7PVZ = Disney Violetta: Rhythmus und Musik
SK7XVZ = Disney Violetta: Rhythmus und Musik
SKLDSV = K11 - Kommissare im Einsatz
SLAP78 = Die Legende von Aang
SLAX78 = Die Legende von Aang
SLCPGN = Get Up And Dance
SLHPWR = LEGO Harry Potter: Die Jahre 5-7
SLRPWR = LEGO Der Herr der Ringe
SLVP41 = Flirt-Gewitter
SMFP4Q = Phineas und Ferb: Quer durch die 2. Dimension
SMGP78 = Megamind: Das Bündnis von Team Mega
SMJP52 = Monster Jam: Pfad der Zerstörung
SNBP41 = NCIS: The Game
SNEPXT = North American Hunting 2: Extravaganza
SNQPLG = National Geographic Challenge!
SNYPVZ = Monster High: 13 Wünsche
SOBD7K = Bibi Blocksberg: Das große Hexenbesen-Rennen 2
SONDMR = Meine ersten Mitsing-Lieder
SONFMR = Meine ersten Mitsing-Lieder
SOSPAF = Turbo: Die Super-Stunt-Gang
SP5PVV = The Kore Gang: Invasion der Inner-Irdischen
@@ -383,11 +442,12 @@ SP8P78 = Die Pinguine aus Madagaskar: Dr. Seltsam kehrt zurück
SPBPGT = Richtig Buchstabieren Party
SPDP52 = Spider-Man: Dimensions
SPXP41 = Prince of Persia: Die Vergessene Zeit
SQDP8P = Gunblade NY & LA Machineguns: Arcade Hits Pack
SQFPGT = Phineas und Ferb: Suche nach Super-Sachen
SQQPVZ = Disney Planes 2: Immer im Einsatz
SQTPML = Das Duell - Männer vs. Frauen: Partyspaß Total!
SQVX69 = FIFA 15 - Legacy Edition
SR4P41 = Raving Rabbids: Die verrückte Zeitreise
SR5P41 = Raving Rabbids: Party Collection
SRPP4Q = Disney Rapunzel: Neu verföhnt
SRXP52 = Generator Rex: Providence Agent
SS8P78 = SpongeBob Schwammkopf: verflixt und zugemalt
@@ -401,22 +461,37 @@ SSEPNG = We Sing Vol. 2
SSHPHH = Sherlock Holmes: Das Geheimnis des silbernen Ohrrings
ST5P52 = Transformers: Mission auf Cybertron
ST7P01 = Straßen des Glücks
STHP8P = THOR: God of Thunder
STLP78 = Stimmt's (Truth or Lies)
STNP41 = Die Abenteuer von Tim und Struppi: Das Geheimnis der Einhorn
STOP4Q = Cars Toon: Hooks unglaubliche Geschichten
STPPML = Meine Tierarztpraxis SOS am Ozean
STTPGR = Hidden Mysteries: Titanic
STRP4Q = Tron: Evolution - Battle Grids
STRX4Q = Tron: Evolution - Battle Grids Championship Edition
STSY4Q = Toy Story 3
STXP69 = Tiger Woods PGA Tour 12: The Masters
STZP52 = Transformers 3: Stealth Force Edition
SU5PVZ = Monster High: Labyrinth-Skaten
SU7PAF = Die Hüter des Lichts
SU8PNG = We Sing: Deutsche Hits 2
SUSPMR = U-Sing Girls Night
SUVP52 = Cabelas Dangerous Hunts 2013
SUXPA4 = Pro Evolution Soccer 2010
SUXXA4 = Pro Evolution Soccer 2010
SUXYA4 = Pro Evolution Soccer 2010
SUZD7K = Benjamin Blümchen: Törööö! im Zoo
SV3PAF = Madagascar 3: Flucht durch Europa
SV5PRV = The Voice of Germany Vol. 2
SV7PVZ = Die Pinguine aus Madagascar
SVDP52 = SpongeBob Schwammkopf: Planktons Fiese Robo-Rache
SVHX69 = FIFA 14 - Legacy Edition
SVMP01 = Super Mario All-Stars: 25 Jahre Jubiläumsedition
SVQEVZ = Barbie und ihre Schwestern: Die Rettung der Welpen
SVQPVZ = Barbie und ihre Schwestern: Die Rettung der Welpen
SVTP99 = BIT.TRIP COMPLETE
SVVPAF = Die Croods: Steinzeit Party!
SW3PKM = Eurosport Winter Stars
SXAP52 = Guitar Hero: World Tour
CS4P00 = SingItStar NRJ Music Tour
RZDPCA = The Legend of Zelda: Twilight Princess (Katalanische Übersetzung)
SDNP01 = New SUPER DODO BROS wii
@@ -435,10 +510,8 @@ W6BP = Eco-Shooter: Plant 530
W73P = Lernerfolg Grundschule Deutsch Klasse 4
W74P = Lernerfolg Grundschule Deutsch Klasse 5
W7IP = Lernerfolg Grundschule Deutsch Klasse 2
W8CP = Bit.Trip Core
W8WP = Happy Holidays Halloween
W9BP = Big Town Shoot
W9RP = Happy Holidays Christmas
WA4P = WarioWare: Do It Yourself - Showcase
WA8P = Art Style: Penta Tentacles
WAEP = Around the world
@@ -446,10 +519,8 @@ WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4: Dangeresque 3
WB3P = Strong Bad Episode 5: 8-bit is Enough
WBEP = Beer Pong: Frat Party Games
WBFP = Bit.Trip Fate
WBGP = Bang Attack
WBPP = PLÄTTCHEN - twist 'n' paint
WBRP = Pirates: The Key of Dreams
WBXP = Strong Bad Episode 1: Homestar Ruiner
WBYP = Strong Bad Episode 2: Strong Badia - The Free
WBZP = Strong Bad Episode 3: Baddest of the Bands
@@ -511,7 +582,6 @@ WMBP = MaBoShi: Drei-Formen-Action
WMCP = Monsteca Corral - Monsters Vs. Robots
WMSP = Enjoy your massage!
WN9E = Military Madness: Nectaris
WN9P = Military Madness: Nectaris
WNEE = Penguins & Friends Hey! That's My Fish!
WNEP = Penguins & Friends Hey! Thats my Fish!
WNVP = Neves Plus: Phantheon of Tangrams
@@ -529,29 +599,24 @@ WRIP = Rainbow Islands: Towering Adventure!
WRJP = Racers Islands - Crazy Racers
WRLP = FAST Racing League
WRRP = Robin Hood: The Return Of Richard
WRUP = Bit.Trip Runner
WSGP = Pop Them, Drop Them SAMEGAME
WSNP = Sonic The Hedgehog 4 Episode I
WSUP = Shootanto: Evolutionary Mayhem
WTEP = Tales of Elastic Boy Mission 1
WTFP = Bit.Trip Flux
WTMP = Adventure Island: The Beginning
WTRP = Bit.Trip Beat
WTWP = Fenimore Fillmore: The Westerner
WTXP = Texas Holdem Tournament
WU2P = Successfully Learning Mathematics Year 3
WU3P = Successfully Learning Mathematics Year 4
WU4P = Successfully Learning Mathematics Year 5
WUIP = Successfully Learning Mathematics Year 2
WVBP = Bit.Trip Void
WU2P = Lernerfolg Grundschule Mathematik Klasse 2
WU3P = Lernerfolg Grundschule Mathematik Klasse 3
WU4P = Lernerfolg Grundschule Mathematik Klasse 4
WUIP = Lernerfolg Grundschule Mathematik Klasse 1
WVOP = Rock'n Roll Climber
WVSP = Gods Vs Humans
WVUP = Mr Bumblebee Racing Champion
WW2P = Where's Wally? Fantastic Journey 2
WW3P = Where's Wally? Fantastic Journey 3
WWIP = Where's Wally? Fantastic Journey 1
WWRP = Excitebike: World Challenge
WWXP = Paper Wars Cannon Fodder
WX2P = Lernerfolg Grundschule: Englisch, Klasse 2
WX3P = Lernerfolg Grundschule: Englisch, Klasse 3
WX4P = Lernerfolg Grundschule: Englisch, Klasse 4
WXBP = Ben 10: Alien Force - The Rise of Hex
WXIP = Lernerfolg Grundschule Englisch Klasse 1
WYIP = escapeVektor: Chapter 1
@@ -565,17 +630,14 @@ XIGP = Urbanix Demo
XIHP = Gladiator Demo
XIJP = Fast Racing League Demo
XIKP = Monsteca Corral Demo
XINP = Learning with the Pooyoos Episode 1 Demo
XINP = Lernen mit den PooYoos Teil 1 Demo
XIOP = Learning with the Pooyoos Episode 2 Demo
XIPP = Learning with the Pooyoos Episode 3 Demo
XIUP = Soccer Bashi Demo
XIVP = Mix Superstar Demo
XIZP = 3D Pixel Racing Demo
XJEP = Aya and the Cubes of Light Demo
FA9P = Zelda II: The Adventure of Link
FB2L = Super Mario Bros.: The Lost Levels
FBKP = Teenage Mutant Ninja Turles
FC8P = Castlevania II: Simon's Quest
FCSP = Probotector II: Return of the Evil Forces
FDGP = Ghosts'n Goblins
FDRP = Skate or Die
@@ -589,10 +651,6 @@ FFUP = Adventure Island 2
FFVM = S.C.A.T.: Special Cybernetic Attack Team
JA4P = Super Ghouls'n Ghosts
JABL = Marios Super Picross
JADD = The Legend of Zelda: A Link to the Past
JADE = The Legend of Zelda: A Link to the Past
JADF = The Legend of Zelda: A Link to the Past
JAFD = SimCity
JAHP = R-TYPE III: The Third Lightning
JAJP = Street Fighter II: The World Warrior
JALP = Super Probotector: Alien Rebels
@@ -608,7 +666,6 @@ JCCP = Kirbys Fun Pak
JCDM = Kirbys Dream Land 3
JCJP = Super Punch Out!!
JCKP = Space Invaders -The Original Game-
JCTM = Ogre Battle: The March of the Black Queen
JD3P = SUPER E.D.F.: Earth Defense Force
JD8E = Super Adventure Island II
JDJP = Super Star Wars: The Empire Strikes Back
@@ -620,7 +677,6 @@ NAJN = Sin and Punishment
NAME = Kirby 64: The Crystal Shards
NAOE = 1080° Snowboarding
NAOP = 1080°: TenEighty Snowboarding
NARE = The Legend of Zelda: Majora's Mask
NAYE = Ogre Battle 64: Person of Lordly Caliber
LALP = Fantasy Zone II
LANP = Alex Kidd: The Lost Stars
@@ -636,11 +692,9 @@ MBBP = Sonic the Hedgehog 2
MBFP = Shinobi III: Return of the Ninja master
MBIP = Landstalker: Die Schätze von König Nolo
MBJP = Ghouls'n Ghosts
MBLP = ESWAT City Under Siege
MBMP = Sonic the Hedgehog 3
MBUP = Sonic 3D: Flickies' Island
MBWM = Columns III: Revenge of Columns
MC3P = Super Street Fighter II: The New Challengers
MCCP = Phantasy Star III: Generations of Doom
MCHM = MUSHA
MCLP = Street Fighter II: Special Champion Edition
@@ -659,7 +713,6 @@ PBSP = Chew Man Fu
PBWP = Air 'Zonk'
PCSL = Digital Champ: Battle Boxing
PDJL = Street Fighter II': Champion Edition
QA3P = SimEarth: The Living Planet
QAAP = Super Air Zonk
QABP = Ys Book I & II
QADL = Gradius II: Gofer no Yabou
@@ -707,6 +760,7 @@ HCRP = The Legend of Zelda: Skyward Sword - Speicherdaten-Update-Kanal für
RFPP = Wii Fit Plus-Kanal
RMCP = Mario Kart-Kanal
OHBC = Homebrew-Kanal
D43P01 = The Legend of Zelda: Ocarina of Time / Master Quest
G2FD78 = Tak 2: Der Stab der Träume
G3AD69 = Der Herr der Ringe: Das dritte Zeitalter
G3DX6L = Carmen Sandiego: Das Geheimnis der gestohlenen Trommeln
@@ -717,23 +771,22 @@ G4OP69 = Die Sims 2: Haustiere
G4ZP69 = Die Sims 2
G6FD69 = FIFA Fußball-Weltmeisterschaft Deutschland 2006
G8MP01 = Paper Mario: Die Legende vom Äonentor
G9TD52 = Grosse Haie: Kleine Fische
GAZD69 = Harry Potter und der Gefangene von Askaban
GC3D78 = Scooby-Doo! Fluch der Folianten
GC6P01 = Pokémon Colosseum
GCBP7D = Crash Bandicoot: Der Zorn des Cortex
GCGP41 = 3 Engel Für Charlie: Volle Power
GCIP69 = Die Sims
GCQD7D = Buffy im Bann der Dämonen: Chaos Bleeds
GDED71 = Baldur's Gate Dark Alliance
GDIX7D = Die Hard - Stirb Langsam: Vendetta
GDKPA4 = Disney Sports: Fußball
GDOP41 = Disneys Donald Duck: Phantomias - Platyrhynchos Kineticus
GEAP8P = Skies of Arcadia Legends
GEND69 = James Bond 007: Alles oder Nichts
GENP69 = 007: Alles Oder Nichts
GF4D52 = Die Fantastischen Vier
GFHP6V = Böse Nachbarn
GFSD69 = FIFA Fußball-Weltmeisterschaft 2002
GGVD78 = SpongBob Schwammkopf: Der Film
GH4D69 = Harry Potter und der Feuerkelch
GH5D52 = Ab Durch Die Hecke
GHBP7D = Der Hobbit
GHCD4Q = Himmel und Huhn
@@ -742,10 +795,9 @@ GHSY69 = Harry Potter und die Kammer des Schreckens
GHVP08 = Disney's Tricky Micky
GIAP7D = Ice Age 2: Jetzt Taut's
GICD78 = Die Unglaublichen
GIHD78 = Scooby-Doo! Nacht der 100 Schrecken
GIQY78 = Die Unglaublichen: Der Angriff des Tunnelgräbers
GJND78 = Jimmy Neutron: Der mutige Erfinder
GJUD78 = Tak und die Macht des Juju
GJKD52 = Star Wars Jedi Knight II: Jedi Outcast
GK7P08 = Killer 7
GKBPAF = Baten Kaitos: Die Schwingen der Ewigkeit und der verlorene Ozean
GKLD69 = Der Herr der Ringe: Die Rückkehr des Königs
GKZD54 = Codename: Kids Next Door - Operation: V.I.D.E.O.S.P.I.E.L.
@@ -754,27 +806,35 @@ GL7P64 = LEGO Star Wars II: Die klassische Trilogie
GLCD52 = Lemony Snicket: Rätselhafte Ereignisse
GLHPG9 = Flutsch und weg
GLOD69 = Der Herr der Ringe: Die zwei Türme
GLRD64 = Star Wars Rogue Squadron III: Rebel Strike
GLVD4Q = Die Chroniken von Narnia: Der König von Narnia
GLVP4Q = Die Chroniken von Narnia: Der König von Narnia
GLZD69 = 007: Liebesgrüsse aus Moskau
GMNP78 = Die Monster AG : Monster Ball
GMNP78 = Die Monster AG: Monster Ball
GNED78 = Findet Nemo
GNUPDA = Naruto: Clash of Ninja - European Version
GO7D69 = James Bond 007: NightFire
GOSX41 = Jagdfieber
GOYD69 = GoldenEye : Rogue Agent
GP3P78 = Der Polarexpress
GPAP01 = Pokémon Channel
GPHD52 = Pitfall: Die verlorene Expedition
GPLD9G = Disney's Ferkels Grosses Abenteuer - Spiel
GPQP6L = The Powerpuff Girls: Kampf den Gurkenschurken
GPXP01 = Pokémon Box: Rubin & Saphir
GQ4D78 = SpongeBob Schwammkopf: Die Kreatur aus der Krossen Krabbe
GQQD78 = SpongeBob Schwammkopf: Film ab!
GQQE78 = SpongeBob Schwammkopf: Film ab!
GQQF78 = SpongeBob Schwammkopf: Film ab!
GQQH78 = SpongeBob Schwammkopf: Film ab!
GQQP78 = SpongeBob Schwammkopf: Film ab!
GQWX69 = Harry Potter: Quidditch - Weltmeisterschaft
GR9P6L = Die Herrschaft Des Feuers
GRSPAF = SoulCalibur II
GSAP01 = Star Fox: Adventures
GSKP7D = The Scorpion King : Aufstieg des Akkadiers
GSWD64 = Star Wars Rogue Squadron II: Rogue Leader
GTEP01 = 1080° Avalanche
GTKD51 = Turok Evolution
GU2D78 = 2 Games in 1: Die Unglaublichen - The Incredibles + Findet Nemo
GU3D78 = 2 Games in 1: Nickelodeon SpongeBob Schwammkopf: Der Film + Nickelodeon Tak 2: Der Stab der Träume
GU4Y78 = 2 Games in 1 : Nickelodeon SpongeBob Schwammkopf: Der Film + Nickelodeon SpongeBob Schwammkopf: Schlacht um Bikini Bottom
@@ -788,3 +848,4 @@ GYAD78 = Der Tierisch Verrückte Bauernhof
GYFPA4 = Yu-Gi-Oh! Königreich der Illusionen
GYTP69 = Ty der Tasmanische Tiger 2: Die Bumerang-Gang
GZPP70 = Zapper: Eine total Durchgeknallte Grille!
UGPP01 = Game Boy Player
+1478 -1472
View File
File diff suppressed because it is too large Load Diff
+460 -100
View File
File diff suppressed because it is too large Load Diff
+86 -60
View File
@@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: FR_unique version: 20241114210121)
TITLES = https://www.gametdb.com (type: Wii language: FR_unique version: 20250826093544)
R22J01 = FlingSmash
R23P52 = Barbie et les Trois Mousquetaires
R25PWR = LEGO Harry Potter : Années 1 à 4
@@ -10,6 +10,8 @@ R2AX7D = L'Age de Glace 2
R2FP70 = Marine Malice et le mystère des graines d'algue
R2GP99 = Fragile Dreams ~ Farewell Ruins of the Moon~
R2VP01 = Sin and Punishment : Successor of the Skies
R2WPA4 = Pro Evolution Soccer 2009
R2WXA4 = Pro Evolution Soccer 2009
R2YP54 = C'est mon anniversaire!
R33E69 = Rock Band : AC/DC Live [Track Pack]
R33P69 = Rock Band : AC/DC Live [Song Pack]
@@ -18,7 +20,6 @@ R3AP7J = Story Hour : Adventures
R3GXUG = Crazy Mini Golf
R3HP6Z = Agent Hugo : Hula Holiday
R3LPWR = Green Lantern: La Révolte des Manhunters
R3MP01 = Metroid Prime Trilogy
R3OP01 = Metroid : Other M
R3PPWR = Speed Racer : Le Jeu Vidéo
R3SP52 = Spider-Man : Le Règne des Ombres
@@ -28,10 +29,12 @@ R3YP70 = Sam & Max : Saison 2 : Au-Delà du Temps et de l'Espace
R42P69 = Les Sims 2 : Naufragés
R43P69 = EA Sports Active
R48P7D = Les Chroniques De Spiderwick
R49P01 = Donkey Kong: Jungle Beat
R4BPGT = Baby Foot
R4EP01 = Endless Ocean 2 : Aventuriers des Fonds Marins
R4PP69 = Les Sims 2 : Animaux & Cie
R4ZJ01 = Project Zero 4 - Mask of the Lunar Eclipse
R53PFH = In The Mix Featuring Armin van Buuren
R54FMR = Des Chiffres & des Lettres
R55P41 = Qui Veut Gagner Des Millions : 1ère Edition
R57FMR = Questions pour un champion : Le jeu officiel
@@ -53,10 +56,15 @@ R62P4Q = Disney Sing It : Pop Hits
R63PG9 = Family Party : 30 Great Games Outdoor Fun
R69P36 = Colin McRae : DiRT 2
R6APPU = Mon Bébé et Moi
R6KU36 = Ashes Cricket 2009
R6NP41 = Shaun White Snowboarding : World Stage
R6NY41 = Shaun White Snowboarding : World Stage
R6OE78 = Cars Race-O-Rama
R6OP78 = Cars Race-O-Rama
R6OX78 = Cars Race-O-Rama
R6XP69 = Hasbro : Best of des Jeux en Famille Vol. 2
R72P5G = Cake Mania : In the Mix!
R7AP69 = SimAnimals Africa
R7BP7J = Jelly Belly : Ballistic Beans
R7EP8P = NiGHTS : Journey of Dreams
R7FPGD = Final Fantasy Fables : Chocobo's Dungeon
@@ -91,7 +99,8 @@ R9IP01 = Nouvelle Façon de Jouer ! Pikmin
R9JP69 = The Beatles : Rock Band
R9LP41 = Girls Life: Pyjama Party
R9SPPL = Sudoku Ball : Detective
RAAE01 = Disque Startup du Wii
R9TP69 = Tiger Woods PGA Tour 09 All-Play
RAAE01 = Disque de Wii Startup
RB4P08 = Resident Evil 4 : Wii Edition
RB4X08 = Resident Evil 4 : Wii Edition
RB5P41 = Brothers in Arms : Earned in Blood
@@ -131,10 +140,10 @@ RCOPNP = Détective Conan : Enquête à Mirapolis
RCVP41 = Far Cry : Vengeance
RCXP78 = All Star Pom-pom Girl
RD4PA4 = Dance Dance Revolution : Hottest Party 2
RD6PNP = Safar'Wii
RDBPAF = Dragon Ball Z : Budokai Tenkaichi 2
RDFP41 = Shaun White Snowboarding : Road Trip
RDHP78 = Destroy All Humans! Lachez Le Gros Willy!
RDIP41 = The Dog Island
RDJP4F = Death Jr. : Root of Evil
RDKP01 = Donkey Kong : Jet Race
RDLP70 = James Renard - Opération Milkshake
@@ -164,11 +173,16 @@ REWYMR = Real Stories : Mission Equitation
REYP4Q = Disney Sing It
REZPKM = Fritz by Chessbase
RF2P54 = Les 4 Fantastiques et le Surfer d'Argent
RFCPGD = Final Fantasy Crystal Chronicles : The Crystal Bearers
RF3P6M = Ferrari Challenge
RF9P69 = FIFA 09 All-Play
RF9X69 = FIFA 09 All-Play
RF9Y69 = FIFA 09 All-Play
RFCPGD = FINAL FANTASY CRYSTAL CHRONICLES : THE CRYSTAL BEARERS
RFEP01 = Fire Emblem : Radiant Dawn
RFFPGD = Final Fantasy Crystal Chronicles : Echoes of Time
RFKP41 = Mon Coach Personnel : Mon Programme Forme et Fitness
RFKX41 = Mon Coach Personnel : Mon Programme Forme et Fitness
RFLP69 = Madden NFL 09 All-Play
RFOP52 = Spider-Man : Allié Ou Ennemi
RFOX52 = Spider-Man : Allié ou Ennemi
RFQP69 = FaceBreaker : K.O. Party
@@ -193,6 +207,7 @@ RGQE70 = Ghostbusters : Le jeu vidéo
RGQP70 = SOS Fantômes : Le Jeu Vidéo
RGVP52 = Guitar Hero : Aerosmith
RGWX41 = The Lapins Crétins : La Grosse Aventure
RGZP70 = Godzilla Unleashed
RH2P41 = Hell's Kitchen: The Video Game
RH3P4Q = High School Musical 3 Dance! Nos Années Lycée
RH5PKM = Horse Life : Amis pour la vie
@@ -201,7 +216,6 @@ RH8P4F = Tomb Raider : Underworld
RHAW01 = Wii Play
RHCP52 = The History Channel : Battle for the Pacific
RHGP6Z = Agent Hugo : Lemoon Twist
RHKP18 = Job Island
RHLPGT = World Championship Poker Featuring Howard Lederer : All-In
RHMP99 = Harvest Moon : Magical Melody
RHNP70 = Mon Cheval et Moi
@@ -227,6 +241,7 @@ RINP08 = Dead Rising : Chop Till You Drop
RIOPSU = Horribles Histoires : les Redoutables Romains
RITFMR = Intervilles : Le Jeu Officiel
RIUPAF = One Piece: Unlimited Cruise 2: L'Eveil d'un Héros
RIVP99 = Ivy The Kiwi?
RJ2P52 = 007 : Quantum of Solace
RJ4PRM = Naissance de Rome : Sur les Traces de César
RJ7FWP = Télé 7 Jeux : Mots Fléchés
@@ -240,6 +255,7 @@ RJJP8P = Jambo! Safari Ranger Adventure
RJMPRS = Jumper : Griffin's Story
RJOP99 = Ju-On La Malédiction
RJQP70 = Sam Pyjam : Héros de la Nuit
RJZP7U = SNK Arcade Classics Volume 1
RK2P01 = Trauma Center : New Blood
RK5P01 = Kirby au Fil de l'Aventure
RKDP01 = Trauma Center : Second Opinion
@@ -251,7 +267,6 @@ RKHP52 = Kung Fu Panda : Guerriers Légendaires
RKMP5D = Mortal Kombat : Armageddon
RKPP52 = Kung Fu Panda : Le Jeu
RKPY52 = Kung Fu Panda : Le Jeu
RKSPUG = Kidz Sports Basketball
RKTXUG = Kidz Sports : International Football
RKYP7J = Army Men : Soldiers of Misfortune
RKZPA4 = Lost in Blue : Shipwrecked
@@ -264,7 +279,6 @@ RLGP64 = LEGO Star Wars : La Saga Complète
RLIP64 = LEGO Indiana Jones : La Trilogie Originale
RLKPFK = Code Lyoko : Plongez vers l'Infini
RLLP70 = Lucky Luke: Tous À L'Ouest
RLNFMR = Koh-Lanta
RLNHMR = Koh-Lanta
RLNIMR = Koh-Lanta
RLRP4F = Tomb Raider : Anniversary
@@ -280,6 +294,7 @@ RM3P01 = Metroid Prime 3 : Corruption
RM4P41 = Monster 4x4 : World Circuit
RM5P7D = La Momie : La Tombe De L'empereur Dragon
RM9PGM = Mushroom Men : La Guerre des Spores
RMFP68 = AMF Bowling Pinbusters!
RMNDFR = Ma Pension d'Animaux
RMNPFR = Ma Pension d'Animaux
RMUP52 = Marvel : Ultimate Alliance
@@ -292,23 +307,28 @@ RMYXUG = Myth Makers : Super Kart GP
RN3P78 = Bob l'Eponge et ses Amis : Contre les Robots-Jouets
RN3X78 = Bob l'Eponge et ses Amis : Contre les Robots-Jouets
RN4P41 = ANNO : Créez votre Monde
RN9P4F = Escape From Bug Island
RNEPDA = Naruto Shippuden : Clash of Ninja Revolution 3
RNIPGT = Mind.Body.Soul : Nutrition
RNKP69 = NERF N-Strike
RNNP4Q = Le Monde De Narnia Chapitre 2 : Le Prince Caspian
RNNX4Q = Le Monde De Narnia Chapitre 2 : Le Prince Caspian
RNNY4Q = Le Monde De Narnia Chapitre 2 : Le Prince Caspian
RNNZ4Q = Le Monde De Narnia Chapitre 2 : Le Prince Caspian
RNOP01 = Another Code : R - Les Portes de la Mémoire
RNOP01 = Another Code: R - Les portes de la mémoire
RNPP69 = Need for Speed : ProStreet
RNPX69 = Need for Speed : ProStreet
RNRP41 = Nitro Bike
RNSF69 = Need for Speed : Carbon
RNSP69 = Need for Speed : Carbon
RNXPDA = Naruto : Clash of Ninja Revolution European Version
RNYPDA = Naruto: Clash of Ninja Revolution 2
RO7P7D = The Legend of Spyro : The Eternal Night
RO8P7D = La Légende de Spyro : La Naissance d'un Dragon
RO8X7D = La Légende de Spyro: La Naissance d'un Dragon
RO9PNK = Aqua Panic! Sauvez-les Tous!!!
ROAP36 = Overlord : Dark Legend
ROBPPL = Obscure 2
RODP01 = WarioWare : Smooth Moves
ROEPGT = Palace pour chiens
ROLP8P = Mario & Sonic aux Jeux Olympiques d'Hiver
@@ -318,6 +338,7 @@ ROTP7J = Twin Strike : Operation Thunder
ROUPAF = One Piece: Unlimited Cruise 1: Le Trésor sous les Flots
ROVE6U = Playmobil Circus : Tous en Piste
ROVPHM = Playmobil Circus: Tous en Piste
ROWP08 = Ōkami
ROYP41 = Tempête de boulettes géantes : Le Jeu Vidéo
ROYX41 = Tempête de boulettes géantes : Le Jeu Vidéo
RP2P69 = Cerebrum
@@ -331,30 +352,36 @@ RPDEGN = PDC Championship Darts 2008
RPFP52 = Pitfall : La Grande Aventure
RPGP5D = Rampage : Total Destruction
RPKP52 = World Series of Poker : Tournament of Champions 2007 Edition
RPLP52 = Rapala Tournament Fishing
RPPP41 = Prince of Persia : Rival Swords
RPSP4Q = Disney Princesse : Un Voyage Enchanté
RPTP52 = Puppy Luv : Votre Nouvel Ami
RPVPKM = Cats Academy
RPWX41 = Prince of Persia : Les Sables Oubliés
RPYP9B = Pangya! Golf with Style
RQ4P78 = Bob l'éponge : La Créature du Crabe Croustillant
RQ8P08 = MotoGP 08
RQ9F69 = NBA Live 09 All-Play
RQ9P69 = NBA Live 09 All-Play
RQEP6V = Agatha Christie : Les Vacances d'Hercule Poirot
RQFP6V = Safecracker : Expert en Cambriolage
RQKP41 = Circus Party
RQLP64 = Star Wars The Clone Wars : Les Héros de la République
RQNPWR = Scooby-Doo! Opération Chocottes
RQPP52 = Cabela's : Trophy Bucks
RQRPAF = The Sky Crawlers : Innocent Aces
RQTP6V = Agatha Christie : Dix Petits Negres
RQWPG9 = Puzzle Quest : Challenge of the Warlords
RQXP70 = Astérix aux Jeux Olympiques
RR2XUG = Extreme Truck Racing
RR4PFK = Build-A-Bear Workshop : Un Ami pour chaque Saison
RR5P70 = Ready 2 Rumble Revolution
RR7PVP = Real de Madrid
RRAPUG = Rock 'N' Roll Adventures
RRAXUG = Rock 'N' Roll Adventures
RRBP41 = Rayman Contre les Lapins Crétins
RRCP52 = Barbie Cavalière : Stage d'Equitation
RRDP69 = Rock Band Song Pack 2
RREP69 = Rock Band Song Pack 1
RRGP52 = Madagascar 2
RRJFMR = Cuisine Party
RRJIMR = Cuisine Party
RRJPMR = Cuisine Party
RRLP78 = Bratz : Girlz Really Rock
@@ -370,7 +397,6 @@ RRSX4Q = Bienvenue chez les Robinson
RRTP52 = Fête en Famille 100% Fun
RRUFRT = Winter Sports 2009 : The Next Challenge
RRUPRT = Winter Sports 2009 : The Next Challenge
RRVPNR = Battle Rage : The Robot Wars
RRYPHY = Rogue Trooper : Quartz Zone Massacre
RS5PC8 = Samurai Warriors : Katana
RS9P8P = Sonic Riders : Zero Gravity
@@ -382,7 +408,6 @@ RSFP99 = Muramasa : The Demon Blade
RSJP41 = Les Chevaliers de Baphomet : Director's Cut
RSKP52 = Shrek le Troisième
RSKX52 = Shrek le Troisième
RSLPAF = Soulcalibur Legends
RSMP8P = Super Monkey Ball : Banana Blitz
RSND69 = Les Simpsons : Le Jeu
RSNF69 = Les Simpson : Le Jeu
@@ -392,10 +417,9 @@ RSTP64 = Star Wars : Le Pouvoir de la Force
RSVP8P = Sonic Unleashed : La Malédiction du Hérisson
RT3P54 = Rockstar Games Presents : Table Tennis
RT4PAF = Tales of Symphonia : Dawn of the New World
RT6FKM = Le Manège Enchanté
RT6PKM = Le Manège Enchanté
RTBP52 = Rapala Fishing Frenzy
RTCP41 = Tom Clancy's Splinter Cell : Double Agent
RTEHMR = Real Stories : Vétérinaire
RTEPFR = Ma clinique veterinaire
RTFP52 = Transformers : Le jeu
RTFY52 = Transformers: Le jeu
@@ -403,14 +427,13 @@ RTIP8P = Le Sport en Folie
RTJP68 = Star Trek : Conquest
RTMP41 = TMNT : Les Tortues Ninja
RTNP41 = Tenchu : Shadow Assassins
RTUFKM = Secret Files : Tunguska
RTUPKM = Secret Files : Tunguska
RTVP64 = Thrillville : Le parc en folie
RTWP5D = TNA iMPACT!
RTYP01 = Wii Échecs
RTZE08 = Zack & Wiki : Le Trésor de Barbaros
RTZJ08 = Zack & Wiki : Le Trésor de Barbaros
RTZP08 = Zack & Wiki : Le Trésor de Barbaros
RU2P5Z = Winter Sports 2009 : The Next Challenge
RU4X41 = NewU : Fitness First Personal Trainer
RU5P4Q = La princesse et la grenouille
RU5X4Q = La princesse et la grenouille
@@ -435,7 +458,6 @@ RUQX78 = Là-Haut
RUSX78 = Bob L'Eponge & Ses Amis: L'Ultime Alliance
RUSY78 = Bob L'Eponge & Ses Amis l'Ultime Alliance
RUUP01 = Animal Crossing : Let's Go to the City
RUXPUG = Urban Extreme : Street Rage
RUXXUG = Urban Extreme : Street Rage
RUYP99 = No More Heroes 2 : Desperate Struggle
RV7SMR = Koh-Lanta
@@ -444,6 +466,7 @@ RV9P78 = Avatar: Le Dernier Maître de l'Air - Into the Inferno
RVAP78 = Avatar: Le Dernier Maître de l'Air - Le Royaume de la Terre en Feu
RVBPRS = Alvin et les Chipmunks
RVDPLG = Diabolik : The Original Sin
RVEFMR = Bienvenue Chez Les Ch'tis
RVFP7J = Bigfoot : Collision Course
RVHP41 = Scrabble Interactif
RVJPFR = So Blonde : Retour sur l'Ile Oubliée
@@ -455,12 +478,15 @@ RVYD52 = Call of Duty : World at War
RVYP52 = Call of Duty : World at War
RVZP52 = Monstres contre Aliens
RW3P4Q = Pirates des Caraibes : Jusqu'au Bout du Monde
RW5F41 = Qui Veut Gagner Des Millions: 2ème Edition
RW5P41 = Qui Veut Gagner Des Millions : 2ème Edition
RW6PA4 = Dance Dance Revolution : Winx Club
RW8P41 = Alexandra Ledermann : La colline aux chevaux sauvages
RWAP78 = WALL-E
RWAU78 = WALLE
RWAX78 = WALL•E
RWAY78 = WALL•E
RWAZ78 = WALL•E
RWDP5G = Wild Earth : African Safari
RWEPA4 = Pro Evolution Soccer 2008
RWFH41 = Mon Coach Personnel : J'Enrichis mon Vocabulaire
RWKPGT = Cooking Mama 2 : Tous à Table
RWLP01 = Wario Land : The Shake Dimension
@@ -483,10 +509,11 @@ RXDD4Q = Disney Th!nk Fast - Le Maxi Quiz
RXDP4Q = Th!nk Fast : Le Maxi Quiz
RXDX4Q = Disney Th!nk Fast : Le Maxi Quiz
RXDY4Q = Th!nk Fast : Le Maxi Quiz
RXHF5D = Chaos à La Maison
RXIP52 = Transformers : La Revanche
RXLP41 = Grey's Anatomy : Le Jeu Vidéo
RXPPGT = Big Catch Bass Fishing
RXQPWR = Max et les Maximonstres
RXRPRS = Le Conte de Despereaux
RXRXRS = Le Conte de Despereaux
RXSPA4 = Dancing Stage Hottest Party
RXUP41 = Les Rois de la Glisse
@@ -517,6 +544,9 @@ S2LP01 = PokéPark 2: Le Monde des Voeux
S2XE41 = Les Schtroumpfs 2
S2XP41 = Les Schtroumpfs 2
S2ZP52 = Zhu Zhu Pets: Animaux de la Forêt
S32FJW = The Voice : La Plus Belle Voix
S33FKM = Let's Sing 2017 : Hits Français et Internationaux
S34FKM = Let's Sing 2018 : Hits Français et Internationaux
S3BPWR = Batman: L'Alliance des Héros
S3EP78 = Barbie: Star de la Mode
S3MP69 = Les Sims 3
@@ -550,6 +580,7 @@ SB9P78 = Barbie et le Salon de Beauté des Chiens
SBBP18 = Beyblade : Metal Fusion - Counter Leone
SBDP08 = Resident Evil : The Darkside Chronicles
SBIPVZ = Coiffure Académie
SBNPG9 = Ben 10: Alien Force Vilgax Attacks
SBRPKM = Repetto : Naissance d'une Etoile
SC4P64 = LEGO Star Wars III : The Clone Wars
SC5PGN = Challenge Me : Word Puzzles
@@ -568,7 +599,9 @@ SDMPAF = Moi, Moche et Méchant : Le Jeu Vidéo
SDPP54 = Joyeux Anniversaire Dora !
SDUP41 = Les Schtroumpfs: Dance Party
SDVP41 = Driver : San Francisco
SDWP18 = A Shadow's Tale
SDYPA4 = Dance Dance Revolution : Hottest Party 4
SE2P69 = EA Sports Active 2
SEAP69 = EA Sports Active : Plus d'Exercices
SERF4Q = Disney Epic Mickey : Le Retour des Héros
SERP4Q = Disney Epic Mickey : Le retour des héros
@@ -583,6 +616,7 @@ SFWY69 = Coupe du Monde de la FIFA
SG8PAF = Yogi l'Ours: Le Jeu Vidéo
SGDPKM = Jardin en folie
SGLPA4 = Gormiti: Les Seigneurs de la Nature!
SGRPGT = Grease
SGXP41 = Combat de Géants: Dinosaures
SH5E69 = Harry Potter et les Reliques de la Mort - Deuxième Partie
SH5P69 = Harry Potter et les Reliques de la Mort - Deuxième Partie
@@ -592,21 +626,26 @@ SHHP69 = Harry Potter et les Reliques de la Mort - Première Partie
SHLPA4 = Silent Hill : Shattered Memories
SHMPLR = Lucas la Cata
SHVP78 = Hot Wheels
SHXPWR = Happy Feet 2
SIAP52 = L'Âge de glace 4 : La dérive des continents - Jeux de l'Arctique
SIIP8P = Mario & Sonic aux Jeux Olympiques de Londres 2012
SILP78 = Worms : Battle Islands
SINPNG = We Sing : Robbie Williams
SJ2PWR = Scooby-Doo! Panique dans la Marmite
SJ6P41 = Just Dance Disney Party
SJ9P41 = Just Dance 2 : Extra Songs
SJDX41 = Just Dance 3 Edition Speciale
SJTP41 = Just Dance : Best Of
SJXD41 = Just Dance 4 Edition Speciale
SK4P52 = Shrek 4: Il Etait une Fin
SK7PVZ = Disney Violetta : Rythme et musique
SK7XVZ = Disney Violetta : Rythme et musique
SKOPA4 = Karaoke Revolution Glee Volume 3
SL2P01 = Project Zero 2 : Wii Edition
SLAP78 = Le Dernier Maitre de l'Air
SLAX78 = Le Dernier Maitre de l'Air
SLHPWR = LEGO Harry Potter : Années 5 à 7
SLKPKM = Lets Sing 2016 : Hits Français
SLPP5D = L'esprit du Loup
SLRPWR = LEGO Le Seigneur des Anneaux
SLVP41 = Petits Flirts Entre Amis
@@ -627,6 +666,7 @@ SNYPVZ = Monster High : 13 souhaits
SONFMR = Mon Premier Karaoké
SOSPAF = Turbo : Équipe de Cascadeurs
SOUP01 = The Legend of Zelda : Skyward Sword
SP4PJW = Pétanque Master
SP5PVV = The Kore Gang : La Menace Intraterrestre
SP8P78 = Les Pingouins de Madagascar: Le docteur Blowhole est de retour!
SPDP52 = Spider-Man: Dimensions
@@ -668,13 +708,17 @@ STZP52 = Transformers 3: La Face Cachée de la Lune - Edition Stealth Force
SU4P78 = UFC Personal Trainer : The Ultimate Fitness System
SU5PVZ = Monster High : Course de Rollers Incroyablement Monstrueuse
SU7PAF = Les Cinq Légendes
SUSFMR = U-Sing Johnny Hallyday
SUSPMR = U-Sing Girls Night
SUUP78 = uDraw Studio: Dessiner Facilement
SUXPA4 = Pro Evolution Soccer 2010
SUXXA4 = Pro Evolution Soccer 2010
SUXYA4 = Pro Evolution Soccer 2010
SV3PAF = Madagascar 3: Bons baisers d'Europe
SV7PVZ = Les Pingouins de Madagascar
SVDP52 = Bob l'éponge : La vengeance robotique de Plankton
SVHP69 = FIFA 14 - Édition Essentielle
SVHX69 = FIFA 14 - Édition Essentielle
SVMP01 = Super Mario All-Stars
SVQEVZ = Barbie et ses soeurs : La grande aventure des chiots
SVQPVZ = Barbie et ses soeurs : La grande aventure des chiots
SVVPAF = Les Croods : Fête Préhistorique !
@@ -708,10 +752,8 @@ W3MP = Les Trois Mousquetaires : Tous pour un!
W44P = Stop Stress : A Day of Fury
W4AP = Arcade Sports : Air Hockey, Bowling, Pool, Snooker
W6BP = Eco-Shooter: Plant 530
W8CP = Bit.Trip Core
W8WP = Happy Holidays Halloween
W9BP = Big Town Shoot
W9RP = Happy Holidays Christmas
WA4P = WarioWare : Do It Yourself - Showcase
WA7P = Toribash - La violence perfectionnée
WA8P = ArtStyle: Penta Tentacles
@@ -721,7 +763,6 @@ WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4 : Dangeresque 3
WB3P = Strong Bad Episode 5 : 8-bit is Enough
WBEP = Beer Pong : Frat Party Games
WBFP = Bit.Trip Fate
WBGP = Bang Attack
WBPP = PLÄTTCHEN - twist 'n' paint
WBRP = Pirates : The Key of Dreams
@@ -740,7 +781,7 @@ WDMP = Dr. Mario & Bactericide
WDPP = Dr. Mario & Germ Buster (Friend Battle Demo)
WEMP = Aha! I Got It! Escape Game
WETP = Jeux de plateau en images : La chasse au trésor
WF2P = Final Fantasy Crystal Chronicles : My Life as a Darklord
WF2P = FINAL FANTASY CRYSTAL CHRONICLES : My Life as a Darklord
WF3E = Family Games - Pen & Paper Edition
WF4P = Final Fantasy IV : Les Années Suivantes
WFCP = Final Fantasy Crystal Chronicles : My Life as a King
@@ -754,7 +795,6 @@ WGDP = Gradius Rebirth
WGFP = Girlfriends Forever Magic Skate
WGGP = Gabrielle's Ghostly Groove: Monster Mix
WGPP = Zenquaria L'aquarium Virtuel
WGSE = Phoenix Wright: Ace Attorney
WGSF = Phoenix Wright: Ace Attorney (French Version)
WHEE = Heracles : Chariot Racing
WHEP = Heracles : Chariot Racing
@@ -818,33 +858,28 @@ WRIP = Rainbow Islands : Towering Adventure!
WRJP = Racers Islands - Crazy Racers
WRLP = FAST Racing League
WRRP = Robin Hood : Le Retour de Richard
WRUP = Bit.Trip Runner
WRXP = Megaman 10
WSGP = Pop Them, Drop Them SAMEGAME
WSJP = Trouvez les Differences!
WSNP = Sonic The Hedgehog 4 Episode I
WSUE = Shootanto: Evolutionary Mayhem
WSUP = Shootanto : Evolutionary Mayhem
WTEP = Tales of Elastic Boy Mission 1
WTFP = Bit.Trip Flux
WTMP = Adventure Island The Beginning
WTRE = Bit.Trip Beat
WTRP = Bit.Trip : Beat
WTWP = Fenimore Fillmore The Westerner
WTXP = Texas Holdem Tournament
WU2P = Successfully Learning Mathematics Year 3
WU3P = Successfully Learning Mathematics Year 4
WU4P = Successfully Learning Mathematics Year 5
WUIP = Succès au primaire : Power maths
WVBP = Bit.Trip Void
WU2P = Succès au primaire Mathématiques CE 1
WU3P = Succès au primaire Mathématiques CE 2
WU4P = Succès au primaire Mathématiques CM 1
WUIP = Succès au primaire Mathématiques CP
WVOP = Rock'n Roll Climber
WVSP = Gods Vs Humans
WVUP = Mr Bumblebee Racing Champion
WW2P = Where's Wally? Fantastic Journey 2
WW3P = Where's Wally? Fantastic Journey 3
WWIP = Où est Charlie ? Voyage Fantastique 1
WWRP = Excitebike: World Challenge
WWXP = Paper Wars Cannon Fodder
WX2P = Succès au primaire : Anglais, CE1
WX3P = Succès au primaire : Anglais, CE2
WX4P = Succès au primaire : Anglais, CM1
WXBE = Ben 10 Alien Force The Rise of Hex
WXBP = Ben 10 Alien Force The Rise of Hex
WXIP = Succès au primaire : Anglais, CP
@@ -860,7 +895,7 @@ XIGP = Urbanix Demo
XIHP = Gladiator Demo
XIJP = Fast Racing League Demo
XIKP = Monsteca Corral Demo
XINP = Learning with the Pooyoos Episode 1 Demo
XINP = Apprends avec les PooYoos Épisode 1 Demo
XIOP = Learning with the Pooyoos Episode 2 Demo
XIPP = Learning with the Pooyoos Episode 3 Demo
XITP = Fast Draw Demo
@@ -940,11 +975,9 @@ MBFP = Shinobi III: Return of the Ninja master
MBIP = Landstalker : Le Trésor du Roi Nole
MBJE = Ghouls'n Ghosts
MBJP = Ghouls'n Ghosts
MBLP = ESWAT City Under Siege
MBMP = Sonic the Hedgehog 3
MBUP = Sonic 3D: Flickies' Island
MBWM = Columns III: Revenge of Columns
MC3P = Super Street Fighter II: The New Challengers
MCCP = Phantasy Star III: Generations of Doom
MCHM = MUSHA : Metallic Uniframe Super Hybrid Armor
MCLP = Street Fighter II: Special Champion Edition
@@ -1041,9 +1074,7 @@ G4ZP69 = Les Sims 2
G5DP78 = Scooby-Doo! : Démasqué
G6FF69 = Coupe du Monde de la FIFA 2006
G8MP01 = Paper Mario: La Porte Millénaire
G9TF52 = Gang de Requins
GAVY78 = Avatar : Le Dernier Maître de l'Air
GAZF69 = Harry Potter et le Prisonnier d'Azkaban
GC3F78 = Scooby-Doo! Le Livre des Ténèbres
GCBP7D = Crash Bandicoot: La Vengeance de Cortex
GCGP41 = Charlie's Angels: Les Anges se Déchaînent
@@ -1051,51 +1082,45 @@ GCIP69 = Les Sims
GCOF52 = Call of Duty : Le Jour De Gloire
GCQF7D = Buffy contre les Vampires : Chaos Bleeds
GDDP41 = Donald Cou@k Att@k?*!
GDEP71 = Baldur's Gate Dark Alliance
GDOP41 = Disney's Donald Qui est PK?
GENF69 = James Bond 007: Quitte ou Double
GF4F52 = Les 4 Fantastiques
GFHP6V = Un Voisin d'Enfer!
GFSF69 = Coupe du Monde FIFA 2002
GH2P69 = Need for Speed : Poursuite Infernale 2
GH4F69 = Harry Potter et la Coupe de Feu
GH5F52 = Nos Voisins, les Hommes
GH2P69 = Need for Speed: Poursuite Infernale 2
GHBP7D = Bilbo le Hobbit
GHLY69 = Harry Potter à l'école des sorciers
GHSY69 = Harry Potter et la Chambre des Secrets
GHVP08 = Disney Cache-Cache Furtif
GIAP7D = L'Age de Glace 2
GICF78 = Les Indestructibles
GIHF78 = Scooby-Doo! La Nuit des 100 Frissons
GIHP78 = Scooby-Doo! : La Nuit des 100 Frissons
GIQX78 = Les Indestructibles: La Terrible Attaque du Démolisseur
GJUF78 = Tak & Le Pouvoir de Juju
GK7P08 = Killer 7
GKBPAF = Baten Kaitos : Les Ailes éternelles et l'Océan perdu
GKJF78 = Cars: Quatre Roues
GKLF69 = Le Seigneur des Anneaux: Le Retour du Roi
GKMP41 = Prince of Persia: Les Deux Royaumes
GKOP6V = Kao The Kangaroo Round 2
GL5X4F = Lego Star Wars : Le Jeu Vidéo
GL7P64 = Lego Star Wars II: La Trilogie Originale
GLCF52 = Les Désastreuses Aventures des Orphelins Baudelaire: D'Apres Lemony Snicket
GLGP41 = Largo Winch : Aller Simple pour les Balkans
GLHPG9 = Souris City
GLNP69 = Les Looney Tunes Passent à l'Action
GLOF69 = Le Seigneur des Anneaux: Les Deux Tours
GLVF4Q = Le Monde de Narnia: Le Lion, la Sorcière et l'Armoire Magique
GLZF69 = 007 : Bons Baisers de Russie
GMFF69 = Medal of Honor : En Première Ligne
GMNP78 = Monstres & Cie : Crazy Balls
GMWF52 = Minority Report: Le Futur vous Rattrape
GMNP78 = Monstres & Cie: Crazy Balls
GNEF78 = Le Monde de Némo
GONF69 = Medal of Honor: Les Faucons de Guerre
GNUPDA = Naruto: Clash of Ninja - European Version
GOSP41 = Les Rebelles de la Forêt
GOYF69 = GoldenEye : Au service du Mal
GP3P78 = Le Pole Express
GPHF52 = Pitfall: L'Expédition Perdue
GPLF9G = Les Aventures de Porcinet
GPQP6L = The Powerpuff Girls: L'Attaque des Aromates
GPXP01 = Pokémon Box : Rubis & Saphir
GQ4F78 = Bob L'éponge: La Créature du Crabe Croustillant
GQFFFK = Franklin: Un anniversaire surprise
GQLP54 = Dora l'Exploratrice: Voyage sur la Planète Violette
GQPP78 = Bob l'Eponge: Bataille pour Bikini Bottom
GQQD78 = Bob L'éponge: Silence on tourne!
@@ -1105,17 +1130,17 @@ GQQH78 = Bob L'éponge: Silence on tourne!
GQQP78 = Bob L'éponge: Silence on tourne!
GQWX69 = Harry Potter: Coupe du Monde de Quidditch
GR2P52 = Les Royaumes Perdus II
GR8F69 = Medal of Honor: Soleil Levant
GR9P6L = Le Règne Du Feu
GRNP52 = Les Royaumes Perdus
GRRF78 = Les Razmoket: La Rançon Royale
GRUF78 = Power Rangers: Dino Tonnerre
GRSPAF = SoulCalibur II
GSAP01 = Star Fox: Adventures
GSKP7D = Le Roi Scorpion : L'Ascension de l'Akkadien
GTKP51 = Turok Evolution
GTYP69 = Ty: Le Tigre de Tasmanie
GU2F78 = 2 Games in 1: Les Indestructibles / Le Monde de Nemo
GU3X78 = 2 Games in 1: Bob L'éponge le Film / Tak 2 Le Sceptre des Rêves
GUBP69 = Les Urbz: Les Sims in the City
GVLF69 = Marvel Nemesis: L'Avenement des Imparfaits
GW7F69 = James Bond 007 dans Espion pour Cible
GWHP41 = Winnie l'Ourson: à la Recherche des Souvenirs Oubliés
GWLX6L = Wallace & Gromit dans Le Project Zoo
@@ -1127,3 +1152,4 @@ GYAX78 = La Ferme en Folie
GYFPA4 = Yu-Gi-Oh! L'Empire des Illusions
GYTP69 = Ty : Le Tigre de Tasmanie 2: Opération Sauvetage
GZPP70 = Zapper: Le Criquet Ravageur !
PRJP01 = Pac-Man vs.
+61 -45
View File
@@ -1,16 +1,22 @@
TITLES = https://www.gametdb.com (type: Wii language: IT_unique version: 20241114210129)
TITLES = https://www.gametdb.com (type: Wii language: IT_unique version: 20250826093553)
R23P52 = Barbie e le Tre Moschettiere
R25PWR = LEGO Harry Potter: Anni 1-4
R2AP7D = L'Era Glaciale 2: Il Disgelo
R2AX7D = L'Era Glaciale 2: Il Disgelo
R2WPA4 = Pro Evolution Soccer 2009
R2WXA4 = Pro Evolution Soccer 2009
R2YP54 = E' il mio Compleanno!
R33P69 = AC/DC Live: Rock Band Song Pack
R3AP7J = Fiabe della buonanotte per bambini
R3LPWR = Lanterna Verde: Lascesa dei Manhunters
R3MP01 = Metroid Prime: Trilogy
R3PPWR = Speed Racer
R3SP52 = Spider-Man: Il Regno delle Ombre
R3YP70 = Sam & Max: Season Two: Beyond Time and Space
R42P69 = The Sims 2: Island
R43P69 = EA Sports Active
R48P7D = Spiderwick: Le Cronache
R49P01 = Donkey Kong: Jungle Beat
R4BPGT = Calcio Balilla
R4EP01 = Endless Ocean 2: Avventure negli abissi
R4FP7J = Fiabe della buonanotte per bambine
@@ -24,6 +30,8 @@ R5UP41 = CSI: Intento Mortale
R5VP41 = James Cameron's Avatar: Il Gioco
R5VX41 = James Cameron's Avatar: Il Gioco
R6APPU = Io Babysitter
R6OP78 = Cars Race-O-Rama
R6OX78 = Cars Race-O-Rama
R7IP69 = Il mio Pigiama Party
R7ZP41 = Vinca il Migliore Party
R82P52 = Animal Planet: Professione Veterinario
@@ -52,7 +60,10 @@ RCIP41 = CSI: Prova Schiacciante
RCKPGN = Sports Challenge: Sfida Sportiva
RCLP4Q = Chicken Little: Asso Spaziale
RCOPNP = Detective Conan: Il Caso Mirapolis
RCVP41 = Far Cry: Vengeance
RD6PNP = SAFAR'Wii
RDHP78 = A Caccia Di Umani! Big Willy Alla Riscossa
RDIP41 = The Dog Island
RDQPGD = Dragon Quest Swords: La Regina Mascherata e la Torre degli Specchi
RE5PAF = Mangia tutto!
REBPMT = Mr Bean: il Matto Mondo di Wii
@@ -62,17 +73,17 @@ RENP8P = Sonic e il Cavaliere Nero
REUPNK = Body Coaching
REWYMR = My Horse Club: Sulle Tracce degli Appaloosa
RF2P54 = I Fantastici 4: E Silver Surfer
RF3P6M = Ferrari Challenge: Trofeo Pirelli
RF9Y69 = FIFA 09 All-Play
RFKP41 = Il Mio Coach di Fitness: Sempre In Forma
RFKX41 = Il Mio Coach Di Fitness: Sempre In Forma
RFOP52 = Spider-Man: Amici o Nemici
RFOX52 = Spider-Man: Amici o Nemici
RFQP69 = FaceBreaker: K.O. Party
RFVP52 = Occhio alla Scimmia!
RFZP41 = Giulia Passione Sfilate
RG5PWR = Guinness World Records: Il Videogioco
RGAP8P = Planet 51: Il Videogioco
RGFF69 = Il Padrino
RGFI69 = Il Padrino: Blackhand Edition
RGFP69 = Il Padrino
RGFS69 = Il Padrino
RGJP7U = George Della Giungla
@@ -83,7 +94,6 @@ RHQP4Q = Hannah Montana: Il Tour Mondiale
RHQX4Q = Hannah Montana 2: Il Tour Mondiale
RHQY4Q = Hannah Montana 2: Il Tour Mondiale
RHZP41 = Horsez: La Scuderia nella Valle
RI2P4Q = High School Musical: Sing It!
RI9PGT = Diva Girls: Stelle sul ghiaccio
RIAI52 = L'Era Glaciale 3: L'Alba dei Dinosauri
RIAP52 = L'Era Glaciale 3: L'Alba dei Dinosauri
@@ -92,10 +102,12 @@ RIJP69 = G.I. Joe: La nascita dei Cobra
RINP08 = Dead Rising: Salme di Fine Stagione
RIOPSU = Brutte Storie: I Rivoltanti Romani
RIUPAF = One Piece: Unlimited Cruise 2: Il Risveglio di un Eroe
RIVP99 = Ivy The Kiwi?
RJ8E64 = Indiana Jones e il Bastone dei Re
RJ8P64 = Indiana Jones e il Bastone dei Re
RJAX52 = Call of Duty: Modern Warfare - Edizione Reflex
RJFPKM = Jillian Michaels Fitness Ultimatum 2009
RJJP8P = Jambo! Safari
RJOP99 = Ju-On Rancore
RK5P01 = Kirby e la stoffa dell'eroe
RKHP52 = Kung Fu Panda: Guerrieri Leggendari
@@ -110,15 +122,22 @@ RLLP70 = Go West! Un'Avventura di Lucky Luke
RLNFMR = L'Isola dei Famosi
RLNHMR = L'Isola dei Famosi
RLNIMR = L'Isola dei Famosi
RLRP4F = Tomb Raider: Anniversary
RM5P7D = La Mummia: La Tomba Dell'Imperatore Dragone
RM9PGM = Mushroom Men: La Guerra delle Spore
RMFP68 = AMF Bowling Pinbusters!
RMNDFR = My Pet Hotel
RMNPFR = Cuccioli da accudire
RMSP52 = Marvel: La Grande Alleanza 2
RMUP52 = Marvel: La Grande Alleanza
RMXF78 = MX vs. ATV: Untamed
RMXP78 = MX vs. ATV: Untamed
RN3P78 = SpongeBob e i suoi amici: L'Attacco dei Toybot
RN3X78 = SpongeBob e i suoi amici: L'Attacco dei Toybot
RN4P41 = ANNO: Crea un Nuovo Mondo
RNEPDA = Naruto Shippuden: Clash of Ninja Revolution 3
RNIPGT = Tutti in Forma!
RNKP69 = NERF N-Strike
RNNP4Q = Le Cronache di Narnia: Il Principe Caspian
RNNX4Q = Le Cronache di Narnia: Il Principe Caspian
RNNY4Q = Le Cronache di Narnia: Il Principe Caspian
@@ -127,21 +146,25 @@ RNOP01 = Another Code: R - Viaggio al confine della memoria
RNPP69 = Need for Speed: Pro Street
RNPX69 = Need for Speed: Pro Street
RNPY69 = Need for Speed: Pro Street
RNRP41 = Nitro Bike
RNYPDA = Naruto: Clash of Ninja Revolution 2
RO8P7D = The Legend of Spyro: L'Alba del Drago
RO8X7D = The Legend of Spyro: L'Alba del Drago
ROEPGT = Hotel Bau
ROLP8P = Mario & Sonic ai Giochi Olimpici Invernali
ROPP41 = Boog & Elliot a Caccia Di Amici
ROUPAF = One Piece: Unlimited Cruise 1: Il Tesoro Sommerso
ROWE08 = Ōkami
ROWP08 = Ōkami
ROYP41 = Piovono Polpette: Il Videogioco
ROYX41 = Piovono Polpette
RP2P69 = Le So Tutte!
RP6P41 = Petz: Monkey Madness
RP7P52 = Pirati: Il Tesoro di Barba Nera
RP9PRS = Scimmie nello Spazio
RP9XRS = Scimmie nello Spazio
RPCX7J = Collezione Puzzler
RPFP52 = Pitfall: La Grande Avventura
RPKP52 = World Series of Poker: Tournament of Champions 2007 Edition
RPSP4Q = Disney Principesse: Il viaggio incantato
RPTP52 = Puppy Luv: Il Tuo Nuovo Amico
RPVPKM = Purr Pals: Matti per i gatti
@@ -156,7 +179,7 @@ RQTP6V = Agatha Christie: E non ne rimase nessuno
RQXP70 = Asterix alle Olimpiadi
RRCP52 = Barbie Avventure A Cavallo: Scuola Di Equitazione
RRGP52 = Madagascar 2
RRJIMR = La Prova del Cuoco
RRMI69 = Hasbro: Family Game Night
RRMP69 = Hasbro Family Party
RRQP52 = Shrek: Tutti al Luna Park Mini-Giochi
RRQX52 = Shrek: Tutti al Luna Park Mini-Giochi
@@ -166,25 +189,22 @@ RRTP52 = Family Party 20 Giochi
RSFP99 = Muramasa: La Spada Demoniaca
RSJP41 = Broken Sword: Il Segreto dei Templari - The Director's Cut
RSKP52 = Shrek Terzo
RSLPAF = Soulcalibur Legends
RSNP69 = I Simpson: Il videogioco
RSNX69 = I Simpson: Il Videogioco
RSRP8P = Sonic e gli Anelli Segreti
RSTP64 = Star Wars: Il Potere della Forza
RT3P54 = Rockstar Games Presents: Table Tennis
RT4EAF = Tales of Symphonia: L'alba di un nuovo mondo
RT4PAF = Tales of Symphonia: L'Alba di un Nuovo Mondo
RT6PKM = La Giostra Magica
RTEHMR = Veterinario: Cuccioli in Pericolo
RTEPFR = La Mia Clinica Veterinaria
RTMP41 = TMNT Tartarughe Ninja
RTUFKM = Secret Files: Il Mistero di Tunguska
RTUPKM = Secret Files: Il Mistero DiTunguska
RTVP64 = Thrillville: Fuori dai Binari
RTYP01 = Wii Scacchi
RTZE08 = Zack & Wiki: Il Tesoro del Pirata Barbaros
RTZJ08 = Zack & Wiki: Il Tesoro del Pirata Barbaros
RTZP08 = Zack & Wiki: Il Tesoro del Pirata Barbaros
RU2P5Z = Winter Sports 2009: The Next Challenge
RU5P4Q = La Principessa e il Ranocchio
RU7X5G = Una Notte Al Museo 2: Il VideoGioco
RU9PGT = Diva Girls: Stelle Sulle Punte
@@ -192,6 +212,8 @@ RUAP52 = Monster Jam: Assalto Urbano
RUEP4Q = G-Force: Superspie in missione
RUEX4Q = G-Force: Superspie in missione
RUEY4Q = G-Force: Superspie in missione
RUHP52 = Bakugan Battle Brawlers
RUHZ52 = Bakugan Battle Brawlers
RUIP4Q = Disney Sing It
RUOPPL = Alieni in soffitta
RUQI78 = Up il Videogioco
@@ -210,6 +232,7 @@ RVZP52 = Mostri contro Alieni
RW3P4Q = Pirati dei Caraibi: Ai Confini del Mondo
RW5P41 = Chi Vuol Essere Milionario: 2a Edizione
RW8P41 = Giulia Passione Avventure Nella Prateria
RWEPA4 = Pro Evolution Soccer 2008
RWMP78 = Worms: Verm'Odissea nello Spazio
RWRP4F = Wacky Races: la corsa più pazza del mondo
RWSE8P = Mario & Sonic ai Giochi Olimpici
@@ -229,15 +252,19 @@ RXUP41 = Surf's Up I Re delle Onde
RXUX41 = Surf's Up I Re delle Onde
RXVXWP = Cruciverba Per Wii
RXXP4Q = Spectrobes: Le Origini
RY2P41 = Rayman Raving Rabbids 2
RY3P41 = Rayman Raving Rabbids: TV Party
RYBP69 = Boom Blox: Smash Party
RYEPHZ = 101-in-1 Party Megamix
RYHES5 = Roogoo: Torri Storte
RYWP01 = Big Brain Academy per Wii
RZAPTV = Power Matematica
RZLP41 = Cooking Party
RZRPGT = Nel segno di Zorro
RZYF41 = Il Mio Coach: Arricchisco Il Mio Vocabolario
RZYP41 = Il Mio Coach: Arricchisco Il Mio Vocabolario
S2LP01 = PokéPark 2: Il Mondo dei Desideri
S2PPA4 = Pro Evolution Soccer 2012
S2PYA4 = Pro Evolution Soccer 2012
S2XE41 = I Puffi 2
S2XP41 = I Puffi 2
S2ZP52 = Zhu Zhu Pets: Gli Amici del Bosco
@@ -253,15 +280,17 @@ S7FPGT = Zumba Kids: Che la festa abbia inizio, con Zumba!
S7SP41 = I Puffi Party Pack
SA3P5G = Alvin Superstar 3: Si Salvi Chi Può
SA3XGT = Alvin Superstar 3: Si Salvi Chi Può
SACSVS = ACB Total 2010/2011
SALP4Q = Alice nel Paese delle Meraviglie
SAOP78 = Monster High: Scuola da Paura
SAOXVZ = Monster High: Scuola da Paura
SAYP41 = Vita da Recluta
SB7IVU = Lega Basket A 2009/2010
SB9P78 = Barbie e il salone di bellezza per cani
SBIPVZ = Acconciature e Stile
SBLP5G = A Boy and His Blob
SBRPKM = Repetto Prima Ballerina
SC4P64 = LEGO Star Wars III: La Guerra Dei Cloni
SCBPNK = Cyberbike Cycling Sports
SCIP41 = CSI: Cospirazione Letale
SCJP4Q = LEGO Pirati dei Caraibi: Il Videogioco
SCWP41 = Il Mio Coach di Fitness: Dance Workout
@@ -289,6 +318,7 @@ SG7PVL = The Garfield Show: La Minaccia della Lasagna Spaziale
SG8PAF = L'Orso Yoghi: Il Videogioco
SGDPKM = Il Giardino dei Giochi
SGLPA4 = Gormiti: Gli Eroi della Natura!
SGRPGT = Grease
SGXP41 = Combattimenti fra Giganti: Scontri fra Dinosauri
SH5P69 = Harry Potter e i Doni della Morte - Parte 2
SHDP52 = Dragon Trainer
@@ -297,7 +327,9 @@ SHMPLR = Rico la Peste
SIAI52 = L'Era Glaciale 4: Continenti alla Deriva - Giochi Polari
SIIP8P = Mario & Sonic ai Giochi Olimpici di Londra 2012
SJ2PWR = Scooby-Doo! e la palude del mistero
SJ6P41 = Just Dance Disney Party
SJ9P41 = Just Dance 2 - Extra Songs
SJDX41 = Just Dance 3 Edizione Speciale
SJXD41 = Just Dance 4 Edizione Speciale
SK4I52 = Shrek e vissero felici e contenti
SK4P52 = Shrek: E Vissero Felici E Contenti
@@ -310,14 +342,19 @@ SLVP41 = Osé: Che fai, ci provi?
SMFP4Q = Phineas e Ferb: Nella Seconda Dimensione
SMGP78 = Megamind: Un Mega Team Scatenato
SNBP41 = NCIS
SNQPLG = National Geographic Challenge!
SNYPVZ = Monster High: 13 Desideri
SOSPAF = Turbo: Acrobazie In Pista
SP8P78 = I Pinguini di Madagascar: Il Ritorno Del Dottor Blowhole!
SPBPGT = Giocaparola Party
SPDP52 = Spider-Man: Dimensions
SPVPA4 = Pro Evolution Soccer 2011
SPVXA4 = Pro Evolution Soccer 2011
SPVYA4 = Pro Evolution Soccer 2011
SPXP41 = Prince of Persia: Le Sabbie Dimenticate
SQDP8P = Gunblade NY & LA Machineguns: Arcade Hits Pack
SQQPVZ = Disney Planes 2: Missione Antincendio
SR5P41 = Raving Rabbids: Party Collection
SQVX69 = FIFA 15 - Legacy Edition
SRPP4Q = Rapunzel: L'intreccio della torre
SRXP52 = Generator Rex: Agente di Providence
SS8P78 = SpongeBob: Il Grande Creatore
@@ -337,13 +374,18 @@ STOP4Q = Cars Toon: Le Incredibili Storie di Carl Attrezzi
STSP4Q = Toy Story 3: La Grande Fuga
STSX4Q = Toy Story 3: Il Videogioco
STSY4Q = Toy Story 3: Il Videogioco
STXP69 = Tiger Woods PGA Tour 12: The Masters
STZP52 = Transformers 3: Stealth Force Edition
SU5PVZ = Monster High: Il Circuito Scheletrico
SU7PAF = Le 5 Leggende
SUUP78 = uDraw Studio: E sei subito artista!
SUXPA4 = Pro Evolution Soccer 2010
SUXXA4 = Pro Evolution Soccer 2010
SUXYA4 = Pro Evolution Soccer 2010
SV3PAF = Madagascar 3: Ricercati in Europa
SV7PVZ = I Pinguini di Madagascar
SVDP52 = SpongeBob: La Vendetta Robotica di Plankton
SVHX69 = FIFA 14 - Legacy Edition
SVMP01 = Super Mario All-Stars: Edizione per il 25° anniversario
SVQEVZ = Barbie e le sue sorelle: Salvataggio Cuccioli
SVQPVZ = Barbie e le sue sorelle: Salvataggio Cuccioli
@@ -373,10 +415,8 @@ W3GI = Phoenix Wright: Ace Attorney: Trials and Tribulations
W3MP = I Tre Moschettieri Uno per tutti!
W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker
W6BP = 530 ECO SHOOTER
W8CP = Bit.Trip Core
W8WP = Happy Holidays Halloween
W9BP = Big Town Shoot
W9RP = Happy Holidays Christmas
WA4P = WarioWare: Do It Yourself - Showcase
WA8P = Art Style: Penta Tentacles
WAEP = Around the world
@@ -384,10 +424,8 @@ WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4: Dangeresque 3
WB3P = Strong Bad Episode 5: 8-bit is Enough
WBEP = Beer Pong: Frat Party Games
WBFP = Bit.Trip Fate
WBGP = Bang Attack
WBPP = PLÄTTCHEN - twist 'n' paint
WBRP = Pirates: The Key of Dreams
WBXP = Strong Bad Episode 1: Homestar Ruiner
WBYP = Strong Bad Episode 2: Strong Badia - The Free
WBZP = Strong Bad Episode 3: Baddest of the Bands
@@ -402,7 +440,6 @@ WDMP = Dr. Mario & Sterminavirus
WDPP = Dr. Mario & Germ Buster (Friend Battle Demo)
WEMP = Aha! I Got It! Escape Game
WETP = Giochi da tavolo animati: Un'avventura pop-up!
WF2P = Final Fantasy Crystal Chronicles: My Life as a Darklord
WF4P = Final Fantasy IV: The After Years
WFCP = Final Fantasy Crystal Chronicles: My Life as a King
WFQP = Frogger: Hyper Arcade Edition
@@ -444,7 +481,6 @@ WMCP = Monsteca Corral: Monsters Vs. Robots
WMJP = Dive: The Medes Islands Secret
WMSP = Enjoy your massage!
WN9E = Military Madness: Nectaris
WN9P = Military Madness: Nectaris
WNEE = Penguins & Friends Hey! That's My Fish!
WNEP = Penguins & Friends Hey! Thats my Fish!
WNVP = Neves Plus: Phantheon of Tangrams
@@ -461,29 +497,20 @@ WRIP = Rainbow Islands: Towering Adventure!
WRJP = Racers Islands - Crazy Racers
WRLP = FAST Racing League
WRRP = Robin Hood: The Return Of Richard
WRUP = Bit.Trip Runner
WSGP = Pop Them, Drop Them SAMEGAME
WSNP = Sonic The Hedgehog 4 Episode I
WSUP = Shootanto: Evolutionary Mayhem
WTEP = Tales of Elastic Boy Mission 1
WTFP = Bit.Trip Flux
WTMP = ADVENTURE ISLAND The Beginning
WTRP = Bit.Trip Beat
WTWP = Fenimore Fillmore: The Westerner
WTXP = Texas Holdem Tournament
WU2P = Successfully Learning Mathematics Year 3
WU3P = Successfully Learning Mathematics Year 4
WU4P = Successfully Learning Mathematics Year 5
WUIP = Successfully Learning Mathematics Year 2
WVBP = Bit.Trip Void
WU2P = Successo alle elementari Matematica Classe 2a
WU3P = Successo alle elementari Matematica Classe 3a
WU4P = Successo alle elementari Matematica Classe 4a
WVOP = Rock'n Roll Climber
WVSP = Gods Vs Humans
WVUP = Mr Bumblebee Racing Champion
WW2P = Where's Wally? Fantastic Journey 2
WW3P = Where's Wally? Fantastic Journey 3
WWIP = Where's Wally? Fantastic Journey 1
WWRP = Excitebike: World Challenge
WWXP = Paper Wars Cannon Fodder
WXBP = Ben 10: Alien Force - The Rise of Hex
WYIP = escapeVektor: Chapter 1
WYSP = Yard Sale Hidden Treasures Sunnyville
@@ -497,7 +524,7 @@ XIGP = Urbanix Demo
XIHP = Gladiator Demo
XIJP = Fast Racing League Demo
XIKP = Monsteca Corral Demo
XINP = Learning with the Pooyoos Episode 1 Demo
XINP = Impara con i PooYoo Episodio 1 Demo
XIOP = Learning with the Pooyoos Episode 2 Demo
XIPP = Learning with the Pooyoos Episode 3 Demo
XITP = Fast Draw Demo
@@ -505,10 +532,7 @@ XIUP = Soccer Bashi Demo
XIVP = Mix Superstar Demo
XIZP = 3D Pixel Racing Demo
XJEP = Aya and the Cubes of Light Demo
FA9P = Zelda II: The Adventure of Link
FB2L = Super Mario Bros.: The Lost Levels
FBKP = Teenage Mutant Ninja Turles
FC8P = Castlevania II: Simon's Quest
FCSP = Probotector II: Return of the Evil Forces
FDGP = Ghosts'n Goblins
FDRP = Skate or Die
@@ -523,7 +547,6 @@ FFWP = Donkey Kong: Edizione Originale
FFXP = Super Mario Brothers: Edizione Esclusiva per il 25° Anniversario
JA4P = Super Ghouls'n Ghosts
JABL = Marios Super Picross
JADP = The Legend of Zelda: A Link to the Past
JAFP = SimCity
JAHP = R-TYPE III: The Third Lightning
JAJP = Street Fighter II: The World Warrior
@@ -538,7 +561,6 @@ JCBM = Super Mario RPG: Legend of the Seven Stars
JCDM = Kirbys Dream Land 3
JCJP = Super Punch Out!!
JCKP = Space Invaders -The Original Game-
JCTM = Ogre Battle: The March of the Black Queen
JD3P = SUPER E.D.F.: Earth Defense Force
JDJP = Super Star Wars: The Empire Strikes Back
JDLP = Super Star Wars: Return of the Jedi
@@ -561,11 +583,9 @@ MBBP = Sonic the Hedgehog 2
MBFP = Shinobi III: Return of the Ninja master
MBIP = Landstalker: The Treasures of King Nole
MBJP = Ghouls'n Ghosts
MBLP = ESWAT City Under Siege
MBMP = Sonic the Hedgehog 3
MBUP = Sonic 3D: Flickies' Island
MBWM = Columns III: Revenge of Columns
MC3P = Super Street Fighter II: The New Challengers
MCCP = Phantasy Star III: Generations of Doom
MCHM = MUSHA
MCLP = Street Fighter II: Special Champion Edition
@@ -584,7 +604,6 @@ PBSP = Chew Man Fu
PBWP = Air 'Zonk'
PCSL = DIGITAL CHAMP Battle Boxing
PDJL = Street Fighter II': Champion Edition
QA3P = SimEarth: The Living Planet
QAAP = Super Air Zonk
QABP = Ys Book I & II
QADL = Gradius II: Gofer no Yabou
@@ -637,24 +656,20 @@ LULZ = Canale Homebrew
OHBC = Canale Homebrew
G4MP69 = The Sims: Fuori Tutti
G8MP01 = Paper Mario: Il Portale Millenario
GAZI69 = Harry Potter e il Prigioniero di Azkaban
GCBP7D = Crash Bandicoot: L'ira di Cortex
GCOP52 = Call of Duty: L'Ora Degli Eroi
GDDP41 = Paperino: Oper@zione P@pero ?*!
GDOP41 = Disney's Donald Chi è PK?
GF4I52 = I Fantastici 4
GFSP69 = Mondiali FIFA 2002
GH4I69 = Harry Potter e il Calice di Fuoco
GHBP7D = Lo Hobbit
GHLZ69 = Harry Potter e la Pietra Filosofale
GHSX69 = Harry Potter e la Camera dei Segreti
GICP78 = Gli Incredibili
GKBPAF = Baten Kaitos: Le ali eterne e l'oceano perduto
GKLI69 = Il Signore degli Anelli: Il ritorno del Re
GKMP41 = Prince of Persia: I Due Troni
GLCP52 = Lemony Snicket Una serie di sfortunati eventi
GLHPG9 = Giù Per il Tubo
GLOI69 = Il Signore degli Anelli: Le Due Torri
GNEP78 = Alla ricerca di Nemo
GOSX41 = Boog & Elliot
GPXP01 = Pokémon Box: Rubino e Zaffiro
@@ -665,7 +680,8 @@ GQQH78 = SpongeBob: Ciak si gira!
GQQP78 = SpongeBob: Ciak si gira!
GQWX69 = Harry Potter: La Coppa del Mundo di Quidditch
GR9P6L = Il Regno del Fuoco
GSXI64 = Star Wars: La Guerra dei Cloni
GRSPAF = SoulCalibur II
GTKP51 = Turok Evolution
GTYP69 = Ty la Tigre della Tasmania
GVLP69 = Marvel Nemesis: L'Ascesa degli Esseri Imperfetti
GWHP41 = Winnie the Pooh e le Pance Brontolanti
+15 -9
View File
@@ -1,5 +1,8 @@
TITLES = https://www.gametdb.com (type: Wii language: JA_unique version: 20241114210137)
TITLES = https://www.gametdb.com (type: Wii language: JA_unique version: 20250826093601)
D2AJAF = みんなで冒険!ファミリートレーナー 体験版
DABJ01 = マリオカートWii 体験版
DAEJ8P = 428 ~封鎖された渋谷で~ 体験版
DAKJ01 = NewスーパーマリオブラザーズWii 体験版
DCHJAF = WE CHEER: おはスタプロデュース!限定コラボゲームディスク
DFNJ01 = Wiiフィット 体験版
DHHJ8J = 平野綾 Premiumムービーディスク from 涼宮ハルヒの激動
@@ -55,6 +58,7 @@ R5WJA4 = SILENT HILL SHATTERED MEMORIES
R5XJ13 = ぼくとシムのまち エージェント
R64J01 = Wiiミュージック
R6BJ78 = ブロブ カラフルなきぼう
R6CJAF = WE CHEER Dancing Spirits!
R6JJGD = 鋼の錬金術師 FULLMETAL ALCHEMIST -暁の王子-
R77JAF = SDガンダム Gジェネレーション ウォーズ
R79JAF = 機動戦士ガンダム MS戦線0079
@@ -261,7 +265,9 @@ RONJG9 = お姉チャンバラ Revolution
ROQJEP = バロック for Wii
ROSJ01 = タクトオブマジック
ROUJAF = ワンピース アンリミテッドクルーズ エピソード1 波に揺れる秘宝
ROWE08 = Ōkami
ROWJ08 = 大神
ROWP08 = Ōkami
RP3JAF = プロゴルファー猿
RP4J13 = ぼくとシムのまち パーティー
RP5JA4 = 実況パワフルプロ野球 15
@@ -464,7 +470,6 @@ SM8X52 = コール オブ デューティ モダン・ウォーフェア3
SMBJ8P = スーパーモンキーボール アスレチック
SMMJ0Q = モムチャンダイエットWii フィギュアロビクスby チョン・ダヨン
SMNJ01 = NewスーパーマリオブラザーズWii
SMNW01 = NewスーパーマリオブラザーズWii(繁体中国語)
SMOJ41 = マイケル・ジャクソン ザ・エクスペリエンス
SMTJ18 = 桃太郎電鉄2010 戦国・維新のヒーロー大集合!の巻
SMUJAF = 大怪獣バトル ウルトラコロシアムDX
@@ -472,7 +477,7 @@ SN4JDA = NARUTO -ナルト- 疾風伝 龍刃記
SNCJ8P = ソニックカラーズ
SNHJ13 = ニード・フォー・スピード ホット・パースート
SNVJ13 = ニード・フォー・スピード ザ・ラン
SNXJDA = NARUTO -ナルト- 疾風伝 激闘忍者大戦! Special
SNXJDA = NARUTO 疾風伝 激闘忍者大戦! Special
SO3J99 = ルーンファクトリー オーシャンズ
SOKJ18 = カラオケJOYSOUND Wii DX
SOMJ01 = みんなのリズム天国
@@ -537,12 +542,14 @@ GZ2K01 = ゼルダの伝説 トワイライトプリンセス
GZBEB2 = 金色のガッシュベル!! ゴー!ゴー!魔物ファイト!!
GZLK01 = ゼルダの伝説 風のタクト
R24E01 = Wiiであそぶ ちびロボ!
R3OK01 = メトロイド アザーエム
R7CE01 = キャプテン★レインボー
R8EEQC = アースシーカー
R8FJSC = 匠レストランは大繁盛!
RMCEYP = ヨッシーレーシングリゾートプラス
RMCJ12 = マリオカートWii カスタム(2011-11 Wiimm)
RMCJ86 = マリオカートクリス3,500CT
RMCJA2 = マリオカートWiiデラックス
RMCJBR = マリオカート Brown
RMCJYP = ヨッシーレーシングリゾートプラス
RMCKYP = ヨッシーレーシングリゾートプラス
@@ -1516,7 +1523,6 @@ RMCJ = マリオカートチャンネル
DSYA = 시스체크
D23J01 = 大乱闘スマッシュブラザーズDX ゲーム大会入賞記念 ムービーディスク
D24J01 = 大乱闘スマッシュブラザーズDX イベント用Disc
D28J01 = 月刊任天堂店頭デモ 2002年04月号
D29J01 = 月刊任天堂店頭デモ 2002年05月号
D32J01 = 月刊任天堂店頭デモ 2002年06月号
D33J01 = 月刊任天堂店頭デモ 2002年07月号
@@ -1550,7 +1556,7 @@ D79J01 = 月刊任天堂店頭デモ 2004年06月号
D82J01 = 月刊任天堂店頭デモ 2004年07月号
D84J01 = 月刊任天堂店頭デモ 2004年08月号
D85J01 = 月刊任天堂店頭デモ 2004年09月号
D86J01 = 月刊任天堂店頭デモ 2004年11月号
D86J01 = 月刊任天堂店頭デモ 2004年10月号
D87J01 = 月刊任天堂店頭デモ 2004年11月号
D88J01 = 月刊任天堂店頭デモ2004年12月号
D89J01 = クラブニンテンドー オリジナルeカタログ 2004
@@ -1634,7 +1640,6 @@ GC4JBN = 新世紀GPXサイバーフォーミュラ Road To The Evolution
GC6J01 = ポケモンコロシアム
GC8JA4 = クラッシュ・バンディクー 爆走!ニトロカート
GCBJA4 = クラッシュ・バンディクー4 さくれつ!魔神パワー
GCCJ01 = FINAL FANTASY CRYSTAL CHRONICLES
GCCJGC = FINAL FANTASY CRYSTAL CHRONICLES
GCDJ08 = バイオハザード -コード:ベロニカ- 完全版
GCMJA4 = マッスルちゃんぴょん 筋肉島の決戦
@@ -1708,9 +1713,9 @@ GK4J01 = バテン・カイトスⅡ 始まりの翼と神々の嗣子
GK6JA4 = コロッケ! バン王の危機を救え
GKAJ8P = カイジュウの島 ~アメージングアイランド~
GKBJAF = バテン・カイトス 終わらない翼と失われた海
GKCJG2 = 機動戦士ガンダム 戦士達の軌跡 角川書店連合企画 特別編
GKDJ01 = 巨人のドシン
GKEJA4 = 実況パワフルプロ野球 12 決定版
GKFJ8P = カオスフィールド エクスパンデッド
GKFJMS = カオスフィールド エクスパンデッド
GKGJ01 = ドンキーコンガ
GKJJ78 = カーズ
@@ -1741,6 +1746,7 @@ GMIJ70 = ミッションインポッシブル -Operation Surma-
GMPJ01 = マリオパーティ 4
GMSJ01 = スーパーマリオサンシャイン
GMTJ18 = ディズニーのマジカルパーク
GMXJB2 = Enter The Matrix
GMYJ8P = 激闘プロ野球 水島新司オールスターズVSプロ野球
GNBJ01 = NBAコートサイド2002
GNDJ13 = ニード・フォー・スピード アンダーグラウンド
@@ -1853,8 +1859,8 @@ GZSJDA = ゾイド バーサスⅡ
GZVJDA = ゾイド バーサスⅢ
GZWJ01 = あつまれ!! メイドインワリオ
P4BJ08 = バイオハザード 4 体験版
PCKJ01 = ポケモンコロシアム 予約特典 任天堂特製ディスク
PCSJ01 = ポケモンコロシアム 予約特典 拡張ディスク
PCKJ01 = ポケモンコロシアム 拡張ディスク
PCSJ01 = ポケモンコロシアム 任天堂特製ディスク
PD5JB2 = ドラゴンドライブ ディマスターズショット (アニメDisc)
PGPJB2 = SDガンダム ガシャポンウォーズ (Demo)
PGSJ01 = メタルギア -Special Disc-
+21 -42
View File
@@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: KO_unique version: 20241114210146)
TITLES = https://www.gametdb.com (type: Wii language: KO_unique version: 20250826093610)
091E00 = 영화 채널 설치 디스크 Ver. A
410E01 = Wii 백업 디스크 v1.31
413E01 = 디스크업데이트 디스크
@@ -6,7 +6,6 @@ D2AJAF = 모두 모험! 패밀리 트레이너 체험판
D2SE18 = 데카 스포츠 2 체험판
D3DE18 = 데카 스포츠 3 체험판
DASE4Q = 디즈니 에픽 미키 체험판
DAUEPZ = 컨트리 댄스 체험판
DAVE01 = 미스테리 케이스 파일즈: 말그레이브 사건 체험판
DAXE01 = 젤다의 전설: 스카이워드 스워드 체험판
DAXP01 = 젤다의 전설: 스카이워드 스워드 체험판
@@ -193,7 +192,6 @@ R4LPUG = 애슬레틱 피기 파티
R4LXUG = 애슬레틱 피기 파티
R4MJ0Q = 네모난 머리를 둥글게 하기 Wii
R4NE5G = 소령의 위풍당당한 행진
R4NP5G = 소령의 위풍당당한 행진
R4NX5G = 소령의 위풍당당한 행진
R4PE69 = 심즈 2: 애완동물들
R4PP69 = 심즈 2: 애완동물들
@@ -616,7 +614,6 @@ RCKPGN = 앨런 한센의 스포츠 도전
RCLE4Q = 디즈니의 치킨 리틀: 액션 에이스
RCLP4Q = 디즈니의 치킨 리틀: 액션 에이스
RCOJ99 = 명탐정 코난: 추억의 환상
RCOK99 = 명탐정 코난: 추억의 환상
RCOKZF = 명탐정 코난: 추억의 환상
RCOPNP = 명탐정 코난: 추억의 환상
RCPE18 = 코로린파: 구슬 매니아
@@ -809,7 +806,6 @@ RFKP41 = 나의 피트니스 코치: 좋은 몸을 유지합시다
RFKX41 = 나의 피트니스 코치: 좋은 몸을 유지합시다
RFLE69 = 매든 NFL 09 올 플레이
RFLP69 = 매든 NFL 09 올 플레이
RFLPWK = Wii 프리로더
RFMJAF = 프로 야구 패밀리 스타디움
RFNE01 = Wii 핏
RFNJ01 = Wii 핏
@@ -1259,7 +1255,6 @@ RMBJ01 = 슈퍼 마리오 스타디움 패밀리 베이스볼
RMCE01 = 마리오 카트 Wii
RMCJ01 = 마리오 카트 Wii
RMCK01 = 마리오 카트 Wii
RMCKBR = 마리오 카트 Brown
RMCP01 = 마리오 카트 Wii
RMDE69 = 매든 NFL 07
RMDP69 = 매든 NFL 07
@@ -1562,14 +1557,12 @@ RQKP41 = 놀이공원 파티
RQLE64 = 스타 워즈 클론 전쟁: 공화국 영웅들
RQLP64 = 스타 워즈 클론 전쟁: 공화국 영웅들
RQMEVN = 오션 커맨더
RQMPVN = 오션 커맨더
RQNEWR = 스쿠비-두! 첫 번째 공포
RQNPWR = 스쿠비-두! 첫 번째 공포
RQOE69 = 스포어 히어로
RQOJ13 = 스포어: 네가 만드는 히어로
RQOP69 = 스포어 히어로
RQPE52 = 카벨라의 트로피 벅스
RQPP52 = 카벨라의 트로피 벅스
RQPZ52 = 카벨라의 트로피 벅스 헌터
RQQE70 = 백야드 풋볼 '09
RQREXJ = 스카이 크롤러즈: 이노센트 에이스즈
@@ -1581,7 +1574,6 @@ RQTE6U = 아가사 크리스티: 그리고 아무도 없었다
RQTP6V = 아가사 크리스티: 그리고 아무도 없었다
RQUEFS = 슈퍼 픽업스
RQVE20 = 태평양 해방자
RQVP20 = 태평양 해방자
RQWEG9 = 퍼즐 퀘스트: 명장들의 도전
RQWPG9 = 퍼즐 퀘스트: 장군들의 도전
RQXP70 = 아스테릭스: 미션 올림픽 게임
@@ -1651,7 +1643,6 @@ RRUFRT = 동계 스포츠 2009: 다음 도전
RRUJJF = 동계 스포츠 2009: 다음 도전
RRUPRT = 동계 스포츠 2009: 다음 도전
RRVENR = 배틀 레이지: 기계 충돌
RRVPNR = 배틀 레이지: 로봇 대전
RRWJAF = 슈퍼 로봇 대전 NEO
RRXE5Z = 몬스터 트럭 아레나즈: 스페셜 에디션
RRXPUG = 몬스터 트럭 아레나즈
@@ -1662,14 +1653,12 @@ RRZEGY = 루빅의 세계
RRZPGY = 루빅의 퍼즐 세계
RS2E20 = 얼티밋 오리 사냥
RS2EGJ = 얼티밋 오리 사냥
RS2PGJ = 얼티밋 오리 사냥
RS3E52 = 스파이더맨 3
RS3J52 = 스파이더맨 3
RS3P52 = 스파이더맨 3
RS3X52 = 스파이더맨 3
RS4EXS = 식신의 성 III
RS4JJF = 식신의 성 III
RS4PH3 = 식신의 성 III
RS5EC8 = 사무라이 전사들: 카타나
RS5JC8 = 전국무쌍 카타나
RS5PC8 = 사무라이 전사들: 카타나
@@ -1719,7 +1708,6 @@ RSNF69 = 심슨가족 게임
RSNP69 = 심슨가족 게임
RSNX69 = 심슨가족 게임
RSOE4Z = 솔리테르 & 마작
RSOP4Z = 솔리테르 & 마작
RSPE01 = Wii 스포츠
RSPJ01 = Wii 스포츠
RSPK01 = Wii 스포츠
@@ -1763,7 +1751,6 @@ RT4JAF = 테일즈 오브 심포니아: 라타토스크의 기사
RT4PAF = 테일즈 오브 심포니아: 라타토스크의 기사
RT5E8P = 세가 슈퍼스타즈 테니스
RT5P8P = 세가 슈퍼스타즈 테니스
RT6FKM = 두갈: 마법의 회전목마
RT6PKM = 두갈: 마법의 회전목마
RT7E69 = 타이거 우즈 PGA 투어 07
RT7F69 = 타이거 우즈 PGA 투어 07
@@ -1784,7 +1771,6 @@ RTDE6K = 원숭이 왕: 전설의 시작
RTDJES = 신중화대선 ~마이클과 메이메이의 모험~
RTDK8M = 신중화대선 ~마이클과 메이메이의 모험~
RTEE78 = 파우스 & 클라우스 : 애완동물 수의사
RTEHMR = 실제 이야기들: 수의사
RTEPFR = 나의 수의사 연습
RTFE52 = 트랜스포머: 더 게임
RTFJ52 = 트랜스포머: 더 게임
@@ -1805,7 +1791,6 @@ RTKJDQ = 모두 함께~☆ 타코롱
RTKK8M = 모두 함께~☆ 타코롱
RTLE18 = 낚시 마스터: 월드 투어
RTLJ18 = 노려라! 낚시 마스터 - 세계에 도전편
RTLP18 = 낚시 마스터: 월드 투어
RTME41 = TMNT: 돌연변이 닌자 거북
RTMP41 = TMNT: 돌연변이 닌자 거북
RTNE41 = 천추: 그림자 암살자들
@@ -1823,7 +1808,6 @@ RTSEVN = 말괄량이 삼총사! 전적으로 파티
RTSP41 = 말괄량이 삼총사! 전적으로 파티
RTTJAF = 다마고치의 후리후리 가극단!
RTUEJJ = 비밀 파일: 퉁구스카
RTUFKM = 비밀 파일: 퉁구스카
RTUPKM = 비밀 파일: 퉁구스카
RTVE64 = 스릴빌: 오프 더 레일즈
RTVP64 = 스릴빌: 오프 더 레일즈
@@ -1835,7 +1819,6 @@ RTZJ08 = 보물섬 Z 발바로스의 보물
RTZK08 = 잭 & 위키: 발바로스의 보물
RTZP08 = 잭 & 위키: 발바로스의 보물 모험
RU2E5Z = 동계 스포츠 2: 다음 도전
RU2P5Z = 동계 스포츠 2: 다음 도전
RU3E5Z = 하계 육상경기: 궁극의 도전
RU4E41 = 나의 피트니스 코치 2: 운영 & 영양
RU4P41 = 뉴유 피트니스 첫 개인 트레이너
@@ -1906,7 +1889,6 @@ RUUJ01 = 타운으로 놀러가요 동물의 숲
RUUK01 = 타운으로 놀러가요 동물의 숲
RUUP01 = 타운으로 놀러가요 동물의 숲
RUWJC8 = 위닝 포스트 월드
RUXPUG = 어반 익스트림: 스트리트 레이지
RUXXUG = 어반 익스트림: 스트리트 레이지
RUYE41 = 노 모어★히어로즈 2: 혈투
RUYJ99 = 노 모어★히어로즈 2: 혈투
@@ -1973,7 +1955,6 @@ RW3E4Q = 캐리비언의 해적: 세상의 끝에서
RW3J4Q = 캐리비언의 해적: 세상의 끝에서
RW3P4Q = 캐리비언의 해적: 세상의 끝에서
RW4D41 = 내 단어 코치: 어휘 향상
RW5F41 = 백만장자가되고 싶은 사람: 2 번째 에디션
RW5P41 = 백만장자가되고 싶은 사람: 2 번째 에디션
RW6PA4 = 댄스 댄스 레볼루션: Winx 클럽
RW7E41 = 숀 화이트 스노우보딩: 로드 트립 - 타겟 리미티드 에디션
@@ -2075,13 +2056,11 @@ RXDY4Q = 씽크 패스트: 얼티밋 트리비아 쇼다운
RXEJDA = 메이저 Wii 완벽한 최종회
RXFEVN = 연안의 타이쿤
RXGE6K = 지온 큐브
RXGP6K = 지온 큐브
RXHF5D = 혼돈의 집
RXIE52 = 트랜스포머즈: 패자의 역습
RXIP52 = 트랜스포머즈: 패자의 역습
RXJJDA = 인생 게임 Wii EX
RXKEGL = TV 쇼 킹 파티
RXKFGL = TV 쇼 킹 파티
RXKPGL = TV 쇼 킹 파티
RXLE41 = 그레이스 애너토미: 비디오 게임
RXLP41 = 그레이스 애너토미: 비디오 게임
@@ -2095,7 +2074,6 @@ RXPPGT = 빅 캐치 배스 낚시
RXQEWR = 괴물들이 사는 나라
RXQPWR = 괴물들이 사는 나라
RXRERS = 작은 영웅 데스페로
RXRPRS = 작은 영웅 데스페로
RXRXRS = 작은 영웅 데스페로
RXSPA4 = 댄싱 스테이지: 가장 인기있는 파티
RXUE41 = 서핑 업
@@ -2107,7 +2085,6 @@ RXXE4Q = 스펙트로브스: 오리진스
RXXJ4Q = 스펙트로브스: 오리진스
RXXP4Q = 스펙트로브스: 오리진스
RXYE4Z = 퍼즐 도전: 십자말풀이 외.
RXYP4Z = 퍼즐 도전: 십자말풀이 외.
RXZE52 = 카벨라의 위험한 사냥 2009
RXZP52 = 카벨라의 위험한 모험
RY2E41 = 레이맨 엽기토끼 2
@@ -2138,7 +2115,6 @@ RYGE9B = 라이가: 아르고스의 전사
RYGJ9B = 아르고스의 전사 머슬 임팩트
RYGP99 = 라이가: 아르고스의 전사
RYHES5 = 루구: 뒤틀린 탑들
RYHPS5 = 루구: 뒤틀린 탑들
RYIE9B = 스프레이
RYIPNK = 스프레이
RYJPTV = 릴리피 공주의 마법 요정
@@ -2188,7 +2164,6 @@ RZEE52 = 사이언스 파파
RZEP52 = 사이언스 파파
RZFPKM = 시크릿 파일 2: 퓨리타스 코르디스
RZHE5G = 동물원 병원
RZHP5G = 동물원 병원
RZHX5G = 동물원 병원
RZIE20 = 동계 스포츠 3: 위대한 토너먼트
RZIPRT = 동계 스포츠 2010: 위대한 토너먼트
@@ -2236,6 +2211,7 @@ S2BPXT = 컨트리 댄스 2
S2CE54 = 새로운 축제 게임들
S2CP54 = 새로운 축제 유원지 게임들
S2DPML = 댄스! 그것은 너의 무대야
S2DSML = 댄스! 그것은 너의 무대야
S2EE41 = ABBA: 유 캔 댄스
S2EP41 = ABBA: 유 캔 댄스
S2HE70 = 유령의 집
@@ -2287,6 +2263,7 @@ S3DE18 = 데카 스포츠 3
S3DJ18 = 데카 스포르타 3
S3DP18 = 스포츠 아일랜드 3
S3EE78 = 바비 제트, 세트, 스타일!
S3EEVZ = 바비 제트, 세트, 스타일!
S3EP78 = 바비 제트, 세트, 스타일!
S3FE69 = 피파 13
S3FP69 = 피파 13
@@ -2347,7 +2324,6 @@ S72J01 = 별의 커비 20주년 스페셜 컬렉션
S75E69 = 모노폴리 스트리츠
S75P69 = 모노폴리 스트리츠
S7AEWR = 레고 배트맨 2: DC 슈퍼 히어로즈
S7AKWR = 레고 배트맨 2: DC 슈퍼 히어로즈
S7AKZA = 레고 배트맨 2: DC 슈퍼 히어로즈
S7APWR = 레고 배트맨 2: DC 슈퍼 히어로즈
S7BE69 = 트리비얼 퍼슈트: 당신은 그것을 알고 내기
@@ -2405,7 +2381,6 @@ SAXPFH = 맥스 & 매직 메이커
SAYE20 = 부트 캠프 아카데미
SAYP41 = 부트 캠프 아카데미
SAZE52 = 어메이징 스파이더맨
SAZP52 = 어메이징 스파이더맨
SB2ES5 = 나의 아기 첫 걸음
SB2PNP = 나의 아기 2: 나의 아기 성장
SB3E08 = 전국 바사라: 사무라이 히어로즈
@@ -2564,6 +2539,7 @@ SDVE41 = 드라이버: 샌프란시스코
SDVP41 = 드라이버: 샌프란시스코
SDWE18 = 로스트 인 쉐도우
SDWJ18 = 그림자의 탑
SDWP18 = A Shadow's Tale
SDXE4Q = 디즈니 유니버스
SDXP4Q = 디즈니 유니버스
SDYEA4 = 댄스 댄스 레볼루션
@@ -3199,7 +3175,6 @@ SRYJAF = 피트니스 파티
SRYPAF = 엑서비트: 체육관 수업 운동
SS2PFR = 하계 스포츠 2012: 정신을 느껴라
SS3EWR = 세사미 스트리트: 엘모의 동물원 모험
SS3PWR = 세사미 스트리트: 엘모의 동물원 모험
SS3UWR = 세사미 스트리트: 엘모의 동물원 모험
SS4EWR = 세사미 스트리트: 쿠키의 카운팅 카니발
SS4UWR = 세사미 스트리트: 쿠키의 카운팅 카니발
@@ -3676,6 +3651,7 @@ DMSP4Q = 싱잇스타: 디즈니 베스트
DOLL41 = 저스트 댄스 멜로디
DQAJSC = 아쿠아리우스 야구: 한계, 그 앞에 (중국어 간체)
DRP22Q = 싱잇스타 독일 락-팝 볼륨 2
DTLX01 = 액션 리플레이
DUAP01 = DU 슈퍼 마리오 브라더스: 애니버서리 에디션
DUCE01 = 커스텀 마리오카트 Wii
DUDE01 = 뉴 슈퍼 마리오 브라더스 Wii 스코비-두! 핵
@@ -3710,6 +3686,7 @@ GMSK01 = 슈퍼 마리오 선샤인
GTME01 = 대난투 스매시 브라더스 DX 트레이닝 모드
GVS32E = 버추어 스트라이터 3 버전.2002
GVS32J = 버추어 스트라이터 3 버전.2002 (트라이포스)
GVS45E = 버추어 스트라이커 4
GVS45J = 버추어 스트라이커 4
GVS46E = 버추어 스트라이커 4 버전.2006
GVS46J = 버추어 스트라이커 4 버전.2006
@@ -3775,6 +3752,7 @@ R02PEA = 싱잇스타 락 발라드즈
R14E41 = 저스트 댄스 메가
R15POH = 싱잇 스타 라디오 105
R24E01 = Wii로 즐기는 꼬마 로봇!
R3OK01 = 메트로이드: 또 다른 M
R4ZE01 = 령: 월식의 가면
R4ZP01 = 령 제로: 월식의 가면
R7FEUD = 파이널 판타지 우화집: 초코보의 던전 (언덥)
@@ -3799,6 +3777,7 @@ REVE64 = 레보 카트 64
REYE70 = 드래곤 볼 Z 격투 천하제일 무도회 3: 라틴어 버전 베타 3 업데이트 2
RFEK01 = 파이어 엠블렘 - 새벽의 여신
RFEPUD = 파이어 엠블렘: 새벽의 여신 (언덥)
RFLPWK = Wii 프리로더
RFYE70 = 드래곤 볼 Z 격투 천하제일 무도회 3: 라틴어 버전 베타 3 업데이트 3
RG0E52 = 기타 히어로 III 커스텀: 그린 데이 플러스
RG1552 = 기타 히어로 III 커스텀: 위어드 알 얀코빅
@@ -3912,7 +3891,7 @@ RMCE96 = 마리오 카트 6
RMCE98 = 마리오 카트 Wii 어썸네스
RMCE9R = 루키의 텍스처와 음악 팩
RMCEA1 = 마리오 카트 어드벤처
RMCEA2 = 마리오 카트 Wii 디럭스 -블루 에디션-
RMCEA2 = 마리오 카트 Wii 디럭스
RMCEA3 = 마리오 카트 Wii 디럭스 -레드 에디션-
RMCEA4 = 마리오 카트 Wii 디럭스 -그린 에디션-
RMCEA5 = 알파의 트랙 믹스
@@ -4002,6 +3981,7 @@ RMCK49 = Wiimms 마리오 카트-펀 2022-11.한국
RMCK50 = Wiimms 마리오 카트-텍스쳐즈 2022-12.한국
RMCK51 = Wiimms 마리오 카트 Wii 펀 2023-09.한국
RMCK86 = 마리오 카트 크리스 3.5 캐럿
RMCKBR = 마리오 카트 Brown
RMCKYP = 요시 레이싱 리조트 플러스
RMCP02 = Wiimms 마리오 카트 Wii 펀 2010-02.유럽
RMCP03 = Wiimms 마리오 카트 Wii 펀 2010-10.유럽
@@ -4137,6 +4117,10 @@ RTME70 = 드래곤 볼 Z 격투 천하제일 무도회 3 WII TSM
RU1P4Q = 디즈니 싱 잇: 싱 잇 스타 싱스타 1
RU2P4Q = 디즈니 싱 잇: 싱 잇 스타 싱스타 2
RUIGGD = 싱잇스타 너드. 80 년대
RUUE02 = 타운으로 놀러가요 동물의 숲 디럭스
RUUJ02 = 타운으로 놀러가요 동물의 숲 디럭스
RUUK02 = 타운으로 놀러가요 동물의 숲 디럭스
RUUP02 = 타운으로 놀러가요 동물의 숲 디럭스
RWDC52 = 기타 히어로 III 커스텀: WD 커스텀
RWWE52 = 기타 히어로 III 커스텀 : WWE 더 히츠
RXGC15 = 기타 히어로 III 커스텀: A7X (어벤지드 세븐폴드)
@@ -5250,7 +5234,6 @@ WRUP = 비트 트립 런너
WRXE = 메가맨 10
WRXJ = 록맨 10: 우주에서의 위협!!
WRXP = 메가맨 10
WRYE = 로복스
WRYP = 로복스
WS2J = 세계최강력성 장기
WS3E = 실버 스타: 체스
@@ -5448,7 +5431,6 @@ XHKP = 다이브: 메디아 제도의 비밀 체험판
XHLE = 제트 로켓 체험판
XHLP = 제트 로켓 체험판
XHME = 균형의 예술 체험판
XHMP = 균형의 예술 체험판
XHNP = 크로노스 트윈즈 DX 체험판
XHOP = 균형의 예술 체험판
XHQE = 좀비 패닉 체험판
@@ -5523,7 +5505,6 @@ XJIP = 2 패스트 4 흙의 정령들 체험판
XJJE = 뱀파이어 크리스탈즈 체험판
XJJP = 뱀파이어 크리스탈즈 체험판
XJSE = 카라오케 조이사운드 체험판
XJSP = 카라오케 조이사운드 Wii 체험판
FA2J = 엑시리온
FA3J = 포메이션 Z
FA4J = 데빌 월드
@@ -7889,10 +7870,11 @@ ULFW = u로더
VBGX = 비주얼 보이 어드밴스 GX
WMH1 = 머더 1+2+3
WPSX = 플레이스테이션 (PSX) 에뮬레이터
XHMP = 균형의 예술 체험판
XJSP = 카라오케 조이사운드 Wii 체험판
301E01 = 게임큐브 서비스 디스크
D23J01 = 게임 대회 우승 기념: 특제 스매시 브라더스 DX 영화 디스크
D24J01 = 스매시 브라더스 DX 이벤트 디스크
D28J01 = 인터랙티브 멀티 게임 체험판 디스크 - 2002년 4월
D29J01 = 월간 닌텐도 샵 체험판 - 2002년 5월
D32J01 = 월간 닌텐도 샵 체험판 - 2002년 6월
D33J01 = 월간 닌텐도 샵 체험판 - 2002년 7월
@@ -7982,7 +7964,6 @@ DPSJ8P = 판타지 스타 온라인 에피소드 III: C.A.R.D. 레볼루션 체
DR2JCQ = 룬 II: 코르텐 열쇠의 비밀 체험판
DRSEAF = 소울칼리버 II 체험판
DSWJ13 = 스타 워즈: 로그 스쿼드론 II 체험판
DTLX01 = 액션 리플레이
DVJP08 = 뷰티풀 조 홍보 체험판
G2BE5G = 검은 상처
G2BP7D = 검은 상처
@@ -8026,6 +8007,7 @@ G3DP6L = 카르멘 산디에고: 도난당한 드럼의 비밀
G3DX6L = 카르멘 산디에고: 도난당한 드럼의 비밀
G3EE51 = XGIII: 익스트림 G 레이싱
G3EJB0 = 익스트림 G 3
G3EP51 = XGIII: 익스트림 G 레이싱
G3FD69 = 타임스플리터즈: 퓨쳐 퍼펙트
G3FE69 = 타임스플리터즈: 퓨쳐 퍼펙트
G3FF69 = 타임스플리터즈: 퓨쳐 퍼펙트
@@ -8102,6 +8084,7 @@ G6FD69 = 2006 피파 월드컵
G6FE69 = 2006 피파 월드컵
G6FF69 = 2006 피파 월드컵
G6FP69 = 2006 피파 월드컵
G6GE69 = 2006 피파 월드컵
G6ME69 = 매든 NFL 06
G6MP69 = 매든 NFL 06
G6NE69 = NBA 라이브 06
@@ -8268,8 +8251,7 @@ GCBE7D = 크래쉬 밴디쿳: 마왕의 부활
GCBJA4 = 크래쉬 밴디쿳 4: 작렬! 마신 파워
GCBP7D = 크래쉬 밴디쿳: 마왕의 부활
GCCE01 = 파이널 판타지 크리스탈 크로니클
GCCJ01 = 파이널 판타지 크리스탈 크로니클
GCCJGC = 파이널 판타지 크리스탈 연대기
GCCJGC = 파이널 판타지 크리스탈 크로니클
GCCP01 = 파이널 판타지 크리스탈 크로니클
GCDE08 = 레지던트 이블 코드: 베로니카 X
GCDJ08 = 바이오하자드 코드: 베로니카 완전판
@@ -8500,7 +8482,6 @@ GGFJ01 = 기프트피아
GGIJ13 = 골든아이 다크 에이전트
GGKJB2 = 금색의 갓슈벨!! 우정 태그 배틀 풀 파워
GGNE5D = 빌리와 맨디의 무시무시한 모험
GGPJAF = SD 건담 가챠폰 워즈
GGPJB2 = SD 건담 가챠폰 워즈
GGRD41 = 톰 클랜시의 고스트 리콘
GGRE41 = 톰 클랜시의 고스트 리콘
@@ -8691,7 +8672,6 @@ GKDJ01 = 거인 도신
GKDP01 = 거인 도신
GKEJA4 = 실황 파워풀 프로 야구 12 결정판
GKFEGG = 카오스 필드
GKFJ8P = 카오스 필드 익스팬디드
GKFJMS = 카오스 필드 익스팬디드
GKGE01 = 동키 콩가
GKGJ01 = 동키 콩가
@@ -9335,7 +9315,6 @@ GVOE69 = 바이오니클
GVOP69 = 바이오니클
GVPE69 = MVP 야구 2004
GVRE7H = 그루브라이더 슬롯 카 썬더
GVS45E = 버추어 스트라이커 4
GVSE8P = 버추어 스트라이커 2002
GVSJ8P = 버추어 스트라이커 3 버전.2002
GVSP8P = 버추어 스트라이커 3 버전.2002
@@ -9513,8 +9492,8 @@ GZWP01 = 와리오 웨어 Inc.: 메가 파티 게임$!
P2ME01 = 메트로이드 프라임 2: 메아리 (보너스 디스크)
P4BJ08 = 바이오하자드 4 체험판
PC6E01 = 포켓몬 콜로세움 보너스 디스크
PCKJ01 = 포켓몬 콜로세움: 확장 디스크 (보너스 디스크)
PCSJ01 = 포켓몬 콜로세움 보너스 디스크
PCKJ01 = 포켓몬 콜로세움 확장 디스크
PCSJ01 = 포켓몬 콜로세움 닌텐도 특제 디스크
PD5JB2 = 드래곤 드라이브: D-마스터즈 샷 (애니메 디스크)
PGPJB2 = SD 건담 가챠폰 워즈 체험판
PGSJ01 = 메탈 기어 솔리드 - 트윈 스네이크즈 - 스페셜 디스크
+127 -45
View File
@@ -1,22 +1,29 @@
TITLES = https://www.gametdb.com (type: Wii language: NL_unique version: 20241114210155)
TITLES = https://www.gametdb.com (type: Wii language: NL_unique version: 20250826093620)
R23P52 = Barbie en De Drie Musketiers
R25PWR = LEGO Harry Potter: Jaren 1-4
R27X54 = Dora redt het Land van Kristal
R29P52 = Millennium Championship Paintball 2009
R2FP70 = Freddi Fish en het verhaal van de verdwenen zeewierzaadjes
R2WPA4 = Pro Evolution Soccer 2009
R2WXA4 = Pro Evolution Soccer 2009
R2YP54 = Mijn Verjaardag!
R33P69 = AC/DC Live: Rock Band Track Pack
R39PNK = Shimano Xtreme Fishing
R3MP01 = Metroid Prime: Trilogy
R3PPWR = Speed Racer: De Game
R42P69 = De Sims 2: Op een Onbewoond Eiland
R49P01 = Donkey Kong: Jungle Beat
R4CP69 = Simcity Creator
R4EP01 = Endless Ocean 2: Een zee vol avontuur
R4PP69 = De Sims 2: Huisdieren
R52P08 = Neopets Puzzle Adventure
R55P41 = Weekend Miljonairs 1e Editie
R5FP41 = Academy of Champions
R5PP69 = Harry Potter en de Orde van de Feniks
R5PX69 = Harry Potter en de Orde van de Feniks
R5XJ13 = MySims Agents
R6KU36 = Ashes Cricket 2009
R6OP78 = Cars Race-O-Rama
R6XP69 = Hasbro: Familie Spellen Avond 2
R72P5G = Cake Mania: In The Mix!
R7YFMR = Peking Express
@@ -32,6 +39,7 @@ R9DP78 = Drawn to Life: Het Nieuwe Hoofdstuk
R9EPNP = Brico Party
R9GPWR = Legende van Ga'Hoole
R9LP41 = Girls Life: Pyjama Party
R9TP69 = Tiger Woods PGA Tour 09 All-Play
RBVP52 = Barbie als de Eiland prinses
RC2P78 = Cars: De Internationale Race van Takel
RC2X78 = Cars: De Internationale Race van Takel
@@ -39,11 +47,15 @@ RC2Y78 = Cars: De Internationale Race van Takel
RC8P7D = Crash Bandicoot: Mind Over Mutant
RCGP54 = Carnival: Kermis Games
RCHPGT = We cheer
RCIP41 = CSI: Hard Evidence
RCLP4Q = Chicken Little: De Avonturen van Ace
RCOPNP = Case Closed - One Truth Prevails: The Mirapolis Investigation
RCVP41 = Far Cry: Vengeance
RD6PNP = SAFAR'Wii
RDLP70 = Spy Fox In Operatie Melk Weg
RDPP54 = Dora Redt de Sneeuwprinses
RDPX54 = Dora redt de Sneeuwprinses
REAF69 = Celebrity Sports Showdown
REKU41 = My Fitness Coach: Cardio Workout
REQP54 = Go, Diego, Go!: Safari Avontuur
REQX54 = Go, Diego, Go! Safari Avontuur
@@ -51,75 +63,129 @@ REQY54 = Go, Diego, Go! Safari Avontuur
REWFMR = My Horse Club
REWXMR = My Horse Club: Op zoek naar de mooie Appaloosa
REWYMR = My Horse Club: Op zoek naar de mooie Appaloosa
REYP4Q = Disney Sing It: High School Musical 3
RF3P6M = Ferrari Challenge
RF9X69 = FIFA 09 All-Play
RF9Y69 = FIFA 09 All-Play
RFKP41 = My Fitness Coach: Fit En Gezond
RFKX41 = My Fitness Coach: Fit en Gezond
RFLP69 = Madden NFL 09 All-Play
RFQP69 = FaceBreaker: K.O. Party
RFVP52 = Monkey Mischief! 20 Games
RFWPNK = Safari Adventures Africa
RFYFMR = Fort Boyard
RFZP41 = Laura's Passie Modeshow
RG6P69 = Boogie Superstar
RG9P54 = Carnival Games: Mini Golf
RGAP8P = Planet 51: Het Spel
RGHP52 = Guitar Hero III: Legends Of Rock
RGFF69 = The Godfather: Blackhand Edition
RGFI69 = The Godfather: Blackhand Edition
RGFS69 = The Godfather: Blackhand Edition
RGJP7U = George of the Jungle: Search for the Secret
RGZP70 = Godzilla Unleashed
RH2P41 = Hell's Kitchen: The Video Game
RH6P69 = Harry Potter en de Halfbloed Prins
RHDP8P = The House of The Dead 2 & 3 Return
RHKP18 = Job Island
RHNP70 = My Horse and Me
RHZP41 = Horsez: Plezier op de manege
RI2P4Q = High School Musical: Sing It!
RIGP54 = Go, Diego, Go! Het Grote Dinosaurus Avontuur
RIQPUJ = Dansen op het ijs
RJ9HMN = Think: Train je Brein
RJAD52 = Call of Duty: Modern Warfare - Reflex Edition
RJAP52 = Call of Duty: Modern Warfare - Reflex Edition
RJAX52 = Call of Duty: Modern Warfare - Reflex Edition
RJDPKM = Mijn Dierenkliniek
RJFPKM = Jillian Michaels Fitness Ultimatum 2009
RJJP8P = Jambo! Safari Animal Rescue
RJQP70 = Pajama Sam: De Helse-Jacht Op De Duistere Nacht
RJZP7U = SNK Arcade Classics Volume 1
RKFP7U = King of Fighters Collection: The Orochi Saga
RKIPUG = Kidz Sports: Ice Hockey
RKIXUG = Kidz Sports: Ice Hockey
RL2HMN = Paard & Pony: Mijn Paardenstal
RL2PFR = Paard & Pony: Mijn Paardenstal
RL7P69 = Littlest Pet Shop: Vrienden
RLDPFK = Legend Of The Dragon
RLFP64 = Star Wars The Clone Wars: Lightsaber Duels
RLHP52 = Little League World Series Baseball
RLLP70 = Go West! Een Lucky Luke Avontuur!
RLNFMR = Expeditie Robinson
RLNHMR = Expeditie Robinson
RLNIMR = Expeditie Robinson
RLRP4F = Tomb Raider: Anniversary
RLTXUG = London Taxi: Rush Hour
RLVP78 = Avatar: De Legende van Aang
RMFP68 = AMF Bowling Pinbusters!
RMNHMN = Mijn Dierenpension: Verzorg en speel met de leukste dieren!
RN3P78 = Spongebob En Zijn Vrienden: Aanval Van De Speelgoedrobots
RN3X78 = SpongeBob: Aanval van de Speelgoedrobots
RN4P41 = ANNO: Creëer een Nieuwe Wereld
RNEPDA = Naruto Shippuden: Clash of Ninja Revolution 3
RNKP69 = NERF N-Strike
RNNP4Q = De Kronieken van Narnia: Prins Caspian
RNNX4Q = De Kronieken van Narnia: Prins Caspian
RNNY4Q = De Kronieken van Narnia: Prins Caspian
RNOP01 = Another Code: R - A Journey Into Lost Memories
RNXPDA = Naruto: Clash of Ninja Revolution
RNYPDA = Naruto: Clash of Ninja Revolution 2
RO7P7D = De Legende van Spyro: De Eeuwige Nacht
RO8P7D = De Legende van Spyro: De Opkomst van een Draak
ROBPPL = Obscure 2
ROEPGT = Honden Hotel
ROJP52 = Rapala: We Fish
ROLP8P = Mario & Sonic op de Olympische Winterspelen
ROPP41 = Baas in eigen bos
ROVPHM = Playmobil Circus: Actie in de ring
ROWP08 = Ōkami
ROYX41 = Het Regent Gehaktballen
RP2P69 = Smarty Pants
RP6P41 = Petz Monkey Madness
RPKP52 = World Series of Poker: Tournament of Champions
RPLP52 = Rapala Tournament Fishing
RPSP4Q = Disney Princess: De Betoverende Reis
RPTD52 = Puppy Luv
RQ4P78 = SpongeBob Squarepants: Creatuur van de Krokante Krab
RQ5X5G = Mad Dog McCree Gunslinger Pack
RQ9F69 = NBA Live 09 All-Play
RQ9P69 = NBA Live 09 All-Play
RQ9S69 = NBA Live 09 All-Play
RQEP6V = Agatha Christie: Evil Under The Sun
RQKP41 = Fun Fair Party
RQLP64 = Star Wars The Clone Wars: Republic Heroes
RQNPWR = Scooby-Doo! Operatie Kippenvel
RQOP69 = Spore Helden
RQPP52 = cabela's big game hunter 2009
RQWPG9 = Puzzle Quest - Challenge of the Warlords
RQXP70 = Asterix en de Olympische Spelen
RR2XUG = Extreme Truck Racing
RR7PVP = Real Madrid The Game
RRBP41 = Rayman Raving Rabbids
RRCP52 = Barbie Paardenavonturen: Het Paardrijkamp
RRDP69 = Rock Band Song Pack 2
RREP69 = Rock Band Song Pack 1
RRGP52 = Madagascar 2: Escape 2 Africa
RRMP69 = Hasbro Familie Spellen Avond
RRMX69 = Hasbro: Familie Spellen Avond
RRQP52 = Shrek - Crazy Party Games
RRQX52 = Shrek - Crazy Party Games
RRSP4Q = Meet The Robinsons
RSJP41 = Broken Sword: Shadow of the Templars - The Director's Cut
RSKP52 = Shrek de Derde
RSKX52 = Shrek de Derde
RSLPAF = Soulcalibur Legends
RSND69 = The Simpsons Game
RSNF69 = The Simpsons Game
RT3P54 = Rockstar Games Presents: Table Tennis
RT6PKM = Magic Roundabout
RTEHMR = Ik ben dierenarts
RTLP18 = Fishing Master
RTMP41 = TMNT: Teenage Mutant Ninja Turtles
RTVP64 = Thrillville: Off The Rails
RTWP5D = TNA iMPACT!
RTZJ08 = Zack & Wiki: Quest For Barbaros' Treasure
RU2P5Z = RTL Winter Sports 2009: The Next Challenge
RU5P4Q = De Prinses en de Kikker
RU5X4Q = De Prinses en de Kikker
RU7X5G = Night at the Museum: Battle of the Smithsonian
RU9PGT = Diva Girls: Diva Ballerina
RUCXRT = Winter Sports 2008: The Ultimate Challenge
RUHP52 = Bakugan Battle Brawlers
RUHZ52 = Bakugan Battle Brawlers
RUIX4Q = Disney: Sing It
RUSX78 = Spongebob SquarePants: De Strijd Tegen Slijm
RUSY78 = SpongeBob Squarepants: Strijd Tegen Slijm
RV7SMR = Expeditie Robinson
@@ -127,11 +193,13 @@ RV9P78 = Avatar: De Legende van Aang - De Vuurmeester
RVAP78 = Avatar: De Legende van Aang - De Brandende Aarde
RVTPMR = Ik ben dierenarts
RVTXMR = Ik ben dierenarts
RW3P4Q = Pirates Of The Caribbean: At World's End
RW4D41 = My Word Coach - Verbeter Je Woordenschat
RW5F41 = Weekend Miljonairs 2e Editie
RW5P41 = Weekend Miljonairs 2e Editie
RW8P41 = Laura's Passie : Wilde Paarden
RWAD78 = WALL-E
RWAR78 = WALL•E
RWAY78 = WALL•E
RWFH41 = My Word Coach: Verbeter je Woordenschat
RWOP69 = Monopoly Here & Now Worldwide Edition
RWSP8P = Mario & Sonic op de Olympische Spelen
@@ -139,31 +207,50 @@ RX4PMT = Casper en de Spookschool: Spooky sportdag
RXDD4Q = Disney Th!nk Fast
RXDX4Q = Disney Th!nk Fast
RXZP52 = Cabela's Dangerous Hunts 2009
RY2P41 = Rayman Raving Rabbids 2
RY3P41 = Rayman Raving Rabbids: TV Party
RYBP69 = Boom Blox: Smash Party
RYDP6V = Pet Pals
RYEPHZ = 101-in-1 Party Megamix
RYIPNK = Spray
RYJPTV = Prinses Lillifee
RYLDSV = Germany's Next Top Model
RZLP41 = Happy Cooking Party
RZYF41 = My Word Coach: Verbeter je woordenschat
RZYP41 = My Word Coach: Verbeter je woordenschat
RZYS41 = My Word Coach: Verbeter je woordenschat
S2VPAF = Victorious: Taking the Lead
S2XE41 = De Smurfen 2
S2XP41 = De Smurfen 2
S3BPWR = Batman: The Brave and the Bold
S3EP78 = Barbie: Glam, Jet & Stijl
S3MP69 = De Sims 3
S3ZP52 = Men In Black: Alien Crisis
S5DP41 = Just Dance Disney Party 2
S6BP4Q = Brave: The Video Game
S6IP78 = Disney Princess: Betoverende Verhalen
S7DE52 = Angry Birds: Star Wars
S7DP52 = Angry Birds: Star Wars
S7FPGT = Zumba Kids: The Ultimate Zumba Dance Party
SALP4Q = Alice in Wonderland
SAOP78 = Monster High: De Graf Geest
SAOXVZ = Monster High: De Graf Geest
SARPNK = Aladin: Magic Racer
SB2PNP = My Baby 2: Mijn Baby Wordt Groot
SB6P52 = Bakugan Battle Brawlers: Defenders of the Core
SB9P78 = Barbie: Hondenshow Puppy's
SBJPAF = Ben 10: Ultimate Alien: Cosmic Destruction
SBNPG9 = Ben 10: Alien Force: Vilgax Attacks
SBBP18 = Beyblade: Metal Fusion - Counter Leone
SBLP5G = A Boy and His Blob
SBRPKM = Ballerina
SBVP78 = SpongeBob Squarepants: Boten Bots Race
SCBPNK = Cyberbike Cycling Sports
SCGPXT = Calvin Tucker's: Farm Animals Racing Tournament
SDLP78 = Krabbel's Grote Avontuur
SDMPAF = Verschrikkelijke ikke: En de rest kan stikke
SDOPLR = Doctor Who: Return To Earth
SDPP54 = Dora's Grote Verjaardag Avontuur
SDUP41 = De Smurfen: Dance Party
SDWP18 = A Shadow's Tale
SEAP69 = EA Sports Active: Extra Trainingen
SERP4Q = Disney Epic Mickey 2: The Power of 2
SESPWR = Sesamstraat: Klaar Voor De Start, Grover!
@@ -174,30 +261,53 @@ SGRPGT = Grease: the game
SGXP41 = Strijd der Giganten: Dinosaurs Vallen Aan
SHBP69 = Hasbro: Familie Spellen Avond 3
SHDP52 = Hoe Tem Je Een Draak
SHHP69 = Harry Potter and the Deathly Hallows - Part 1
SIAP52 = Ice Age 4: Continental Drift
SIIP8P = Mario & Sonic op de Olympische Spelen Londen 2012
SINPNG = We Sing: Robbie Williams
SJ2PWR = Scooby-Doo! En Het Spookmoeras
SJ6P41 = Just Dance Disney Party
SJRPA4 = Def Jam Rapstar
SJRXA4 = Def Jam Rapstar
SJRZA4 = Def Jam Rapstar
SJXD41 = Just Dance 4 Speciale Editie
SK4P52 = Shrek Voor Eeuwig En Altijd
SLHPWR = LEGO Harry Potter: Jaren 5-7
SM4PXT = Monster Trucks
SMGP78 = Megamind: Het Mega Team
SNZPVZ = Barbie: Dreamhouse Party
SODPYK = De Ontdekker en het mysterie van de Diamanten Scarabee
SP8P78 = De Pinguïns van Madagascar: Dr. Blowhole Keert Weer Terug!
SPWHZH = Het Studio 100 Speeleiland
SPVPA4 = Pro Evolution Soccer 2011
SPVXA4 = Pro Evolution Soccer 2011
SPVYA4 = Pro Evolution Soccer 2011
SQFPGT = Phineas and Ferb: Quest for Cool Stuff
SQTPML = De Strijd, Tussen Jongens En Meisjes
SR5P41 = Raving Rabbids: Party Collection
SQVP69 = FIFA 15 - Legacy Edition
SRPP4Q = Disney Rapunzel
SS8P78 = SpongeBob Squarepants: De Onnozele Krabbelaar
SSBP78 = De Gelaarsde kat
SSCDWR = Scene It? Bright Lights! Big Screen!
SSCPWR = Scene It? Bright Lights! Big Screen!
STNP41 = De avonturen van Kuifje: Het geheim van de eenhoorn
STOP4Q = Cars Toon: Takel's Sterke Verhalen
STSY4Q = Toy Story 3
STTPGR = Hidden Mysteries Titanic: Secrets of the Fateful Voyage
STYP52 = Tony Hawk : Shred
STZP52 = Transformers: Dark of the Moon - Stealth Force Edition
SUSFMR = U-Sing Johnny Hallyday
SUXPA4 = Pro Evolution Soccer 2010
SUXXA4 = Pro Evolution Soccer 2010
SUXYA4 = Pro Evolution Soccer 2010
SVDP52 = SpongeBob Squarepants: Plankton's Robotic Revenge
SVHP69 = FIFA 14 - Legacy Edition
SVMP01 = Super Mario All-Stars : 25th Anniversary Edition
SVQEVZ = Barbie En Haar Zusjes In Het Grote Puppy Avontuur
SVQPVZ = Barbie En Haar Zusjes In Het Grote Puppy Avontuur
SVTP99 = BIT.TRIP COMPLETE
SVZPVZ = Hoe Tem Je Een Draak 2
SX7E52 = Teenage Mutant Ninja Turtles
SX7P52 = Teenage Mutant Ninja Turtles
SXAP52 = Guitar Hero: World Tour
CG1P52 = Guitar Hero III Custom : Guitar Hero I
RZDPCA = The Legend of Zelda: Twilight Princess (Catalaanse vertaling)
W2FP = Physiofun: Balance Training
@@ -207,7 +317,6 @@ W3GP = Phoenix Wright Ace Attorney: Trials and Tribulations
W3MP = The Three Musketeers: One for all
W4AP = Arcade Sports: Air Hockey, Bowling, Pool, Snooker
W6BP = Eco-Shooter: Plant 530
W8CP = Bit.Trip Core
W9BP = Big Town Shoot
W9RP = Happy Holidays: Christmas
WA4P = WarioWare: Do It Yourself - Showcase
@@ -217,10 +326,8 @@ WAOP = The Very Hungry Caterpillar´s ABC
WB2P = Strong Bad Episode 4: Dangeresque 3
WB3P = Strong Bad Episode 5: 8-bit is Enough
WBEP = Beer Pong: Frat Party Games
WBFP = Bit.Trip Fate
WBGP = Bang Attack
WBPP = PLÄTTCHEN - twist 'n' paint
WBRP = Pirates: The Key of Dreams
WBXP = Strong Bad Episode 1: Homestar Ruiner
WBYP = Strong Bad Episode 2: Strong Badia - The Free
WBZP = Strong Bad Episode 3: Baddest of the Bands
@@ -235,7 +342,6 @@ WDHP = Art Style: ROTOHEX
WDPP = Dr. Mario & Germ Buster (Friend Battle Demo)
WEMP = Aha! I Got It! Escape Game
WETP = PictureBook Games: A Pop-Up Adventure
WF2P = Final Fantasy Crystal Chronicles: My Life as a Darklord
WF4P = Final Fantasy IV: The After Years
WFCP = Final Fantasy Crystal Chronicles: My Life as a King
WFQP = Frogger: Hyper Arcade Edition
@@ -274,7 +380,6 @@ WMBP = MaBoShi: The Three Shape Arcade
WMCP = Monsteca Corral: Monsters Vs. Robots
WMJP = Dive: The Medes Islands Secret
WMSP = Enjoy your massage!
WN9P = Military Madness: Nectaris
WNEP = Penguins & Friends Hey! Thats my Fish!
WNVP = Neves Plus: Phantheon of Tangrams
WOBP = Art Style: ORBIENT
@@ -290,29 +395,17 @@ WRIP = Rainbow Islands: Towering Adventure!
WRJP = Racers Islands - Crazy Racers
WRLP = FAST Racing League
WRRP = Robin Hood: The Return Of Richard
WRUP = Bit.Trip Runner
WSGP = Pop Them, Drop Them SAMEGAME
WSNP = Sonic The Hedgehog 4 Episode I
WSUP = Shootanto: Evolutionary Mayhem
WTEP = Tales of Elastic Boy Mission 1
WTFP = Bit.Trip Flux
WTMP = Adventure Island: The Beginning
WTRP = Bit.Trip Beat
WTWP = Fenimore Fillmore: The Westerner
WTXP = Texas Holdem Tournament
WU2P = Successfully Learning Mathematics Year 3
WU3P = Successfully Learning Mathematics Year 4
WU4P = Successfully Learning Mathematics Year 5
WUIP = Successfully Learning Mathematics Year 2
WVBP = Bit.Trip Void
WVOP = Rock'n Roll Climber
WVSP = Gods Vs Humans
WVUP = Mr Bumblebee Racing Champion
WW2P = Where's Wally? Fantastic Journey 2
WW3P = Where's Wally? Fantastic Journey 3
WWIP = Where's Wally? Fantastic Journey 1
WWRP = Excitebike: World Challenge
WWXP = Paper Wars Cannon Fodder
WXBP = Ben 10: Alien Force - The Rise of Hex
WYIP = escapeVektor: Chapter 1
WYSP = Yard Sale Hidden Treasures Sunnyville
@@ -326,7 +419,7 @@ XIGP = Urbanix Demo
XIHP = Gladiator Demo
XIJP = Fast Racing League Demo
XIKP = Monsteca Corral Demo
XINP = Learning with the Pooyoos Episode 1 Demo
XINP = Leren met de PooYoo's Aflevering 1 Demo
XIOP = Learning with the Pooyoos Episode 2 Demo
XIPP = Learning with the Pooyoos Episode 3 Demo
XITP = Fast Draw Demo
@@ -334,10 +427,7 @@ XIUP = Soccer Bashi Demo
XIVP = Mix Superstar Demo
XIZP = 3D Pixel Racing Demo
XJEP = Aya and the Cubes of Light Demo
FA9P = Zelda II: The Adventure of Link
FB2L = Super Mario Bros.: The Lost Levels
FBKP = Teenage Mutant Ninja Turles
FC8P = Castlevania II: Simon's Quest
FCSP = Probotector II: Return of the Evil Forces
FDGP = Ghosts'n Goblins
FDRP = Skate or Die
@@ -351,7 +441,6 @@ FFUP = Adventure Island 2
FFVM = S.C.A.T.: Special Cybernetic Attack Team
JA4P = Super Ghouls'n Ghosts
JABL = Marios Super Picross
JADP = The Legend of Zelda: A Link to the Past
JAFP = SimCity
JAHP = R-TYPE III: The Third Lightning
JAJP = Street Fighter II: The World Warrior
@@ -367,7 +456,6 @@ JCCP = Kirbys Fun Pak
JCDM = Kirbys Dream Land 3
JCJP = Super Punch Out!!
JCKP = Space Invaders -The Original Game-
JCTM = Ogre Battle: The March of the Black Queen
JD3P = SUPER E.D.F.: Earth Defense Force
JDJP = Super Star Wars: The Empire Strikes Back
JDLP = Super Star Wars: Return of the Jedi
@@ -389,11 +477,9 @@ MBBP = Sonic the Hedgehog 2
MBFP = Shinobi III: Return of the Ninja master
MBIP = Landstalker: The Treasures of King Nole
MBJP = Ghouls'n Ghosts
MBLP = ESWAT City Under Siege
MBMP = Sonic the Hedgehog 3
MBUP = Sonic 3D: Flickies' Island
MBWM = Columns III: Revenge of Columns
MC3P = Super Street Fighter II: The New Challengers
MCCP = Phantasy Star III: Generations of Doom
MCHM = MUSHA
MCLP = Street Fighter II: Special Champion Edition
@@ -412,7 +498,6 @@ PBSP = Chew Man Fu
PBWP = Air 'Zonk'
PCSL = Digital Champ: Battle Boxing
PDJL = Street Fighter II': Champion Edition
QA3P = SimEarth: The Living Planet
QAAP = Super Air Zonk
QABP = Ys Book I & II
QADL = Gradius II: Gofer no Yabou
@@ -454,14 +539,11 @@ HCFP = Wii Speak-kanaal
HCGP = Wii en Internet
HCRE = The Legend of Zelda - Skyward Sword - Save Data Update Channel
OHBC = Homebrew-Kanaal
G4BP08 = Resident Evil 4: Wii Edition
G4CP54 = Sjakie en chocolade
G4MP69 = De Sims: Erop uit!
G4OP69 = De Sims 2: Huisdieren
G4ZP69 = De Sims 2
GAZH69 = Harry Potter en de gevangene van Azkaban
GF4H52 = Fantastic Four™ and ©2005
GH4H69 = Harry Potter en de Vuurbeker
GHSP69 = Harry Potter en de Geheime Kamer
GIQX78 = The Incredibles: De opkomst van De Ondermijner
GQLP54 = Dora the Explorer: Reis naar de Paarse Planeet
+32 -6
View File
@@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: PT_unique version: 20241114210204)
TITLES = https://www.gametdb.com (type: Wii language: PT_unique version: 20250826093628)
R42P69 = Os SIMS 2: Naufragos
R43P69 = EA Sports Active
R4PP69 = Os SIMS 2: Animais de Estimação
@@ -13,6 +13,7 @@ RBYP78 = Balbúrdia Na Quinta
RCAP78 = Carros
RCAX78 = Carros
RCAY78 = Carros
RFQP69 = FaceBreaker: K.O. Party
RG6P69 = Boogie Superstar
RGQP70 = Os Caça-Fantasmas: O Vídeo Jogo
RH6P69 = Harry Potter e o Príncipe Misterioso
@@ -21,22 +22,31 @@ RJ2JGD = 007: Quantum of Solace
RL7P69 = Littlest Pet Shop: Novos Amigos
RLWP78 = Ratatui
RLWX78 = Ratatui
RNIPGT = Mind, Body & Soul: Nutrition Matters
RNKP69 = NERF N-Strike
RNNP4Q = As Crónicas de Narnia: o Príncipe Caspian
RNNX4Q = As Crónicas de Narnia: o Príncipe Caspian
RNNY4Q = As Crónicas de Narnia: o Príncipe Caspian
RNNZ4Q = As Crónicas de Narnia: o Príncipe Caspian
ROLP8P = Mario & Sonic Nos Jogos Olímpicos de Inverno
RQXP70 = Asterix Jogos Olímpicos
RT3P54 = Rockstar Games Presents: Table Tennis
RU5P4Q = A Princesa e o Sapo
RW3P4Q = Piratas das Caraibas: Nos confins do Mundo
RWAP78 = WALL•E
RWSP8P = Mario & Sonic nos Jogos Olímpicos
RYBP69 = Boom Blox: Smash Party
RZRPGT = Destiny Of Zorro
SBLP5G = A Boy and His Blob
SERF4Q = Disney Epic Mickey 2: O Regresso dos Heróis
SERP4Q = Disney Epic Mickey 2: O Regresso dos Heróis
SHDP52 = Como Treinares o teu Dragão
SIIP8P = Mario & Sonic nos Jogos Olímpicos de Londres 2012
SUXPA4 = Pro Evolution Soccer 2010
SUXXA4 = Pro Evolution Soccer 2010
SUXYA4 = Pro Evolution Soccer 2010
GFEK01 = Fire Emblem: Path of Radiance
GKQE01 = Kururin Squash
GMSE02 = Super Mario Sunshine Multijogador
PT2PSI = SingIt Portugal Hits Festa de Verão
WA4E = WarioWare: D.I.Y. Showcase
@@ -47,20 +57,17 @@ WCSP = CueSports: Snooker vs Billiards
WL2E = Target Toss Pro: Lawn Darts
WN9E = Military Madness: Nectaris
WN9J = Military Madness: Nectaris
WN9P = Military Madness: Nectaris
WPKE = Texas Hold'Em Poker
WPKP = Texas Hold'Em Poker
WRIE = Rainbow Islands: Towering Adventure!
WRIP = Rainbow Islands: Towering Adventure!
WRXJ = Mega Man 10
WSNE = Sonic The Hedgehog 4 Episode I
WSNP = Sonic The Hedgehog 4 Episode I
WTXE = Texas Holdem Tournament
WTXP = Texas Holdem Tournament
WZIE = Rubik's Puzzle Galaxy RUSH
WZIP = Rubik's Puzzle Galaxy RUSH
MC3E = Super Street Fighter II: The New Challengers
MC3P = Super Street Fighter II: The New Challengers
HAAA = Canal Photo
HAFE = Canal do Tempo
HAFP = Canal do Tempo
@@ -74,7 +81,14 @@ HATE = Canal Nintendo
HATP = Canal Nintendo
HAYA = Canal de Fotos
HCCJ = Definições do endereço
G6FE69 = 2006 FIFA World Cup
G6TE5G = Os Jovens Titãs
GAME5H = Army Men Sarge's War
GAPE52 = American Chopper 2 - Full Throttle
GAQE6S = Aquaman: Battle of Atlantis
GATE51 = ATV Quad Power Racing 2
GATP51 = ATV Quad Power Racing 2
GAVE78 = Avatar The Last Airbender
GAXE5D = Lucas: Um Intruso no Formigueiro
GAZD69 = Harry Potter e o Prisoneiro de Azkaban
GAZE69 = Harry Potter e o Prisoneiro de Azkaban
@@ -87,20 +101,32 @@ GAZP69 = Harry Potter e o Prisoneiro de Azkaban
GAZS69 = Harry Potter e o Prisoneiro de Azkaban
GB4E51 = Burnout 2: Ponto de Impacto
GB4P51 = Burnout 2: Ponto de Impacto
GCSEAF = Street Racing Syndicate
GEDJ01 = Eternal Darkness: Sanity's Requiem
GENJ13 = 007 - Everything or Nothing
GENP69 = 007: Everything Or Nothing
GFEJ01 = Fire Emblem: Path of Radiance
GHSX69 = Harry Potter e a Câmara dos Segredos
GIPEAF = Shonen Jump's One Piece: Pirates Carnival
GLZE69 = 007: From Russia With Love
GMWF52 = Minority Report: Everybody Runs
GNWE69 = Def Jam: Fight For NY
GNWP69 = Def Jam: Fight For NY
GO7E69 = 007: NightFire
GP3E78 = O Expresso Polar
GPQE6L = As Meninas Super-Poderosas: Relish Rampage
GR9E6L = Reino de Fogo
GT6E70 = O Exterminador do Futuro 3: A Redenção
GTEE01 = 1080° Avalanche
GTEP01 = 1080° Avalanche
GTWE70 = Taz Wanted
GUBE69 = Os Urbz: Sims na Cidade
GW7E69 = 007: Agent Under Fire
GUFE4Z = Ultimate Fighting Championship Throwdown
GW7F69 = 007: Agent Under Fire
GW7P69 = 007: Agent Under Fire
GWEP8P = 18 Wheeler American Pro Trucker
GWKE41 = Peter Jackson's King Kong: O Jogo Oficial do Filme
GXFF69 = FIFA Footeball 2004
GXFI69 = FIFA Footeball 2004
GXFP69 = FIFA Football
GXNE5D = Rampage Total Destruction
GZQE7D = Robôs
+9 -4
View File
@@ -1,13 +1,19 @@
TITLES = https://www.gametdb.com (type: Wii language: RU_unique version: 20241114210212)
TITLES = https://www.gametdb.com (type: Wii language: RU_unique version: 20250826093636)
R5IR4Q = История игрушек: Парк развлечений
RMFE68 = AMF Bowling Pinbusters!
RMFP68 = AMF Bowling Pinbusters!
RN4P41 = Anno: Create A New World
RWAR78 = Валл-И
RXDR4Q = Disney Отвечай Не Зевай
RY2R41 = Возвращение бешеных кроликов
RYBP69 = BOOM BLOX Bash Party
S3AE5G = Attack of the Movies 3D
S3APGT = Attack of the Movies 3D
SALE4Q = Alice in Wonderland
SALP4Q = Alice in Wonderland
SBLE5G = A Boy and His Blob
SBLP5G = A Boy and His Blob
SJXD41 = Just Dance 4 Специальное издание
SKSE54 = NBA 2K13(美)
SP5E70 = 恶徒 来自地底的侵略者(美)
STNP41 = Приключения Тинтина: Тайна Единорога
GMSE02 = Супер Марио Саншайн Мультиплеер
SOMR01 = Ритм небес
@@ -18,4 +24,3 @@ HAPP = Канал конкурсов Mii
HATP = Канал Nintendo
HAYA = Фотоканал
HCCJ = Настройки адреса
G3EP51 = XGIII: 익스트림 G 레이싱
+8 -29
View File
@@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: ZHCN_unique version: 20241114210219)
TITLES = https://www.gametdb.com (type: Wii language: ZHCN_unique version: 20250826093643)
410E01 = Wii 备份盘 v1.31(美)
D2AJAF = 运动生活 探险家 试玩版(日)
D2SE18 = 德卡运动会2 试玩版(美)
@@ -186,7 +186,6 @@ R4LPUG = 田径猪派对(欧)
R4LXUG = 田径猪派对(X)
R4MJ0Q = 使头脑变灵活Wii(日)
R4NE5G = 大小调的庄严进行曲(美)
R4NP5G = 大小调的庄严进行曲(欧)
R4NX5G = 大小调的庄严进行曲(欧)
R4PE69 = 模拟人生2 宠物(美)
R4PP69 = 模拟人生2 宠物(欧)
@@ -803,7 +802,6 @@ RFKP41 = 我的健康教练(欧)
RFKX41 = 我的健康教练(X)
RFLE69 = 美式橄榄球大联盟09(美)
RFLP69 = 美式橄榄球大联盟09[WiFi](欧)
RFLPWK = 美式橄榄球大联盟09[WiFi](欧)
RFMJAF = 职棒家庭棒球场[WiFi](日)
RFNE01 = Wii塑身[平衡板](美)
RFNJ01 = Wii塑身[平衡板](日)
@@ -1551,14 +1549,12 @@ RQKP41 = 聚会游乐园(欧)
RQLE64 = 星球大战之克隆战争 共和国英雄(美)
RQLP64 = 星球大战之克隆战争 共和国英雄(欧)
RQMEVN = 海底指挥官(美)
RQMPVN = 海底指挥官(欧)
RQNEWR = 史酷比最初恐惧(美)
RQNPWR = 史酷比最初恐惧(欧)
RQOE69 = 孢子英雄(美)
RQOJ13 = 孢子英雄(日)
RQOP69 = 孢子英雄(欧)
RQPE52 = 坎贝拉的猎鹿(美)
RQPP52 = 坎贝拉的猎鹿(欧)
RQPZ52 = 坎贝拉的猎鹿人(Z)
RQQE70 = 后院橄榄球09(美)
RQREXJ = 空中杀手 无瑕王牌(美或中)
@@ -1570,7 +1566,6 @@ RQTE6U = 阿加莎·克里斯蒂 童谣谋杀案(美)
RQTP6V = 阿加莎·克里斯蒂 童谣谋杀案(欧)
RQUEFS = 超级小卡车(美)
RQVE20 = 太平洋解放者(美)
RQVP20 = 太平洋解放者(美)
RQWEG9 = 益智之迷 战神的挑战(美)
RQWPG9 = 益智之迷 战神的挑战(欧)
RQXP70 = 奥运会上的阿斯特里克斯(欧)
@@ -1639,7 +1634,6 @@ RRUFRT = 冬季运动会2009 下一个挑战[平衡板](法)
RRUJJF = 冬季运动会2009 下一个挑战[平衡板](日)
RRUPRT = 冬季运动会2009 下一个挑战[平衡板](欧)
RRVENR = 战斗愤怒 机器人战争(美)
RRVPNR = 战斗愤怒 机器人战争(欧)
RRWJAF = 超级机器人大战NEO(日)
RRXE5Z = 怪物卡车竞技场(美)
RRXPUG = 怪物卡车竞技场(欧)
@@ -1650,14 +1644,12 @@ RRZEGY = 魔方世界(美)
RRZPGY = 魔方世界(欧)
RS2E20 = 终极猎鸭(美)
RS2EGJ = 终极猎鸭(美)
RS2PGJ = 终极猎鸭(欧)
RS3E52 = 蜘蛛侠3(美)
RS3J52 = 蜘蛛侠3(日)
RS3P52 = 蜘蛛侠3(欧)
RS3X52 = 蜘蛛侠3(X)
RS4EXS = 式神之城3(美)
RS4JJF = 式神之城3(日)
RS4PH3 = 式神之城3(欧)
RS5EC8 = 战国无双KATANA(美)
RS5JC8 = 战国无双 KATANA(日)
RS5PC8 = 战国无双 KATANA(欧)
@@ -1706,7 +1698,6 @@ RSNF69 = 辛普森一家(法)
RSNP69 = 辛普森一家(欧)
RSNX69 = 辛普森一家(X)
RSOE4Z = 纸牌麻将游戏专辑(美)
RSOP4Z = 纸牌麻将游戏专辑(欧)
RSPE01 = Wii运动(美)
RSPJ01 = Wii运动(日)
RSPK01 = Wii运动(韩)
@@ -1750,7 +1741,6 @@ RT4JAF = 仙乐传说 拉塔托斯克的骑士(日)
RT4PAF = 仙乐传说 拉塔托斯克的骑士(欧)
RT5E8P = 世嘉超级明星网球(美)
RT5P8P = 世嘉超级明星网球(欧)
RT6FKM = 神奇的旋转木马(法)
RT6PKM = 神奇的旋转木马(欧)
RT7E69 = 泰格伍兹高尔夫巡回赛07(美)
RT7F69 = 泰格伍兹高尔夫巡回赛07(法)
@@ -1771,7 +1761,6 @@ RTDE6K = 新中华大仙 米迦勒与美美的冒险(美)
RTDJES = 新中华大仙 米迦勒与美美的冒险(日)
RTDK8M = 新中华大仙 米迦勒与美美的冒险(韩)
RTEE78 = 我的宠物医院(美)
RTEHMR = 我的宠物医院(荷)
RTEPFR = 我的宠物医院(欧)
RTFE52 = 变形金刚 游戏(美)
RTFJ52 = 变形金刚 游戏(日)
@@ -1792,7 +1781,6 @@ RTKJDQ = 章鱼大作战[WiFi](日)
RTKK8M = 章鱼大作战[WiFi](韩)
RTLE18 = 目标!钓鱼大师 世界版(美)
RTLJ18 = 目标!钓鱼大师 世界版(日)
RTLP18 = 目标!钓鱼大师 世界版(欧)
RTME41 = 忍者神龟2007旋风再起(美)
RTMP41 = 忍者神龟2007旋风再起(欧)
RTNE41 = 天诛4(美)
@@ -1810,7 +1798,6 @@ RTSEVN = 特工少女组 狂欢派对(美)
RTSP41 = 特工少女组 狂欢派对(欧)
RTTJAF = 电子鸡宠物店(日)
RTUEJJ = 秘密档案 通古斯(美)
RTUFKM = 秘密档案 通古斯(法)
RTUPKM = 秘密档案 通古斯(欧)
RTVE64 = 主题公园 惊奇世界(美)
RTVP64 = 主题公园 惊奇世界(欧)
@@ -1822,7 +1809,6 @@ RTZJ08 = 宝岛Z 巴尔巴罗斯的秘宝(日)
RTZK08 = 宝岛Z 巴尔巴罗斯的秘宝(韩)
RTZP08 = 宝岛Z 巴尔巴罗斯的秘宝(欧)
RU2E5Z = 冬季运动会2 下一个挑战[平衡板](美)
RU2P5Z = 冬季运动会2 下一个挑战[平衡板](欧)
RU3E5Z = 夏季田径运动会(美)
RU4E41 = 我的健身教练2 运动与营养(美)
RU4X41 = 新个人健身教练[平衡板](X)
@@ -1890,7 +1876,6 @@ RUUJ01 = 动物之森 城市大家庭[WiFi](日)
RUUK01 = 动物之森 城市大家庭(韩)
RUUP01 = 动物之森 城市大家庭(欧)
RUWJC8 = 胜利赛马世界(日)
RUXPUG = 都市极限飚车 街道之怒(欧)
RUXXUG = 都市极限飚车 街道之怒(X)
RUYE41 = 英雄不再2 垂死挣扎(美)
RUYJ99 = 英雄不再2:垂死挣扎(日)
@@ -1957,7 +1942,6 @@ RW3E4Q = 加勒比海盗 世界的尽头(美)
RW3J4Q = 加勒比海盗 世界的尽头(日)
RW3P4Q = 加勒比海盗 世界的尽头(欧)
RW4D41 = 我的词汇教练(德)
RW5F41 = 谁想成为百万富翁?第二集(法)
RW5P41 = 谁想成为百万富翁?第二集(欧)
RW6PA4 = 劲舞革命 美少女俱乐部(欧)
RW7E41 = 肖恩怀特滑雪[平衡板](美)
@@ -2059,13 +2043,11 @@ RXDY4Q = 灵机一动(Y)
RXEJDA = 棒球大联盟Wii(日)
RXFEVN = 海洋大亨(美)
RXGE6K = 吉纶立方(美)
RXGP6K = 吉纶立方(欧)
RXHF5D = 混沌之家(法)
RXIE52 = 变形金刚2 卷土重来[WiFi](美)
RXIP52 = 变形金刚2 卷土重来[WiFi](欧)
RXJJDA = 人生游戏Wii EX(日)
RXKEGL = 电视秀之王聚会(美)
RXKFGL = 电视秀之王聚会(法)
RXKPGL = 电视秀之王聚会(欧)
RXLE41 = 实习医生格蕾(美)
RXLP41 = 医生格蕾(欧)
@@ -2079,7 +2061,6 @@ RXPPGT = 实感钓鱼(欧)
RXQEWR = 野兽家园(美)
RXQPWR = 野兽家园(欧)
RXRERS = 浪漫鼠德佩罗(美)
RXRPRS = 浪漫鼠德佩罗(欧)
RXRXRS = 浪漫的老鼠(欧)
RXSPA4 = 劲舞革命 劲爆舞会(欧)
RXUE41 = 冲浪企鹅(美)
@@ -2091,7 +2072,6 @@ RXXE4Q = 化石超进化 起源(美)
RXXJ4Q = 化石超进化 起源(日)
RXXP4Q = 化石超进化 起源(欧)
RXYE4Z = 更多的难题挑战(美)
RXYP4Z = 更多的难题挑战(欧)
RXZE52 = 坎贝拉危险狩猎2009(美)
RXZP52 = 卡贝拉危险狩猎2009(欧)
RY2E41 = 雷曼 疯狂兔子2(美)
@@ -2122,7 +2102,6 @@ RYGE9B = 阿尔戈斯战士 筋肉冲击(美)
RYGJ9B = 阿尔戈斯战士 筋肉冲击(日)
RYGP99 = 阿尔戈斯战士 筋肉冲击(欧)
RYHES5 = 虚拟宇宙 扭曲之塔(美)
RYHPS5 = 虚拟宇宙 扭曲之塔(欧)
RYIE9B = 涂鸦王子(美)
RYIPNK = 涂鸦王子(欧)
RYJPTV = 莉莉菲公主 魔法小仙女(欧)
@@ -2171,7 +2150,6 @@ RZEE52 = 科学爸爸(美)
RZEP52 = 科学爸爸(欧)
RZFPKM = 秘密档案2 清心(欧)
RZHE5G = 动物医院[WiFi](美)
RZHP5G = 动物医院[WiFi](欧)
RZHX5G = 动物医院[WiFi](X)
RZIE20 = 冬季运动会3 超级联赛[WiFi](美)
RZIPRT = RTL冬季运动会2010(欧)
@@ -2217,6 +2195,7 @@ S2BEPZ = 乡村舞蹈2(美)
S2CE54 = 新嘉年华游戏[MP](美)
S2CP54 = 新嘉年华游戏[MP](欧)
S2DPML = 跳吧!这是你的舞台(欧)
S2DSML = 跳吧!这是你的舞台(欧)
S2EE41 = 舞力全开 ABBA(美)
S2EP41 = 舞力全开 ABBA(欧)
S2HE70 = 鬼屋(美)
@@ -2257,6 +2236,7 @@ S3DE18 = 德卡运动会3(美)
S3DJ18 = 德卡运动会3(日)
S3DP18 = 德卡运动会3[MP][WiFi](欧)
S3EE78 = 芭比娃娃 时尚风格(美)
S3EEVZ = 芭比娃娃 时尚风格(美)
S3EP78 = 芭比娃娃 时尚风格(欧)
S3EXVZ = 芭比娃娃 时尚风格(X)
S3FE69 = FIFA足球13(美)
@@ -2350,7 +2330,6 @@ SAWP52 = 愤怒的小鸟 三部曲(欧)
SAYE20 = 新兵训练营学院(美)
SAYP41 = 新兵训练营学院(欧)
SAZE52 = 蜘蛛人 惊奇再起(美)
SAZP52 = 蜘蛛人 惊奇再起(欧)
SB2ES5 = 我宝宝的第一步(美)
SB2PNP = 我的宝贝2[WiFi](欧)
SB3E08 = 战国 BASARA 3(美)
@@ -2876,7 +2855,7 @@ SMNE01 = 新超级马里奥兄弟Wii(美)
SMNJ01 = 新超级马里奥兄弟Wii(日)
SMNK01 = 新超级马里奥兄弟Wii(韩)
SMNP01 = 新超级马里奥兄弟Wii(欧)
SMNW01 = 新超级马里奥兄弟Wii()
SMNW01 = 新超级马里奥兄弟Wii()
SMOE41 = 迈克尔·杰克逊 舞王体验(美)
SMOJ41 = 迈克尔·杰克逊 舞王体验(日)
SMOP41 = 迈克尔杰克逊 生涯(欧)
@@ -2974,7 +2953,7 @@ SP2E01 = Wii运动+Wii运动 度假胜地(美)
SP2P01 = Wii运动+Wii运动 度假胜地(欧)
SP3E41 = 百万美金金字塔(美)
SP4PJW = 法式滚球[MP](法)
SP5E70 = 自地底的侵略者(美)
SP5E70 = 自地底的侵略者(美)
SP5PVV = 恶徒 来自地底的侵略者(欧)
SP6DSV = 超级女声(德)
SP7EAF = 吃豆人派对(美)
@@ -3069,7 +3048,6 @@ SRYEAF = 动感塑身派对(美)
SRYJAF = 动感塑身派对(日)
SRYPAF = 动感塑身派对(欧)
SS3EWR = 芝麻街 埃尔默动物园历险记(美)
SS3PWR = 芝麻街 埃尔默动物园历险记(欧)
SS3UWR = 芝麻街 埃尔默动物园历险记(欧)
SS4EWR = 芝麻街 饼干计数嘉年华(美)
SS4UWR = 芝麻街 饼干计数嘉年华(美)
@@ -3479,6 +3457,7 @@ R01PET = 自制 唱吧 下载版(欧)
R02PEA = 自制 唱吧 下载版(欧)
R15POH = 自制 唱吧 Radio 105(欧)
R24E01 = 用Wii游玩小小机器人(美)
R3OK01 = 密特罗德 另一个M(日或中)
R4ZE01 = 自制 零月蚀之假面(美)
R4ZP01 = 自制 零月蚀之假面(欧)
R8FJSC = 匠餐厅大繁盛! 简体中文版
@@ -3486,6 +3465,7 @@ R8PC01 = 超级纸片马里奥(中)
RCCR78 = 自制 吉他英雄3 Coheed与Cambria(欧)
RCOC99 = 名侦探柯南 追忆的幻想(中)
RDUE01 = DU超级马里奥兄弟 寻找公主
RFLPWK = 美式橄榄球大联盟09[WiFi](欧)
RG0E52 = 自制 吉他英雄 年轻岁月 加强版(美)
RG1552 = 自制 吉他英雄 Weird Al Yankovic(?)
RG1E52 = 自制 吉他英雄3 Revenge(美)
@@ -3890,7 +3870,7 @@ HAKC = 使用协议
HAPE = Mii交流频道(美)
HAPP = Mii交流频道(欧)
HAYA = 照片频道
HAYC = 片频道
HAYC = 片频道
HBNJ = 电视之友频道
HCCJ = 地址设置
HCDJ = 数码相机打印频道
@@ -3931,7 +3911,6 @@ JODI = 自制频道(欧)
LULZ = 自制频道(欧)
OHBC = 自制频道(欧)
VBGX = VBA模拟器(欧)
G4ME69 = The Sims: Bustin' Out
G4SJ01 = 塞尔达传说 四支剑(日或中)
G8MJ01 = 纸片马里奥 千年之门(日或中)
G8MP01 = Paper Mario: The Thousand-year Door
+8 -26
View File
@@ -1,4 +1,4 @@
TITLES = https://www.gametdb.com (type: Wii language: ZHTW_unique version: 20241114210228)
TITLES = https://www.gametdb.com (type: Wii language: ZHTW_unique version: 20250826093652)
410E01 = Wii 備份光碟 v1.31(美)
D2AJAF = 運動生活 探險家 試玩版(日)
D2SE18 = 運動大集錦2 試玩版(美)
@@ -187,7 +187,6 @@ R4LPUG = 田徑豬派對(歐)
R4LXUG = 田徑豬派對(X)
R4MJ0Q = 使頭腦變靈活Wii(日)
R4NE5G = 大小調的莊嚴進行曲(美)
R4NP5G = 大小調的莊嚴進行曲(歐)
R4NX5G = 大小調的莊嚴進行曲(X)
R4PE69 = 模擬人生2 寵物(美)
R4PP69 = 模擬人生2 寵物(歐)
@@ -804,7 +803,6 @@ RFKP41 = 我的健康教練(歐)
RFKX41 = 我的健康教練(X)
RFLE69 = 勁爆美式足球09(美)
RFLP69 = 勁爆美式足球09[WiFi](歐)
RFLPWK = 美式橄欖球大聯盟09[WiFi](歐)
RFMJAF = 職棒家庭棒球場[WiFi](日)
RFNE01 = Wii塑身[平衡板](美)
RFNJ01 = Wii塑身[平衡板](日)
@@ -1552,14 +1550,12 @@ RQKP41 = 聚會遊樂園(歐)
RQLE64 = 星際大戰複製人之戰 共和國英雄(美)
RQLP64 = 星際大戰複製人之戰 共和國英雄(歐)
RQMEVN = 海底指揮官(美)
RQMPVN = 海底指揮官(歐)
RQNEWR = 史酷比 最初恐懼(美)
RQNPWR = 史酷比 最初恐懼(歐)
RQOE69 = 孢子英雄(美)
RQOJ13 = 孢子英雄(日)
RQOP69 = 孢子英雄(歐)
RQPE52 = 坎貝拉的獵鹿(美)
RQPP52 = 坎貝拉的獵鹿(歐)
RQPZ52 = 坎貝拉的獵鹿人(Z)
RQQE70 = 後院橄欖球09(美)
RQREXJ = 空中殺手 無罪王牌(美或中)
@@ -1571,7 +1567,6 @@ RQTE6U = 阿加莎·克里斯蒂 童謠謀殺案(美)
RQTP6V = 阿加莎·克里斯蒂 童謠謀殺案(歐)
RQUEFS = 超級小卡車(美)
RQVE20 = 太平洋解放者(美)
RQVP20 = 太平洋解放者(美)
RQWEG9 = 益智之迷 戰神的挑戰(美)
RQWPG9 = 益智之迷 戰神的挑戰(歐)
RQXP70 = 奧運會上的阿斯特里克斯(歐)
@@ -1640,7 +1635,6 @@ RRUFRT = 冬季運動會2009 下一個挑戰[平衡板](法)
RRUJJF = 冬季運動會2009[平衡板](日)
RRUPRT = 冬季運動會2009[平衡板](歐)
RRVENR = 戰士之怒 機器人戰爭(美)
RRVPNR = 戰士之怒 機器人戰爭(歐)
RRWJAF = 超級機器人大戰NEO(日)
RRXE5Z = 怪物卡車競技場(美)
RRXPUG = 怪物卡車競技場(歐)
@@ -1651,14 +1645,12 @@ RRZEGY = 魔方世界(美)
RRZPGY = 魔方世界(歐)
RS2E20 = 終極獵鴨(美)
RS2EGJ = 終極獵鴨(美)
RS2PGJ = 終極獵鴨(歐)
RS3E52 = 蜘蛛人3(美)
RS3J52 = 蜘蛛人3(日)
RS3P52 = 蜘蛛人3(歐)
RS3X52 = 蜘蛛人3(X)
RS4EXS = 式神之城3(美)
RS4JJF = 式神之城3(日)
RS4PH3 = 式神之城3(歐)
RS5EC8 = 戰國無雙KATANA(美)
RS5JC8 = 戰國無雙 KATANA(日)
RS5PC8 = 戰國無雙 KATANA(歐)
@@ -1707,7 +1699,6 @@ RSNF69 = 辛普森一家(法)
RSNP69 = 辛普森一家(歐)
RSNX69 = 辛普森一家(X)
RSOE4Z = 紙牌麻將遊戲專輯(美)
RSOP4Z = 紙牌麻將遊戲專輯(歐)
RSPE01 = Wii運動(美)
RSPJ01 = Wii運動(日)
RSPK01 = Wii運動(韓)
@@ -1751,7 +1742,6 @@ RT4JAF = 時空幻境 交響曲傳奇 拉塔特斯克的騎士(日)
RT4PAF = 時空幻境 交響曲傳奇 拉塔特斯克的騎士(歐)
RT5E8P = SEGA 超級巨星網球(美)
RT5P8P = SEGA 超級巨星網球(歐)
RT6FKM = 神奇的旋轉木馬(法)
RT6PKM = 神奇的旋轉木馬(歐)
RT7E69 = 老虎伍茲高爾夫巡迴賽07(美)
RT7F69 = 老虎伍茲高爾夫巡迴賽07(法)
@@ -1772,7 +1762,6 @@ RTDE6K = 新.中華大仙 米迦勒與美美的冒險(美)
RTDJES = 新.中華大仙 米迦勒與美美的冒險(日)
RTDK8M = 新.中華大仙 米迦勒與美美的冒險(韓)
RTEE78 = 我的寵物醫院(美)
RTEHMR = 我的寵物醫院(荷)
RTEPFR = 我的寵物醫院(歐)
RTFE52 = 變形金剛(美)
RTFJ52 = 變形金剛(日)
@@ -1793,7 +1782,6 @@ RTKJDQ = 章魚大作戰[WiFi](日)
RTKK8M = 章魚大作戰[WiFi](韓)
RTLE18 = 目標!釣魚大師 世界版(美)
RTLJ18 = 垂釣大師 2 挑戰世界篇(日)
RTLP18 = 目標!釣魚大師 世界版(歐)
RTME41 = 忍者龜 旋風再起(美)
RTMP41 = 忍者龜 旋風再起(歐)
RTNE41 = 天誅4(美)
@@ -1811,7 +1799,6 @@ RTSEVN = 特工少女組 狂歡派對(美)
RTSP41 = 特工少女組 狂歡派對(歐)
RTTJAF = 電子雞寵物店(日)
RTUEJJ = 秘密檔案 通古斯加(美)
RTUFKM = 秘密檔案 通古斯(法)
RTUPKM = 秘密檔案 通古斯(歐)
RTVE64 = 模擬樂園 驚奇世界(美)
RTVP64 = 模擬樂園 驚奇世界(歐)
@@ -1823,7 +1810,6 @@ RTZJ08 = 寶島Z 紅鬍子的秘寶(日)
RTZK08 = 寶島Z 巴爾巴羅斯的秘寶(韓)
RTZP08 = 寶島Z 紅鬍子的秘寶(歐)
RU2E5Z = 冬季運動會2 下一個挑戰[平衡板](美)
RU2P5Z = 冬季運動會2 下一個挑戰[平衡板](歐)
RU3E5Z = 夏季田徑運動會(美)
RU4E41 = 我的健身教練2 鍛煉與營養(美)
RU4X41 = 新健身首選私人教練[平衡板](X)
@@ -1891,7 +1877,6 @@ RUUJ01 = 動物之森 城市大家庭(日)
RUUK01 = 動物之森 城市大家庭(韓)
RUUP01 = 動物之森 城市大家庭(歐)
RUWJC8 = 賽馬大亨世界(日)
RUXPUG = 都市極限飚車 街道之怒(歐)
RUXXUG = 都市極限飚車 街道之怒(X)
RUYE41 = 英雄不再2 垂死掙扎(美)
RUYJ99 = 英雄不再2:垂死掙扎(日)
@@ -1958,7 +1943,6 @@ RW3E4Q = 神鬼奇航 世界的盡頭(美)
RW3J4Q = 神鬼奇航 世界的盡頭(日)
RW3P4Q = 神鬼奇航 世界的盡頭(歐)
RW4D41 = 我的詞匯教練(德)
RW5F41 = 誰想成為百萬富翁?第二集(法)
RW5P41 = 誰想成為百萬富翁?第二集(歐)
RW6PA4 = 熱舞革命 美少女俱樂部(歐)
RW7E41 = 夏恩懷特滑雪[平衡板](美)
@@ -2060,13 +2044,11 @@ RXDY4Q = 靈機一動(Y)
RXEJDA = 棒球大聯盟Wii(日)
RXFEVN = 近海大亨(美)
RXGE6K = 吉綸立方(美)
RXGP6K = 吉綸立方(歐)
RXHF5D = 混沌之家(法)
RXIE52 = 變形金剛2 復仇之戰[WiFi](美)
RXIP52 = 變形金剛2 復仇之戰[WiFi](歐)
RXJJDA = 人生遊戲Wii EX(日)
RXKEGL = 電視秀之王聚會(美)
RXKFGL = 電視秀之王聚會(法)
RXKPGL = 電視秀之王聚會(歐)
RXLE41 = 實習醫生格蕾(美)
RXLP41 = 實習醫生格蕾(歐)
@@ -2080,7 +2062,6 @@ RXPPGT = 實感釣魚(歐)
RXQEWR = 野獸冒險樂園(美)
RXQPWR = 野獸冒險樂園(歐)
RXRERS = 雙鼠記(美)
RXRPRS = 浪漫鼠德佩羅(歐)
RXRXRS = 浪漫的老鼠(歐)
RXSPA4 = 勁舞革命 勁爆舞會(歐)
RXUE41 = 衝浪季節(美)
@@ -2092,7 +2073,6 @@ RXXE4Q = 化石超進化 起源(美)
RXXJ4Q = 化石超進化 起源(日)
RXXP4Q = 化石超進化 起源(歐)
RXYE4Z = 更多的難題挑戰(美)
RXYP4Z = 更多的難題挑戰(歐)
RXZE52 = 坎貝拉危險狩獵2009(美)
RXZP52 = 坎貝拉危險狩獵2009(歐)
RY2E41 = 雷曼超人 瘋狂兔子2(美)
@@ -2123,7 +2103,6 @@ RYGE9B = 阿格斯戰士 肌肉衝擊(美)
RYGJ9B = 阿格斯戰士 肌肉衝擊(日)
RYGP99 = 阿格斯戰士 肌肉衝擊(歐)
RYHES5 = 虛擬宇宙 扭曲之塔(美)
RYHPS5 = 虛擬宇宙 扭曲之塔(歐)
RYIE9B = 涂鴉王子(美)
RYIPNK = 涂鴉王子(歐)
RYJPTV = 莉莉菲公主 魔法小仙女(歐)
@@ -2172,7 +2151,6 @@ RZEE52 = 科學老爸(美)
RZEP52 = 科學老爸(歐)
RZFPKM = 秘密檔案2 清心(歐)
RZHE5G = 動物醫院[WiFi](美)
RZHP5G = 動物醫院[WiFi](歐)
RZHX5G = 動物醫院[WiFi](X)
RZIE20 = 冬季運動會3(美)
RZIPRT = RTL冬季運動會2010(歐)
@@ -2218,6 +2196,7 @@ S2BEPZ = 鄉村舞蹈2(美)
S2CE54 = 新遊戲狂歡節[MP](美)
S2CP54 = 新遊戲狂歡節[MP](歐)
S2DPML = 跳舞這是你的舞台(歐)
S2DSML = 跳舞這是你的舞台(歐)
S2EE41 = 舞力全開 ABBA(美)
S2EP41 = 舞力全開 ABBA(歐)
S2HE70 = 鬼屋(美)
@@ -2256,6 +2235,7 @@ S3DE18 = 運動大集錦3 Wii的十項運動[MP][WiFi](美)
S3DJ18 = 運動大集錦3 Wii的十項運動(日)
S3DP18 = 運動大集錦3 Wii的十項運動[MP][WiFi]((歐)
S3EE78 = 芭比娃娃 時尚風格(美)
S3EEVZ = 芭比娃娃 時尚風格(美)
S3EP78 = 芭比娃娃 時尚風格(歐)
S3FE69 = FIFA足球13(美)
S3FP69 = FIFA足球13(歐)
@@ -2347,7 +2327,6 @@ SAWP52 = 憤怒的小鳥 三部曲(歐)
SAYE20 = 新兵訓練營學院(美)
SAYP41 = 新兵訓練營學院(歐)
SAZE52 = 蜘蛛人 驚奇再起(美)
SAZP52 = 蜘蛛人 驚奇再起(歐)
SB2ES5 = 我寶寶的第一步(美)
SB2PNP = 我的寶貝2[WiFi](歐)
SB3E08 = 戰國 BASARA 3(美)
@@ -2787,6 +2766,7 @@ SKMJAF = 假面騎士 巔峰英雄W(日)
SKOEA4 = 卡拉OK革命 歡樂合唱團3(美)
SKOPA4 = 卡拉OK革命歡樂合唱團3(美)
SKREG9 = 假面騎士 龍騎士(美)
SKSE54 = NBA 2K13(美)
SKSP54 = NBA 2K13(歐)
SKTE78 = 全明星空手道(美)
SKTP78 = 全明星空手道(歐)
@@ -2866,7 +2846,7 @@ SMNE01 = 新超級瑪利歐兄弟Wii(美)
SMNJ01 = 新超級瑪利歐兄弟Wii(日)
SMNK01 = 新超級瑪利歐兄弟Wii(韓)
SMNP01 = 新超級瑪利歐兄弟Wii(歐)
SMNW01 = 新超級瑪利歐兄弟Wii()
SMNW01 = 新超級瑪利歐兄弟Wii()
SMOE41 = 麥可·傑克森 舞王體驗(美)
SMOJ41 = 麥可·傑克森 舞王體驗(日)
SMOP41 = 麥可傑克森 舞王體驗(美)
@@ -2962,6 +2942,7 @@ SP2E01 = Wii運動+Wii運動 度假勝地(美)
SP2P01 = Wii運動+Wii運動 度假勝地(歐
SP3E41 = 百萬美金金字塔(美)
SP4PJW = 法式滾球(法)
SP5E70 = 惡徒 來自地底的侵略者(美)
SP5PVV = 惡徒 來自地底的侵略者(歐)
SP6DSV = 明星(歐)
SP7EAF = 小精靈派對(美)
@@ -3054,7 +3035,6 @@ SRYEAF = 動感塑身派對(美)
SRYJAF = 動感塑身派對(日)
SRYPAF = 動感塑身派對(歐)
SS3EWR = 芝麻街埃爾默動物園歷險記(美)
SS3PWR = 芝麻街埃爾默動物園歷險記(歐)
SS3UWR = 芝麻街埃爾默動物園歷險記(歐)
SS4EWR = 芝麻街餅乾計數嘉年華(美)
SS4UWR = 芝麻街餅乾計數嘉年華(美)
@@ -3397,11 +3377,13 @@ R01PET = 自制 唱吧 下載版(歐)
R02PEA = 自制 唱吧 下載版(歐)
R15POH = 自製 唱吧 Radio 105(歐)
R24E01 = 用Wii遊玩小小機器人(美)
R3OK01 = 密特羅德 另一個 M(日或中)
R4ZE01 = 零月蝕之假面(美)
R4ZP01 = 零月蝕之假面(歐)
R8PC01 = 超級紙片瑪利歐(中)
RCOC99 = 名偵探柯南 追憶的幻想(中)
RDUE01 = DU超級瑪利歐兄弟 尋找公主
RFLPWK = 美式橄欖球大聯盟09[WiFi](歐)
RG0E52 = 吉他英雄 年輕歲月 加強版(美)
RG1552 = 自制 吉他英雄 怪人奧爾(?)
RG1E52 = 自制 吉他英雄3 復仇(美)
+12 -30
View File
@@ -1,34 +1,16 @@
option(SDL2_DISABLE_SDL2MAIN "" ON)
option(SDL2_DISABLE_INSTALL "" ON)
option(SDL2_DISABLE_UNINSTALL "" ON)
option(SDL_SHARED "Build a shared version of the library" OFF)
option(SDL_SHARED_ENABLED_BY_DEFAULT "" OFF)
option(SDL_STATIC "Build a static version of the library" ON)
option(SDL_STATIC_ENABLED_BY_DEFAULT "" ON)
option(SDL_TEST "Build the SDL2_test library" OFF)
option(SDL_TEST_ENABLED_BY_DEFAULT "" OFF)
# SDL fails to clean up old headers after version upgrades, so do that manually
set(EXPECTED_SDL_REVISION "SDL-release-2.30.9-0")
if (EXISTS "${CMAKE_CURRENT_BINARY_DIR}/SDL/include/SDL2/SDL_revision.h")
file(READ "${CMAKE_CURRENT_BINARY_DIR}/SDL/include/SDL2/SDL_revision.h" ACTUAL_SDL_REVISION)
if (NOT "${ACTUAL_SDL_REVISION}" MATCHES "${EXPECTED_SDL_REVISION}")
message(STATUS "Found unexpected SDL2/SDL_revision.h, removing generated includes.")
file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/SDL/include/")
endif()
endif()
if (EXISTS "${CMAKE_CURRENT_BINARY_DIR}/SDL/include/SDL_revision.h")
file(READ "${CMAKE_CURRENT_BINARY_DIR}/SDL/include/SDL_revision.h" ACTUAL_SDL_REVISION)
if (NOT "${ACTUAL_SDL_REVISION}" MATCHES "${EXPECTED_SDL_REVISION}")
message(STATUS "Found unexpected SDL_revision.h, removing generated includes.")
file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/SDL/include/")
endif()
endif()
set(SDL_SHARED OFF)
set(SDL_STATIC ON)
set(SDL_TEST_LIBRARY OFF)
set(SDL_TESTS OFF)
set(SDL_DISABLE_INSTALL ON)
set(SDL_DISABLE_INSTALL_DOCS ON)
set(SDL_INSTALL_TESTS OFF)
add_subdirectory(SDL)
if (TARGET SDL2)
dolphin_disable_warnings(SDL2)
if (TARGET SDL3)
dolphin_disable_warnings(SDL3)
endif()
if (TARGET SDL2-static)
dolphin_disable_warnings(SDL2-static)
if (TARGET SDL3-static)
dolphin_disable_warnings(SDL3-static)
endif()
+210 -126
View File
@@ -17,147 +17,165 @@
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>SDL\src;SDL\include;SDL\include\build_config;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>HAVE_LIBC=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="SDL\include\begin_code.h" />
<ClInclude Include="SDL\include\close_code.h" />
<ClInclude Include="SDL\include\SDL_assert.h" />
<ClInclude Include="SDL\include\SDL_atomic.h" />
<ClInclude Include="SDL\include\SDL_audio.h" />
<ClInclude Include="SDL\include\SDL_bits.h" />
<ClInclude Include="SDL\include\SDL_blendmode.h" />
<ClInclude Include="SDL\include\SDL_clipboard.h" />
<ClInclude Include="SDL\include\SDL_config_windows.h" />
<ClInclude Include="SDL\include\SDL_config.h" />
<ClInclude Include="SDL\include\SDL_copying.h" />
<ClInclude Include="SDL\include\SDL_cpuinfo.h" />
<ClInclude Include="SDL\include\SDL_egl.h" />
<ClInclude Include="SDL\include\SDL_endian.h" />
<ClInclude Include="SDL\include\SDL_error.h" />
<ClInclude Include="SDL\include\SDL_events.h" />
<ClInclude Include="SDL\include\SDL_filesystem.h" />
<ClInclude Include="SDL\include\SDL_gamecontroller.h" />
<ClInclude Include="SDL\include\SDL_gesture.h" />
<ClInclude Include="SDL\include\SDL_guid.h" />
<ClInclude Include="SDL\include\SDL_haptic.h" />
<ClInclude Include="SDL\include\SDL_hidapi.h" />
<ClInclude Include="SDL\include\SDL_hints.h" />
<ClInclude Include="SDL\include\SDL_joystick.h" />
<ClInclude Include="SDL\include\SDL_keyboard.h" />
<ClInclude Include="SDL\include\SDL_keycode.h" />
<ClInclude Include="SDL\include\SDL_loadso.h" />
<ClInclude Include="SDL\include\SDL_locale.h" />
<ClInclude Include="SDL\include\SDL_log.h" />
<ClInclude Include="SDL\include\SDL_main.h" />
<ClInclude Include="SDL\include\SDL_messagebox.h" />
<ClInclude Include="SDL\include\SDL_metal.h" />
<ClInclude Include="SDL\include\SDL_misc.h" />
<ClInclude Include="SDL\include\SDL_mouse.h" />
<ClInclude Include="SDL\include\SDL_mutex.h" />
<ClInclude Include="SDL\include\SDL_name.h" />
<ClInclude Include="SDL\include\SDL_opengl_glext.h" />
<ClInclude Include="SDL\include\SDL_opengl.h" />
<ClInclude Include="SDL\include\SDL_opengles.h" />
<ClInclude Include="SDL\include\SDL_opengles2_gl2.h" />
<ClInclude Include="SDL\include\SDL_opengles2_gl2ext.h" />
<ClInclude Include="SDL\include\SDL_opengles2_gl2platform.h" />
<ClInclude Include="SDL\include\SDL_opengles2_khrplatform.h" />
<ClInclude Include="SDL\include\SDL_opengles2.h" />
<ClInclude Include="SDL\include\SDL_pixels.h" />
<ClInclude Include="SDL\include\SDL_platform.h" />
<ClInclude Include="SDL\include\SDL_power.h" />
<ClInclude Include="SDL\include\SDL_quit.h" />
<ClInclude Include="SDL\include\SDL_rect.h" />
<ClInclude Include="SDL\include\SDL_render.h" />
<ClInclude Include="SDL\include\SDL_revision.h" />
<ClInclude Include="SDL\include\SDL_rwops.h" />
<ClInclude Include="SDL\include\SDL_scancode.h" />
<ClInclude Include="SDL\include\SDL_sensor.h" />
<ClInclude Include="SDL\include\SDL_shape.h" />
<ClInclude Include="SDL\include\SDL_stdinc.h" />
<ClInclude Include="SDL\include\SDL_surface.h" />
<ClInclude Include="SDL\include\SDL_system.h" />
<ClInclude Include="SDL\include\SDL_syswm.h" />
<ClInclude Include="SDL\include\SDL_thread.h" />
<ClInclude Include="SDL\include\SDL_timer.h" />
<ClInclude Include="SDL\include\SDL_touch.h" />
<ClInclude Include="SDL\include\SDL_types.h" />
<ClInclude Include="SDL\include\SDL_version.h" />
<ClInclude Include="SDL\include\SDL_video.h" />
<ClInclude Include="SDL\include\SDL_vulkan.h" />
<ClInclude Include="SDL\include\SDL.h" />
<ClInclude Include="SDL\include\SDL3\SDL_begin_code.h" />
<ClInclude Include="SDL\include\SDL3\SDL_camera.h" />
<ClInclude Include="SDL\include\SDL3\SDL_close_code.h" />
<ClInclude Include="SDL\include\SDL3\SDL.h" />
<ClInclude Include="SDL\include\SDL3\SDL_assert.h" />
<ClInclude Include="SDL\include\SDL3\SDL_atomic.h" />
<ClInclude Include="SDL\include\SDL3\SDL_audio.h" />
<ClInclude Include="SDL\include\SDL3\SDL_bits.h" />
<ClInclude Include="SDL\include\SDL3\SDL_blendmode.h" />
<ClInclude Include="SDL\include\SDL3\SDL_clipboard.h" />
<ClInclude Include="SDL\include\SDL3\SDL_copying.h" />
<ClInclude Include="SDL\include\SDL3\SDL_cpuinfo.h" />
<ClInclude Include="SDL\include\SDL3\SDL_egl.h" />
<ClInclude Include="SDL\include\SDL3\SDL_endian.h" />
<ClInclude Include="SDL\include\SDL3\SDL_error.h" />
<ClInclude Include="SDL\include\SDL3\SDL_events.h" />
<ClInclude Include="SDL\include\SDL3\SDL_filesystem.h" />
<ClInclude Include="SDL\include\SDL3\SDL_gamepad.h" />
<ClInclude Include="SDL\include\SDL3\SDL_gpu.h" />
<ClInclude Include="SDL\include\SDL3\SDL_guid.h" />
<ClInclude Include="SDL\include\SDL3\SDL_haptic.h" />
<ClInclude Include="SDL\include\SDL3\SDL_hints.h" />
<ClInclude Include="SDL\include\SDL3\SDL_hidapi.h" />
<ClInclude Include="SDL\include\SDL3\SDL_asyncio.h" />
<ClInclude Include="SDL\include\SDL3\SDL_joystick.h" />
<ClInclude Include="SDL\include\SDL3\SDL_keyboard.h" />
<ClInclude Include="SDL\include\SDL3\SDL_keycode.h" />
<ClInclude Include="SDL\include\SDL3\SDL_loadso.h" />
<ClInclude Include="SDL\include\SDL3\SDL_locale.h" />
<ClInclude Include="SDL\include\SDL3\SDL_log.h" />
<ClInclude Include="SDL\include\SDL3\SDL_main.h" />
<ClInclude Include="SDL\include\SDL3\SDL_messagebox.h" />
<ClInclude Include="SDL\include\SDL3\SDL_metal.h" />
<ClInclude Include="SDL\include\SDL3\SDL_misc.h" />
<ClInclude Include="SDL\include\SDL3\SDL_mouse.h" />
<ClInclude Include="SDL\include\SDL3\SDL_mutex.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengl.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengl_glext.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_gl2.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_gl2ext.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_gl2platform.h" />
<ClInclude Include="SDL\include\SDL3\SDL_opengles2_khrplatform.h" />
<ClInclude Include="SDL\include\SDL3\SDL_pen.h" />
<ClInclude Include="SDL\include\SDL3\SDL_pixels.h" />
<ClInclude Include="SDL\include\SDL3\SDL_platform.h" />
<ClInclude Include="SDL\include\SDL3\SDL_platform_defines.h" />
<ClInclude Include="SDL\include\SDL3\SDL_power.h" />
<ClInclude Include="SDL\include\SDL3\SDL_process.h" />
<ClInclude Include="SDL\include\SDL3\SDL_properties.h" />
<ClInclude Include="SDL\include\SDL3\SDL_rect.h" />
<ClInclude Include="SDL\include\SDL3\SDL_render.h" />
<ClInclude Include="SDL\include\SDL3\SDL_revision.h" />
<ClInclude Include="SDL\include\SDL3\SDL_iostream.h" />
<ClInclude Include="SDL\include\SDL3\SDL_scancode.h" />
<ClInclude Include="SDL\include\SDL3\SDL_sensor.h" />
<ClInclude Include="SDL\include\SDL3\SDL_stdinc.h" />
<ClInclude Include="SDL\include\SDL3\SDL_storage.h" />
<ClInclude Include="SDL\include\SDL3\SDL_surface.h" />
<ClInclude Include="SDL\include\SDL3\SDL_system.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_assert.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_common.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_compare.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_crc32.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_font.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_fuzzer.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_harness.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_log.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_md5.h" />
<ClInclude Include="SDL\include\SDL3\SDL_test_memory.h" />
<ClInclude Include="SDL\include\SDL3\SDL_thread.h" />
<ClInclude Include="SDL\include\SDL3\SDL_time.h" />
<ClInclude Include="SDL\include\SDL3\SDL_timer.h" />
<ClInclude Include="SDL\include\SDL3\SDL_touch.h" />
<ClInclude Include="SDL\include\SDL3\SDL_version.h" />
<ClInclude Include="SDL\include\SDL3\SDL_video.h" />
<ClInclude Include="SDL\include\SDL3\SDL_vulkan.h" />
<ClInclude Include="SDL\src\audio\directsound\SDL_directsound.h" />
<ClInclude Include="SDL\src\audio\disk\SDL_diskaudio.h" />
<ClInclude Include="SDL\src\audio\dummy\SDL_dummyaudio.h" />
<ClInclude Include="SDL\src\audio\SDL_audio_c.h" />
<ClInclude Include="SDL\src\audio\SDL_audio_channel_converters.h" />
<ClInclude Include="SDL\src\audio\SDL_audio_resampler_filter.h" />
<ClInclude Include="SDL\src\audio\SDL_audiodev_c.h" />
<ClInclude Include="SDL\src\audio\SDL_sysaudio.h" />
<ClInclude Include="SDL\src\audio\SDL_audioqueue.h" />
<ClInclude Include="SDL\src\audio\SDL_audioresample.h" />
<ClInclude Include="SDL\src\audio\SDL_wave.h" />
<ClInclude Include="SDL\src\audio\wasapi\SDL_wasapi.h" />
<ClInclude Include="SDL\src\audio\winmm\SDL_winmm.h" />
<ClInclude Include="SDL\src\camera\SDL_camera_c.h" />
<ClInclude Include="SDL\src\camera\SDL_syscamera.h" />
<ClInclude Include="SDL\src\core\windows\SDL_directx.h" />
<ClInclude Include="SDL\src\core\windows\SDL_gameinput.h" />
<ClInclude Include="SDL\src\core\windows\SDL_hid.h" />
<ClInclude Include="SDL\src\core\windows\SDL_immdevice.h" />
<ClInclude Include="SDL\src\core\windows\SDL_windows.h" />
<ClInclude Include="SDL\src\core\windows\SDL_xinput.h" />
<ClInclude Include="SDL\src\cpuinfo\SDL_cpuinfo_c.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi_overrides.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi_procs.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi.h" />
<ClInclude Include="SDL\src\dynapi\SDL_dynapi_unsupported.h" />
<ClInclude Include="SDL\src\events\blank_cursor.h" />
<ClInclude Include="SDL\src\events\default_cursor.h" />
<ClInclude Include="SDL\src\events\scancodes_ascii.h" />
<ClInclude Include="SDL\src\events\scancodes_windows.h" />
<ClInclude Include="SDL\src\events\SDL_categories_c.h" />
<ClInclude Include="SDL\src\events\SDL_clipboardevents_c.h" />
<ClInclude Include="SDL\src\events\SDL_displayevents_c.h" />
<ClInclude Include="SDL\src\events\SDL_dropevents_c.h" />
<ClInclude Include="SDL\src\events\SDL_events_c.h" />
<ClInclude Include="SDL\src\events\SDL_gesture_c.h" />
<ClInclude Include="SDL\src\events\SDL_eventwatch_c.h" />
<ClInclude Include="SDL\src\events\SDL_keyboard_c.h" />
<ClInclude Include="SDL\src\events\SDL_log.h" />
<ClInclude Include="SDL\src\events\SDL_keymap_c.h" />
<ClInclude Include="SDL\src\events\SDL_mouse_c.h" />
<ClInclude Include="SDL\src\events\SDL_touch_c.h" />
<ClInclude Include="SDL\src\events\SDL_windowevents_c.h" />
<ClInclude Include="SDL\src\filesystem\SDL_sysfilesystem.h" />
<ClInclude Include="SDL\src\gpu\SDL_sysgpu.h" />
<ClInclude Include="SDL\src\gpu\vulkan\SDL_gpu_vulkan_vkfuncs.h" />
<ClInclude Include="SDL\src\io\SDL_asyncio_c.h" />
<ClInclude Include="SDL\src\io\SDL_sysasyncio.h" />
<ClInclude Include="SDL\src\haptic\SDL_haptic_c.h" />
<ClInclude Include="SDL\src\haptic\SDL_syshaptic.h" />
<ClInclude Include="SDL\src\haptic\windows\SDL_dinputhaptic_c.h" />
<ClInclude Include="SDL\src\haptic\windows\SDL_windowshaptic_c.h" />
<ClInclude Include="SDL\src\haptic\windows\SDL_xinputhaptic_c.h" />
<ClInclude Include="SDL\src\hidapi\hidapi\hidapi.h" />
<ClInclude Include="SDL\src\hidapi\SDL_hidapi_c.h" />
<ClInclude Include="SDL\src\joystick\controller_type.h" />
<ClInclude Include="SDL\src\joystick\hidapi\steam\controller_constants.h" />
<ClInclude Include="SDL\src\joystick\hidapi\steam\controller_structs.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapi_nintendo.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapi_rumble.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapijoystick_c.h" />
<ClInclude Include="SDL\src\joystick\steam\SDL_steamcontroller.h" />
<ClInclude Include="SDL\src\joystick\SDL_gamecontrollerdb.h" />
<ClInclude Include="SDL\src\joystick\hidapi\SDL_hidapi_rumble.h" />
<ClInclude Include="SDL\src\joystick\SDL_gamepad_c.h" />
<ClInclude Include="SDL\src\joystick\SDL_gamepad_db.h" />
<ClInclude Include="SDL\src\joystick\SDL_joystick_c.h" />
<ClInclude Include="SDL\src\joystick\SDL_steam_virtual_gamepad.h" />
<ClInclude Include="SDL\src\joystick\SDL_sysjoystick.h" />
<ClInclude Include="SDL\src\joystick\controller_list.h" />
<ClInclude Include="SDL\src\joystick\usb_ids.h" />
<ClInclude Include="SDL\src\joystick\virtual\SDL_virtualjoystick_c.h" />
<ClInclude Include="SDL\src\joystick\windows\SDL_dinputjoystick_c.h" />
<ClInclude Include="SDL\src\joystick\windows\SDL_rawinputjoystick_c.h" />
<ClInclude Include="SDL\src\joystick\windows\SDL_windowsjoystick_c.h" />
<ClInclude Include="SDL\src\joystick\windows\SDL_xinputjoystick_c.h" />
<ClInclude Include="SDL\src\libm\math_libm.h" />
<ClInclude Include="SDL\src\libm\math_private.h" />
<ClInclude Include="SDL\src\locale\SDL_syslocale.h" />
<ClInclude Include="SDL\src\main\SDL_main_callbacks.h" />
<ClInclude Include="SDL\src\misc\SDL_sysurl.h" />
<ClInclude Include="SDL\src\power\SDL_syspower.h" />
<ClInclude Include="SDL\src\render\direct3d\SDL_shaders_d3d.h" />
<ClInclude Include="SDL\src\render\direct3d11\SDL_shaders_d3d11.h" />
<ClInclude Include="SDL\src\render\direct3d12\SDL_render_d3d12_xbox.h" />
<ClInclude Include="SDL\src\render\direct3d12\SDL_shaders_d3d12.h" />
<ClInclude Include="SDL\src\render\opengl\SDL_glfuncs.h" />
<ClInclude Include="SDL\src\render\opengl\SDL_shaders_gl.h" />
<ClInclude Include="SDL\src\render\direct3d\SDL_shaders_d3d.h" />
<ClInclude Include="SDL\src\render\opengles2\SDL_gles2funcs.h" />
<ClInclude Include="SDL\src\render\opengles2\SDL_shaders_gles2.h" />
<ClInclude Include="SDL\src\render\opengl\SDL_glfuncs.h" />
<ClInclude Include="SDL\src\render\opengl\SDL_shaders_gl.h" />
<ClInclude Include="SDL\src\render\SDL_d3dmath.h" />
<ClInclude Include="SDL\src\render\SDL_sysrender.h" />
<ClInclude Include="SDL\src\render\SDL_yuv_sw_c.h" />
@@ -170,38 +188,54 @@
<ClInclude Include="SDL\src\render\software\SDL_render_sw_c.h" />
<ClInclude Include="SDL\src\render\software\SDL_rotate.h" />
<ClInclude Include="SDL\src\render\software\SDL_triangle.h" />
<ClInclude Include="SDL\src\render\vulkan\SDL_shaders_vulkan.h" />
<ClInclude Include="SDL\src\SDL_assert_c.h" />
<ClInclude Include="SDL\src\SDL_dataqueue.h" />
<ClInclude Include="SDL\src\SDL_error_c.h" />
<ClCompile Include="SDL\src\camera\dummy\SDL_camera_dummy.c" />
<ClCompile Include="SDL\src\camera\mediafoundation\SDL_camera_mediafoundation.c" />
<ClCompile Include="SDL\src\camera\SDL_camera.c" />
<ClCompile Include="SDL\src\dialog\SDL_dialog.c" />
<ClCompile Include="SDL\src\dialog\SDL_dialog_utils.c" />
<ClCompile Include="SDL\src\filesystem\SDL_filesystem.c" />
<ClCompile Include="SDL\src\filesystem\windows\SDL_sysfsops.c" />
<ClCompile Include="SDL\src\io\windows\SDL_asyncio_windows_ioring.c" />
<ClCompile Include="SDL\src\gpu\SDL_gpu.c" />
<ClCompile Include="SDL\src\gpu\d3d12\SDL_gpu_d3d12.c" />
<ClCompile Include="SDL\src\gpu\vulkan\SDL_gpu_vulkan.c" />
<ClCompile Include="SDL\src\io\generic\SDL_asyncio_generic.c" />
<ClCompile Include="SDL\src\io\SDL_asyncio.c" />
<ClCompile Include="SDL\src\main\generic\SDL_sysmain_callbacks.c" />
<ClCompile Include="SDL\src\main\SDL_main_callbacks.c" />
<ClCompile Include="SDL\src\main\SDL_runapp.c" />
<ClCompile Include="SDL\src\main\windows\SDL_sysmain_runapp.c" />
<ClCompile Include="SDL\src\render\vulkan\SDL_render_vulkan.c" />
<ClCompile Include="SDL\src\render\vulkan\SDL_shaders_vulkan.c" />
<ClCompile Include="SDL\src\SDL_guid.c" />
<ClInclude Include="SDL\src\SDL_hashtable.h" />
<ClInclude Include="SDL\src\SDL_hints_c.h" />
<ClInclude Include="SDL\src\SDL_internal.h" />
<ClInclude Include="SDL\src\SDL_list.h" />
<ClInclude Include="SDL\src\SDL_utils_c.h" />
<ClInclude Include="SDL\src\SDL_log_c.h" />
<ClInclude Include="SDL\src\SDL_properties_c.h" />
<ClInclude Include="SDL\src\sensor\dummy\SDL_dummysensor.h" />
<ClInclude Include="SDL\src\sensor\SDL_sensor_c.h" />
<ClInclude Include="SDL\src\sensor\SDL_syssensor.h" />
<ClInclude Include="SDL\src\sensor\windows\SDL_windowssensor.h" />
<ClInclude Include="SDL\src\stdlib\SDL_vacopy.h" />
<ClInclude Include="SDL\src\thread\generic\SDL_syscond_c.h" />
<ClInclude Include="SDL\src\thread\SDL_systhread.h" />
<ClInclude Include="SDL\src\thread\SDL_thread_c.h" />
<ClInclude Include="SDL\src\thread\generic\SDL_syscond_c.h" />
<ClInclude Include="SDL\src\thread\windows\SDL_sysmutex_c.h" />
<ClInclude Include="SDL\src\thread\generic\SDL_sysrwlock_c.h" />
<ClInclude Include="SDL\src\thread\windows\SDL_systhread_c.h" />
<ClInclude Include="SDL\src\timer\SDL_timer_c.h" />
<ClInclude Include="SDL\src\video\dummy\SDL_nullevents_c.h" />
<ClInclude Include="SDL\src\video\dummy\SDL_nullframebuffer_c.h" />
<ClInclude Include="SDL\src\video\dummy\SDL_nullvideo.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h264std.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h264std_decode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h264std_encode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h265std.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h265std_decode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codec_h265std_encode.h" />
<ClInclude Include="SDL\src\video\khronos\vk_video\vulkan_video_codecs_common.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_icd.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_layer.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_platform.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vk_sdk_platform.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_android.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_beta.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_core.h" />
@@ -211,38 +245,45 @@
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_ios.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_macos.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_metal.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_screen.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_vi.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_wayland.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_win32.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xcb.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xlib_xrandr.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xlib.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan.h" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan.hpp" />
<ClInclude Include="SDL\src\video\khronos\vulkan\vulkan_xlib_xrandr.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenevents_c.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenframebuffer_c.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenopengles.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenvideo.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenvulkan.h" />
<ClInclude Include="SDL\src\video\offscreen\SDL_offscreenwindow.h" />
<ClInclude Include="SDL\src\video\SDL_blit.h" />
<ClInclude Include="SDL\src\video\SDL_blit_auto.h" />
<ClInclude Include="SDL\src\video\SDL_blit_copy.h" />
<ClInclude Include="SDL\src\video\SDL_blit_slow.h" />
<ClInclude Include="SDL\src\video\SDL_blit.h" />
<ClInclude Include="SDL\src\video\SDL_clipboard_c.h" />
<ClInclude Include="SDL\src\video\SDL_egl_c.h" />
<ClInclude Include="SDL\src\video\SDL_pixels_c.h" />
<ClInclude Include="SDL\src\video\SDL_rect_c.h" />
<ClInclude Include="SDL\src\video\SDL_RLEaccel_c.h" />
<ClInclude Include="SDL\src\video\SDL_shape_internals.h" />
<ClInclude Include="SDL\src\video\SDL_stb_c.h" />
<ClInclude Include="SDL\src\video\SDL_surface_c.h" />
<ClInclude Include="SDL\src\video\SDL_sysvideo.h" />
<ClInclude Include="SDL\src\video\SDL_vulkan_internal.h" />
<ClInclude Include="SDL\src\video\SDL_yuv_c.h" />
<ClInclude Include="SDL\src\video\windows\SDL_msctf.h" />
<ClInclude Include="SDL\src\video\windows\SDL_vkeys.h" />
<ClInclude Include="SDL\src\video\windows\SDL_surface_utils.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsclipboard.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsevents.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsframebuffer.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowskeyboard.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsgameinput.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsmessagebox.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsmodes.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsmouse.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsopengl.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsopengles.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsrawinput.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsshape.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsvideo.h" />
<ClInclude Include="SDL\src\video\windows\SDL_windowsvulkan.h" />
@@ -257,8 +298,6 @@
<ClInclude Include="SDL\src\video\yuv2rgb\yuv_rgb_sse_func.h" />
<ClInclude Include="SDL\src\video\yuv2rgb\yuv_rgb_std.h" />
<ClInclude Include="SDL\src\video\yuv2rgb\yuv_rgb_std_func.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="SDL\src\atomic\SDL_atomic.c" />
<ClCompile Include="SDL\src\atomic\SDL_spinlock.c" />
<ClCompile Include="SDL\src\audio\directsound\SDL_directsound.c" />
@@ -268,37 +307,49 @@
<ClCompile Include="SDL\src\audio\SDL_audiocvt.c" />
<ClCompile Include="SDL\src\audio\SDL_audiodev.c" />
<ClCompile Include="SDL\src\audio\SDL_audiotypecvt.c" />
<ClCompile Include="SDL\src\audio\SDL_audioqueue.c" />
<ClCompile Include="SDL\src\audio\SDL_audioresample.c" />
<ClCompile Include="SDL\src\audio\SDL_mixer.c" />
<ClCompile Include="SDL\src\audio\SDL_wave.c" />
<ClCompile Include="SDL\src\audio\wasapi\SDL_wasapi_win32.c" />
<ClCompile Include="SDL\src\audio\wasapi\SDL_wasapi.c" />
<ClCompile Include="SDL\src\audio\winmm\SDL_winmm.c" />
<ClCompile Include="SDL\src\core\SDL_core_unsupported.c" />
<ClCompile Include="SDL\src\core\windows\SDL_gameinput.c" />
<ClCompile Include="SDL\src\core\windows\SDL_hid.c" />
<ClCompile Include="SDL\src\core\windows\SDL_immdevice.c" />
<ClCompile Include="SDL\src\core\windows\SDL_windows.c" />
<ClCompile Include="SDL\src\core\windows\SDL_xinput.c" />
<ClCompile Include="SDL\src\cpuinfo\SDL_cpuinfo.c" />
<ClCompile Include="SDL\src\dynapi\SDL_dynapi.c" />
<ClCompile Include="SDL\src\dialog\windows\SDL_windowsdialog.c" />
<ClCompile Include="SDL\src\dynapi\SDL_dynapi.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="SDL\src\events\SDL_categories.c" />
<ClCompile Include="SDL\src\events\SDL_clipboardevents.c" />
<ClCompile Include="SDL\src\events\SDL_displayevents.c" />
<ClCompile Include="SDL\src\events\SDL_dropevents.c" />
<ClCompile Include="SDL\src\events\SDL_events.c" />
<ClCompile Include="SDL\src\events\SDL_gesture.c" />
<ClCompile Include="SDL\src\events\SDL_eventwatch.c" />
<ClCompile Include="SDL\src\events\SDL_keyboard.c" />
<ClCompile Include="SDL\src\events\SDL_keymap.c" />
<ClCompile Include="SDL\src\events\SDL_mouse.c" />
<ClCompile Include="SDL\src\events\SDL_pen.c" />
<ClCompile Include="SDL\src\events\SDL_quit.c" />
<ClCompile Include="SDL\src\events\SDL_touch.c" />
<ClCompile Include="SDL\src\events\SDL_windowevents.c" />
<ClCompile Include="SDL\src\file\SDL_rwops.c" />
<ClCompile Include="SDL\src\io\SDL_iostream.c" />
<ClCompile Include="SDL\src\filesystem\windows\SDL_sysfilesystem.c" />
<ClCompile Include="SDL\src\haptic\dummy\SDL_syshaptic.c" />
<ClCompile Include="SDL\src\haptic\SDL_haptic.c" />
<ClCompile Include="SDL\src\haptic\windows\SDL_dinputhaptic.c" />
<ClCompile Include="SDL\src\haptic\windows\SDL_windowshaptic.c" />
<ClCompile Include="SDL\src\haptic\windows\SDL_xinputhaptic.c" />
<ClCompile Include="SDL\src\hidapi\SDL_hidapi.c" />
<ClCompile Include="SDL\src\joystick\controller_type.c" />
<ClCompile Include="SDL\src\joystick\dummy\SDL_sysjoystick.c" />
<ClCompile Include="SDL\src\joystick\gdk\SDL_gameinputjoystick.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapijoystick.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_combined.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_gamecube.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_luna.c" />
@@ -309,23 +360,23 @@
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_shield.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_stadia.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steam.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steam_hori.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_steamdeck.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_switch.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_wii.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_xbox360.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_xbox360w.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapi_xboxone.c" />
<ClCompile Include="SDL\src\joystick\hidapi\SDL_hidapijoystick.c" />
<ClCompile Include="SDL\src\joystick\steam\SDL_steamcontroller.c" />
<ClCompile Include="SDL\src\joystick\SDL_gamecontroller.c" />
<ClCompile Include="SDL\src\joystick\SDL_gamepad.c" />
<ClCompile Include="SDL\src\joystick\SDL_joystick.c" />
<ClCompile Include="SDL\src\joystick\SDL_steam_virtual_gamepad.c" />
<ClCompile Include="SDL\src\joystick\virtual\SDL_virtualjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_dinputjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_rawinputjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_windows_gaming_input.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_windowsjoystick.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_windows_gaming_input.c" />
<ClCompile Include="SDL\src\joystick\windows\SDL_xinputjoystick.c" />
<ClCompile Include="SDL\src\libm\s_modf.c" />
<ClCompile Include="SDL\src\loadso\windows\SDL_sysloadso.c" />
<ClCompile Include="SDL\src\locale\SDL_locale.c" />
<ClCompile Include="SDL\src\locale\windows\SDL_syslocale.c" />
@@ -333,18 +384,24 @@
<ClCompile Include="SDL\src\misc\windows\SDL_sysurl.c" />
<ClCompile Include="SDL\src\power\SDL_power.c" />
<ClCompile Include="SDL\src\power\windows\SDL_syspower.c" />
<ClCompile Include="SDL\src\render\direct3d\SDL_render_d3d.c" />
<ClCompile Include="SDL\src\render\direct3d\SDL_shaders_d3d.c" />
<ClCompile Include="SDL\src\render\direct3d11\SDL_render_d3d11.c" />
<ClCompile Include="SDL\src\process\SDL_process.c" />
<ClCompile Include="SDL\src\process\windows\SDL_windowsprocess.c" />
<ClCompile Include="SDL\src\render\direct3d11\SDL_shaders_d3d11.c" />
<ClCompile Include="SDL\src\render\direct3d12\SDL_render_d3d12.c" />
<ClCompile Include="SDL\src\render\direct3d12\SDL_shaders_d3d12.c" />
<ClCompile Include="SDL\src\render\direct3d\SDL_render_d3d.c" />
<ClCompile Include="SDL\src\render\direct3d11\SDL_render_d3d11.c" />
<ClCompile Include="SDL\src\render\direct3d\SDL_shaders_d3d.c" />
<ClCompile Include="SDL\src\render\gpu\SDL_pipeline_gpu.c" />
<ClCompile Include="SDL\src\render\gpu\SDL_render_gpu.c" />
<ClCompile Include="SDL\src\render\gpu\SDL_shaders_gpu.c" />
<ClCompile Include="SDL\src\render\opengl\SDL_render_gl.c" />
<ClCompile Include="SDL\src\render\opengl\SDL_shaders_gl.c" />
<ClCompile Include="SDL\src\render\opengles2\SDL_render_gles2.c" />
<ClCompile Include="SDL\src\render\opengles2\SDL_shaders_gles2.c" />
<ClCompile Include="SDL\src\render\SDL_d3dmath.c" />
<ClCompile Include="SDL\src\render\SDL_render.c" />
<ClCompile Include="SDL\src\render\SDL_render_unsupported.c" />
<ClCompile Include="SDL\src\render\SDL_yuv_sw.c" />
<ClCompile Include="SDL\src\render\software\SDL_blendfillrect.c" />
<ClCompile Include="SDL\src\render\software\SDL_blendline.c" />
@@ -354,15 +411,15 @@
<ClCompile Include="SDL\src\render\software\SDL_render_sw.c" />
<ClCompile Include="SDL\src\render\software\SDL_rotate.c" />
<ClCompile Include="SDL\src\render\software\SDL_triangle.c" />
<ClCompile Include="SDL\src\SDL.c" />
<ClCompile Include="SDL\src\SDL_assert.c" />
<ClCompile Include="SDL\src\SDL_dataqueue.c" />
<ClCompile Include="SDL\src\SDL_error.c" />
<ClCompile Include="SDL\src\SDL_guid.c" />
<ClCompile Include="SDL\src\SDL_hashtable.c" />
<ClCompile Include="SDL\src\SDL_hints.c" />
<ClCompile Include="SDL\src\SDL_list.c" />
<ClCompile Include="SDL\src\SDL_log.c" />
<ClCompile Include="SDL\src\SDL_properties.c" />
<ClCompile Include="SDL\src\SDL_utils.c" />
<ClCompile Include="SDL\src\SDL.c" />
<ClCompile Include="SDL\src\sensor\dummy\SDL_dummysensor.c" />
<ClCompile Include="SDL\src\sensor\SDL_sensor.c" />
<ClCompile Include="SDL\src\sensor\windows\SDL_windowssensor.c" />
@@ -371,23 +428,44 @@
<ClCompile Include="SDL\src\stdlib\SDL_getenv.c" />
<ClCompile Include="SDL\src\stdlib\SDL_iconv.c" />
<ClCompile Include="SDL\src\stdlib\SDL_malloc.c" />
<ClCompile Include="SDL\src\stdlib\SDL_memcpy.c" />
<ClCompile Include="SDL\src\stdlib\SDL_memmove.c" />
<ClCompile Include="SDL\src\stdlib\SDL_memset.c" />
<ClCompile Include="SDL\src\stdlib\SDL_mslibc.c" />
<ClCompile Include="SDL\src\stdlib\SDL_murmur3.c" />
<ClCompile Include="SDL\src\stdlib\SDL_qsort.c" />
<ClCompile Include="SDL\src\stdlib\SDL_random.c" />
<ClCompile Include="SDL\src\stdlib\SDL_stdlib.c" />
<ClCompile Include="SDL\src\stdlib\SDL_string.c" />
<ClCompile Include="SDL\src\stdlib\SDL_strtokr.c" />
<ClCompile Include="SDL\src\storage\generic\SDL_genericstorage.c" />
<ClCompile Include="SDL\src\storage\steam\SDL_steamstorage.c" />
<ClCompile Include="SDL\src\storage\SDL_storage.c" />
<ClCompile Include="SDL\src\thread\generic\SDL_syscond.c" />
<ClCompile Include="SDL\src\thread\generic\SDL_sysrwlock.c" />
<ClCompile Include="SDL\src\thread\SDL_thread.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_syscond_cv.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_sysmutex.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_sysrwlock_srw.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_syssem.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_systhread.c" />
<ClCompile Include="SDL\src\thread\windows\SDL_systls.c" />
<ClCompile Include="SDL\src\timer\SDL_timer.c" />
<ClCompile Include="SDL\src\timer\windows\SDL_systimer.c" />
<ClCompile Include="SDL\src\time\SDL_time.c" />
<ClCompile Include="SDL\src\time\windows\SDL_systime.c" />
<ClCompile Include="SDL\src\tray\windows\SDL_tray.c" />
<ClCompile Include="SDL\src\tray\SDL_tray_utils.c" />
<ClCompile Include="SDL\src\video\dummy\SDL_nullevents.c" />
<ClCompile Include="SDL\src\video\dummy\SDL_nullframebuffer.c" />
<ClCompile Include="SDL\src\video\dummy\SDL_nullvideo.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenevents.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenframebuffer.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenopengles.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenvideo.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenvulkan.c" />
<ClCompile Include="SDL\src\video\offscreen\SDL_offscreenwindow.c" />
<ClCompile Include="SDL\src\video\SDL_blit.c" />
<ClCompile Include="SDL\src\video\SDL_blit_0.c" />
<ClCompile Include="SDL\src\video\SDL_blit_1.c" />
<ClCompile Include="SDL\src\video\SDL_blit_A.c" />
@@ -395,7 +473,6 @@
<ClCompile Include="SDL\src\video\SDL_blit_copy.c" />
<ClCompile Include="SDL\src\video\SDL_blit_N.c" />
<ClCompile Include="SDL\src\video\SDL_blit_slow.c" />
<ClCompile Include="SDL\src\video\SDL_blit.c" />
<ClCompile Include="SDL\src\video\SDL_bmp.c" />
<ClCompile Include="SDL\src\video\SDL_clipboard.c" />
<ClCompile Include="SDL\src\video\SDL_egl.c" />
@@ -403,21 +480,25 @@
<ClCompile Include="SDL\src\video\SDL_pixels.c" />
<ClCompile Include="SDL\src\video\SDL_rect.c" />
<ClCompile Include="SDL\src\video\SDL_RLEaccel.c" />
<ClCompile Include="SDL\src\video\SDL_shape.c" />
<ClCompile Include="SDL\src\video\SDL_stb.c" />
<ClCompile Include="SDL\src\video\SDL_stretch.c" />
<ClCompile Include="SDL\src\video\SDL_surface.c" />
<ClCompile Include="SDL\src\video\SDL_video.c" />
<ClCompile Include="SDL\src\video\SDL_video_unsupported.c" />
<ClCompile Include="SDL\src\video\SDL_vulkan_utils.c" />
<ClCompile Include="SDL\src\video\SDL_yuv.c" />
<ClCompile Include="SDL\src\video\windows\SDL_surface_utils.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsclipboard.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsevents.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsframebuffer.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowskeyboard.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsgameinput.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsmessagebox.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsmodes.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsmouse.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsopengl.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsopengles.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsrawinput.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsshape.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsvideo.c" />
<ClCompile Include="SDL\src\video\windows\SDL_windowsvulkan.c" />
@@ -426,7 +507,10 @@
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_sse.c" />
<ClCompile Include="SDL\src\video\yuv2rgb\yuv_rgb_std.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SDL\src\core\windows\version.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>
+1 -1
View File
@@ -6,7 +6,7 @@
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectReference Include="$(ExternalsDir)SDL\SDL2.vcxproj">
<ProjectReference Include="$(ExternalsDir)SDL\SDL3.vcxproj">
<Project>{8DC244EE-A0BD-4038-BAF7-CFAFA5EB2BAA}</Project>
</ProjectReference>
</ItemGroup>
+2 -2
View File
@@ -24,8 +24,8 @@ set(SRC_SYSTEM
add_library(sfml-network STATIC ${SRC_NETWORK})
add_library(sfml-system STATIC ${SRC_SYSTEM})
target_compile_features(sfml-network PUBLIC cxx_std_17)
target_compile_features(sfml-system PUBLIC cxx_std_17)
target_compile_features(sfml-network PUBLIC cxx_std_20)
target_compile_features(sfml-system PUBLIC cxx_std_20)
target_compile_definitions(sfml-system PUBLIC SFML_STATIC)
target_include_directories(sfml-system PUBLIC SFML/include PRIVATE SFML/src)
target_include_directories(sfml-network PUBLIC SFML/include PRIVATE SFML/src)
+169 -92
View File
@@ -1,139 +1,216 @@
//-----------------------------------------------------------------------------
// DEAR IMGUI COMPILE-TIME OPTIONS
// Runtime options (clipboard callbacks, enabling various features, etc.) can generally be set via the ImGuiIO structure.
// You can use ImGui::SetAllocatorFunctions() before calling ImGui::CreateContext() to rewire memory allocation functions.
// Runtime options (clipboard callbacks, enabling various features, etc.) can
// generally be set via the ImGuiIO structure. You can use
// ImGui::SetAllocatorFunctions() before calling ImGui::CreateContext() to
// rewire memory allocation functions.
//-----------------------------------------------------------------------------
// A) You may edit imconfig.h (and not overwrite it when updating Dear ImGui, or maintain a patch/rebased branch with your modifications to it)
// B) or '#define IMGUI_USER_CONFIG "my_imgui_config.h"' in your project and then add directives in your own file without touching this template.
// A) You may edit imconfig.h (and not overwrite it when updating Dear ImGui, or
// maintain a patch/rebased branch with your modifications to it) B) or '#define
// IMGUI_USER_CONFIG "my_imgui_config.h"' in your project and then add
// directives in your own file without touching this template.
//-----------------------------------------------------------------------------
// You need to make sure that configuration settings are defined consistently _everywhere_ Dear ImGui is used, which include the imgui*.cpp
// files but also _any_ of your code that uses Dear ImGui. This is because some compile-time options have an affect on data structures.
// Defining those options in imconfig.h will ensure every compilation unit gets to see the same data structure layouts.
// Call IMGUI_CHECKVERSION() from your .cpp file to verify that the data structures your files are using are matching the ones imgui.cpp is using.
// You need to make sure that configuration settings are defined consistently
// _everywhere_ Dear ImGui is used, which include the imgui*.cpp files but also
// _any_ of your code that uses Dear ImGui. This is because some compile-time
// options have an affect on data structures. Defining those options in
// imconfig.h will ensure every compilation unit gets to see the same data
// structure layouts. Call IMGUI_CHECKVERSION() from your .cpp file to verify
// that the data structures your files are using are matching the ones imgui.cpp
// is using.
//-----------------------------------------------------------------------------
#pragma once
#include "Common/Assert.h"
//---- Define assertion handler. Defaults to calling assert().
// If your macro uses multiple statements, make sure is enclosed in a 'do { .. } while (0)' block so it can be used as a single statement.
//#define IM_ASSERT(_EXPR) MyAssert(_EXPR)
//#define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts
// If your macro uses multiple statements, make sure is enclosed in a 'do { .. }
// while (0)' block so it can be used as a single statement.
#define IM_ASSERT(_EXPR) ASSERT(_EXPR)
// #define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts
//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows
// Using Dear ImGui via a shared library is not recommended, because of function call overhead and because we don't guarantee backward nor forward ABI compatibility.
// - Windows DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()
// for each static/DLL boundary you are calling from. Read "Context and Memory Allocators" section of imgui.cpp for more details.
//#define IMGUI_API __declspec(dllexport) // MSVC Windows: DLL export
//#define IMGUI_API __declspec(dllimport) // MSVC Windows: DLL import
//#define IMGUI_API __attribute__((visibility("default"))) // GCC/Clang: override visibility when set is hidden
//---- Define attributes of all API symbols declarations, e.g. for DLL under
// Windows
// Using Dear ImGui via a shared library is not recommended, because of function
// call overhead and because we don't guarantee backward nor forward ABI
// compatibility.
// - Windows DLL users: heaps and globals are not shared across DLL boundaries!
// You will need to call SetCurrentContext() + SetAllocatorFunctions()
// for each static/DLL boundary you are calling from. Read "Context and Memory
// Allocators" section of imgui.cpp for more details.
// #define IMGUI_API __declspec(dllexport) // MSVC Windows:
// DLL export #define IMGUI_API __declspec(dllimport) // MSVC
// Windows: DLL import #define IMGUI_API __attribute__((visibility("default")))
// // GCC/Clang: override visibility when set is hidden
//---- Don't define obsolete functions/enums/behaviors. Consider enabling from time to time after updating to clean your code of obsolete function/names.
//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
//---- Don't define obsolete functions/enums/behaviors. Consider enabling from
// time to time after updating to clean your code of obsolete function/names.
// #define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
//---- Disable all of Dear ImGui or don't implement standard windows/tools.
// It is very strongly recommended to NOT disable the demo windows and debug tool during development. They are extremely useful in day to day work. Please read comments in imgui_demo.cpp.
//#define IMGUI_DISABLE // Disable everything: all headers and source files will be empty.
#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows: ShowDemoWindow()/ShowStyleEditor() will be empty.
//#define IMGUI_DISABLE_DEBUG_TOOLS // Disable metrics/debugger and other debug tools: ShowMetricsWindow(), ShowDebugLogWindow() and ShowIDStackToolWindow() will be empty.
// It is very strongly recommended to NOT disable the demo windows and debug
// tool during development. They are extremely useful in day to day work. Please
// read comments in imgui_demo.cpp.
// #define IMGUI_DISABLE // Disable
// everything: all headers and source files will be empty.
#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows:
// ShowDemoWindow()/ShowStyleEditor() will be
// empty.
// #define IMGUI_DISABLE_DEBUG_TOOLS // Disable
// metrics/debugger and other debug tools: ShowMetricsWindow(),
// ShowDebugLogWindow() and ShowIDStackToolWindow() will be empty.
//---- Don't implement some functions to reduce linkage requirements.
//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't implement default clipboard handler. Won't use and link with OpenClipboard/GetClipboardData/CloseClipboard etc. (user32.lib/.a, kernel32.lib/.a)
//#define IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] [Default with Visual Studio] Implement default IME handler (require imm32.lib/.a, auto-link for Visual Studio, -limm32 on command-line for MinGW)
//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] [Default with non-Visual Studio compilers] Don't implement default IME handler (won't require imm32.lib/.a)
//#define IMGUI_DISABLE_WIN32_FUNCTIONS // [Win32] Won't use and link with any Win32 function (clipboard, IME).
//#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS // [OSX] Implement default OSX clipboard handler (need to link with '-framework ApplicationServices', this is why this is not the default).
//#define IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS // Don't implement default platform_io.Platform_OpenInShellFn() handler (Win32: ShellExecute(), require shell32.lib/.a, Mac/Linux: use system("")).
//#define IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS // Don't implement ImFormatString/ImFormatStringV so you can implement them yourself (e.g. if you don't want to link with vsnprintf)
//#define IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS // Don't implement ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 so you can implement them yourself.
//#define IMGUI_DISABLE_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle at all (replace them with dummies)
//#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle so you can implement them yourself if you don't want to link with fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function.
//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions().
//#define IMGUI_DISABLE_DEFAULT_FONT // Disable default embedded font (ProggyClean.ttf), remove ~9.5 KB from output binary. AddFontDefault() will assert.
//#define IMGUI_DISABLE_SSE // Disable use of SSE intrinsics even if available
// #define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't
// implement default clipboard handler. Won't use and link with
// OpenClipboard/GetClipboardData/CloseClipboard etc. (user32.lib/.a,
// kernel32.lib/.a) #define IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS //
// [Win32] [Default with Visual Studio] Implement default IME handler (require
// imm32.lib/.a, auto-link for Visual Studio, -limm32 on command-line for MinGW)
// #define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] [Default
// with non-Visual Studio compilers] Don't implement default IME handler (won't
// require imm32.lib/.a) #define IMGUI_DISABLE_WIN32_FUNCTIONS // [Win32] Won't
// use and link with any Win32 function (clipboard, IME). #define
// IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS // [OSX] Implement default
// OSX clipboard handler (need to link with '-framework ApplicationServices',
// this is why this is not the default). #define
// IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS // Don't implement default
// platform_io.Platform_OpenInShellFn() handler (Win32: ShellExecute(), require
// shell32.lib/.a, Mac/Linux: use system("")). #define
// IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS // Don't implement
// ImFormatString/ImFormatStringV so you can implement them yourself (e.g. if
// you don't want to link with vsnprintf) #define
// IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS // Don't implement
// ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 so you can implement
// them yourself. #define IMGUI_DISABLE_FILE_FUNCTIONS //
// Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and
// ImFileHandle at all (replace them with dummies) #define
// IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement
// ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle so you can
// implement them yourself if you don't want to link with
// fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function.
// #define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement
// default allocators calling malloc()/free() to avoid linking with them. You
// will need to call ImGui::SetAllocatorFunctions(). #define
// IMGUI_DISABLE_DEFAULT_FONT // Disable default embedded
// font (ProggyClean.ttf), remove ~9.5 KB from output binary. AddFontDefault()
// will assert. #define IMGUI_DISABLE_SSE //
// Disable use of SSE intrinsics even if available
//---- Enable Test Engine / Automation features.
//#define IMGUI_ENABLE_TEST_ENGINE // Enable imgui_test_engine hooks. Generally set automatically by include "imgui_te_config.h", see Test Engine for details.
// #define IMGUI_ENABLE_TEST_ENGINE // Enable
// imgui_test_engine hooks. Generally set automatically by include
// "imgui_te_config.h", see Test Engine for details.
//---- Include imgui_user.h at the end of imgui.h as a convenience
// May be convenient for some users to only explicitly include vanilla imgui.h and have extra stuff included.
//#define IMGUI_INCLUDE_IMGUI_USER_H
//#define IMGUI_USER_H_FILENAME "my_folder/my_imgui_user.h"
// May be convenient for some users to only explicitly include vanilla imgui.h
// and have extra stuff included.
// #define IMGUI_INCLUDE_IMGUI_USER_H
// #define IMGUI_USER_H_FILENAME "my_folder/my_imgui_user.h"
//---- Pack vertex colors as BGRA8 instead of RGBA8 (to avoid converting from one to another). Need dedicated backend support.
//#define IMGUI_USE_BGRA_PACKED_COLOR
//---- Pack vertex colors as BGRA8 instead of RGBA8 (to avoid converting from
// one to another). Need dedicated backend support. #define
// IMGUI_USE_BGRA_PACKED_COLOR
//---- Use legacy CRC32-adler tables (used before 1.91.6), in order to preserve old .ini data that you cannot afford to invalidate.
//#define IMGUI_USE_LEGACY_CRC32_ADLER
//---- Use legacy CRC32-adler tables (used before 1.91.6), in order to preserve
// old .ini data that you cannot afford to invalidate. #define
// IMGUI_USE_LEGACY_CRC32_ADLER
//---- Use 32-bit for ImWchar (default is 16-bit) to support Unicode planes 1-16. (e.g. point beyond 0xFFFF like emoticons, dingbats, symbols, shapes, ancient languages, etc...)
//#define IMGUI_USE_WCHAR32
//---- Use 32-bit for ImWchar (default is 16-bit) to support Unicode planes
// 1-16. (e.g. point beyond 0xFFFF like emoticons, dingbats, symbols, shapes,
// ancient languages, etc...) #define IMGUI_USE_WCHAR32
//---- Avoid multiple STB libraries implementations, or redefine path/filenames to prioritize another version
// By default the embedded implementations are declared static and not available outside of Dear ImGui sources files.
//#define IMGUI_STB_TRUETYPE_FILENAME "my_folder/stb_truetype.h"
//#define IMGUI_STB_RECT_PACK_FILENAME "my_folder/stb_rect_pack.h"
//#define IMGUI_STB_SPRINTF_FILENAME "my_folder/stb_sprintf.h" // only used if IMGUI_USE_STB_SPRINTF is defined.
//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
//#define IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION // only disabled if IMGUI_USE_STB_SPRINTF is defined.
//---- Avoid multiple STB libraries implementations, or redefine path/filenames
// to prioritize another version
// By default the embedded implementations are declared static and not available
// outside of Dear ImGui sources files.
// #define IMGUI_STB_TRUETYPE_FILENAME "my_folder/stb_truetype.h"
// #define IMGUI_STB_RECT_PACK_FILENAME "my_folder/stb_rect_pack.h"
// #define IMGUI_STB_SPRINTF_FILENAME "my_folder/stb_sprintf.h" // only
// used if IMGUI_USE_STB_SPRINTF is defined. #define
// IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION #define
// IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION #define
// IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION // only disabled
// if IMGUI_USE_STB_SPRINTF is defined.
//---- Use stb_sprintf.h for a faster implementation of vsnprintf instead of the one from libc (unless IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS is defined)
// Compatibility checks of arguments and formats done by clang and GCC will be disabled in order to support the extra formats provided by stb_sprintf.h.
//#define IMGUI_USE_STB_SPRINTF
//---- Use stb_sprintf.h for a faster implementation of vsnprintf instead of the
// one from libc (unless IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS is defined)
// Compatibility checks of arguments and formats done by clang and GCC will be
// disabled in order to support the extra formats provided by stb_sprintf.h.
// #define IMGUI_USE_STB_SPRINTF
//---- Use FreeType to build and rasterize the font atlas (instead of stb_truetype which is embedded by default in Dear ImGui)
// Requires FreeType headers to be available in the include path. Requires program to be compiled with 'misc/freetype/imgui_freetype.cpp' (in this repository) + the FreeType library (not provided).
// On Windows you may use vcpkg with 'vcpkg install freetype --triplet=x64-windows' + 'vcpkg integrate install'.
//#define IMGUI_ENABLE_FREETYPE
//---- Use FreeType to build and rasterize the font atlas (instead of
// stb_truetype which is embedded by default in Dear ImGui)
// Requires FreeType headers to be available in the include path. Requires
// program to be compiled with 'misc/freetype/imgui_freetype.cpp' (in this
// repository) + the FreeType library (not provided). On Windows you may use
// vcpkg with 'vcpkg install freetype --triplet=x64-windows' + 'vcpkg integrate
// install'.
// #define IMGUI_ENABLE_FREETYPE
//---- Use FreeType + plutosvg or lunasvg to render OpenType SVG fonts (SVGinOT)
// Only works in combination with IMGUI_ENABLE_FREETYPE.
// - lunasvg is currently easier to acquire/install, as e.g. it is part of vcpkg.
// - plutosvg will support more fonts and may load them faster. It currently requires to be built manually but it is fairly easy. See misc/freetype/README for instructions.
// - Both require headers to be available in the include path + program to be linked with the library code (not provided).
// - (note: lunasvg implementation is based on Freetype's rsvg-port.c which is licensed under CeCILL-C Free Software License Agreement)
//#define IMGUI_ENABLE_FREETYPE_PLUTOSVG
//#define IMGUI_ENABLE_FREETYPE_LUNASVG
// - plutosvg is currently easier to install, as e.g. it is part of vcpkg. It
// will support more fonts and may load them faster. See misc/freetype/README
// for instructions.
// - Both require headers to be available in the include path + program to be
// linked with the library code (not provided).
// - (note: lunasvg implementation is based on Freetype's rsvg-port.c which is
// licensed under CeCILL-C Free Software License Agreement)
// #define IMGUI_ENABLE_FREETYPE_PLUTOSVG
// #define IMGUI_ENABLE_FREETYPE_LUNASVG
//---- Use stb_truetype to build and rasterize the font atlas (default)
// The only purpose of this define is if you want force compilation of the stb_truetype backend ALONG with the FreeType backend.
//#define IMGUI_ENABLE_STB_TRUETYPE
// The only purpose of this define is if you want force compilation of the
// stb_truetype backend ALONG with the FreeType backend.
// #define IMGUI_ENABLE_STB_TRUETYPE
//---- Define constructor and implicit cast operators to convert back<>forth between your math types and ImVec2/ImVec4.
//---- Define constructor and implicit cast operators to convert back<>forth
// between your math types and ImVec2/ImVec4.
// This will be inlined as part of ImVec2 and ImVec4 class declarations.
/*
#define IM_VEC2_CLASS_EXTRA \
constexpr ImVec2(const MyVec2& f) : x(f.x), y(f.y) {} \
operator MyVec2() const { return MyVec2(x,y); }
#define IM_VEC2_CLASS_EXTRA \
constexpr ImVec2(const MyVec2& f) : x(f.x), y(f.y) {} \ operator
MyVec2() const { return MyVec2(x,y); }
#define IM_VEC4_CLASS_EXTRA \
constexpr ImVec4(const MyVec4& f) : x(f.x), y(f.y), z(f.z), w(f.w) {} \
#define IM_VEC4_CLASS_EXTRA \
constexpr ImVec4(const MyVec4& f) : x(f.x), y(f.y), z(f.z), w(f.w) {} \
operator MyVec4() const { return MyVec4(x,y,z,w); }
*/
//---- ...Or use Dear ImGui's own very basic math operators.
//#define IMGUI_DEFINE_MATH_OPERATORS
// #define IMGUI_DEFINE_MATH_OPERATORS
//---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices.
// Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices).
// Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer.
//---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large
// meshes with more than 64K vertices.
// Your renderer backend will need to support it (most example renderer backends
// support both 16/32-bit indices). Another way to allow large meshes while
// keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer.
// Read about ImGuiBackendFlags_RendererHasVtxOffset for details.
//#define ImDrawIdx unsigned int
// #define ImDrawIdx unsigned int
//---- Override ImDrawCallback signature (will need to modify renderer backends accordingly)
//struct ImDrawList;
//struct ImDrawCmd;
//typedef void (*MyImDrawCallback)(const ImDrawList* draw_list, const ImDrawCmd* cmd, void* my_renderer_user_data);
//#define ImDrawCallback MyImDrawCallback
//---- Override ImDrawCallback signature (will need to modify renderer backends
// accordingly) struct ImDrawList; struct ImDrawCmd; typedef void
// (*MyImDrawCallback)(const ImDrawList* draw_list, const ImDrawCmd* cmd, void*
// my_renderer_user_data); #define ImDrawCallback MyImDrawCallback
//---- Debug Tools: Macro to break in Debugger (we provide a default implementation of this in the codebase)
// (use 'Metrics->Tools->Item Picker' to pick widgets with the mouse and break into them for easy debugging.)
//#define IM_DEBUG_BREAK IM_ASSERT(0)
//#define IM_DEBUG_BREAK __debugbreak()
//---- Debug Tools: Macro to break in Debugger (we provide a default
// implementation of this in the codebase)
// (use 'Metrics->Tools->Item Picker' to pick widgets with the mouse and break
// into them for easy debugging.)
// #define IM_DEBUG_BREAK IM_ASSERT(0)
// #define IM_DEBUG_BREAK __debugbreak()
//---- Debug Tools: Enable highlight ID conflicts _before_ hovering items. When
// io.ConfigDebugHighlightIdConflicts is set.
// (THIS WILL SLOW DOWN DEAR IMGUI. Only use occasionally and disable after use)
// #define IMGUI_DEBUG_HIGHLIGHT_ALL_ID_CONFLICTS
//---- Debug Tools: Enable slower asserts
//#define IMGUI_DEBUG_PARANOID
// #define IMGUI_DEBUG_PARANOID
//---- Tip: You can add extra functions within the ImGui:: namespace from anywhere (e.g. your own sources/header files)
//---- Tip: You can add extra functions within the ImGui:: namespace from
// anywhere (e.g. your own sources/header files)
/*
namespace ImGui
{
+1586 -617
View File
File diff suppressed because it is too large Load Diff
+696 -292
View File
File diff suppressed because it is too large Load Diff
+2089 -1692
View File
File diff suppressed because it is too large Load Diff
+2429 -954
View File
File diff suppressed because it is too large Load Diff
+473 -160
View File
File diff suppressed because it is too large Load Diff
+110 -47
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.91.7
// dear imgui, v1.92.2b
// (tables and columns code)
/*
@@ -221,6 +221,7 @@ Index of this file:
#pragma clang diagnostic ignored "-Wunknown-pragmas" // warning: unknown warning group 'xxx'
#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast // yes, they are more terse.
#pragma clang diagnostic ignored "-Wfloat-equal" // warning: comparing floating point with == or != is unsafe // storing and comparing against same constants (typically 0.0f) is ok.
#pragma clang diagnostic ignored "-Wformat" // warning: format specifies type 'int' but the argument has type 'unsigned int'
#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning: format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code.
#pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness
#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" // warning: zero as null pointer constant // some standard header variations use #define NULL 0
@@ -230,6 +231,7 @@ Index of this file:
#pragma clang diagnostic ignored "-Wimplicit-int-float-conversion" // warning: implicit conversion from 'xxx' to 'float' may lose precision
#pragma clang diagnostic ignored "-Wunsafe-buffer-usage" // warning: 'xxx' is an unsafe pointer used for buffer access
#pragma clang diagnostic ignored "-Wnontrivial-memaccess" // warning: first argument in call to 'memset' is a pointer to non-trivially copyable type
#pragma clang diagnostic ignored "-Wswitch-default" // warning: 'switch' missing 'default' label
#elif defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind
#pragma GCC diagnostic ignored "-Wfloat-equal" // warning: comparing floating-point with '==' or '!=' is unsafe
@@ -340,6 +342,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
{
ItemSize(outer_rect);
ItemAdd(outer_rect, id);
g.NextWindowData.ClearFlags();
return false;
}
@@ -374,6 +377,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
table->ColumnsCount = columns_count;
table->IsLayoutLocked = false;
table->InnerWidth = inner_width;
table->NavLayer = (ImS8)outer_window->DC.NavLayerCurrent;
temp_data->UserOuterSize = outer_size;
// Instance data (for instance 0, TableID == TableInstanceID)
@@ -414,12 +418,15 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
// Reset scroll if we are reactivating it
if ((previous_flags & (ImGuiTableFlags_ScrollX | ImGuiTableFlags_ScrollY)) == 0)
if ((g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasScroll) == 0)
if ((g.NextWindowData.HasFlags & ImGuiNextWindowDataFlags_HasScroll) == 0)
SetNextWindowScroll(ImVec2(0.0f, 0.0f));
// Create scrolling region (without border and zero window padding)
ImGuiWindowFlags child_window_flags = (flags & ImGuiTableFlags_ScrollX) ? ImGuiWindowFlags_HorizontalScrollbar : ImGuiWindowFlags_None;
BeginChildEx(name, instance_id, outer_rect.GetSize(), ImGuiChildFlags_None, child_window_flags);
ImGuiChildFlags child_child_flags = (g.NextWindowData.HasFlags & ImGuiNextWindowDataFlags_HasChildFlags) ? g.NextWindowData.ChildFlags : ImGuiChildFlags_None;
ImGuiWindowFlags child_window_flags = (g.NextWindowData.HasFlags & ImGuiNextWindowDataFlags_HasWindowFlags) ? g.NextWindowData.WindowFlags : ImGuiWindowFlags_None;
if (flags & ImGuiTableFlags_ScrollX)
child_window_flags |= ImGuiWindowFlags_HorizontalScrollbar;
BeginChildEx(name, instance_id, outer_rect.GetSize(), child_child_flags, child_window_flags);
table->InnerWindow = g.CurrentWindow;
table->WorkRect = table->InnerWindow->WorkRect;
table->OuterRect = table->InnerWindow->Rect();
@@ -444,6 +451,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
// But at this point we do NOT have a correct value for .Max.y (unless a height has been explicitly passed in). It will only be updated in EndTable().
table->WorkRect = table->OuterRect = table->InnerRect = outer_rect;
table->HasScrollbarYPrev = table->HasScrollbarYCurr = false;
table->InnerWindow->DC.TreeDepth++; // This is designed to always linking ImGuiTreeNodeFlags_DrawLines linking accross a table
}
// Push a standardized ID for both child-using and not-child-using tables
@@ -534,7 +542,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
// Make table current
g.CurrentTable = table;
outer_window->DC.NavIsScrollPushableX = false; // Shortcut for NavUpdateCurrentWindowIsScrollPushableX();
inner_window->DC.NavIsScrollPushableX = false; // Shortcut for NavUpdateCurrentWindowIsScrollPushableX();
outer_window->DC.CurrentTableIdx = table_idx;
if (inner_window != outer_window) // So EndChild() within the inner window can restore the table properly.
inner_window->DC.CurrentTableIdx = table_idx;
@@ -572,6 +580,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
// Initialize
table->SettingsOffset = -1;
table->IsSortSpecsDirty = true;
table->IsSettingsDirty = true; // Records itself into .ini file even when in default state (#7934)
table->InstanceInteracted = -1;
table->ContextPopupColumn = -1;
table->ReorderColumn = table->ResizedColumn = table->LastResizedColumn = -1;
@@ -971,7 +980,7 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
// [Part 4] Apply final widths based on requested widths
const ImRect work_rect = table->WorkRect;
const float width_spacings = (table->OuterPaddingX * 2.0f) + (table->CellSpacingX1 + table->CellSpacingX2) * (table->ColumnsEnabledCount - 1);
const float width_removed = (table->HasScrollbarYPrev && !table->InnerWindow->ScrollbarY) ? g.Style.ScrollbarSize : 0.0f; // To synchronize decoration width of synched tables with mismatching scrollbar state (#5920)
const float width_removed = (table->HasScrollbarYPrev && !table->InnerWindow->ScrollbarY) ? g.Style.ScrollbarSize : 0.0f; // To synchronize decoration width of synced tables with mismatching scrollbar state (#5920)
const float width_avail = ImMax(1.0f, (((table->Flags & ImGuiTableFlags_ScrollX) && table->InnerWidth == 0.0f) ? table->InnerClipRect.GetWidth() : work_rect.GetWidth()) - width_removed);
const float width_avail_for_stretched_columns = width_avail - width_spacings - sum_width_requests;
float width_remaining_for_stretched_columns = width_avail_for_stretched_columns;
@@ -1050,7 +1059,8 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
const int column_n = table->DisplayOrderToIndex[order_n];
ImGuiTableColumn* column = &table->Columns[column_n];
column->NavLayerCurrent = (ImS8)(table->FreezeRowsCount > 0 ? ImGuiNavLayer_Menu : ImGuiNavLayer_Main); // Use Count NOT request so Header line changes layer when frozen
// Initial nav layer: using FreezeRowsCount, NOT FreezeRowsRequest, so Header line changes layer when frozen
column->NavLayerCurrent = (ImS8)(table->FreezeRowsCount > 0 ? ImGuiNavLayer_Menu : (ImGuiNavLayer)table->NavLayer);
if (offset_x_frozen && table->FreezeColumnsCount == visible_n)
{
@@ -1241,7 +1251,7 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
// [Part 11] Default context menu
// - To append to this menu: you can call TableBeginContextMenuPopup()/.../EndPopup().
// - To modify or replace this: set table->IsContextPopupNoDefaultContents = true, then call TableBeginContextMenuPopup()/.../EndPopup().
// - To modify or replace this: set table->DisableDefaultContextMenu = true, then call TableBeginContextMenuPopup()/.../EndPopup().
// - You may call TableDrawDefaultContextMenu() with selected flags to display specific sections of the default menu,
// e.g. TableDrawDefaultContextMenu(table, table->Flags & ~ImGuiTableFlags_Hideable) will display everything EXCEPT columns visibility options.
if (table->DisableDefaultContextMenu == false && TableBeginContextMenuPopup(table))
@@ -1383,7 +1393,7 @@ void ImGui::EndTable()
// Setup inner scrolling range
// FIXME: This ideally should be done earlier, in BeginTable() SetNextWindowContentSize call, just like writing to inner_window->DC.CursorMaxPos.y,
// but since the later is likely to be impossible to do we'd rather update both axises together.
// but since the later is likely to be impossible to do we'd rather update both axes together.
if (table->Flags & ImGuiTableFlags_ScrollX)
{
const float outer_padding_for_border = (table->Flags & ImGuiTableFlags_BordersOuterV) ? TABLE_BORDER_SIZE : 0.0f;
@@ -1493,7 +1503,7 @@ void ImGui::EndTable()
if (inner_window != outer_window)
{
short backup_nav_layers_active_mask = inner_window->DC.NavLayersActiveMask;
inner_window->DC.NavLayersActiveMask |= 1 << ImGuiNavLayer_Main; // So empty table don't appear to navigate differently.
inner_window->DC.NavLayersActiveMask |= 1 << table->NavLayer; // So empty table don't appear to navigate differently.
g.CurrentTable = NULL; // To avoid error recovery recursing
EndChild();
g.CurrentTable = table;
@@ -1501,6 +1511,7 @@ void ImGui::EndTable()
}
else
{
table->InnerWindow->DC.TreeDepth--;
ItemSize(table->OuterRect.GetSize());
ItemAdd(table->OuterRect, 0);
}
@@ -1558,6 +1569,31 @@ void ImGui::EndTable()
NavUpdateCurrentWindowIsScrollPushableX();
}
// Called in TableSetupColumn() when initializing and in TableLoadSettings() for defaults before applying stored settings.
// 'init_mask' specify which fields to initialize.
static void TableInitColumnDefaults(ImGuiTable* table, ImGuiTableColumn* column, ImGuiTableColumnFlags init_mask)
{
ImGuiTableColumnFlags flags = column->Flags;
if (init_mask & ImGuiTableFlags_Resizable)
{
float init_width_or_weight = column->InitStretchWeightOrWidth;
column->WidthRequest = ((flags & ImGuiTableColumnFlags_WidthFixed) && init_width_or_weight > 0.0f) ? init_width_or_weight : -1.0f;
column->StretchWeight = (init_width_or_weight > 0.0f && (flags & ImGuiTableColumnFlags_WidthStretch)) ? init_width_or_weight : -1.0f;
if (init_width_or_weight > 0.0f) // Disable auto-fit if an explicit width/weight has been specified
column->AutoFitQueue = 0x00;
}
if (init_mask & ImGuiTableFlags_Reorderable)
column->DisplayOrder = (ImGuiTableColumnIdx)table->Columns.index_from_ptr(column);
if (init_mask & ImGuiTableFlags_Hideable)
column->IsUserEnabled = column->IsUserEnabledNextFrame = (flags & ImGuiTableColumnFlags_DefaultHide) ? 0 : 1;
if (init_mask & ImGuiTableFlags_Sortable)
{
// Multiple columns using _DefaultSort will be reassigned unique SortOrder values when building the sort specs.
column->SortOrder = (flags & ImGuiTableColumnFlags_DefaultSort) ? 0 : -1;
column->SortDirection = (flags & ImGuiTableColumnFlags_DefaultSort) ? ((flags & ImGuiTableColumnFlags_PreferSortDescending) ? (ImS8)ImGuiSortDirection_Descending : (ImU8)(ImGuiSortDirection_Ascending)) : (ImS8)ImGuiSortDirection_None;
}
}
// See "COLUMNS SIZING POLICIES" comments at the top of this file
// If (init_width_or_weight <= 0.0f) it is ignored
void ImGui::TableSetupColumn(const char* label, ImGuiTableColumnFlags flags, float init_width_or_weight, ImGuiID user_id)
@@ -1586,7 +1622,7 @@ void ImGui::TableSetupColumn(const char* label, ImGuiTableColumnFlags flags, flo
IM_ASSERT(init_width_or_weight <= 0.0f && "Can only specify width/weight if sizing policy is set explicitly in either Table or Column.");
// When passing a width automatically enforce WidthFixed policy
// (whereas TableSetupColumnFlags would default to WidthAuto if table is not Resizable)
// (whereas TableSetupColumnFlags would default to WidthAuto if table is not resizable)
if ((flags & ImGuiTableColumnFlags_WidthMask_) == 0 && init_width_or_weight > 0.0f)
if ((table->Flags & ImGuiTableFlags_SizingMask_) == ImGuiTableFlags_SizingFixedFit || (table->Flags & ImGuiTableFlags_SizingMask_) == ImGuiTableFlags_SizingFixedSame)
flags |= ImGuiTableColumnFlags_WidthFixed;
@@ -1604,27 +1640,10 @@ void ImGui::TableSetupColumn(const char* label, ImGuiTableColumnFlags flags, flo
column->InitStretchWeightOrWidth = init_width_or_weight;
if (table->IsInitializing)
{
// Init width or weight
ImGuiTableFlags init_flags = ~table->SettingsLoadedFlags;
if (column->WidthRequest < 0.0f && column->StretchWeight < 0.0f)
{
if ((flags & ImGuiTableColumnFlags_WidthFixed) && init_width_or_weight > 0.0f)
column->WidthRequest = init_width_or_weight;
if (flags & ImGuiTableColumnFlags_WidthStretch)
column->StretchWeight = (init_width_or_weight > 0.0f) ? init_width_or_weight : -1.0f;
// Disable auto-fit if an explicit width/weight has been specified
if (init_width_or_weight > 0.0f)
column->AutoFitQueue = 0x00;
}
// Init default visibility/sort state
if ((flags & ImGuiTableColumnFlags_DefaultHide) && (table->SettingsLoadedFlags & ImGuiTableFlags_Hideable) == 0)
column->IsUserEnabled = column->IsUserEnabledNextFrame = false;
if (flags & ImGuiTableColumnFlags_DefaultSort && (table->SettingsLoadedFlags & ImGuiTableFlags_Sortable) == 0)
{
column->SortOrder = 0; // Multiple columns using _DefaultSort will be reassigned unique SortOrder values when building the sort specs.
column->SortDirection = (column->Flags & ImGuiTableColumnFlags_PreferSortDescending) ? (ImS8)ImGuiSortDirection_Descending : (ImU8)(ImGuiSortDirection_Ascending);
}
init_flags |= ImGuiTableFlags_Resizable;
TableInitColumnDefaults(table, column, init_flags);
}
// Store name (append with zero-terminator in contiguous buffer)
@@ -1633,7 +1652,7 @@ void ImGui::TableSetupColumn(const char* label, ImGuiTableColumnFlags flags, flo
if (label != NULL && label[0] != 0)
{
column->NameOffset = (ImS16)table->ColumnsNames.size();
table->ColumnsNames.append(label, label + strlen(label) + 1);
table->ColumnsNames.append(label, label + ImStrlen(label) + 1);
}
}
@@ -1806,6 +1825,11 @@ void ImGui::TableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n
ImGuiContext& g = *GImGui;
ImGuiTable* table = g.CurrentTable;
IM_ASSERT(target != ImGuiTableBgTarget_None);
if (table == NULL)
{
IM_ASSERT_USER_ERROR(table != NULL, "Call should only be done while in BeginTable() scope!");
return;
}
if (color == IM_COL32_DISABLE)
color = 0;
@@ -1934,7 +1958,10 @@ void ImGui::TableEndRow(ImGuiTable* table)
IM_ASSERT(table->IsInsideRow);
if (table->CurrentColumn != -1)
{
TableEndCell(table);
table->CurrentColumn = -1;
}
// Logging
if (g.LogEnabled)
@@ -2032,7 +2059,7 @@ void ImGui::TableEndRow(ImGuiTable* table)
if (unfreeze_rows_request)
{
for (int column_n = 0; column_n < table->ColumnsCount; column_n++)
table->Columns[column_n].NavLayerCurrent = ImGuiNavLayer_Main;
table->Columns[column_n].NavLayerCurrent = table->NavLayer;
const float y0 = ImMax(table->RowPosY2 + 1, table->InnerClipRect.Min.y);
table_instance->LastFrozenHeight = y0 - table->OuterRect.Min.y;
@@ -2099,7 +2126,11 @@ bool ImGui::TableSetColumnIndex(int column_n)
{
if (table->CurrentColumn != -1)
TableEndCell(table);
IM_ASSERT(column_n >= 0 && table->ColumnsCount);
if ((column_n >= 0 && column_n < table->ColumnsCount) == false)
{
IM_ASSERT_USER_ERROR(column_n >= 0 && column_n < table->ColumnsCount, "TableSetColumnIndex() invalid column index!");
return false;
}
TableBeginCell(table, column_n);
}
@@ -2170,6 +2201,7 @@ void ImGui::TableBeginCell(ImGuiTable* table, int column_n)
g.LastItemData.StatusFlags = 0;
}
// Also see TablePushColumnChannel()
if (table->Flags & ImGuiTableFlags_NoClip)
{
// FIXME: if we end up drawing all borders/bg in EndTable, could remove this and just assert that channel hasn't changed.
@@ -2443,10 +2475,38 @@ void ImGui::TablePopBackgroundChannel()
ImGuiContext& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
ImGuiTable* table = g.CurrentTable;
ImGuiTableColumn* column = &table->Columns[table->CurrentColumn];
// Optimization: avoid PopClipRect() + SetCurrentChannel()
SetWindowClipRectBeforeSetChannel(window, table->HostBackupInnerClipRect);
table->DrawSplitter->SetCurrentChannel(window->DrawList, table->Columns[table->CurrentColumn].DrawChannelCurrent);
}
// Also see TableBeginCell()
void ImGui::TablePushColumnChannel(int column_n)
{
ImGuiContext& g = *GImGui;
ImGuiTable* table = g.CurrentTable;
// Optimization: avoid SetCurrentChannel() + PushClipRect()
if (table->Flags & ImGuiTableFlags_NoClip)
return;
ImGuiWindow* window = g.CurrentWindow;
const ImGuiTableColumn* column = &table->Columns[column_n];
SetWindowClipRectBeforeSetChannel(window, column->ClipRect);
table->DrawSplitter->SetCurrentChannel(window->DrawList, column->DrawChannelCurrent);
}
void ImGui::TablePopColumnChannel()
{
ImGuiContext& g = *GImGui;
ImGuiTable* table = g.CurrentTable;
// Optimization: avoid PopClipRect() + SetCurrentChannel()
if ((table->Flags & ImGuiTableFlags_NoClip) || (table->CurrentColumn == -1)) // Calling TreePop() after TableNextRow() is supported.
return;
ImGuiWindow* window = g.CurrentWindow;
const ImGuiTableColumn* column = &table->Columns[table->CurrentColumn];
SetWindowClipRectBeforeSetChannel(window, column->ClipRect);
table->DrawSplitter->SetCurrentChannel(window->DrawList, column->DrawChannelCurrent);
}
@@ -2821,9 +2881,7 @@ ImGuiTableSortSpecs* ImGui::TableGetSortSpecs()
{
ImGuiContext& g = *GImGui;
ImGuiTable* table = g.CurrentTable;
IM_ASSERT(table != NULL);
if (!(table->Flags & ImGuiTableFlags_Sortable))
if (table == NULL || !(table->Flags & ImGuiTableFlags_Sortable))
return NULL;
// Require layout (in case TableHeadersRow() hasn't been called) as it may alter IsSortSpecsDirty in some paths.
@@ -3223,7 +3281,7 @@ void ImGui::TableHeader(const char* label)
// Render clipped label. Clipping here ensure that in the majority of situations, all our header cells will
// be merged into a single draw call.
//window->DrawList->AddCircleFilled(ImVec2(ellipsis_max, label_pos.y), 40, IM_COL32_WHITE);
RenderTextEllipsis(window->DrawList, label_pos, ImVec2(ellipsis_max, label_pos.y + label_height + g.Style.FramePadding.y), ellipsis_max, ellipsis_max, label, label_end, &label_size);
RenderTextEllipsis(window->DrawList, label_pos, ImVec2(ellipsis_max, bb.Max.y), ellipsis_max, label, label_end, &label_size);
const bool text_clipped = label_size.x > (ellipsis_max - label_pos.x);
if (text_clipped && hovered && g.ActiveId == 0)
@@ -3320,7 +3378,7 @@ void ImGui::TableAngledHeadersRowEx(ImGuiID row_id, float angle, float max_label
ButtonBehavior(row_r, row_id, NULL, NULL);
KeepAliveID(row_id);
const float ascent_scaled = g.Font->Ascent * g.FontScale; // FIXME: Standardize those scaling factors better
const float ascent_scaled = g.FontBaked->Ascent * g.FontBakedScale; // FIXME: Standardize those scaling factors better
const float line_off_for_ascent_x = (ImMax((g.FontSize - ascent_scaled) * 0.5f, 0.0f) / -sin_a) * (flip_label ? -1.0f : 1.0f);
const ImVec2 padding = g.Style.CellPadding; // We will always use swapped component
const ImVec2 align = g.Style.TableAngledHeadersTextAlign;
@@ -3375,7 +3433,7 @@ void ImGui::TableAngledHeadersRowEx(ImGuiID row_id, float angle, float max_label
ImRect clip_r(window->ClipRect.Min, window->ClipRect.Min + ImVec2(clip_width, clip_height));
int vtx_idx_begin = draw_list->_VtxCurrentIdx;
PushStyleColor(ImGuiCol_Text, request->TextColor);
RenderTextEllipsis(draw_list, clip_r.Min, clip_r.Max, clip_r.Max.x, clip_r.Max.x, label_name, label_name_eol, &label_size);
RenderTextEllipsis(draw_list, clip_r.Min, clip_r.Max, clip_r.Max.x, label_name, label_name_eol, &label_size);
PopStyleColor();
int vtx_idx_end = draw_list->_VtxCurrentIdx;
@@ -3712,6 +3770,14 @@ void ImGui::TableLoadSettings(ImGuiTable* table)
table->SettingsLoadedFlags = settings->SaveFlags;
table->RefScale = settings->RefScale;
// Initialize default columns settings
for (int column_n = 0; column_n < table->ColumnsCount; column_n++)
{
ImGuiTableColumn* column = &table->Columns[column_n];
TableInitColumnDefaults(table, column, ~0);
column->AutoFitQueue = 0x00;
}
// Serialize ImGuiTableSettings/ImGuiTableColumnSettings into ImGuiTable/ImGuiTableColumn
ImGuiTableColumnSettings* column_settings = settings->GetColumnSettings();
ImU64 display_order_mask = 0;
@@ -3728,14 +3794,12 @@ void ImGui::TableLoadSettings(ImGuiTable* table)
column->StretchWeight = column_settings->WidthOrWeight;
else
column->WidthRequest = column_settings->WidthOrWeight;
column->AutoFitQueue = 0x00;
}
if (settings->SaveFlags & ImGuiTableFlags_Reorderable)
column->DisplayOrder = column_settings->DisplayOrder;
else
column->DisplayOrder = (ImGuiTableColumnIdx)column_n;
display_order_mask |= (ImU64)1 << column->DisplayOrder;
column->IsUserEnabled = column->IsUserEnabledNextFrame = column_settings->IsEnabled;
if ((settings->SaveFlags & ImGuiTableFlags_Hideable) && column_settings->IsEnabled != -1)
column->IsUserEnabled = column->IsUserEnabledNextFrame = column_settings->IsEnabled == 1;
column->SortOrder = column_settings->SortOrder;
column->SortDirection = column_settings->SortDirection;
}
@@ -3831,8 +3895,7 @@ static void TableSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandle
const bool save_visible = (settings->SaveFlags & ImGuiTableFlags_Hideable) != 0;
const bool save_order = (settings->SaveFlags & ImGuiTableFlags_Reorderable) != 0;
const bool save_sort = (settings->SaveFlags & ImGuiTableFlags_Sortable) != 0;
if (!save_size && !save_visible && !save_order && !save_sort)
continue;
// We need to save the [Table] entry even if all the bools are false, since this records a table with "default settings".
buf->reserve(buf->size() + 30 + settings->ColumnsCount * 50); // ballpark reserve
buf->appendf("[%s][0x%08X,%d]\n", handler->TypeName, settings->ID, settings->ColumnsCount);
+516 -233
View File
File diff suppressed because it is too large Load Diff
+50 -31
View File
@@ -141,6 +141,7 @@
// with previous char)
// STB_TEXTEDIT_KEYTOTEXT(k) maps a keyboard input to an insertable character
// (return type is int, -1 means not valid to insert)
// (not supported if you want to use UTF-8, see below)
// STB_TEXTEDIT_GETCHAR(obj,i) returns the i'th character of obj, 0-based
// STB_TEXTEDIT_NEWLINE the character returned by _GETCHAR() we recognize
// as manually wordwrapping for end-of-line positioning
@@ -178,6 +179,13 @@
// STB_TEXTEDIT_K_TEXTSTART2 secondary keyboard input to move cursor to start of text
// STB_TEXTEDIT_K_TEXTEND2 secondary keyboard input to move cursor to end of text
//
// To support UTF-8:
//
// STB_TEXTEDIT_GETPREVCHARINDEX returns index of previous character
// STB_TEXTEDIT_GETNEXTCHARINDEX returns index of next character
// Do NOT define STB_TEXTEDIT_KEYTOTEXT.
// Instead, call stb_textedit_text() directly for text contents.
//
// Keyboard input must be encoded as a single integer value; e.g. a character code
// and some bitflags that represent shift states. to simplify the interface, SHIFT must
// be a bitflag, so we can test the shifted state of cursor movements to allow selection,
@@ -250,8 +258,10 @@
// if the STB_TEXTEDIT_KEYTOTEXT function is defined, selected keys are
// transformed into text and stb_textedit_text() is automatically called.
//
// text: [DEAR IMGUI] added 2024-09
// call this to text inputs sent to the textfield.
// text: (added 2025)
// call this to directly send text input the textfield, which is required
// for UTF-8 support, because stb_textedit_key() + STB_TEXTEDIT_KEYTOTEXT()
// cannot infer text length.
//
//
// When rendering, you can read the cursor position and selection state from
@@ -400,6 +410,16 @@ typedef struct
#define IMSTB_TEXTEDIT_memmove memmove
#endif
// [DEAR IMGUI]
// Functions must be implemented for UTF8 support
// Code in this file that uses those functions is modified for [DEAR IMGUI] and deviates from the original stb_textedit.
// There is not necessarily a '[DEAR IMGUI]' at the usage sites.
#ifndef IMSTB_TEXTEDIT_GETPREVCHARINDEX
#define IMSTB_TEXTEDIT_GETPREVCHARINDEX(OBJ, IDX) ((IDX) - 1)
#endif
#ifndef IMSTB_TEXTEDIT_GETNEXTCHARINDEX
#define IMSTB_TEXTEDIT_GETNEXTCHARINDEX(OBJ, IDX) ((IDX) + 1)
#endif
/////////////////////////////////////////////////////////////////////////////
//
@@ -648,17 +668,6 @@ static void stb_textedit_move_to_last(IMSTB_TEXTEDIT_STRING *str, STB_TexteditSt
}
}
// [DEAR IMGUI]
// Functions must be implemented for UTF8 support
// Code in this file that uses those functions is modified for [DEAR IMGUI] and deviates from the original stb_textedit.
// There is not necessarily a '[DEAR IMGUI]' at the usage sites.
#ifndef IMSTB_TEXTEDIT_GETPREVCHARINDEX
#define IMSTB_TEXTEDIT_GETPREVCHARINDEX(obj, idx) (idx - 1)
#endif
#ifndef IMSTB_TEXTEDIT_GETNEXTCHARINDEX
#define IMSTB_TEXTEDIT_GETNEXTCHARINDEX(obj, idx) (idx + 1)
#endif
#ifdef STB_TEXTEDIT_IS_SPACE
static int is_word_boundary( IMSTB_TEXTEDIT_STRING *str, int idx )
{
@@ -668,9 +677,9 @@ static int is_word_boundary( IMSTB_TEXTEDIT_STRING *str, int idx )
#ifndef STB_TEXTEDIT_MOVEWORDLEFT
static int stb_textedit_move_to_word_previous( IMSTB_TEXTEDIT_STRING *str, int c )
{
--c; // always move at least one character
while( c >= 0 && !is_word_boundary( str, c ) )
--c;
c = IMSTB_TEXTEDIT_GETPREVCHARINDEX( str, c ); // always move at least one character
while (c >= 0 && !is_word_boundary(str, c))
c = IMSTB_TEXTEDIT_GETPREVCHARINDEX(str, c);
if( c < 0 )
c = 0;
@@ -684,9 +693,9 @@ static int stb_textedit_move_to_word_previous( IMSTB_TEXTEDIT_STRING *str, int c
static int stb_textedit_move_to_word_next( IMSTB_TEXTEDIT_STRING *str, int c )
{
const int len = STB_TEXTEDIT_STRINGLEN(str);
++c; // always move at least one character
c = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, c); // always move at least one character
while( c < len && !is_word_boundary( str, c ) )
++c;
c = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, c);
if( c > len )
c = len;
@@ -739,6 +748,7 @@ static int stb_textedit_paste_internal(IMSTB_TEXTEDIT_STRING *str, STB_TexteditS
#define STB_TEXTEDIT_KEYTYPE int
#endif
// API key: process text input
// [DEAR IMGUI] Added stb_textedit_text(), extracted out and called by stb_textedit_key() for backward compatibility.
static void stb_textedit_text(IMSTB_TEXTEDIT_STRING* str, STB_TexteditState* state, const IMSTB_TEXTEDIT_CHARTYPE* text, int text_len)
{
@@ -753,8 +763,7 @@ static void stb_textedit_text(IMSTB_TEXTEDIT_STRING* str, STB_TexteditState* sta
state->cursor += text_len;
state->has_preferred_x = 0;
}
}
else {
} else {
stb_textedit_delete_selection(str, state); // implicitly clamps
if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, text, text_len)) {
stb_text_makeundo_insert(state, state->cursor, text_len);
@@ -771,6 +780,7 @@ retry:
switch (key) {
default: {
#ifdef STB_TEXTEDIT_KEYTOTEXT
// This is not suitable for UTF-8 support.
int c = STB_TEXTEDIT_KEYTOTEXT(key);
if (c > 0) {
IMSTB_TEXTEDIT_CHARTYPE ch = (IMSTB_TEXTEDIT_CHARTYPE)c;
@@ -918,8 +928,9 @@ retry:
state->cursor = start;
STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor);
x = row.x0;
for (i=0; i < row.num_chars; ++i) {
for (i=0; i < row.num_chars; ) {
float dx = STB_TEXTEDIT_GETWIDTH(str, start, i);
int next = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, state->cursor);
#ifdef IMSTB_TEXTEDIT_GETWIDTH_NEWLINE
if (dx == IMSTB_TEXTEDIT_GETWIDTH_NEWLINE)
break;
@@ -927,7 +938,8 @@ retry:
x += dx;
if (x > goal_x)
break;
state->cursor = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, state->cursor);
i += next - state->cursor;
state->cursor = next;
}
stb_textedit_clamp(str, state);
@@ -980,8 +992,9 @@ retry:
state->cursor = find.prev_first;
STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor);
x = row.x0;
for (i=0; i < row.num_chars; ++i) {
for (i=0; i < row.num_chars; ) {
float dx = STB_TEXTEDIT_GETWIDTH(str, find.prev_first, i);
int next = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, state->cursor);
#ifdef IMSTB_TEXTEDIT_GETWIDTH_NEWLINE
if (dx == IMSTB_TEXTEDIT_GETWIDTH_NEWLINE)
break;
@@ -989,7 +1002,8 @@ retry:
x += dx;
if (x > goal_x)
break;
state->cursor = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, state->cursor);
i += next - state->cursor;
state->cursor = next;
}
stb_textedit_clamp(str, state);
@@ -1002,8 +1016,13 @@ retry:
// go to previous line
// (we need to scan previous line the hard way. maybe we could expose this as a new API function?)
prev_scan = find.prev_first > 0 ? find.prev_first - 1 : 0;
while (prev_scan > 0 && STB_TEXTEDIT_GETCHAR(str, prev_scan - 1) != STB_TEXTEDIT_NEWLINE)
--prev_scan;
while (prev_scan > 0)
{
int prev = IMSTB_TEXTEDIT_GETPREVCHARINDEX(str, prev_scan);
if (STB_TEXTEDIT_GETCHAR(str, prev) == STB_TEXTEDIT_NEWLINE)
break;
prev_scan = prev;
}
find.first_char = find.prev_first;
find.prev_first = prev_scan;
}
@@ -1082,7 +1101,7 @@ retry:
if (state->single_line)
state->cursor = 0;
else while (state->cursor > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) != STB_TEXTEDIT_NEWLINE)
--state->cursor;
state->cursor = IMSTB_TEXTEDIT_GETPREVCHARINDEX(str, state->cursor);
state->has_preferred_x = 0;
break;
@@ -1094,9 +1113,9 @@ retry:
stb_textedit_clamp(str, state);
stb_textedit_move_to_first(state);
if (state->single_line)
state->cursor = n;
state->cursor = n;
else while (state->cursor < n && STB_TEXTEDIT_GETCHAR(str, state->cursor) != STB_TEXTEDIT_NEWLINE)
++state->cursor;
state->cursor = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, state->cursor);
state->has_preferred_x = 0;
break;
}
@@ -1110,7 +1129,7 @@ retry:
if (state->single_line)
state->cursor = 0;
else while (state->cursor > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) != STB_TEXTEDIT_NEWLINE)
--state->cursor;
state->cursor = IMSTB_TEXTEDIT_GETPREVCHARINDEX(str, state->cursor);
state->select_end = state->cursor;
state->has_preferred_x = 0;
break;
@@ -1125,7 +1144,7 @@ retry:
if (state->single_line)
state->cursor = n;
else while (state->cursor < n && STB_TEXTEDIT_GETCHAR(str, state->cursor) != STB_TEXTEDIT_NEWLINE)
++state->cursor;
state->cursor = IMSTB_TEXTEDIT_GETNEXTCHARINDEX(str, state->cursor);
state->select_end = state->cursor;
state->has_preferred_x = 0;
break;
+2 -2
View File
@@ -4516,8 +4516,8 @@ static int stbtt__compute_crossings_x(float x, float y, int nverts, stbtt_vertex
q2[0] = (float)x2;
q2[1] = (float)y2;
if (equal(q0,q1) || equal(q1,q2)) {
x0 = (int)verts[i-1].x;
y0 = (int)verts[i-1].y;
x0 = (int)verts[i-1].x; //-V1048
y0 = (int)verts[i-1].y; //-V1048
x1 = (int)verts[i ].x;
y1 = (int)verts[i ].y;
if (y > STBTT_min(y0,y1) && y < STBTT_max(y0,y1) && x > STBTT_min(x0,x1)) {
+7 -37
View File
@@ -1,39 +1,9 @@
cmake_minimum_required(VERSION 2.8.12)
set(UPNPC_BUILD_STATIC ON)
set(UPNPC_BUILD_SHARED OFF)
set(UPNPC_BUILD_TESTS OFF)
set(UPNPC_BUILD_SAMPLE OFF)
set(UPNPC_NO_INSTALL ON)
project(miniupnpc C)
set(MINIUPNPC_VERSION 1.9)
set(MINIUPNPC_API_VERSION 14)
add_subdirectory(miniupnp/miniupnpc)
if(UNIX)
add_definitions(-DMINIUPNPC_SET_SOCKET_TIMEOUT)
add_definitions(-D_BSD_SOURCE -D_POSIX_C_SOURCE=1)
elseif(WIN32)
add_definitions(-D_WIN32_WINNT=0x0501)
find_library(WINSOCK2_LIBRARY NAMES ws2_32 WS2_32 Ws2_32)
find_library(IPHLPAPI_LIBRARY NAMES iphlpapi)
set(LDLIBS ${WINSOCK2_LIBRARY} ${IPHLPAPI_LIBRARY} ${LDLIBS})
endif()
if(APPLE)
add_definitions(-DMACOSX -D_DARWIN_C_SOURCE)
endif()
set(SRCS src/igd_desc_parse.c
src/miniupnpc.c
src/minixml.c
src/minisoap.c
src/minissdpc.c
src/miniwget.c
src/upnpcommands.c
src/upnpdev.c
src/upnpreplyparse.c
src/upnperrors.c
src/connecthostport.c
src/portlistingparse.c
src/receivedata.c)
add_library(miniupnpc STATIC ${SRCS})
dolphin_disable_warnings(miniupnpc)
target_include_directories(miniupnpc PUBLIC src)
add_library(Miniupnpc::miniupnpc ALIAS miniupnpc)
add_library(Miniupnpc::miniupnpc ALIAS libminiupnpc-static)
-654
View File
@@ -1,654 +0,0 @@
$Id: Changelog.txt,v 1.215 2015/10/01 09:26:11 nanard Exp $
miniUPnP client Changelog.
2015/09/15:
Fix buffer overflow in igd_desc_parse.c/IGDstartelt()
Discovered by Aleksandar Nikolic of Cisco Talos
2015/08/28:
move ssdpDiscoverDevices() to minissdpc.c
2015/08/27:
avoid unix socket leak in getDevicesFromMiniSSDPD()
2015/08/16:
Also accept "Up" as ConnectionStatus value
2015/07/23:
split getDevicesFromMiniSSDPD
add ttl argument to upnpDiscover() functions
increments API_VERSION to 14
2015/07/22:
Read USN from SSDP messages.
2015/07/15:
Check malloc/calloc
2015/06/16:
update getDevicesFromMiniSSDPD() to process longer minissdpd
responses
2015/05/22:
add searchalltypes param to upnpDiscoverDevices()
increments API_VERSION to 13
2015/04/30:
upnpc: output version on the terminal
2015/04/27:
_BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE
fix CMakeLists.txt COMPILE_DEFINITIONS
fix getDevicesFromMiniSSDPD() not setting scope_id
improve -r command of upnpc command line tool
2014/11/17:
search all :
upnpDiscoverDevices() / upnpDiscoverAll() functions
listdevices executable
increment API_VERSION to 12
validate igd_desc_parse
2014/11/13:
increment API_VERSION to 11
2014/11/05:
simplified function GetUPNPUrls()
2014/09/11:
use remoteHost arg of DeletePortMapping
2014/09/06:
Fix python3 build
2014/07/01:
Fix parsing of IGD2 root descriptions
2014/06/10:
rename LIBSPEC to MINIUPNP_LIBSPEC
2014/05/15:
Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange
2014/02/05:
handle EINPROGRESS after connect()
2014/02/03:
minixml now handle XML comments
VERSION 1.9 : released 2014/01/31
2014/01/31:
added argument remoteHost to UPNP_GetSpecificPortMappingEntry()
increment API_VERSION to 10
2013/12/09:
--help and -h arguments in upnpc.c
2013/10/07:
fixed potential buffer overrun in miniwget.c
Modified UPNP_GetValidIGD() to check for ExternalIpAddress
2013/08/01:
define MAXHOSTNAMELEN if not already done
2013/06/06:
update upnpreplyparse to allow larger values (128 chars instead of 64)
2013/05/14:
Update upnpreplyparse to take into account "empty" elements
validate upnpreplyparse.c code with "make check"
2013/05/03:
Fix Solaris build thanks to Maciej Małecki
2013/04/27:
Fix testminiwget.sh for BSD
2013/03/23:
Fixed Makefile for *BSD
2013/03/11:
Update Makefile to use JNAerator version 0.11
2013/02/11:
Fix testminiwget.sh for use with dash
Use $(DESTDIR) in Makefile
VERSION 1.8 : released 2013/02/06
2012/10/16:
fix testminiwget with no IPv6 support
2012/09/27:
Rename all include guards to not clash with C99
(7.1.3 Reserved identifiers).
2012/08/30:
Added -e option to upnpc program (set description for port mappings)
2012/08/29:
Python 3 support (thanks to Christopher Foo)
2012/08/11:
Fix a memory link in UPNP_GetValidIGD()
Try to handle scope id in link local IPv6 URL under MS Windows
2012/07/20:
Disable HAS_IP_MREQN on DragonFly BSD
2012/06/28:
GetUPNPUrls() now inserts scope into link-local IPv6 addresses
2012/06/23:
More error return checks in upnpc.c
#define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id
parseURL() now parses IPv6 addresses scope
new parameter for miniwget() : IPv6 address scope
increment API_VERSION to 9
2012/06/20:
fixed CMakeLists.txt
2012/05/29
Improvements in testminiwget.sh
VERSION 1.7 : released 2012/05/24
2012/05/01:
Cleanup settings of CFLAGS in Makefile
Fix signed/unsigned integer comparaisons
2012/04/20:
Allow to specify protocol with TCP or UDP for -A option
2012/04/09:
Only try to fetch XML description once in UPNP_GetValidIGD()
Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments.
2012/04/05:
minor improvements to minihttptestserver.c
2012/03/15:
upnperrors.c returns valid error string for unrecognized error codes
2012/03/08:
make minihttptestserver listen on loopback interface instead of 0.0.0.0
2012/01/25:
Maven installation thanks to Alexey Kuznetsov
2012/01/21:
Replace WIN32 macro by _WIN32
2012/01/19:
Fixes in java wrappers thanks to Alexey Kuznetsov :
https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc
Make and install .deb packages (python) thanks to Alexey Kuznetsov :
https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc
2012/01/07:
The multicast interface can now be specified by name with IPv4.
2012/01/02:
Install man page
2011/11/25:
added header to Port Mappings list in upnpc.c
2011/10/09:
Makefile : make clean now removes jnaerator generated files.
MINIUPNPC_VERSION in miniupnpc.h (updated by make)
2011/09/12:
added rootdescURL to UPNPUrls structure.
VERSION 1.6 : released 2011/07/25
2011/07/25:
Update doc for version 1.6 release
2011/06/18:
Fix for windows in miniwget.c
2011/06/04:
display remote host in port mapping listing
2011/06/03:
Fix in make install : there were missing headers
2011/05/26:
Fix the socket leak in miniwget thanks to Richard Marsh.
Permit to add leaseduration in -a command. Display lease duration.
2011/05/15:
Try both LinkLocal and SiteLocal multicast address for SSDP in IPv6
2011/05/09:
add a test in testminiwget.sh.
more error checking in miniwget.c
2011/05/06:
Adding some tool to test and validate miniwget.c
simplified and debugged miniwget.c
2011/04/11:
moving ReceiveData() to a receivedata.c file.
parsing presentation url
adding IGD v2 WANIPv6FirewallControl commands
2011/04/10:
update of miniupnpcmodule.c
comments in miniwget.c, update in testminiwget
Adding errors codes from IGD v2
new functions in upnpc.c for IGD v2
2011/04/09:
Support for litteral ip v6 address in miniwget
2011/04/08:
Adding support for urn:schemas-upnp-org:service:WANIPv6FirewallControl:1
Updating APIVERSION
Supporting IPV6 in upnpDiscover()
Adding a -6 option to upnpc command line tool
2011/03/18:
miniwget/parseURL() : return an error when url param is null.
fixing GetListOfPortMappings()
2011/03/14:
upnpDiscover() now reporting an error code.
improvements in comments.
2011/03/11:
adding miniupnpcstrings.h.cmake and CMakeLists.txt files.
2011/02/15:
Implementation of GetListOfPortMappings()
2011/02/07:
updates to minixml to support character data starting with spaces
minixml now support CDATA
upnpreplyparse treats <NewPortListing> specificaly
change in simpleUPnPcommand to return the buffer (simplification)
2011/02/06:
Added leaseDuration argument to AddPortMapping()
Starting to implement GetListOfPortMappings()
2011/01/11:
updating wingenminiupnpcstrings.c
2011/01/04:
improving updateminiupnpcstrings.sh
VERSION 1.5 : released 2011/01/01
2010/12/21:
use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo
2010/12/11:
Improvements on getHTTPResponse() code.
2010/12/09:
new code for miniwget that handle Chunked transfer encoding
using getHTTPResponse() in SOAP call code
Adding MANIFEST.in for 'python setup.py bdist_rpm'
2010/11/25:
changes to minissdpc.c to compile under Win32.
see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=729
2010/09/17:
Various improvement to Makefile from Michał Górny
2010/08/05:
Adding the script "external-ip.sh" from Reuben Hawkins
2010/06/09:
update to python module to match modification made on 2010/04/05
update to Java test code to match modification made on 2010/04/05
all UPNP_* function now return an error if the SOAP request failed
at HTTP level.
2010/04/17:
Using GetBestRoute() under win32 in order to find the
right interface to use.
2010/04/12:
Retrying with HTTP/1.1 if HTTP/1.0 failed. see
http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1703
2010/04/07:
avoid returning duplicates in upnpDiscover()
2010/04/05:
Create a connecthostport.h/.c with connecthostport() function
and use it in miniwget and miniupnpc.
Use getnameinfo() instead of inet_ntop or inet_ntoa
Work to make miniupnpc IPV6 compatible...
Add java test code.
Big changes in order to support device having both WANIPConnection
and WANPPPConnection.
2010/04/04:
Use getaddrinfo() instead of gethostbyname() in miniwget.
2010/01/06:
#define _DARWIN_C_SOURCE for Mac OS X
2009/12/19:
Improve MinGW32 build
2009/12/11:
adding a MSVC9 project to build the static library and executable
2009/12/10:
Fixing some compilation stuff for Windows/MinGW
2009/12/07:
adaptations in Makefile and updateminiupnpcstring.sh for AmigaOS
some fixes for Windows when using virtual ethernet adapters (it is the
case with VMWare installed).
2009/12/04:
some fixes for AmigaOS compilation
Changed HTTP version to HTTP/1.0 for Soap too (to prevent chunked
transfer encoding)
2009/12/03:
updating printIDG and testigddescparse.c for debug.
modifications to compile under AmigaOS
adding a testminiwget program
Changed miniwget to advertise itself as HTTP/1.0 to prevent chunked
transfer encoding
2009/11/26:
fixing updateminiupnpcstrings.sh to take into account
which command that does not return an error code.
VERSION 1.4 : released 2009/10/30
2009/10/16:
using Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS in python module.
2009/10/10:
Some fixes for compilation under Solaris
compilation fixes : http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1464
2009/09/21:
fixing the code to ignore EINTR during connect() calls.
2009/08/07:
Set socket timeout for connect()
Some cleanup in miniwget.c
2009/08/04:
remove multiple redirections with -d in upnpc.c
Print textual error code in upnpc.c
Ignore EINTR during the connect() and poll() calls.
2009/07/29:
fix in updateminiupnpcstrings.sh if OS name contains "/"
Sending a correct value for MX: field in SSDP request
2009/07/20:
Change the Makefile to compile under Mac OS X
Fixed a stackoverflow in getDevicesFromMiniSSDPD()
2009/07/09:
Compile under Haiku
generate miniupnpcstrings.h.in from miniupnpcstrings.h
2009/06/04:
patching to compile under CygWin and cross compile for minGW
VERSION 1.3 :
2009/04/17:
updating python module
Use strtoull() when using C99
2009/02/28:
Fixed miniwget.c for compiling under sun
2008/12/18:
cleanup in Makefile (thanks to Paul de Weerd)
minissdpc.c : win32 compatibility
miniupnpc.c : changed xmlns prefix from 'm' to 'u'
Removed NDEBUG (using DEBUG)
2008/10/14:
Added the ExternalHost argument to DeletePortMapping()
2008/10/11:
Added the ExternalHost argument to AddPortMapping()
Put a correct User-Agent: header in HTTP requests.
VERSION 1.2 :
2008/10/07:
Update docs
2008/09/25:
Integrated sameport patch from Dario Meloni : Added a "sameport"
argument to upnpDiscover().
2008/07/18:
small modif to make Clang happy :)
2008/07/17:
#define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV...
2008/07/14:
include declspec.h in installation (to /usr/include/miniupnpc)
VERSION 1.1 :
2008/07/04:
standard options for install/ln instead of gnu-specific stuff.
2008/07/03:
now builds a .dll and .lib with win32. (mingw32)
2008/04/28:
make install now install the binary of the upnpc tool
2008/04/27:
added testupnpigd.py
added error strings for miniupnpc "internal" errors
improved python module error/exception reporting.
2008/04/23:
Completely rewrite igd_desc_parse.c in order to be compatible with
Linksys WAG200G
Added testigddescparse
updated python module
VERSION 1.0 :
2008/02/21:
put some #ifdef DEBUG around DisplayNameValueList()
2008/02/18:
Improved error reporting in upnpcommands.c
UPNP_GetStatusInfo() returns LastConnectionError
2008/02/16:
better error handling in minisoap.c
improving display of "valid IGD found" in upnpc.c
2008/02/03:
Fixing UPNP_GetValidIGD()
improved make install :)
2007/12/22:
Adding upnperrors.c/h to provide a strupnperror() function
used to translate UPnP error codes to string.
2007/12/19:
Fixing getDevicesFromMiniSSDPD()
improved error reporting of UPnP functions
2007/12/18:
It is now possible to specify a different location for MiniSSDPd socket.
working with MiniSSDPd is now more efficient.
python module improved.
2007/12/16:
improving error reporting
2007/12/13:
Try to improve compatibility by using HTTP/1.0 instead of 1.1 and
XML a bit different for SOAP.
2007/11/25:
fixed select() call for linux
2007/11/15:
Added -fPIC to CFLAG for better shared library code.
2007/11/02:
Fixed a potential socket leak in miniwget2()
2007/10/16:
added a parameter to upnpDiscover() in order to allow the use of another
interface than the default multicast interface.
2007/10/12:
Fixed the creation of symbolic link in Makefile
2007/10/08:
Added man page
2007/10/02:
fixed memory bug in GetUPNPUrls()
2007/10/01:
fixes in the Makefile
Added UPNP_GetIGDFromUrl() and adapted the sample program accordingly.
Added SONAME in the shared library to please debian :)
fixed MS Windows compilation (minissdpd is not available under MS Windows).
2007/09/25:
small change to Makefile to be able to install in a different location
(default is /usr)
2007/09/24:
now compiling both shared and static library
2007/09/19:
Cosmetic changes on upnpc.c
2007/09/02:
adapting to new miniSSDPd (release version ?)
2007/08/31:
Usage of miniSSDPd to skip discovery process.
2007/08/27:
fixed python module to allow compilation with Python older than Python 2.4
2007/06/12:
Added a python module.
2007/05/19:
Fixed compilation under MinGW
2007/05/15:
fixed a memory leak in AddPortMapping()
Added testupnpreplyparse executable to check the parsing of
upnp soap messages
minixml now ignore namespace prefixes.
2007/04/26:
upnpc now displays external ip address with -s or -l
2007/04/11:
changed MINIUPNPC_URL_MAXSIZE to 128 to accomodate the "BT Voyager 210"
2007/03/19:
cleanup in miniwget.c
2007/03/01:
Small typo fix...
2007/01/30:
Now parsing the HTTP header from SOAP responses in order to
get content-length value.
2007/01/29:
Fixed the Soap Query to speedup the HTTP request.
added some Win32 DLL stuff...
2007/01/27:
Fixed some WIN32 compatibility issues
2006/12/14:
Added UPNPIGD_IsConnected() function in miniupnp.c/.h
Added UPNP_GetValidIGD() in miniupnp.c/.h
cleaned upnpc.c main(). now using UPNP_GetValidIGD()
2006/12/07:
Version 1.0-RC1 released
2006/12/03:
Minor changes to compile under SunOS/Solaris
2006/11/30:
made a minixml parser validator program
updated minixml to handle attributes correctly
2006/11/22:
Added a -r option to the upnpc sample thanks to Alexander Hubmann.
2006/11/19:
Cleanup code to make it more ANSI C compliant
2006/11/10:
detect and display local lan address.
2006/11/04:
Packets and Bytes Sent/Received are now unsigned int.
2006/11/01:
Bug fix thanks to Giuseppe D'Angelo
2006/10/31:
C++ compatibility for .h files.
Added a way to get ip Address on the LAN used to reach the IGD.
2006/10/25:
Added M-SEARCH to the services in the discovery process.
2006/10/22:
updated the Makefile to use makedepend, added a "make install"
update Makefile
2006/10/20:
fixing the description url parsing thanks to patch sent by
Wayne Dawe.
Fixed/translated some comments.
Implemented a better discover process, first looking
for IGD then for root devices (as some devices only reply to
M-SEARCH for root devices).
2006/09/02:
added freeUPNPDevlist() function.
2006/08/04:
More command line arguments checking
2006/08/01:
Added the .bat file to compile under Win32 with minGW32
2006/07/31:
Fixed the rootdesc parser (igd_desc_parse.c)
2006/07/20:
parseMSEARCHReply() is now returning the ST: line as well
starting changes to detect several UPnP devices on the network
2006/07/19:
using GetCommonLinkProperties to get down/upload bitrate
-27
View File
@@ -1,27 +0,0 @@
MiniUPnPc
Copyright (c) 2005-2015, Thomas BERNARD
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-66
View File
@@ -1,66 +0,0 @@
Project: miniupnp
Project web page: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
github: https://github.com/miniupnp/miniupnp
freecode: http://freecode.com/projects/miniupnp
Author: Thomas Bernard
Copyright (c) 2005-2012 Thomas Bernard
This software is subject to the conditions detailed in the
LICENSE file provided within this distribution.
For the comfort of Win32 users, bsdqueue.h is included in the distribution.
Its licence is included in the header of the file.
bsdqueue.h is a copy of the sys/queue.h of an OpenBSD system.
* miniUPnP Client - miniUPnPc *
To compile, simply run 'gmake' (could be 'make' on your system).
Under win32, to compile with MinGW, type "mingw32make.bat".
MS Visual C solution and project files are supplied in the msvc/ subdirectory.
The compilation is known to work under linux, FreeBSD,
OpenBSD, MacOS X, AmigaOS and cygwin.
The official AmigaOS4.1 SDK was used for AmigaOS4 and GeekGadgets for AmigaOS3.
upx (http://upx.sourceforge.net) is used to compress the win32 .exe files.
To install the library and headers on the system use :
> su
> make install
> exit
alternatively, to install into a specific location, use :
> INSTALLPREFIX=/usr/local make install
upnpc.c is a sample client using the libminiupnpc.
To use the libminiupnpc in your application, link it with
libminiupnpc.a (or .so) and use the following functions found in miniupnpc.h,
upnpcommands.h and miniwget.h :
- upnpDiscover()
- miniwget()
- parserootdesc()
- GetUPNPUrls()
- UPNP_* (calling UPNP methods)
Note : use #include <miniupnpc/miniupnpc.h> etc... for the includes
and -lminiupnpc for the link
Discovery process is speeded up when MiniSSDPd is running on the machine.
* Python module *
you can build a python module with 'make pythonmodule'
and install it with 'make installpythonmodule'.
setup.py (and setupmingw32.py) are included in the distribution.
Feel free to contact me if you have any problem :
e-mail : miniupnp@free.fr
If you are using libminiupnpc in your application, please
send me an email !
For any question, you can use the web forum :
http://miniupnp.tuxfamily.org/forum/
-1
View File
@@ -1 +0,0 @@
1.9
-157
View File
@@ -1,157 +0,0 @@
$Id: apiversions.txt,v 1.7 2015/07/23 20:40:08 nanard Exp $
Differences in API between miniUPnPc versions
API version 14
miniupnpc.h
add ttl argument to upnpDiscover() upnpDiscoverAll() upnpDiscoverDevice()
upnpDiscoverDevices()
getDevicesFromMiniSSDPD() :
connectToMiniSSDPD() / disconnectFromMiniSSDPD()
requestDevicesFromMiniSSDPD() / receiveDevicesFromMiniSSDPD()
API version 13
miniupnpc.h:
add searchalltype param to upnpDiscoverDevices() function
updated macro :
#define MINIUPNPC_API_VERSION 13
API version 12
miniupnpc.h :
add upnpDiscoverAll() / upnpDiscoverDevice() / upnpDiscoverDevices()
functions
updated macros :
#define MINIUPNPC_API_VERSION 12
API version 11
upnpreplyparse.h / portlistingparse.h :
removed usage of sys/queue.h / bsdqueue.h
miniupnpc.h:
updated macros :
#define MINIUPNPC_API_VERSION 11
====================== miniUPnPc version 1.9 ======================
API version 10
upnpcommands.h:
added argument remoteHost to UPNP_GetSpecificPortMappingEntry()
miniupnpc.h:
updated macros :
#define MINIUPNPC_VERSION "1.9"
#define MINIUPNPC_API_VERSION 10
====================== miniUPnPc version 1.8 ======================
API version 9
miniupnpc.h:
updated macros :
#define MINIUPNPC_VERSION "1.8"
#define MINIUPNPC_API_VERSION 9
added "unsigned int scope_id;" to struct UPNPDev
added scope_id argument to GetUPNPUrls()
====================== miniUPnPc version 1.7 ======================
API version 8
miniupnpc.h :
add new macros :
#define MINIUPNPC_VERSION "1.7"
#define MINIUPNPC_API_VERSION 8
add rootdescURL to struct UPNPUrls
====================== miniUPnPc version 1.6 ======================
API version 8
Adding support for IPv6.
igd_desc_parse.h :
struct IGDdatas_service :
add char presentationurl[MINIUPNPC_URL_MAXSIZE];
struct IGDdatas :
add struct IGDdatas_service IPv6FC;
miniupnpc.h :
new macros :
#define UPNPDISCOVER_SUCCESS (0)
#define UPNPDISCOVER_UNKNOWN_ERROR (-1)
#define UPNPDISCOVER_SOCKET_ERROR (-101)
#define UPNPDISCOVER_MEMORY_ERROR (-102)
simpleUPnPcommand() prototype changed (but is normaly not used by API users)
add arguments ipv6 and error to upnpDiscover() :
struct UPNPDev *
upnpDiscover(int delay, const char * multicastif,
const char * minissdpdsock, int sameport,
int ipv6,
int * error);
add controlURL_6FC member to struct UPNPUrls :
struct UPNPUrls {
char * controlURL;
char * ipcondescURL;
char * controlURL_CIF;
char * controlURL_6FC;
};
upnpcommands.h :
add leaseDuration argument to UPNP_AddPortMapping()
add desc, enabled and leaseDuration arguments to UPNP_GetSpecificPortMappingEntry()
add UPNP_GetListOfPortMappings() function (IGDv2)
add IGDv2 IPv6 related functions :
UPNP_GetFirewallStatus()
UPNP_GetOutboundPinholeTimeout()
UPNP_AddPinhole()
UPNP_UpdatePinhole()
UPNP_DeletePinhole()
UPNP_CheckPinholeWorking()
UPNP_GetPinholePackets()
====================== miniUPnPc version 1.5 ======================
API version 5
new function :
int UPNPIGD_IsConnected(struct UPNPUrls *, struct IGDdatas *);
new macro in upnpcommands.h :
#define UPNPCOMMAND_HTTP_ERROR
====================== miniUPnPc version 1.4 ======================
Same API as version 1.3
====================== miniUPnPc version 1.3 ======================
API version 4
Use UNSIGNED_INTEGER type for
UPNP_GetTotalBytesSent(), UPNP_GetTotalBytesReceived(),
UPNP_GetTotalPacketsSent(), UPNP_GetTotalPacketsReceived()
Add remoteHost argument to UPNP_AddPortMapping() and UPNP_DeletePortMapping()
====================== miniUPnPc version 1.2 ======================
API version 3
added sameport argument to upnpDiscover()
struct UPNPDev *
upnpDiscover(int delay, const char * multicastif,
const char * minissdpdsock, int sameport);
====================== miniUPnPc Version 1.1 ======================
Same API as 1.0
====================== miniUPnPc Version 1.0 ======================
API version 2
struct UPNPDev {
struct UPNPDev * pNext;
char * descURL;
char * st;
char buffer[2];
};
struct UPNPDev * upnpDiscover(int delay, const char * multicastif,
const char * minissdpdsock);
+2 -1
View File
@@ -2,7 +2,8 @@
<Project>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ExternalsDir)miniupnpc\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)miniupnpc\miniupnp\miniupnpc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>MINIUPNP_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
+52 -35
View File
@@ -15,48 +15,65 @@
<Import Project="$(VSPropsDir)ClDisableAllWarnings.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>miniupnp\miniupnpc;miniupnp\miniupnpc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>MINIUPNP_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<PreBuildEvent>
<Command>
CD /d "$(ProjectDir)miniupnp\miniupnpc\msvc"
cscript //nologo genminiupnpcstrings.vbs
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="src\codelength.h" />
<ClInclude Include="src\connecthostport.h" />
<ClInclude Include="src\igd_desc_parse.h" />
<ClInclude Include="src\minisoap.h" />
<ClInclude Include="src\minissdpc.h" />
<ClInclude Include="src\miniupnpc.h" />
<ClInclude Include="src\miniupnpc_declspec.h" />
<ClInclude Include="src\miniupnpcstrings.h" />
<ClInclude Include="src\miniupnpctypes.h" />
<ClInclude Include="src\miniwget.h" />
<ClInclude Include="src\minixml.h" />
<ClInclude Include="src\portlistingparse.h" />
<ClInclude Include="src\receivedata.h" />
<ClInclude Include="src\upnpcommands.h" />
<ClInclude Include="src\upnpdev.h" />
<ClInclude Include="src\upnperrors.h" />
<ClInclude Include="src\upnpreplyparse.h" />
<ClInclude Include="miniupnp\miniupnpc\src\addr_is_reserved.h" />
<ClInclude Include="miniupnp\miniupnpc\src\connecthostport.h" />
<ClInclude Include="miniupnp\miniupnpc\include\igd_desc_parse.h" />
<ClInclude Include="miniupnp\miniupnpc\src\minisoap.h" />
<ClInclude Include="miniupnp\miniupnpc\src\minissdpc.h" />
<ClInclude Include="miniupnp\miniupnpc\include\miniupnpc.h" />
<ClInclude Include="miniupnp\miniupnpc\miniupnpcstrings.h" />
<ClInclude Include="miniupnp\miniupnpc\include\miniupnpctypes.h" />
<ClInclude Include="miniupnp\miniupnpc\include\miniupnpc_declspec.h" />
<ClInclude Include="miniupnp\miniupnpc\include\miniwget.h" />
<ClInclude Include="miniupnp\miniupnpc\src\miniwget_private.h" />
<ClInclude Include="miniupnp\miniupnpc\src\minixml.h" />
<ClInclude Include="miniupnp\miniupnpc\include\portlistingparse.h" />
<ClInclude Include="miniupnp\miniupnpc\src\receivedata.h" />
<ClInclude Include="miniupnp\miniupnpc\include\upnpcommands.h" />
<ClInclude Include="miniupnp\miniupnpc\include\upnpdev.h" />
<ClInclude Include="miniupnp\miniupnpc\include\upnperrors.h" />
<ClInclude Include="miniupnp\miniupnpc\include\upnpreplyparse.h" />
<ClInclude Include="miniupnp\miniupnpc\src\win32_snprintf.h" />
<ClInclude Include="miniupnp\miniupnpc\rc_version.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\connecthostport.c" />
<ClCompile Include="src\igd_desc_parse.c" />
<ClCompile Include="src\minisoap.c" />
<ClCompile Include="src\minissdpc.c" />
<ClCompile Include="src\miniupnpc.c" />
<ClCompile Include="src\miniwget.c" />
<ClCompile Include="src\minixml.c" />
<ClCompile Include="src\portlistingparse.c" />
<ClCompile Include="src\receivedata.c" />
<ClCompile Include="src\upnpcommands.c" />
<ClCompile Include="src\upnpdev.c" />
<ClCompile Include="src\upnperrors.c" />
<ClCompile Include="src\upnpreplyparse.c" />
<ClCompile Include="miniupnp\miniupnpc\src\addr_is_reserved.c" />
<ClCompile Include="miniupnp\miniupnpc\src\connecthostport.c" />
<ClCompile Include="miniupnp\miniupnpc\src\igd_desc_parse.c" />
<ClCompile Include="miniupnp\miniupnpc\src\minisoap.c" />
<ClCompile Include="miniupnp\miniupnpc\src\minissdpc.c" />
<ClCompile Include="miniupnp\miniupnpc\src\miniupnpc.c" />
<ClCompile Include="miniupnp\miniupnpc\src\miniwget.c" />
<ClCompile Include="miniupnp\miniupnpc\src\minixml.c" />
<ClCompile Include="miniupnp\miniupnpc\src\portlistingparse.c" />
<ClCompile Include="miniupnp\miniupnpc\src\receivedata.c" />
<ClCompile Include="miniupnp\miniupnpc\src\upnpc.c" />
<ClCompile Include="miniupnp\miniupnpc\src\upnpcommands.c" />
<ClCompile Include="miniupnp\miniupnpc\src\upnpdev.c" />
<ClCompile Include="miniupnp\miniupnpc\src\upnperrors.c" />
<ClCompile Include="miniupnp\miniupnpc\src\upnpreplyparse.c" />
</ItemGroup>
<ItemGroup>
<None Include="LICENSE" />
<None Include="README" />
<None Include="VERSION" />
<None Include="miniupnp\miniupnpc\LICENSE" />
<None Include="miniupnp\miniupnpc\README" />
<None Include="miniupnp\miniupnpc\VERSION" />
</ItemGroup>
<ItemGroup>
<Text Include="apiversions.txt" />
<Text Include="Changelog.txt" />
<Text Include="miniupnp\miniupnpc\apiversions.txt" />
<Text Include="miniupnp\miniupnpc\Changelog.txt" />
<Text Include="CMakeLists.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-54
View File
@@ -1,54 +0,0 @@
/* $Id: codelength.h,v 1.3 2011/07/30 13:10:05 nanard Exp $ */
/* Project : miniupnp
* Author : Thomas BERNARD
* copyright (c) 2005-2015 Thomas Bernard
* This software is subjet to the conditions detailed in the
* provided LICENCE file. */
#ifndef CODELENGTH_H_INCLUDED
#define CODELENGTH_H_INCLUDED
/* Encode length by using 7bit per Byte :
* Most significant bit of each byte specifies that the
* following byte is part of the code */
/* n : unsigned
* p : unsigned char *
*/
#define DECODELENGTH(n, p) n = 0; \
do { n = (n << 7) | (*p & 0x7f); } \
while((*(p++)&0x80) && (n<(1<<25)));
/* n : unsigned
* READ : function/macro to read one byte (unsigned char)
*/
#define DECODELENGTH_READ(n, READ) \
n = 0; \
do { \
unsigned char c; \
READ(c); \
n = (n << 7) | (c & 0x07f); \
if(!(c&0x80)) break; \
} while(n<(1<<25));
/* n : unsigned
* p : unsigned char *
* p_limit : unsigned char *
*/
#define DECODELENGTH_CHECKLIMIT(n, p, p_limit) \
n = 0; \
do { \
if((p) >= (p_limit)) break; \
n = (n << 7) | (*(p) & 0x7f); \
} while((*((p)++)&0x80) && (n<(1<<25)));
/* n : unsigned
* p : unsigned char *
*/
#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \
if(n>=2097152) *(p++) = (n >> 21) | 0x80; \
if(n>=16384) *(p++) = (n >> 14) | 0x80; \
if(n>=128) *(p++) = (n >> 7) | 0x80; \
*(p++) = n & 0x7f;
#endif /* CODELENGTH_H_INCLUDED */
-261
View File
@@ -1,261 +0,0 @@
/* $Id: connecthostport.c,v 1.13 2014/03/31 12:36:36 nanard Exp $ */
/* Project : miniupnp
* Author : Thomas Bernard
* Copyright (c) 2010-2014 Thomas Bernard
* This software is subject to the conditions detailed in the
* LICENCE file provided in this distribution. */
/* use getaddrinfo() or gethostbyname()
* uncomment the following line in order to use gethostbyname() */
#ifdef NO_GETADDRINFO
#define USE_GETHOSTBYNAME
#endif
#include <string.h>
#include <stdio.h>
#ifdef _WIN32
#include <winsock2.h>
#include <ws2tcpip.h>
#include <io.h>
#define MAXHOSTNAMELEN 64
#define snprintf _snprintf
#define herror
#define socklen_t int
#else /* #ifdef _WIN32 */
#include <unistd.h>
#include <sys/param.h>
#include <sys/select.h>
#include <errno.h>
#define closesocket close
#include <netdb.h>
#include <netinet/in.h>
/* defining MINIUPNPC_IGNORE_EINTR enable the ignore of interruptions
* during the connect() call */
#define MINIUPNPC_IGNORE_EINTR
#ifndef USE_GETHOSTBYNAME
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/select.h>
#endif /* #ifndef USE_GETHOSTBYNAME */
#endif /* #else _WIN32 */
/* definition of PRINT_SOCKET_ERROR */
#ifdef _WIN32
#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError());
#else
#define PRINT_SOCKET_ERROR(x) perror(x)
#endif
#if defined(__amigaos__) || defined(__amigaos4__)
#define herror(A) printf("%s\n", A)
#endif
#include "connecthostport.h"
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 64
#endif
/* connecthostport()
* return a socket connected (TCP) to the host and port
* or -1 in case of error */
int connecthostport(const char * host, unsigned short port,
unsigned int scope_id)
{
int s, n;
#ifdef USE_GETHOSTBYNAME
struct sockaddr_in dest;
struct hostent *hp;
#else /* #ifdef USE_GETHOSTBYNAME */
char tmp_host[MAXHOSTNAMELEN+1];
char port_str[8];
struct addrinfo *ai, *p;
struct addrinfo hints;
#endif /* #ifdef USE_GETHOSTBYNAME */
#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT
struct timeval timeout;
#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */
#ifdef USE_GETHOSTBYNAME
hp = gethostbyname(host);
if(hp == NULL)
{
herror(host);
return -1;
}
memcpy(&dest.sin_addr, hp->h_addr, sizeof(dest.sin_addr));
memset(dest.sin_zero, 0, sizeof(dest.sin_zero));
s = socket(PF_INET, SOCK_STREAM, 0);
if(s < 0)
{
PRINT_SOCKET_ERROR("socket");
return -1;
}
#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT
/* setting a 3 seconds timeout for the connect() call */
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0)
{
PRINT_SOCKET_ERROR("setsockopt");
}
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(struct timeval)) < 0)
{
PRINT_SOCKET_ERROR("setsockopt");
}
#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */
dest.sin_family = AF_INET;
dest.sin_port = htons(port);
n = connect(s, (struct sockaddr *)&dest, sizeof(struct sockaddr_in));
#ifdef MINIUPNPC_IGNORE_EINTR
/* EINTR The system call was interrupted by a signal that was caught
* EINPROGRESS The socket is nonblocking and the connection cannot
* be completed immediately. */
while(n < 0 && (errno == EINTR || errno = EINPROGRESS))
{
socklen_t len;
fd_set wset;
int err;
FD_ZERO(&wset);
FD_SET(s, &wset);
if((n = select(s + 1, NULL, &wset, NULL, NULL)) == -1 && errno == EINTR)
continue;
/*len = 0;*/
/*n = getpeername(s, NULL, &len);*/
len = sizeof(err);
if(getsockopt(s, SOL_SOCKET, SO_ERROR, &err, &len) < 0) {
PRINT_SOCKET_ERROR("getsockopt");
closesocket(s);
return -1;
}
if(err != 0) {
errno = err;
n = -1;
}
}
#endif /* #ifdef MINIUPNPC_IGNORE_EINTR */
if(n<0)
{
PRINT_SOCKET_ERROR("connect");
closesocket(s);
return -1;
}
#else /* #ifdef USE_GETHOSTBYNAME */
/* use getaddrinfo() instead of gethostbyname() */
memset(&hints, 0, sizeof(hints));
/* hints.ai_flags = AI_ADDRCONFIG; */
#ifdef AI_NUMERICSERV
hints.ai_flags = AI_NUMERICSERV;
#endif
hints.ai_socktype = SOCK_STREAM;
hints.ai_family = AF_UNSPEC; /* AF_INET, AF_INET6 or AF_UNSPEC */
/* hints.ai_protocol = IPPROTO_TCP; */
snprintf(port_str, sizeof(port_str), "%hu", port);
if(host[0] == '[')
{
/* literal ip v6 address */
int i, j;
for(i = 0, j = 1; host[j] && (host[j] != ']') && i < MAXHOSTNAMELEN; i++, j++)
{
tmp_host[i] = host[j];
if(0 == memcmp(host+j, "%25", 3)) /* %25 is just url encoding for '%' */
j+=2; /* skip "25" */
}
tmp_host[i] = '\0';
}
else
{
strncpy(tmp_host, host, MAXHOSTNAMELEN);
}
tmp_host[MAXHOSTNAMELEN] = '\0';
n = getaddrinfo(tmp_host, port_str, &hints, &ai);
if(n != 0)
{
#ifdef _WIN32
fprintf(stderr, "getaddrinfo() error : %d\n", n);
#else
fprintf(stderr, "getaddrinfo() error : %s\n", gai_strerror(n));
#endif
return -1;
}
s = -1;
for(p = ai; p; p = p->ai_next)
{
s = socket(p->ai_family, p->ai_socktype, p->ai_protocol);
if(s < 0)
continue;
if(p->ai_addr->sa_family == AF_INET6 && scope_id > 0) {
struct sockaddr_in6 * addr6 = (struct sockaddr_in6 *)p->ai_addr;
addr6->sin6_scope_id = scope_id;
}
#ifdef MINIUPNPC_SET_SOCKET_TIMEOUT
/* setting a 3 seconds timeout for the connect() call */
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(struct timeval)) < 0)
{
PRINT_SOCKET_ERROR("setsockopt");
}
timeout.tv_sec = 3;
timeout.tv_usec = 0;
if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(struct timeval)) < 0)
{
PRINT_SOCKET_ERROR("setsockopt");
}
#endif /* #ifdef MINIUPNPC_SET_SOCKET_TIMEOUT */
n = connect(s, p->ai_addr, p->ai_addrlen);
#ifdef MINIUPNPC_IGNORE_EINTR
/* EINTR The system call was interrupted by a signal that was caught
* EINPROGRESS The socket is nonblocking and the connection cannot
* be completed immediately. */
while(n < 0 && (errno == EINTR || errno == EINPROGRESS))
{
socklen_t len;
fd_set wset;
int err;
FD_ZERO(&wset);
FD_SET(s, &wset);
if((n = select(s + 1, NULL, &wset, NULL, NULL)) == -1 && errno == EINTR)
continue;
/*len = 0;*/
/*n = getpeername(s, NULL, &len);*/
len = sizeof(err);
if(getsockopt(s, SOL_SOCKET, SO_ERROR, &err, &len) < 0) {
PRINT_SOCKET_ERROR("getsockopt");
closesocket(s);
freeaddrinfo(ai);
return -1;
}
if(err != 0) {
errno = err;
n = -1;
}
}
#endif /* #ifdef MINIUPNPC_IGNORE_EINTR */
if(n < 0)
{
closesocket(s);
continue;
}
else
{
break;
}
}
freeaddrinfo(ai);
if(s < 0)
{
PRINT_SOCKET_ERROR("socket");
return -1;
}
if(n < 0)
{
PRINT_SOCKET_ERROR("connect");
return -1;
}
#endif /* #ifdef USE_GETHOSTBYNAME */
return s;
}

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