Commit Graph

558 Commits

Author SHA1 Message Date
Connor McLaughlin 30096a5ae4 Qt: Add hardware check for SSE4 and AVX2 2022-05-27 17:39:09 +01:00
Connor McLaughlin ce53b7adb1 Qt: Implement drag/drop to main window 2022-05-27 09:55:02 +01:00
Connor McLaughlin 25fa70fe9e Qt: Fix loading save state from manual file 2022-05-27 09:55:02 +01:00
Connor McLaughlin 46a649afc1 GS: Add Skip Presenting Duplicate Frames option 2022-05-25 23:24:44 +01:00
Connor McLaughlin 3b5538a09c VMManager: Fix no ws/ni patches message showing up on reset 2022-05-25 23:24:30 +01:00
refractionpcsx2 d1cdfafe22 Qt: Fix auto updater
CI didn't build it, so we missed it lol
2022-05-25 10:28:43 +01:00
Connor McLaughlin 91e8a2cf0e Qt: Fix adding multi bindings from pad 2022-05-25 10:15:48 +01:00
Connor McLaughlin b5721a92e9 Misc: Fix a bunch of recent warnings from clang 2022-05-25 10:15:48 +01:00
Connor McLaughlin cefe4b773c Qt: Add clear bindings button to controllers 2022-05-25 10:15:48 +01:00
Connor McLaughlin 332346449f Qt: Remove presets dropdown, hide restore defaults
Until it's implemented.
2022-05-25 10:15:48 +01:00
Connor McLaughlin 2c199e7c42 Qt: Add log timestamps 2022-05-25 10:15:48 +01:00
Connor McLaughlin 2a32864856 Qt: Get rid of duplicate base setting query helpers 2022-05-25 10:15:48 +01:00
Connor McLaughlin 08aad5461e Qt: Add block dump options 2022-05-25 10:15:48 +01:00
Connor McLaughlin 0bab9474ae Qt: Add file logging option 2022-05-25 10:15:48 +01:00
refractionpcsx2 4a12ec6fc0 GS: Add option to disable Interlace Offset 2022-05-24 18:03:07 +01:00
Connor McLaughlin aa47018197 Qt: Apply patches on entry point compile
Fixes WRC4's entrypoint patch not being used.
2022-05-24 18:00:59 +01:00
refractionpcsx2 d5cd2446e4 GUI/Qt: Use higher quality icon 2022-05-24 17:59:05 +01:00
lightningterror eb386fb0fb Qt: Gray out language selection.
Not yet implemented.
2022-05-24 16:59:26 +02:00
Connor McLaughlin d65522a9b4 VMManager: Add no-interlacing patches 2022-05-24 12:50:43 +01:00
Connor McLaughlin fa91d0b705 Qt: Make relationship between vsync queue/optimal pacing clearer 2022-05-24 11:34:56 +01:00
Connor McLaughlin f2713462cc Qt: Fix starting after theme change 2022-05-24 11:34:56 +01:00
Connor McLaughlin 74738022da Qt: Use SERIAL_CRC.ini naming for per-game settings 2022-05-23 17:27:11 +01:00
lightningterror 372ee9b6b6 Qt: Allow to load/browse block dump files. 2022-05-23 18:19:14 +02:00
lightningterror 943e21f507 Qt: Fix link/url colours in various themes.
Fixes #6148
2022-05-23 17:11:29 +02:00
Connor McLaughlin b6308bab4f Qt: Initialize COM ourselves on EmuThread
If we don't, SDL initializes it first in STA mode, which prevents MT
mode from being used, which prevents us from using XAudio2.
2022-05-23 15:45:53 +01:00
lightningterror a92eb4d10a Qt: Disable/remove unused buttons.
Not implemented yet.
2022-05-23 16:32:02 +02:00
Connor McLaughlin b59d4791cf Qt: Fix game grid scale/title setting not loading 2022-05-23 13:09:41 +01:00
Connor McLaughlin c3ee97103f Qt: Don't display update errors for background checks
It can be annoying, e.g. if you're not connected to the internet.
2022-05-23 13:09:41 +01:00
Connor McLaughlin 489fbe628a Qt: Remove download size from update prompt
The pcsx2.net api doesn't provide it.
2022-05-23 13:09:41 +01:00
Tyler Wilding 8fb09d07ed input-rec: ensure controller logging is disabled by default 2022-05-22 20:29:42 -04:00
kenshen112 710d3360ac Cmake: Link InputRecording 2022-05-22 23:47:14 +01:00
lightningterror ded036b93e Qt: Remove rich discord presence button.
Not implemented.
2022-05-23 00:34:37 +02:00
Silent 364e6a1341 GameList: Mark search directory cells as read-only 2022-05-22 23:16:10 +01:00
Tyler Wilding 2aec91d8c0 input-rec: remove frame-advance and adjust folder structure 2022-05-22 17:24:02 -04:00
Tyler Wilding 4f0c880e3e input-rec: append `.p2m2` automatically when browsing for a file 2022-05-22 17:24:02 -04:00
Tyler Wilding 13d623f350 input-rec: cleanup VS and CMake project files 2022-05-22 17:24:02 -04:00
Tyler Wilding 2e8076d909 input-rec: begin achieving parity in Qt 2022-05-22 17:24:02 -04:00
Tyler Wilding 655939147a input-rec: Remove `DISABLE_RECORDING` usages 2022-05-22 17:24:02 -04:00
Connor McLaughlin ed5aa4a67d Qt: Cancel game list scanning when VM starts
Because of CDVD global state, and the fact that we hijack CDVD for
getting the game details, we have to cancel the scan. Otherwise, the
scanner will clash with the game's CDVD access.
2022-05-22 22:30:02 +02:00
Connor McLaughlin 22bf3549b6 Host: Add game list refresh/cancel calls 2022-05-22 22:30:02 +02:00
Tyler Wilding dafef46a1b ci: add SSE4 support for tagged Qt builds 2022-05-22 14:18:50 -04:00
Connor McLaughlin ea051c6d5f Everything: Get rid of wx entirely from the Qt build 2022-05-22 13:58:56 +01:00
Connor McLaughlin 893b3c629d Everything: Remove a **lot** of wx, and px nonsense
- common has no wx left except for Path.
 - pcsx2core only has it in a few places (memory cards and path related
   stuff).
2022-05-22 13:58:56 +01:00
Connor McLaughlin b1d6d84e6f Qt: Get rid of wx module init
We're not using any wx thread junk anymore, so this can go.
2022-05-22 13:58:56 +01:00
Connor McLaughlin 437b6f3f0e Host: Reset imgui state when there's no frame to present
Prevents things getting into a messed up state internally where several
frames are buffered.
2022-05-16 17:30:11 +01:00
Connor McLaughlin df5e175b86 GS: Support creating/replaying dumps in zstandard format 2022-05-16 15:03:29 +01:00
Connor McLaughlin 8c270288de GS: Refactor screenshots/GS dumping triggers
i.e. make it not rubbish and a massive race condition.

Also adds GS dump saving to Qt.
2022-05-16 15:03:29 +01:00
arcum42 e456fb8f88
Qt: Hook up screenshot button. (#6070)
Qt: Implemented hotkey as well.
2022-05-12 14:53:40 -07:00
Connor McLaughlin fbd36a4347 Qt: Fix building on Linux 2022-05-12 17:31:06 +01:00
Connor McLaughlin 7f8bfb22de Build: Fix revision extractor for Qt auto updater 2022-05-12 17:31:06 +01:00
Connor McLaughlin 41f1ec445f Qt: Add auto updater UI 2022-05-12 15:03:26 +01:00
Connor McLaughlin d535331b4b Misc: Remove __fastcall, __fc, __concall and friends
These have no meaning in x64 (apart from throwing compiler warnings),
and we don't do 32-bit anymore. Also saves needing to include
`Pcsx2Defs.h` in files which don't otherwise need it.
2022-05-12 14:58:03 +01:00
Connor McLaughlin 17f2fb4471 Qt: Fix nightly builds not showing version in title bar 2022-05-11 13:13:39 +02:00
Connor McLaughlin f8dcff9fc4 Common: Remove references to pthreads4w
It's only needed for wx now.
2022-05-09 16:06:33 +01:00
Connor McLaughlin a93829557b SaveState: Misc refactoring and improvements
- Block until saves are completed when resuming.
 - Save shutdown state asynchronously.
 - Add function to read screenshot out of zip file (useful for
   previous, now we're using zstd).
2022-05-09 10:20:48 +01:00
Connor McLaughlin c21d475bbd Qt: Implement save-state-on-shutdown 2022-05-09 10:20:48 +01:00
Connor McLaughlin 81cd2d9be9 Qt: Add placeholder for when no games are in list 2022-05-07 15:32:59 +01:00
Connor McLaughlin 90707c453d Qt: Rework VM pausing when popup dialogs are opened
Also cleans up fullscreen transitions further.
2022-05-07 15:32:59 +01:00
Connor McLaughlin ec0e9f078c Qt: Confirm disc change type when switching to game list 2022-05-07 15:32:59 +01:00
Connor McLaughlin 98b537575f Qt: Rework display widget swapping 2022-05-07 15:32:59 +01:00
Connor McLaughlin 91c717376f Qt: Use app bundle resources directory on Mac 2022-05-05 09:51:56 +01:00
Connor McLaughlin 344c918b65 Qt: Fix possible race when shutting down (Mac) 2022-05-05 09:51:56 +01:00
Connor McLaughlin deeda519b0 Qt: Remove unused host display includes from EmuThread.cpp 2022-05-05 09:51:56 +01:00
Connor McLaughlin 2db12b9d84 Qt: Hook up axis/vibration scale in controller settings 2022-05-05 09:51:56 +01:00
Connor McLaughlin 378588c67d Qt: Implement more command line arguments 2022-05-05 09:51:56 +01:00
Connor McLaughlin 119b6bdfd5 Qt: Fix not-render-to-main after start fullscreen+toggle 2022-05-05 09:51:56 +01:00
Connor McLaughlin 8751a2d330 Qt: Make win32 console less garbage 2022-05-05 09:51:56 +01:00
Connor McLaughlin 4bdf180145 PerformanceMetrics: Switch to ThreadHandle 2022-05-02 14:25:05 +01:00
RedDevilus a20a3866d0 Qt: Append warning for Manual Hardware Renderer Fixes
Same as the WX side where if you enable this option for doing hardware renderer or upscaling fixes it will disable the automatic settings from the GameDB.
But in tooltip version.
2022-04-27 16:14:07 +01:00
Connor McLaughlin a524410b0a Qt: Fix firing multiple bindings with chords 2022-04-27 15:32:52 +01:00
RedDevilus 11eab828c4 Qt: Fix VuClamp values
This was an oversight, probably from copying the EEClamp value variables.
2022-04-25 23:28:03 +01:00
BuildTools 3b043250b6 UI: Rename Ultra Blending to Maximum Blending
Rename Ultra Blending to Maximum Blending
2022-04-25 11:43:04 +02:00
Connor McLaughlin 73f17be890 Qt: Implement proper data directory selection 2022-04-24 06:08:37 +01:00
Connor McLaughlin 69da1e4559 Qt: Install crash handler on startup 2022-04-21 14:21:49 +01:00
lightningterror b3c7b07813 GS-qt: Gray out texture barriers and geometry shaders on d3d or sw renderers. 2022-04-19 10:52:59 +02:00
Connor McLaughlin 7194542029 Qt: Fix fullscreening in Wayland 2022-04-17 11:56:37 +01:00
Connor McLaughlin 1993203d26 GS: Add Direct3D 12 renderer 2022-04-15 12:56:41 +01:00
refractionpcsx2 e2044eba66 GS/Window: Add Automatic 4:3/3:2 mode, keep 4:3 separate 2022-04-15 11:07:22 +01:00
refractionpcsx2 06e6d12e2f GS: Added automatic 3:2 aspect for 480p mode 2022-04-15 11:07:22 +01:00
refractionpcsx2 48fd68ca87 GS: Implement PCRTC Offsets
This is off by default because people will complain about black borders, but I've tried to keep it to a minimum.

Enabling this option (Screen Offsets in the graphics settings) will allow you to position the screen in games which allow you to do so, maintain correct aspect ratios, and screen shake effects which are done on PCRTC (WipEout Fusion for example) will work.
2022-04-15 11:07:22 +01:00
Connor McLaughlin f86b3a32cd Qt: Switch to QtEntryPoint.lib instead of explicit main() 2022-04-15 08:53:02 +01:00
Connor McLaughlin f270f34865 Qt: Move to Qt 6.3.0 2022-04-15 08:53:02 +01:00
Ty Lamontagne a4dcaa7c14 BiosTools: Allow BIOS region patching 2022-04-15 08:44:46 +01:00
Connor McLaughlin 864651ce8d System: Purge WinCompressNTFS.cpp
This is the most overengineered, stupid rubbish I've ever seen.
2022-04-15 08:15:40 +01:00
Connor McLaughlin 0914b2a474 Qt: Fix compiling without Vulkan renderer 2022-04-15 07:21:18 +01:00
Connor McLaughlin d387a1f4dc GS: Support compiling without OpenGL renderer 2022-04-15 07:21:18 +01:00
RedDevilus 29964c3f26 Qt: Fix interlacing
I actually made it backwards compatible but then reverted this line at the last minute, rendering the Qt variant useless. This fixes it again.
2022-04-08 08:24:54 +01:00
RedDevilus ec787d090d Qt: Add Gzipped
WX supported this, I don't see why not add to Qt. Though no idea why anyone wants to use it above CSO or CHD if you look at filesize.
2022-04-08 08:24:54 +01:00
Connor McLaughlin 821e15f1ee Qt: Add QtHost::RunOnUIThread() 2022-04-06 15:22:39 +01:00
Connor McLaughlin 0efe03e726 Qt: Implement Host::RunOnCPUThread() 2022-04-06 15:22:39 +01:00
TheLastRar 44081671ac Config: Fix saving/loading EnableGameFixes in Core 2022-04-05 11:12:14 +01:00
Connor McLaughlin 5987e03463 GS: Force min/mag linear when trilinear is forced
Trilinear implies that min/mag will be linear. Less confusing, makes
sense, and the min/mag point + mip linear case is currently not handled
properly with regard to the GS registers.
2022-04-04 17:01:23 +01:00
Connor McLaughlin 1b83e17d60 GS: Add automatic trilinear filtering level 2022-04-04 17:01:23 +01:00
Connor McLaughlin d01ee3163d Qt: Add performance metrics to status bar 2022-04-03 23:59:05 +01:00
RedDevilus 338eb42b04 Qt: Reduce max SPU - Change Speed Preset
Qt has a leftover from the old SPU2-X values which is 3000 ms (3 seconds) latency meaning that if an user sets it to the max it will do something like this: Videoframe ~150 / 180 happens and it makes the first sound after 3 seconds for the first videoframe which is far too long. Also changed 1% speed as it messed with the GSdump player and too stuttery to be usable in other usecases.
2022-03-28 10:44:04 +01:00
Connor McLaughlin 5e336138d0 Qt: Add shadeboost settings 2022-03-28 09:24:51 +02:00
TheLastRar 352faeddb2 DEV9: Add Socket api mode 2022-03-27 16:16:19 +01:00
TheLastRar e20a357340 DEV9: Allow user DHCP settings to be overridden 2022-03-27 16:16:19 +01:00
Connor McLaughlin 2ab6ca06ed Qt: Fix compile issues on Linux 2022-03-26 14:11:33 +00:00
Connor McLaughlin 9ac5041b43 Qt: Fix double entries in audio output modules 2022-03-26 14:11:33 +00:00
Connor McLaughlin 9262422d01 Qt: Add missing null terminator in audio settings 2022-03-26 07:56:52 +00:00
TheLastRar 48f7e6c63f DEV9: Add Qt UI 2022-03-25 13:50:25 +00:00
Connor McLaughlin d09b49e17c Qt: Hook up automatic mapping 2022-03-25 12:51:31 +00:00
Connor McLaughlin 551d013b63 Qt: Add shutdown hotkey 2022-03-25 12:51:18 +00:00
TheLastRar 74ed14496b Qt: GS Settings Fixes 2022-03-25 10:26:23 +00:00
Connor McLaughlin 1fa6fb0a8c Qt: Add memory card settings 2022-03-25 10:26:09 +00:00
Connor McLaughlin 3dc6ae115f Qt: Implement (partial) audio settings 2022-03-25 10:26:09 +00:00
Connor McLaughlin b9edabc236 Qt: Fix incorrect setting binding for display linear 2022-03-22 13:38:26 +00:00
Connor McLaughlin 180d9ae9c9 Qt: Correct EE/IOP console defaults 2022-03-22 13:38:26 +00:00
Connor McLaughlin 80cc2f0cb7 Qt: Log machine caps on startup 2022-03-22 13:38:26 +00:00
Connor McLaughlin 19d310475b GS: Draw alpha pass when dual source blend is missing 2022-03-20 23:41:33 +00:00
Connor McLaughlin a8b9df3952 GS: Utilize GL_EXT_framebuffer_fetch where available 2022-03-20 23:41:33 +00:00
Connor McLaughlin bb75c78c1a GS: Add option to disable texture barriers/geometry shaders 2022-03-20 23:41:33 +00:00
TheLastRar 5949c772d1 Qt: Fix bugs relating to per-game settings 2022-03-20 04:13:45 +00:00
Connor McLaughlin 44728be719 Misc: Fix incorrect printf of std::string_view 2022-03-20 04:00:13 +00:00
RedDevilus c496e80eac PCSX2-GUI: Rename skipdraw and IDC for Partial Invalidation
Skipdraw and SkipDrawOffset isn't obvious to what it is. SkipDrawStart and SkipDrawEnd makes it obvious it's a range of values.
Also forgot to change the IDC for Disabling Partial Invalidation.
2022-03-20 03:59:38 +00:00
RedDevilus 73c6353351 Qt: Partial Invalidation
Some missing strings from the renaming.
2022-03-18 23:47:21 +00:00
BuildTools c2316ca5bc GUI: Rename Fast Texture Invalidation
Renames Fast Texture Invalidation to Disable Partial Invalidation.

Update GraphicsSettingsWidget.ui
2022-03-18 02:11:12 +00:00
Connor McLaughlin 8e08cd772b PerformanceMetrics: Add GPU time 2022-03-17 09:10:12 +00:00
lightningterror 939d98d660 Qt: Allow skipdraw up to 10k max. 2022-03-17 02:44:14 +01:00
lightningterror a546f61ea8 Qt: Fix Round sprite hack not applying. 2022-03-14 23:43:25 +01:00
Connor McLaughlin 6a15d46461 Qt: Improve boot filename autodetection 2022-03-14 15:26:19 +00:00
Connor McLaughlin 4331ae1925 VMManager: Support playing back GS dumps 2022-03-14 15:26:19 +00:00
Connor McLaughlin 6c33b73cdd GS: Make TC offset changable without recreating 2022-03-12 20:48:51 +00:00
Connor McLaughlin 96269db93e GameDatabase: Add ability to override GS fixes 2022-03-12 20:48:51 +00:00
Connor McLaughlin 237b9754c6 Qt: Log graphics driver info on startup 2022-03-08 10:39:50 +01:00
Connor McLaughlin f4acff1321 Qt: Fix incorrect dropdown value in game properties 2022-03-07 14:14:49 +01:00
Connor McLaughlin a8ee746c39 Qt: Fix live changing game settings not applying 2022-03-07 14:14:49 +01:00
Connor McLaughlin 2f028c5f40 Qt: Implement CTRL+C and confirm shutdown 2022-03-04 17:41:28 +00:00
Connor McLaughlin 56c8843406 Qt: Add log options to debug menu 2022-03-04 17:41:28 +00:00
Connor McLaughlin 37c4c596b5 Qt: Fix a few warnings on Linux 2022-03-04 17:41:28 +00:00
Connor McLaughlin 7b0bde4f1f Qt: Move section/key in setting binder
It's passed in by value, so elide the copy.
2022-03-04 17:41:28 +00:00
Connor McLaughlin 5c5c7d64a8 Qt: Remove version check macros
Not needed anymore since we require Qt6 on all platforms.
2022-03-04 17:41:28 +00:00
refractionpcsx2 2c33bf8c6f GUI/Qt: Update VU Sync option in Qt interface 2022-02-28 19:29:53 +00:00
Connor McLaughlin 5a25cc171d GS: Add texture dumping and replacement system 2022-02-24 10:18:49 +00:00
RedDevilus 9b0dc287c1 PCSX2-GUI: Rename Interlacing to Deinterlacing
So to sketch what is an annoying issue is that this for years has been wrongly presented to users.
None Interlacing = Interlacing but if used with a no-interlacing patch it will look like progressive but PCSX2 or really the internal PS2 side only detects interlacing mode. Which blows my mind that the user wouldn't be wrong to assume that None Interlacing = Interlacing.
Weave = Interlacing method (saw-tooth)
Bob = Likely the sharpest but can do vertical bouncing.
Blending = A bit blurry but the most consistent and has no bouncing.

I didn't change the code just the visual presentation to the users.

Example in gif format: https://upload.wikimedia.org/wikipedia/de/1/1e/Interlaced_Animation.gif
2022-02-24 00:38:01 +00:00
Connor McLaughlin 17b1c664a8 GS: Add option to disable status indicators
Fast forward/pause icons.
2022-02-23 15:45:47 +00:00
arcum42@gmail.com ff75ab73cc Qt: Fix qt compilation on linux. 2022-02-22 19:23:51 +00:00
RedDevilus 3c54593456 Qt: Add themes
Ranging from ColorBlind themes to flashy to pastel. Based on the Fusion factory. 3 Light and 1 Dark extra themes (2 light and 2 dark themes on master) with enough variability and choice.
It's just a placeholder for when other factories are implemented and perhaps even viable for future community-based static or dynamic ones.
2022-02-22 16:13:09 +00:00
RedDevilus 39dfb2e606 Qt: Resize default headersize BIOS
Qt: Resize default headersize BIOS

The first column was too small and visually makes it harder to see what BIOS you have.
2022-02-22 16:13:09 +00:00
seta-san 664013e7ad
Qt: Fix type on graphics panel (#5553) 2022-02-21 19:10:14 +00:00
Connor McLaughlin 5d33af13ca GS: Add full (hash cache) texture preloading option 2022-02-21 16:50:57 +01:00
Connor McLaughlin de195d9b20 Qt: Add game summary and audio/memcard placeholders 2022-02-16 17:34:53 +01:00
Connor McLaughlin b47552c08f Qt: Add per-game settings UI 2022-02-16 17:34:53 +01:00
Mrlinkwii 48dabd3ca2 QT: Add icon for Hk BIOS. 2022-02-15 20:54:27 +01:00
Florin9doi 65db50df5d
Qt: Add icon for Cn BIOS. 2022-02-10 21:02:55 +01:00
Connor McLaughlin c74cc9bc12 HostDisplay: Fix vsync getting lost on window changes 2022-02-07 01:42:40 +00:00
lightningterror d6d420b1f7 QT: Add missing Texture Inside RT option. 2022-02-06 13:17:28 +01:00
RedDevilus 5cc66e4d36 Qt: Resize Windows + Change Framerate Presets + Lower OSD time
The main window will now correctly display the full Toolbar. Interface Settings will not go out of bounds. The OSD message for cheats and patches has been changed and the overall timing of the static (not dynamic) OSD messages are now 5 seconds instead of 10 seconds which is pretty long. Tested on 1920 x 1080 + 2560 x 1080 on 125% and 150% DPI scaling.
2022-02-05 14:09:34 +00:00
Connor McLaughlin 1ea38b1981 Qt: Fix current tab resetting when switching renderers 2022-02-05 14:09:11 +00:00
RedDevilus f6d49eb5b9 Qt: More sizing + improve hotkeys code
There were other sizing issues with region and CRC that are now have better width. Taking the liberty to organise the hotkeys as it is laid on the GUI-level + adding missing hotkeys. There is still much work to be done.
2022-02-04 02:26:01 +00:00
RedDevilus 971f060029 Qt: Fix type table sizing + spaces
Type table in the main window was not wide enough. Also adding spaces in some strings and removing some redundant spaces in others.
2022-02-03 15:22:08 +00:00
Connor McLaughlin 3caebb31ae Qt: Add save state loading/loaded/saved events 2022-02-02 00:23:49 +00:00
Connor McLaughlin 8b9eee4961 Qt: Add QtUtils::StringViewToQString() 2022-02-02 00:23:49 +00:00
Connor McLaughlin 50735567c9 Qt: Fix crash when disconnecting controller which isn't last in list 2022-01-31 13:56:28 +00:00
Connor McLaughlin dac7106df8 Qt: Make input binding dialog match widget 2022-01-31 13:56:28 +00:00
refractionpcsx2 9d43641765 Build-QT: Fix error in VS Project 2022-01-30 15:27:20 +00:00
Connor McLaughlin 93f9ae8a31 Qt: Add work in progress interface 2022-01-30 14:29:18 +00:00