<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link rel="alternate" hreflang="en-GB"
                       href="https://www.tomsguide.com/uk/feeds/tag/gaming"
                       type="application/rss+xml"/>
                            <title><![CDATA[ Latest from Tom's Guide UK in Gaming ]]></title>
                <link>https://www.tomsguide.com/uk/gaming</link>
        <description><![CDATA[ All the latest gaming content from the Tom's Guide  UK team ]]></description>
                                    <lastBuildDate>Sat, 31 Oct 2026 10:15:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ The best PS5 and Xbox setup for GTA 6 — here are the must-have TVs, controllers, headsets and more ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Whether you like the franchise or not, there's no denying that <a href="https://www.tomsguide.com/gaming/gta-6s-ultimate-edition-is-the-real-full-game-and-the-rumors-of-it-costing-usd100-were-true-after-all">GTA 6</a> is the decade's most anticipate video game. First announced in 2023 and having been in development for 11 years, Grand Theft Auto VI will finally land on PS5 and Xbox on November 19. As someone who loved San Andreas, Vice City and GTA V, I'm really looking forward to it.</p><p>We're less than a month away to launch day, and if you're on the market for the ultimate GTA 6 setup, I've got you covered. Whether you're a veteran or a newcomer to the game and want to see what the hype's about, you need not only the <a href="https://www.tomsguide.com/gaming/best-games-consoles">best gaming console</a>, but also the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best headsets</a>, <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">controllers</a> and <a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">TV</a>.</p><p>I review gaming peripherals for a living, and I play video games in my downtime, too. I've given it much thought and after hours of doing so, I've come up with the quintessential peripherals you'll need for the best GTA 6 setup. And if you haven't done so already, there's still time to <a href="https://www.rockstargames.com/VI/editions" target="_blank" rel="nofollow">pre-order GTA 6</a>!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey67BW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey67BW.js" async=""></script><h2 class="article-body__section" id="section-console"><span>Console</span></h2><p>The first thing you'll need, naturally, is a console. On 19 November, GTA 6 launches on PS5 and Xbox Series X|S. While the PS5 Pro is currently out of stock everywhere, the base PS5 is available, as is the Xbox Series X.</p><div class="product"><a data-dimension112="bf5eff60-d153-11f1-82e1-2b6eca5e3434" data-action="Deal Block" data-label="5 (1TB)" data-dimension48="5 (1TB)" data-dimension25="$649" href="https://direct.playstation.com/en-us/buy-consoles/playstation5-console-1-tb" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1229px;"><p class="vanilla-image-block" style="padding-top:109.28%;"><img id="iEmmH3PPD57orNQRTRLG4h" name="ps5.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/iEmmH3PPD57orNQRTRLG4h-1920-80.jpg" mos="" align="middle" fullscreen="" width="1229" height="1343" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://direct.playstation.com/en-us/buy-consoles/playstation5-console-1-tb" target="_blank" rel="nofollow" data-dimension112="bf5eff60-d153-11f1-82e1-2b6eca5e3434" data-action="Deal Block" data-label="5 (1TB)" data-dimension48="5 (1TB)" data-dimension25="$649">5 (1TB): $649</a></strong><br />I would normally recommend the PS5 Pro for the best possible experience, but it's unfortunately out of stock nearly everywhere. The <a href="https://www.tomsguide.com/reviews/ps5">base PS5</a> is your next best choice. It features an incredibly fast SSD, gorgeous 4K visuals, a snappy and clean interface, and its inventive DualSense controller with haptic feedback and adaptive triggers delivers an immersive experience.<a class="view-deal button" href="https://direct.playstation.com/en-us/buy-consoles/playstation5-console-1-tb" target="_blank" rel="nofollow" data-dimension112="bf5eff60-d153-11f1-82e1-2b6eca5e3434" data-action="Deal Block" data-label="5 (1TB)" data-dimension48="5 (1TB)" data-dimension25="$649">View Deal</a></p></div><div class="product"><a data-dimension112="20282d4e-d154-11f1-9c6f-011d7177ca87" data-action="Deal Block" data-label="Series X (1TB)" data-dimension48="Series X (1TB)" data-dimension25="$798" href="https://www.amazon.com/Microsoft-Xbox-Gaming-Console-video-game/dp/B08H75RTZ8/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="7xTBrH5kTZdRXwtggowDyk" name="Xbox Series X.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/7xTBrH5kTZdRXwtggowDyk-1920-80.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Microsoft-Xbox-Gaming-Console-video-game/dp/B08H75RTZ8/" target="_blank" rel="nofollow" data-dimension112="20282d4e-d154-11f1-9c6f-011d7177ca87" data-action="Deal Block" data-label="Series X (1TB)" data-dimension48="Series X (1TB)" data-dimension25="$798">Series X (1TB): $798</a></strong><br />"The <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> is the pinnacle of Microsoft's gaming efforts," is what we said in our review of the console. It blends the promise of powerful next-gen performance with speedy loading times, and a huge library of gaming spanning multiple Xbox generations. The clean and cool design is something to behold, too.<a class="view-deal button" href="https://www.amazon.com/Microsoft-Xbox-Gaming-Console-video-game/dp/B08H75RTZ8/" target="_blank" rel="nofollow" data-dimension112="20282d4e-d154-11f1-9c6f-011d7177ca87" data-action="Deal Block" data-label="Series X (1TB)" data-dimension48="Series X (1TB)" data-dimension25="$798">View Deal</a></p></div><h2 class="article-body__section" id="section-ssd"><span>SSD</span></h2><p>GTA 6 is reportedly going to take up 210GB of space, and I don't know about you, but I'll need to delete a lot of stuff off my 1TB PS5 to make room for it. The solution? An external SSD!</p><div class="product"><a data-dimension112="b428d92a-d2b8-11f1-ba33-77caddb5885f" data-action="Deal Block" data-label="SN850P (1TB)" data-dimension48="SN850P (1TB)" data-dimension25="$249" href="https://www.amazon.com/Western-Digital-Officially-Licensed-Expansion/dp/B0C48B3RGL/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:31.00%;"><img id="Cstr2uAuyBrP7cFRetz9q4" name="WD Black SN850P" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Cstr2uAuyBrP7cFRetz9q4-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="465" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Western-Digital-Officially-Licensed-Expansion/dp/B0C48B3RGL/" target="_blank" rel="nofollow" data-dimension112="b428d92a-d2b8-11f1-ba33-77caddb5885f" data-action="Deal Block" data-label="SN850P (1TB)" data-dimension48="SN850P (1TB)" data-dimension25="$249">SN850P (1TB): $249</a></strong><br />Officially licensed for PS5 consoles, the WD_Black SN850P boasts 1TB of storage and packs impressive read (7,300 MB/s) and write speeds (6,300 MB/s). Its optimized heatsink designed especially for the PS5 ensures easy, worry-free installation into the M.2 slot.<a class="view-deal button" href="https://www.amazon.com/Western-Digital-Officially-Licensed-Expansion/dp/B0C48B3RGL/" target="_blank" rel="nofollow" data-dimension112="b428d92a-d2b8-11f1-ba33-77caddb5885f" data-action="Deal Block" data-label="SN850P (1TB)" data-dimension48="SN850P (1TB)" data-dimension25="$249">View Deal</a></p></div><div class="product"><a data-dimension112="b428d98e-d2b8-11f1-87cc-ffc44e64bb01" data-action="Deal Block" data-label="C50 Expansion Card (1TB)" data-dimension48="C50 Expansion Card (1TB)" data-dimension25="$309" href="https://www.walmart.com/ip/WD-BLACK-1TB-C50-Expansion-Card-for-Xbox-External-Solid-State-Drive-WDBMPH0010BNC-WCSN/3718749238" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1308px;"><p class="vanilla-image-block" style="padding-top:114.68%;"><img id="zEmaYBZpMP9ubuqvfk8HFc" name="71QxmOXxYVL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/zEmaYBZpMP9ubuqvfk8HFc-1920-80.jpg" mos="" align="middle" fullscreen="" width="1308" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/WD-BLACK-1TB-C50-Expansion-Card-for-Xbox-External-Solid-State-Drive-WDBMPH0010BNC-WCSN/3718749238" target="_blank" rel="nofollow" data-dimension112="b428d98e-d2b8-11f1-87cc-ffc44e64bb01" data-action="Deal Block" data-label="C50 Expansion Card (1TB)" data-dimension48="C50 Expansion Card (1TB)" data-dimension25="$309">C50 Expansion Card (1TB): was $334 now $309</a></strong><br />Given that game sizes are ginormous today, you need an SSD. This "plug and play" storage solution just slots into the Xbox storage expansion port found on the back of the console, and you're ready to game on. 1TB should be more than enough space for GTA 6 <em>and </em>a few other games.<a class="view-deal button" href="https://www.walmart.com/ip/WD-BLACK-1TB-C50-Expansion-Card-for-Xbox-External-Solid-State-Drive-WDBMPH0010BNC-WCSN/3718749238" target="_blank" rel="nofollow" data-dimension112="b428d98e-d2b8-11f1-87cc-ffc44e64bb01" data-action="Deal Block" data-label="C50 Expansion Card (1TB)" data-dimension48="C50 Expansion Card (1TB)" data-dimension25="$309">View Deal</a></p></div><h2 class="article-body__section" id="section-tv"><span>TV</span></h2><p>Great, you've got your console! But wait, do you have a TV to hook it up to? Fret not, some of the <a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">best gaming TVs</a> are currently on sale, and these should arrive right in time for GTA 6's release.</p><div class="product"><a data-dimension112="8e16bb1c-d155-11f1-b2bd-4f9aba6b9a10" data-action="Deal Block" data-label="C6 OLED (65-inch)" data-dimension48="C6 OLED (65-inch)" data-dimension25="$1399" href="https://www.walmart.com/ip/LG-65-C6-Series-4K-UHD-OLED-AI-Smart-webOS-26-TV-OLED65C6PUA/18196407846" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yZJJv6Rpskz5oXrVozrW7o" name="LG-C6-OLED-TV-16-by-9-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yZJJv6Rpskz5oXrVozrW7o-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/LG-65-C6-Series-4K-UHD-OLED-AI-Smart-webOS-26-TV-OLED65C6PUA/18196407846" target="_blank" rel="nofollow" data-dimension112="8e16bb1c-d155-11f1-b2bd-4f9aba6b9a10" data-action="Deal Block" data-label="C6 OLED (65-inch)" data-dimension48="C6 OLED (65-inch)" data-dimension25="$1399">C6 OLED (65-inch): was $2699 now $1399</a></strong><br />If you aren't short on cash, the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review">LG C6 OLED</a> is a no-brainer. For both console and PC players, it offers fantastic gaming. features, such as a 120Hz refresh rate at 4K resolution, 0.1ms response time, Dolby Vision, beautiful colors, and multiple HDMI 2.1 ports. It also features native support for cloud platforms including Xbox Cloud Gaming.<a class="view-deal button" href="https://www.walmart.com/ip/LG-65-C6-Series-4K-UHD-OLED-AI-Smart-webOS-26-TV-OLED65C6PUA/18196407846" target="_blank" rel="nofollow" data-dimension112="8e16bb1c-d155-11f1-b2bd-4f9aba6b9a10" data-action="Deal Block" data-label="C6 OLED (65-inch)" data-dimension48="C6 OLED (65-inch)" data-dimension25="$1399">View Deal</a></p></div><div class="product"><a data-dimension112="94462d96-d156-11f1-b274-150ded550adf" data-action="Deal Block" data-label="QM6K (55-inch)" data-dimension48="QM6K (55-inch)" data-dimension25="$547" href="https://www.amazon.com/TCL-55QM6K-120HZ-144HZ-Brightness-Television/dp/B0DSR9CHB1/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="UWuwBQCGbRW69BfRQauHi7" name="tcl-qm6k-1-by-1-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/UWuwBQCGbRW69BfRQauHi7-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-55QM6K-120HZ-144HZ-Brightness-Television/dp/B0DSR9CHB1/" target="_blank" rel="nofollow" data-dimension112="94462d96-d156-11f1-b274-150ded550adf" data-action="Deal Block" data-label="QM6K (55-inch)" data-dimension48="QM6K (55-inch)" data-dimension25="$547">QM6K (55-inch): was $599 now $547</a></strong><br />This is a TV I can vouch for personally as it's the one I own (it's known as C6K in the U.K. where I'm based). The <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> boasts a 120Hz refresh rate for consoles, Auto Low Latency Mode (ALLM) for instant response times, an on-screen overlay for adjusting settings, Dolby Vision gaming, Dolby Vision IQ, and simply stunning colors and visuals. It's the best TV I've ever owned.<a class="view-deal button" href="https://www.amazon.com/TCL-55QM6K-120HZ-144HZ-Brightness-Television/dp/B0DSR9CHB1/" target="_blank" rel="nofollow" data-dimension112="94462d96-d156-11f1-b274-150ded550adf" data-action="Deal Block" data-label="QM6K (55-inch)" data-dimension48="QM6K (55-inch)" data-dimension25="$547">View Deal</a></p></div><h2 class="article-body__section" id="section-soundbar"><span>Soundbar</span></h2><p>If you want to feel like you're playing games at the cinema, you need one of the <a href="https://www.tomsguide.com/audio/soundbars/best-soundbars">best soundbars</a>, and I've picked my two favorites for both small and big spaces. They get very loud, though, so try not to use them at night.</p><div class="product"><a data-dimension112="1d415064-d1eb-11f1-88e5-13795ff2a566" data-action="Deal Block" data-label="Bar 1300XMK2" data-dimension48="Bar 1300XMK2" data-dimension25="$1399" href="https://www.amazon.com/JBL-1300XMK2-11-1-4-soundbar-Detachable-Surround/dp/B0FN1JLNCN/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="2VdHveN77updAKoa8c4okR" name="jbl bar 1300xmk2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2VdHveN77updAKoa8c4okR-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/audio/soundbars/jbl-bar-1300xmk2-review" data-dimension112="1d415064-d1eb-11f1-88e5-13795ff2a566" data-action="Deal Block" data-label="Bar 1300XMK2" data-dimension48="Bar 1300XMK2" data-dimension25="$1399">JBL Bar 1300XMK2</a> is the best way to get movie theater-quality sound at home — and who doesn't want to feel like you're playing games at the cinema? Dialogue is crystal clear, and bass is powerful and enveloping. It comes with detachable speakers and a subwoofer for the ultimate immersive experience.<a class="view-deal button" href="https://www.amazon.com/JBL-1300XMK2-11-1-4-soundbar-Detachable-Surround/dp/B0FN1JLNCN/" target="_blank" rel="nofollow" data-dimension112="1d415064-d1eb-11f1-88e5-13795ff2a566" data-action="Deal Block" data-label="Bar 1300XMK2" data-dimension48="Bar 1300XMK2" data-dimension25="$1399">View Deal</a></p></div><div class="product"><a data-dimension112="9d29fd7c-d1ea-11f1-a6eb-8f2df5dcc602" data-action="Deal Block" data-label="Heston 60" data-dimension48="Heston 60" data-dimension25="$699" href="https://www.amazon.com/Marshall-Heston-Soundbar-Immersive-Bluetooth/dp/B0G5F6VGVD/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:14.00%;"><img id="nbXCxAkftnFjxJmbBHk2kE" name="heston-60-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/nbXCxAkftnFjxJmbBHk2kE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="210" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/audio/soundbars/marshall-heston-60-review" data-dimension112="9d29fd7c-d1ea-11f1-a6eb-8f2df5dcc602" data-action="Deal Block" data-label="Heston 60" data-dimension48="Heston 60" data-dimension25="$699">Marshall Heston 60</a> is a powerful soundbar that produces sound well beyond its compact size. With consistent Dolby Atmos performance across video games, movies and TV shows, the Heston 60 produces crisp and clear dialogues balanced well against clean treble and thumping bass. Oh, and it looks gorgeous, too. It'll honestly make you feel like you're Lucia or Jason.<a class="view-deal button" href="https://www.amazon.com/Marshall-Heston-Soundbar-Immersive-Bluetooth/dp/B0G5F6VGVD/" target="_blank" rel="nofollow" data-dimension112="9d29fd7c-d1ea-11f1-a6eb-8f2df5dcc602" data-action="Deal Block" data-label="Heston 60" data-dimension48="Heston 60" data-dimension25="$699">View Deal</a></p></div><h2 class="article-body__section" id="section-controller"><span>Controller</span></h2><p>Whether you're after a first-party limited edition GTA 6 controller or a third-party gamepad with Hall Effect triggers and sticks for enhanced precision, these are my top picks.</p><div class="product"><a data-dimension112="b722d276-d159-11f1-8fd0-7b189f076138" data-action="Deal Block" data-label="DualSense GTA 6 Edition" data-dimension48="DualSense GTA 6 Edition" data-dimension25="$84" href="https://www.amazon.com/DualSense%C2%AE-Wireless-Controller-Limited-Gaming-Console/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:610px;"><p class="vanilla-image-block" style="padding-top:82.13%;"><img id="XhDuYgRYaQexzzpTGdFVhL" name="Screenshot 2026-10-26 at 16.21.56" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/XhDuYgRYaQexzzpTGdFVhL-1920-80.png" mos="" align="middle" fullscreen="" width="610" height="501" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/DualSense%C2%AE-Wireless-Controller-Limited-Gaming-Console/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="b722d276-d159-11f1-8fd0-7b189f076138" data-action="Deal Block" data-label="DualSense GTA 6 Edition" data-dimension48="DualSense GTA 6 Edition" data-dimension25="$84">DualSense GTA 6 Edition: $84</a></strong><br />If you're a PS5 player, there's no better controller for you than the DualSense — so how about a Vice City-themed DualSense, eh? The special edition comes in white or black, and features the GTA 6 logo on the touchpad, palm trees adorning the sides, and a shimmering finish to cap it all off. It's stunning, really.<a class="view-deal button" href="https://www.amazon.com/DualSense%C2%AE-Wireless-Controller-Limited-Gaming-Console/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="b722d276-d159-11f1-8fd0-7b189f076138" data-action="Deal Block" data-label="DualSense GTA 6 Edition" data-dimension48="DualSense GTA 6 Edition" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="bf3766b6-d154-11f1-bda6-339582883e66" data-action="Deal Block" data-label="Raiju V3 Pro" data-dimension48="Raiju V3 Pro" data-dimension25="$214" href="https://www.amazon.com/Razer-Raiju-Pro-Wireless-Controller-5/dp/B0FNDGHM92/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:133.33%;"><img id="V4NLcp2FSEPpx4PczJbeQF" name="collections-ps5-3" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/V4NLcp2FSEPpx4PczJbeQF-1920-80.jpg" mos="" align="middle" fullscreen="" width="900" height="1200" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-raiju-v3-pro-review" data-dimension112="bf3766b6-d154-11f1-bda6-339582883e66" data-action="Deal Block" data-label="Raiju V3 Pro" data-dimension48="Raiju V3 Pro" data-dimension25="$214">Razer Raiju V3 Pro</a> is a mighty controller for PS5 (as long as you don't mind the absence of haptics). Its TMR sticks offer precise control over movements while removing the risk of stick drift, and the gamepad’s Hall Effect triggers are fantastic too. The controller is highly customizable with removable back buttons and personalization via mobile software, and it’s very comfortable for long gaming sessions.<a class="view-deal button" href="https://www.amazon.com/Razer-Raiju-Pro-Wireless-Controller-5/dp/B0FNDGHM92/" target="_blank" rel="nofollow" data-dimension112="bf3766b6-d154-11f1-bda6-339582883e66" data-action="Deal Block" data-label="Raiju V3 Pro" data-dimension48="Raiju V3 Pro" data-dimension25="$214">View Deal</a></p></div><div class="product"><a data-dimension112="bf376774-d154-11f1-99b7-b5e736379271" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259" href="https://www.amazon.com/SteelSeries-Aeon-Wireless-Controller-PC-Mobile/dp/B0HH5C1RM3/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4KQWbcoHH7mXgVxr9YU3vC" name="SteelSeries Aeon Pro controller deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4KQWbcoHH7mXgVxr9YU3vC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="1200" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Don't want any downtime between charges so that you can keep playing for hours on end? The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-aeon-pro-review" data-dimension112="bf376774-d154-11f1-99b7-b5e736379271" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259">SteelSeries Aeon Pro</a> features replaceable batteries allowing zero downtime, and it's a triumph. It boasts Hall Effect sticks and triggers, an OLED display for quick system swapping and configs, and bags of customization in the GG app.<a class="view-deal button" href="https://www.amazon.com/SteelSeries-Aeon-Wireless-Controller-PC-Mobile/dp/B0HH5C1RM3/" target="_blank" rel="nofollow" data-dimension112="bf376774-d154-11f1-99b7-b5e736379271" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259">View Deal</a></p></div><h2 class="article-body__section" id="section-headset"><span>Headset</span></h2><p>When you can't use your soundbar or don't want to disturb your partner or housemates, you can't go wrong with one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best gaming headsets</a>. I awarded both of my top picks 5-stars each in their respective reviews, so you know they're <em>good.</em></p><div class="product"><a data-dimension112="068a27f6-d155-11f1-9875-59a9abe68556" data-action="Deal Block" data-label="BlackShark V3 Pro" data-dimension48="BlackShark V3 Pro" data-dimension25="$249" href="https://www.amazon.com/Razer-BlackShark-Wireless-Gaming-Headset-PC/dp/B0F3QKLDLM/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="iFdB8fgzyU6X4P2WfMj9QN" name="Razer-BlackShark-V3-Pro-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/iFdB8fgzyU6X4P2WfMj9QN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review" data-dimension112="068a27f6-d155-11f1-9875-59a9abe68556" data-action="Deal Block" data-label="BlackShark V3 Pro" data-dimension48="BlackShark V3 Pro" data-dimension25="$249">Razer BlackShark V3 Pro</a> was one of the easiest 5-star ratings I've awarded. It boasts ridiculously fantastic sound with spatial audio support, and it features highly effective ANC to keep you locked in and immersed. Not that you'll need it for GTA 6, but its detachable boom mic makes you sound loud and clear. Oh, and it's oh-so-comfortable. It's available for both PS5 and Xbox.<a class="view-deal button" href="https://www.amazon.com/Razer-BlackShark-Wireless-Gaming-Headset-PC/dp/B0F3QKLDLM/" target="_blank" rel="nofollow" data-dimension112="068a27f6-d155-11f1-9875-59a9abe68556" data-action="Deal Block" data-label="BlackShark V3 Pro" data-dimension48="BlackShark V3 Pro" data-dimension25="$249">View Deal</a></p></div><div class="product"><a data-dimension112="362672f8-d155-11f1-a275-f5bb1cd65ae1" data-action="Deal Block" data-label="Pro Wireless Gaming Headset" data-dimension48="Pro Wireless Gaming Headset" data-dimension25="$209" href="https://www.amazon.com/Alienware-Pro-Wireless-Gaming-Headset/dp/B0DHWFYX62/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1245px;"><p class="vanilla-image-block" style="padding-top:120.48%;"><img id="d6rYExHTcikkHXCyedszST" name="Alienware-Pro-Wireless-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/d6rYExHTcikkHXCyedszST-1920-80.jpg" mos="" align="middle" fullscreen="" width="1245" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>If you want your ears to feel like they're resting on clouds, and you want a headset you can wear all-day long, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/alienware-pro-wireless-gaming-headset-review" data-dimension112="362672f8-d155-11f1-a275-f5bb1cd65ae1" data-action="Deal Block" data-label="Pro Wireless Gaming Headset" data-dimension48="Pro Wireless Gaming Headset" data-dimension25="$209">Alienware Pro Wireless Gaming Headset</a> should be your port of call. Its 50mm drivers reproduce in-game sounds effectively, while effective ANC isolates and pulls you right into the action. It lasts up to 70 hours, too, so you don't need to worry about running out of charge while roaming the streets in GTA 6.<a class="view-deal button" href="https://www.amazon.com/Alienware-Pro-Wireless-Gaming-Headset/dp/B0DHWFYX62/" target="_blank" rel="nofollow" data-dimension112="362672f8-d155-11f1-a275-f5bb1cd65ae1" data-action="Deal Block" data-label="Pro Wireless Gaming Headset" data-dimension48="Pro Wireless Gaming Headset" data-dimension25="$209">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/im-replaying-red-dead-redemption-2-to-prepare-for-gta-6-5-features-that-need-to-return"><strong>I'm replaying Red Dead Redemption 2 to prepare for GTA 6 — 5 features that need to return</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/gta-6s-ultimate-edition-is-the-real-full-game-and-the-rumors-of-it-costing-usd100-were-true-after-all"><strong>GTA 6's Ultimate Edition is the real full game — and the rumors of it costing $100 were true after all</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/news/gta-6"><strong>GTA 6 — everything we know so far, including release date and latest trailer</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/the-best-setup-for-gta-6</link>
                                                                            <description>
                            <![CDATA[ Are you ready for GTA 6? Before 19 November, here are the gaming peripherals, consoles and TVs you need to enjoy the game as much as possible. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wZy9LLpPNFjDzcuiezCbKC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DqEvRNNPwBc7Y6NrQRZAg6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 31 Oct 2026 10:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7SPsEgwiRa9MdL3BPuVJUW-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&amp;#39;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&amp;#39;s also a licensed drone pilot and cameras expert so you&amp;#39;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DqEvRNNPwBc7Y6NrQRZAg6-1920-80.jpg">
                                                            <media:credit><![CDATA[Rockstar Games / LG / Marshall / SteelSeries / Alienware / Sony / Microsoft]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A selection of gaming peripherals, a TV, a soundbar, and s PS5 and Xbox, against a GTA 6 background]]></media:description>                                                            <media:text><![CDATA[A selection of gaming peripherals, a TV, a soundbar, and s PS5 and Xbox, against a GTA 6 background]]></media:text>
                                <media:title type="plain"><![CDATA[A selection of gaming peripherals, a TV, a soundbar, and s PS5 and Xbox, against a GTA 6 background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DqEvRNNPwBc7Y6NrQRZAg6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Whether you like the franchise or not, there's no denying that <a href="https://www.tomsguide.com/gaming/gta-6s-ultimate-edition-is-the-real-full-game-and-the-rumors-of-it-costing-usd100-were-true-after-all">GTA 6</a> is the decade's most anticipate video game. First announced in 2023 and having been in development for 11 years, Grand Theft Auto VI will finally land on PS5 and Xbox on November 19. As someone who loved San Andreas, Vice City and GTA V, I'm really looking forward to it.</p><p>We're less than a month away to launch day, and if you're on the market for the ultimate GTA 6 setup, I've got you covered. Whether you're a veteran or a newcomer to the game and want to see what the hype's about, you need not only the <a href="https://www.tomsguide.com/gaming/best-games-consoles">best gaming console</a>, but also the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best headsets</a>, <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">controllers</a> and <a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">TV</a>.</p><p>I review gaming peripherals for a living, and I play video games in my downtime, too. I've given it much thought and after hours of doing so, I've come up with the quintessential peripherals you'll need for the best GTA 6 setup. And if you haven't done so already, there's still time to <a href="https://www.rockstargames.com/VI/editions" target="_blank" rel="nofollow">pre-order GTA 6</a>!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey67BW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey67BW.js" async=""></script><h2 class="article-body__section" id="section-console"><span>Console</span></h2><p>The first thing you'll need, naturally, is a console. On 19 November, GTA 6 launches on PS5 and Xbox Series X|S. While the PS5 Pro is currently out of stock everywhere, the base PS5 is available, as is the Xbox Series X.</p><div class="product"><a data-dimension112="bf5eff60-d153-11f1-82e1-2b6eca5e3434" data-action="Deal Block" data-label="5 (1TB)" data-dimension48="5 (1TB)" data-dimension25="$649" href="https://direct.playstation.com/en-us/buy-consoles/playstation5-console-1-tb" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1229px;"><p class="vanilla-image-block" style="padding-top:109.28%;"><img id="iEmmH3PPD57orNQRTRLG4h" name="ps5.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/iEmmH3PPD57orNQRTRLG4h-1920-80.jpg" mos="" align="middle" fullscreen="" width="1229" height="1343" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://direct.playstation.com/en-us/buy-consoles/playstation5-console-1-tb" target="_blank" rel="nofollow" data-dimension112="bf5eff60-d153-11f1-82e1-2b6eca5e3434" data-action="Deal Block" data-label="5 (1TB)" data-dimension48="5 (1TB)" data-dimension25="$649">5 (1TB): $649</a></strong><br />I would normally recommend the PS5 Pro for the best possible experience, but it's unfortunately out of stock nearly everywhere. The <a href="https://www.tomsguide.com/reviews/ps5">base PS5</a> is your next best choice. It features an incredibly fast SSD, gorgeous 4K visuals, a snappy and clean interface, and its inventive DualSense controller with haptic feedback and adaptive triggers delivers an immersive experience.<a class="view-deal button" href="https://direct.playstation.com/en-us/buy-consoles/playstation5-console-1-tb" target="_blank" rel="nofollow" data-dimension112="bf5eff60-d153-11f1-82e1-2b6eca5e3434" data-action="Deal Block" data-label="5 (1TB)" data-dimension48="5 (1TB)" data-dimension25="$649">View Deal</a></p></div><div class="product"><a data-dimension112="20282d4e-d154-11f1-9c6f-011d7177ca87" data-action="Deal Block" data-label="Series X (1TB)" data-dimension48="Series X (1TB)" data-dimension25="$798" href="https://www.amazon.com/Microsoft-Xbox-Gaming-Console-video-game/dp/B08H75RTZ8/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="7xTBrH5kTZdRXwtggowDyk" name="Xbox Series X.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/7xTBrH5kTZdRXwtggowDyk-1920-80.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Microsoft-Xbox-Gaming-Console-video-game/dp/B08H75RTZ8/" target="_blank" rel="nofollow" data-dimension112="20282d4e-d154-11f1-9c6f-011d7177ca87" data-action="Deal Block" data-label="Series X (1TB)" data-dimension48="Series X (1TB)" data-dimension25="$798">Series X (1TB): $798</a></strong><br />"The <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> is the pinnacle of Microsoft's gaming efforts," is what we said in our review of the console. It blends the promise of powerful next-gen performance with speedy loading times, and a huge library of gaming spanning multiple Xbox generations. The clean and cool design is something to behold, too.<a class="view-deal button" href="https://www.amazon.com/Microsoft-Xbox-Gaming-Console-video-game/dp/B08H75RTZ8/" target="_blank" rel="nofollow" data-dimension112="20282d4e-d154-11f1-9c6f-011d7177ca87" data-action="Deal Block" data-label="Series X (1TB)" data-dimension48="Series X (1TB)" data-dimension25="$798">View Deal</a></p></div><h2 class="article-body__section" id="section-ssd"><span>SSD</span></h2><p>GTA 6 is reportedly going to take up 210GB of space, and I don't know about you, but I'll need to delete a lot of stuff off my 1TB PS5 to make room for it. The solution? An external SSD!</p><div class="product"><a data-dimension112="b428d92a-d2b8-11f1-ba33-77caddb5885f" data-action="Deal Block" data-label="SN850P (1TB)" data-dimension48="SN850P (1TB)" data-dimension25="$249" href="https://www.amazon.com/Western-Digital-Officially-Licensed-Expansion/dp/B0C48B3RGL/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:31.00%;"><img id="Cstr2uAuyBrP7cFRetz9q4" name="WD Black SN850P" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Cstr2uAuyBrP7cFRetz9q4-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="465" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Western-Digital-Officially-Licensed-Expansion/dp/B0C48B3RGL/" target="_blank" rel="nofollow" data-dimension112="b428d92a-d2b8-11f1-ba33-77caddb5885f" data-action="Deal Block" data-label="SN850P (1TB)" data-dimension48="SN850P (1TB)" data-dimension25="$249">SN850P (1TB): $249</a></strong><br />Officially licensed for PS5 consoles, the WD_Black SN850P boasts 1TB of storage and packs impressive read (7,300 MB/s) and write speeds (6,300 MB/s). Its optimized heatsink designed especially for the PS5 ensures easy, worry-free installation into the M.2 slot.<a class="view-deal button" href="https://www.amazon.com/Western-Digital-Officially-Licensed-Expansion/dp/B0C48B3RGL/" target="_blank" rel="nofollow" data-dimension112="b428d92a-d2b8-11f1-ba33-77caddb5885f" data-action="Deal Block" data-label="SN850P (1TB)" data-dimension48="SN850P (1TB)" data-dimension25="$249">View Deal</a></p></div><div class="product"><a data-dimension112="b428d98e-d2b8-11f1-87cc-ffc44e64bb01" data-action="Deal Block" data-label="C50 Expansion Card (1TB)" data-dimension48="C50 Expansion Card (1TB)" data-dimension25="$309" href="https://www.walmart.com/ip/WD-BLACK-1TB-C50-Expansion-Card-for-Xbox-External-Solid-State-Drive-WDBMPH0010BNC-WCSN/3718749238" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1308px;"><p class="vanilla-image-block" style="padding-top:114.68%;"><img id="zEmaYBZpMP9ubuqvfk8HFc" name="71QxmOXxYVL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/zEmaYBZpMP9ubuqvfk8HFc-1920-80.jpg" mos="" align="middle" fullscreen="" width="1308" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/WD-BLACK-1TB-C50-Expansion-Card-for-Xbox-External-Solid-State-Drive-WDBMPH0010BNC-WCSN/3718749238" target="_blank" rel="nofollow" data-dimension112="b428d98e-d2b8-11f1-87cc-ffc44e64bb01" data-action="Deal Block" data-label="C50 Expansion Card (1TB)" data-dimension48="C50 Expansion Card (1TB)" data-dimension25="$309">C50 Expansion Card (1TB): was $334 now $309</a></strong><br />Given that game sizes are ginormous today, you need an SSD. This "plug and play" storage solution just slots into the Xbox storage expansion port found on the back of the console, and you're ready to game on. 1TB should be more than enough space for GTA 6 <em>and </em>a few other games.<a class="view-deal button" href="https://www.walmart.com/ip/WD-BLACK-1TB-C50-Expansion-Card-for-Xbox-External-Solid-State-Drive-WDBMPH0010BNC-WCSN/3718749238" target="_blank" rel="nofollow" data-dimension112="b428d98e-d2b8-11f1-87cc-ffc44e64bb01" data-action="Deal Block" data-label="C50 Expansion Card (1TB)" data-dimension48="C50 Expansion Card (1TB)" data-dimension25="$309">View Deal</a></p></div><h2 class="article-body__section" id="section-tv"><span>TV</span></h2><p>Great, you've got your console! But wait, do you have a TV to hook it up to? Fret not, some of the <a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">best gaming TVs</a> are currently on sale, and these should arrive right in time for GTA 6's release.</p><div class="product"><a data-dimension112="8e16bb1c-d155-11f1-b2bd-4f9aba6b9a10" data-action="Deal Block" data-label="C6 OLED (65-inch)" data-dimension48="C6 OLED (65-inch)" data-dimension25="$1399" href="https://www.walmart.com/ip/LG-65-C6-Series-4K-UHD-OLED-AI-Smart-webOS-26-TV-OLED65C6PUA/18196407846" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yZJJv6Rpskz5oXrVozrW7o" name="LG-C6-OLED-TV-16-by-9-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yZJJv6Rpskz5oXrVozrW7o-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/LG-65-C6-Series-4K-UHD-OLED-AI-Smart-webOS-26-TV-OLED65C6PUA/18196407846" target="_blank" rel="nofollow" data-dimension112="8e16bb1c-d155-11f1-b2bd-4f9aba6b9a10" data-action="Deal Block" data-label="C6 OLED (65-inch)" data-dimension48="C6 OLED (65-inch)" data-dimension25="$1399">C6 OLED (65-inch): was $2699 now $1399</a></strong><br />If you aren't short on cash, the <a href="https://www.tomsguide.com/tvs/oled-tvs/lg-c6-oled-review">LG C6 OLED</a> is a no-brainer. For both console and PC players, it offers fantastic gaming. features, such as a 120Hz refresh rate at 4K resolution, 0.1ms response time, Dolby Vision, beautiful colors, and multiple HDMI 2.1 ports. It also features native support for cloud platforms including Xbox Cloud Gaming.<a class="view-deal button" href="https://www.walmart.com/ip/LG-65-C6-Series-4K-UHD-OLED-AI-Smart-webOS-26-TV-OLED65C6PUA/18196407846" target="_blank" rel="nofollow" data-dimension112="8e16bb1c-d155-11f1-b2bd-4f9aba6b9a10" data-action="Deal Block" data-label="C6 OLED (65-inch)" data-dimension48="C6 OLED (65-inch)" data-dimension25="$1399">View Deal</a></p></div><div class="product"><a data-dimension112="94462d96-d156-11f1-b274-150ded550adf" data-action="Deal Block" data-label="QM6K (55-inch)" data-dimension48="QM6K (55-inch)" data-dimension25="$547" href="https://www.amazon.com/TCL-55QM6K-120HZ-144HZ-Brightness-Television/dp/B0DSR9CHB1/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="UWuwBQCGbRW69BfRQauHi7" name="tcl-qm6k-1-by-1-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/UWuwBQCGbRW69BfRQauHi7-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/TCL-55QM6K-120HZ-144HZ-Brightness-Television/dp/B0DSR9CHB1/" target="_blank" rel="nofollow" data-dimension112="94462d96-d156-11f1-b274-150ded550adf" data-action="Deal Block" data-label="QM6K (55-inch)" data-dimension48="QM6K (55-inch)" data-dimension25="$547">QM6K (55-inch): was $599 now $547</a></strong><br />This is a TV I can vouch for personally as it's the one I own (it's known as C6K in the U.K. where I'm based). The <a href="https://www.tomsguide.com/tvs/tcl-qm6k-mini-led-tv-review">TCL QM6K</a> boasts a 120Hz refresh rate for consoles, Auto Low Latency Mode (ALLM) for instant response times, an on-screen overlay for adjusting settings, Dolby Vision gaming, Dolby Vision IQ, and simply stunning colors and visuals. It's the best TV I've ever owned.<a class="view-deal button" href="https://www.amazon.com/TCL-55QM6K-120HZ-144HZ-Brightness-Television/dp/B0DSR9CHB1/" target="_blank" rel="nofollow" data-dimension112="94462d96-d156-11f1-b274-150ded550adf" data-action="Deal Block" data-label="QM6K (55-inch)" data-dimension48="QM6K (55-inch)" data-dimension25="$547">View Deal</a></p></div><h2 class="article-body__section" id="section-soundbar"><span>Soundbar</span></h2><p>If you want to feel like you're playing games at the cinema, you need one of the <a href="https://www.tomsguide.com/audio/soundbars/best-soundbars">best soundbars</a>, and I've picked my two favorites for both small and big spaces. They get very loud, though, so try not to use them at night.</p><div class="product"><a data-dimension112="1d415064-d1eb-11f1-88e5-13795ff2a566" data-action="Deal Block" data-label="Bar 1300XMK2" data-dimension48="Bar 1300XMK2" data-dimension25="$1399" href="https://www.amazon.com/JBL-1300XMK2-11-1-4-soundbar-Detachable-Surround/dp/B0FN1JLNCN/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="2VdHveN77updAKoa8c4okR" name="jbl bar 1300xmk2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2VdHveN77updAKoa8c4okR-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/audio/soundbars/jbl-bar-1300xmk2-review" data-dimension112="1d415064-d1eb-11f1-88e5-13795ff2a566" data-action="Deal Block" data-label="Bar 1300XMK2" data-dimension48="Bar 1300XMK2" data-dimension25="$1399">JBL Bar 1300XMK2</a> is the best way to get movie theater-quality sound at home — and who doesn't want to feel like you're playing games at the cinema? Dialogue is crystal clear, and bass is powerful and enveloping. It comes with detachable speakers and a subwoofer for the ultimate immersive experience.<a class="view-deal button" href="https://www.amazon.com/JBL-1300XMK2-11-1-4-soundbar-Detachable-Surround/dp/B0FN1JLNCN/" target="_blank" rel="nofollow" data-dimension112="1d415064-d1eb-11f1-88e5-13795ff2a566" data-action="Deal Block" data-label="Bar 1300XMK2" data-dimension48="Bar 1300XMK2" data-dimension25="$1399">View Deal</a></p></div><div class="product"><a data-dimension112="9d29fd7c-d1ea-11f1-a6eb-8f2df5dcc602" data-action="Deal Block" data-label="Heston 60" data-dimension48="Heston 60" data-dimension25="$699" href="https://www.amazon.com/Marshall-Heston-Soundbar-Immersive-Bluetooth/dp/B0G5F6VGVD/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:14.00%;"><img id="nbXCxAkftnFjxJmbBHk2kE" name="heston-60-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/nbXCxAkftnFjxJmbBHk2kE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="210" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/audio/soundbars/marshall-heston-60-review" data-dimension112="9d29fd7c-d1ea-11f1-a6eb-8f2df5dcc602" data-action="Deal Block" data-label="Heston 60" data-dimension48="Heston 60" data-dimension25="$699">Marshall Heston 60</a> is a powerful soundbar that produces sound well beyond its compact size. With consistent Dolby Atmos performance across video games, movies and TV shows, the Heston 60 produces crisp and clear dialogues balanced well against clean treble and thumping bass. Oh, and it looks gorgeous, too. It'll honestly make you feel like you're Lucia or Jason.<a class="view-deal button" href="https://www.amazon.com/Marshall-Heston-Soundbar-Immersive-Bluetooth/dp/B0G5F6VGVD/" target="_blank" rel="nofollow" data-dimension112="9d29fd7c-d1ea-11f1-a6eb-8f2df5dcc602" data-action="Deal Block" data-label="Heston 60" data-dimension48="Heston 60" data-dimension25="$699">View Deal</a></p></div><h2 class="article-body__section" id="section-controller"><span>Controller</span></h2><p>Whether you're after a first-party limited edition GTA 6 controller or a third-party gamepad with Hall Effect triggers and sticks for enhanced precision, these are my top picks.</p><div class="product"><a data-dimension112="b722d276-d159-11f1-8fd0-7b189f076138" data-action="Deal Block" data-label="DualSense GTA 6 Edition" data-dimension48="DualSense GTA 6 Edition" data-dimension25="$84" href="https://www.amazon.com/DualSense%C2%AE-Wireless-Controller-Limited-Gaming-Console/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:610px;"><p class="vanilla-image-block" style="padding-top:82.13%;"><img id="XhDuYgRYaQexzzpTGdFVhL" name="Screenshot 2026-10-26 at 16.21.56" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/XhDuYgRYaQexzzpTGdFVhL-1920-80.png" mos="" align="middle" fullscreen="" width="610" height="501" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/DualSense%C2%AE-Wireless-Controller-Limited-Gaming-Console/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="b722d276-d159-11f1-8fd0-7b189f076138" data-action="Deal Block" data-label="DualSense GTA 6 Edition" data-dimension48="DualSense GTA 6 Edition" data-dimension25="$84">DualSense GTA 6 Edition: $84</a></strong><br />If you're a PS5 player, there's no better controller for you than the DualSense — so how about a Vice City-themed DualSense, eh? The special edition comes in white or black, and features the GTA 6 logo on the touchpad, palm trees adorning the sides, and a shimmering finish to cap it all off. It's stunning, really.<a class="view-deal button" href="https://www.amazon.com/DualSense%C2%AE-Wireless-Controller-Limited-Gaming-Console/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="b722d276-d159-11f1-8fd0-7b189f076138" data-action="Deal Block" data-label="DualSense GTA 6 Edition" data-dimension48="DualSense GTA 6 Edition" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="bf3766b6-d154-11f1-bda6-339582883e66" data-action="Deal Block" data-label="Raiju V3 Pro" data-dimension48="Raiju V3 Pro" data-dimension25="$214" href="https://www.amazon.com/Razer-Raiju-Pro-Wireless-Controller-5/dp/B0FNDGHM92/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:133.33%;"><img id="V4NLcp2FSEPpx4PczJbeQF" name="collections-ps5-3" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/V4NLcp2FSEPpx4PczJbeQF-1920-80.jpg" mos="" align="middle" fullscreen="" width="900" height="1200" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-raiju-v3-pro-review" data-dimension112="bf3766b6-d154-11f1-bda6-339582883e66" data-action="Deal Block" data-label="Raiju V3 Pro" data-dimension48="Raiju V3 Pro" data-dimension25="$214">Razer Raiju V3 Pro</a> is a mighty controller for PS5 (as long as you don't mind the absence of haptics). Its TMR sticks offer precise control over movements while removing the risk of stick drift, and the gamepad’s Hall Effect triggers are fantastic too. The controller is highly customizable with removable back buttons and personalization via mobile software, and it’s very comfortable for long gaming sessions.<a class="view-deal button" href="https://www.amazon.com/Razer-Raiju-Pro-Wireless-Controller-5/dp/B0FNDGHM92/" target="_blank" rel="nofollow" data-dimension112="bf3766b6-d154-11f1-bda6-339582883e66" data-action="Deal Block" data-label="Raiju V3 Pro" data-dimension48="Raiju V3 Pro" data-dimension25="$214">View Deal</a></p></div><div class="product"><a data-dimension112="bf376774-d154-11f1-99b7-b5e736379271" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259" href="https://www.amazon.com/SteelSeries-Aeon-Wireless-Controller-PC-Mobile/dp/B0HH5C1RM3/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4KQWbcoHH7mXgVxr9YU3vC" name="SteelSeries Aeon Pro controller deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4KQWbcoHH7mXgVxr9YU3vC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="1200" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Don't want any downtime between charges so that you can keep playing for hours on end? The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-aeon-pro-review" data-dimension112="bf376774-d154-11f1-99b7-b5e736379271" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259">SteelSeries Aeon Pro</a> features replaceable batteries allowing zero downtime, and it's a triumph. It boasts Hall Effect sticks and triggers, an OLED display for quick system swapping and configs, and bags of customization in the GG app.<a class="view-deal button" href="https://www.amazon.com/SteelSeries-Aeon-Wireless-Controller-PC-Mobile/dp/B0HH5C1RM3/" target="_blank" rel="nofollow" data-dimension112="bf376774-d154-11f1-99b7-b5e736379271" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259">View Deal</a></p></div><h2 class="article-body__section" id="section-headset"><span>Headset</span></h2><p>When you can't use your soundbar or don't want to disturb your partner or housemates, you can't go wrong with one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best gaming headsets</a>. I awarded both of my top picks 5-stars each in their respective reviews, so you know they're <em>good.</em></p><div class="product"><a data-dimension112="068a27f6-d155-11f1-9875-59a9abe68556" data-action="Deal Block" data-label="BlackShark V3 Pro" data-dimension48="BlackShark V3 Pro" data-dimension25="$249" href="https://www.amazon.com/Razer-BlackShark-Wireless-Gaming-Headset-PC/dp/B0F3QKLDLM/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="iFdB8fgzyU6X4P2WfMj9QN" name="Razer-BlackShark-V3-Pro-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/iFdB8fgzyU6X4P2WfMj9QN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review" data-dimension112="068a27f6-d155-11f1-9875-59a9abe68556" data-action="Deal Block" data-label="BlackShark V3 Pro" data-dimension48="BlackShark V3 Pro" data-dimension25="$249">Razer BlackShark V3 Pro</a> was one of the easiest 5-star ratings I've awarded. It boasts ridiculously fantastic sound with spatial audio support, and it features highly effective ANC to keep you locked in and immersed. Not that you'll need it for GTA 6, but its detachable boom mic makes you sound loud and clear. Oh, and it's oh-so-comfortable. It's available for both PS5 and Xbox.<a class="view-deal button" href="https://www.amazon.com/Razer-BlackShark-Wireless-Gaming-Headset-PC/dp/B0F3QKLDLM/" target="_blank" rel="nofollow" data-dimension112="068a27f6-d155-11f1-9875-59a9abe68556" data-action="Deal Block" data-label="BlackShark V3 Pro" data-dimension48="BlackShark V3 Pro" data-dimension25="$249">View Deal</a></p></div><div class="product"><a data-dimension112="362672f8-d155-11f1-a275-f5bb1cd65ae1" data-action="Deal Block" data-label="Pro Wireless Gaming Headset" data-dimension48="Pro Wireless Gaming Headset" data-dimension25="$209" href="https://www.amazon.com/Alienware-Pro-Wireless-Gaming-Headset/dp/B0DHWFYX62/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1245px;"><p class="vanilla-image-block" style="padding-top:120.48%;"><img id="d6rYExHTcikkHXCyedszST" name="Alienware-Pro-Wireless-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/d6rYExHTcikkHXCyedszST-1920-80.jpg" mos="" align="middle" fullscreen="" width="1245" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>If you want your ears to feel like they're resting on clouds, and you want a headset you can wear all-day long, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/alienware-pro-wireless-gaming-headset-review" data-dimension112="362672f8-d155-11f1-a275-f5bb1cd65ae1" data-action="Deal Block" data-label="Pro Wireless Gaming Headset" data-dimension48="Pro Wireless Gaming Headset" data-dimension25="$209">Alienware Pro Wireless Gaming Headset</a> should be your port of call. Its 50mm drivers reproduce in-game sounds effectively, while effective ANC isolates and pulls you right into the action. It lasts up to 70 hours, too, so you don't need to worry about running out of charge while roaming the streets in GTA 6.<a class="view-deal button" href="https://www.amazon.com/Alienware-Pro-Wireless-Gaming-Headset/dp/B0DHWFYX62/" target="_blank" rel="nofollow" data-dimension112="362672f8-d155-11f1-a275-f5bb1cd65ae1" data-action="Deal Block" data-label="Pro Wireless Gaming Headset" data-dimension48="Pro Wireless Gaming Headset" data-dimension25="$209">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/im-replaying-red-dead-redemption-2-to-prepare-for-gta-6-5-features-that-need-to-return"><strong>I'm replaying Red Dead Redemption 2 to prepare for GTA 6 — 5 features that need to return</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/gta-6s-ultimate-edition-is-the-real-full-game-and-the-rumors-of-it-costing-usd100-were-true-after-all"><strong>GTA 6's Ultimate Edition is the real full game — and the rumors of it costing $100 were true after all</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/news/gta-6"><strong>GTA 6 — everything we know so far, including release date and latest trailer</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Zelda 40th Anniversary Edition Switch 2 console and controller restock live — latest launch day updates ]]></title>
                                                                                                <dc:content><![CDATA[ <div class="live-content"><div  class="fancy-box"><div class="fancy_box-title">Zelda 40th Anniversary Switch 2 console and controller pre-orders</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="37J4oiTnoxzoLw96rAWLU5" name="Switch 2 Zelda Edition-LIST" caption="" alt="Limited Editon Zelda Switch 2 console" src="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p class="fancy-box__body-text"><strong>US retailers to check: </strong><br /><em>Amazon</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><em>check stock</em></a><br />- <em>Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>Best Buy</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>- Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><em>check stock</em></a><br />----------------------------------<br /><strong>UK retailers to check: </strong><br /><em>Amazon</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.amazon.co.uk/dp/B0HJ8344SW/" target="_blank" rel="nofollow"><em>check stock</em></a><br />- <em>Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.amazon.co.uk/Nintendo-Switch-Pro-Controller-Legend-Anniversary/dp/B0HN2S9JT8/" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>Smyths Toys</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-consoles/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-console/p/265573" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>- Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-accessories/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/p/265620" target="_blank" rel="nofollow"><em>check stock</em></a><br />----------------------------------<br />1. <a data-analytics-id="inline-link" href="#section-wolverine-ps5-pre-orders-quick-links">Quick Links</a><br />2. <a data-analytics-id="inline-link" href="#section-zelda-switch-2-console-pre-orders">Zelda Switch 2 console pre-orders</a><br />3. <a data-analytics-id="inline-link" href="#section-zelda-switch-2-pro-controller-pre-orders">Zelda Switch 2 Pro controller pre-orders</a><br />4. <a data-analytics-id="inline-link" href="#section-zelda-ocarina-of-time-remake-pre-orders">Zelda Switch 2 game pre-orders</a><br />5. <a data-analytics-id="inline-link" href="#section-live-updates">LIVE: Latest updates</a></p></div></div><p>Nintendo is marking the 40th Anniversary of The Legend of Zelda with a remake of one of Link’s most legendary adventures, <a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined">Ocarina of Time</a>, and the release of a limited-edition <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> console and matching Zelda-themed Pro controller. We still have to wait an extra week for the remake's launch, but the console and controller arrive today (Oct. 29).</p><p>Anything Zelda tends to be popular, and when the stunning console and controller went up for pre-order in early September, available stock was snapped up in mere minutes. However, now that launch day has arrived, there’s a good chance we’ll see restocks of these items.</p><p>As of now, <strong>there is no Zelda Switch 2 restock available</strong>. Nintendo restocked the console earlier today but quickly sold out. <strong>Target has confirmed it will restock next week (Nov. 5 in-store, Nov. 6 online)</strong>, and<strong> Best Buy will also have fresh stock on Nov. 5 </strong>during its in-store midnight launch events for the Zelda: Ocarina of Time remake game. </p><p>I’ve been covering pre-orders and restocks at Tom’s Guide for more than five years, and in that time have helped thousands of gamers get their hands on hard-to-buy items. I’m putting all that experience to good use today to (hopefully) help you pick up some Zelda goodies.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick links</span></h3><ul><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><strong>check stock @ Walmart</strong></a></li><li><strong>Switch 2 Pro Controller - Zelda Edition: </strong><a href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 Pro Controller – Zelda Edition: </strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 Pro Controller – Zelda Edition: </strong><a href="https://www.target.com/p/nintendo-8482-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/-/A-1013213521" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li><li><strong>Switch 2 Pro Controller - Zelda Edition: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow"><strong>check stock @ Walmart</strong></a></li><li><strong>Zelda: Ocarina of Time (Switch 2): </strong><a href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><strong>$69 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-zelda-switch-2-console-pre-orders"><span>Zelda Switch 2 console pre-orders</span></h3><div class="product"><a data-dimension112="4e529a68-d2f5-11f1-8196-d9b5bb02e04f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4e529a68-d2f5-11f1-8196-d9b5bb02e04f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Amazon has a listing page for the Zelda Switch 2, and <strong>there are reports of a restock now</strong>, but availability is inconsistent. This is the retailer to refresh! <a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4e529a68-d2f5-11f1-8196-d9b5bb02e04f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529af4-d2f5-11f1-b767-e9a38da9436d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:93.65%;"><img id="Bi2iDjTxUHTUQK9FHZ4W8D" name="Walmart logo.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bi2iDjTxUHTUQK9FHZ4W8D-1920-80.jpeg" mos="" align="middle" fullscreen="" width="960" height="899" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="4e529af4-d2f5-11f1-b767-e9a38da9436d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Walmart currently lists the Zelda Switch 2, but at a big markup of almost $200 via a third-party seller. Let's hope a proper restock at MSRP arrives later today.<a class="view-deal button" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="4e529af4-d2f5-11f1-b767-e9a38da9436d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529b62-d2f5-11f1-a2fb-d7df0ef32418" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="4e529b62-d2f5-11f1-a2fb-d7df0ef32418" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Best Buy has confirmed it will have more stock of the Zelda Switch 2 console and Pro Controller during its in-store midnight launch events for the Ocarina of Time game November 5. Because of this, the odds of an online drop today (Oct. 29) are very slim.<a class="view-deal button" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="4e529b62-d2f5-11f1-a2fb-d7df0ef32418" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529bc6-d2f5-11f1-b8ff-976e51a19cf2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="4e529bc6-d2f5-11f1-b8ff-976e51a19cf2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br /><strong>Target has confirmed it will restock the Zelda Switch 2 on November 5 in-store and November 6 online.</strong> That would suggest it will not drop any stock today on launch day. <strong> </strong><a class="view-deal button" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="4e529bc6-d2f5-11f1-b8ff-976e51a19cf2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="e921de78-d2f5-11f1-9ae6-f7bbf9eb7179" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EXpDruhoaAuddyN6RUCGyb" name="GameStop logo.png" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EXpDruhoaAuddyN6RUCGyb-1920-80.png" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="e921de78-d2f5-11f1-9ae6-f7bbf9eb7179" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />GameStop is sold out of the Zelda Switch 2, but it is another retailer that could restock now that launch day has arrived. <a class="view-deal button" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="e921de78-d2f5-11f1-9ae6-f7bbf9eb7179" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529c2a-d2f5-11f1-8e20-e313f1517077" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="4e529c2a-d2f5-11f1-8e20-e313f1517077" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Naturally, Nintendo itself is one of the best places to get the Zelda Switch 2, as it's restocked a couple of times in recent weeks. Maybe it'll have more stock for launch day.<a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="4e529c2a-d2f5-11f1-8e20-e313f1517077" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><h3 class="article-body__section" id="section-zelda-switch-2-pro-controller-pre-orders"><span>Zelda Switch 2 Pro controller pre-orders</span></h3><div class="product"><a data-dimension112="cda6d3a0-d2f6-11f1-ab50-0bb31c40cb4f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow" data-dimension112="cda6d3a0-d2f6-11f1-ab50-0bb31c40cb4f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Amazon has a listing page for the Zelda Switch 2 Pro Controller and could take restocks now that launch day is here. <a class="view-deal button" href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow" data-dimension112="cda6d3a0-d2f6-11f1-ab50-0bb31c40cb4f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="4e529c8e-d2f5-11f1-9b31-45ef9ca5c584" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="4e529c8e-d2f5-11f1-9b31-45ef9ca5c584" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Best Buy was the first U.S. retailer to take pre-orders and sold out fast. Fingers crossed the electronics specialist store has managed to get some extra stock since.  <a class="view-deal button" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="4e529c8e-d2f5-11f1-9b31-45ef9ca5c584" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="cda6d44a-d2f6-11f1-b5fb-411e2eefbbe2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RZkKnBkdjDJ6QRZq2RmaPY" name="Walmart-Logo-2008" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RZkKnBkdjDJ6QRZq2RmaPY-1920-80.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow" data-dimension112="cda6d44a-d2f6-11f1-b5fb-411e2eefbbe2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Walmart could restock the Zelda Switch 2 Pro Controller today. Just be careful you don't overpay via the retailer's third-party marketplace, as these listings almost always come with an eye-watering markup. <a class="view-deal button" href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow" data-dimension112="cda6d44a-d2f6-11f1-b5fb-411e2eefbbe2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="cda6d4c2-d2f6-11f1-b029-93c4343e245b" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013213521" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013213521" target="_blank" rel="nofollow" data-dimension112="cda6d4c2-d2f6-11f1-b029-93c4343e245b" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Target is another retailer that I'm watching closely today for any signs of a Zelda Switch 2 Pro Controller restock. <a class="view-deal button" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013213521" target="_blank" rel="nofollow" data-dimension112="cda6d4c2-d2f6-11f1-b029-93c4343e245b" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="4e529cf2-d2f5-11f1-b3ca-29993f7652ad" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EXpDruhoaAuddyN6RUCGyb" name="GameStop logo.png" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EXpDruhoaAuddyN6RUCGyb-1920-80.png" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="4e529cf2-d2f5-11f1-b3ca-29993f7652ad" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />GameStop hasn't confirmed any restock plans, but I'm keeping tabs on it nevertheless as stock drops often appear out of nowhere. <a class="view-deal button" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="4e529cf2-d2f5-11f1-b3ca-29993f7652ad" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="4e529d4c-d2f5-11f1-a4ca-b7252aaad268" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="4e529d4c-d2f5-11f1-a4ca-b7252aaad268" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">The Legend of Zelda 40th Anniversary Edition: $109</a></strong><br />The Nintendo Store is the exclusive retailer for the Switch 2 Pro Controller Zelda Edition <strong>with a display stand</strong>. Okay, so you're paying $10 extra for it, but you get a swanky way to show off your Zelda-themed controller. <a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="4e529d4c-d2f5-11f1-a4ca-b7252aaad268" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">View Deal</a></p></div><h3 class="article-body__section" id="section-zelda-ocarina-of-time-remake-pre-orders"><span>Zelda Ocarina of Time remake pre-orders</span></h3><div class="product"><a data-dimension112="700712c6-d2f3-11f1-bf23-e1bd9004d819" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined" data-dimension112="700712c6-d2f3-11f1-bf23-e1bd9004d819" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">The Legend of Zelda: Ocarina of Time</a> is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches next week, on November 5, 2026, and looks truly stunning with modern visuals, overhauled controls, and reworked puzzles.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="700712c6-d2f3-11f1-bf23-e1bd9004d819" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-u-k-pre-orders"><span>U.K. pre-orders</span></h3><ul><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition:  </strong><a href="https://www.amazon.co.uk/dp/B0HJ8344SW/" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Nintendo Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-consoles/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-console/p/265573" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.amazon.co.uk/Nintendo-Switch-Pro-Controller-Legend-Anniversary/dp/B0HN2S9JT8/" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-accessories/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/p/265620" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a></li></ul><h3 class="article-body__section" id="section-live-updates"><span>Live updates</span></h3></div><div class="live-content"><time datetime="2026-10-29T11:10:22+00:00">October 29, 2026 – 7:10 AM</time><h2 id="welcome">Welcome!</h2><p>Good morning, welcome to Tom's Guide's live coverage of the Zelda Switch 2 console and controller launch day. I'm keeping an eye across major retailers and will alert you if there's any restocks of these tough to find limited edition items. </p></div><div class="live-content"><time datetime="2026-10-29T11:20:44+00:00">October 29, 2026 – 7:20 AM</time><h2 id="here-39-s-what-everybody-is-trying-to-buy">Here's what everybody is trying to buy!</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/Ymw9UTRu1V0" allowfullscreen=""></iframe></div></div><p>If you've been out of the loop on the Zelda Switch 2 console, then it's pretty much what it sounds like: A special edition Nintendo Switch 2 with a swanky The Legend of Zelda themed design. It's a pretty nifty limited edition console, and when you factor in the Zelda aspect, it's no surprise that it's in very demand. </p></div><div class="live-content"><time datetime="2026-10-29T11:33:55+00:00">October 29, 2026 – 7:33 AM</time><h2 id="no-sign-of-zelda-switch-2-restock-so-far">No sign of Zelda Switch 2 restock so far!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2BQQK9NjQGhuaFFp47gYyU" name="zelda-switch-2-console-2026" alt="Switch 2 Legend of Zelda 40th Anniversary Edition console on a stone table" src="https://cdn.mos.cms.futurecdn.net/2BQQK9NjQGhuaFFp47gYyU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>As of 7:30 a.m. ET / 11:30 a.m. GMT there's <strong>no Zelda Switch 2 stock </strong>across all the retailers I'm tracking. However, at least in the U.S., this was expected, retailers typically restock in the mid-morning (most commonly between 9 a.m. and 11 a.m.). So Zelda fans in the States should keep watching. Meanwhile in the U.K., we could see restocks at anytime from now, so I've got a close eye on retailers.</p></div><div class="live-content"><time datetime="2026-10-29T11:54:06+00:00">October 29, 2026 – 7:54 AM</time><h2 id="don-39-t-forget-to-also-pick-up-ocarina-remake">Don't forget to also pick up Ocarina remake! </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dxxAyL5E86veZWR4rvR5wM" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_16" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/dxxAyL5E86veZWR4rvR5wM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>One quirk of the Zelda Switch 2 is that it <em>doesn't </em>include The Legend of Zelda: Ocarina of Time remake game. Naturally, anybody looking to pick up this LE console is going to be a Zelda fan, so will undoubtedly want to be playing this stunning looking remake at launch. You can pre-order the game now, ahead of its launch next week (on November 5), and the first print of the game comes with a limited launch edition foil cover, which will look seriously great on display!</p><div class="product"><a data-dimension112="71cf168e-d38f-11f1-9110-0da6f44929a5" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined" data-dimension112="71cf168e-d38f-11f1-9110-0da6f44929a5" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">The Legend of Zelda: Ocarina of Time</a> is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches next week, on November 5, 2026, and looks truly stunning with modern visuals, overhauled controls, and reworked puzzles.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="71cf168e-d38f-11f1-9110-0da6f44929a5" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">View Deal</a></p></div></div><div class="live-content"><time datetime="2026-10-29T12:18:46+00:00">October 29, 2026 – 8:18 AM</time><h2 id="check-out-our-zelda-preview-while-waiting-for-restocks">Check out our Zelda preview while waiting for restocks!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2VSEeywQgRRsWUE8nPJPba" name="ocarina-of-time-remake-switch-2" alt="Zelda: Ocarina of Time Remake screenshot from the Zelda Direct" src="https://cdn.mos.cms.futurecdn.net/2VSEeywQgRRsWUE8nPJPba-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>If you want to fill some time until Zelda Switch 2 restock (hopefully) appears, then give our <a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined"><strong>Zelda: Ocarina of Time preview</strong></a> a read! A couple of members of the Tom's Guide team have already played it (yes, I'm very jealous), and this remake is shaping up to live up to the legacy of the original, and then some.</p></div><div class="live-content"><time datetime="2026-10-29T12:47:34+00:00">October 29, 2026 – 8:47 AM</time><h2 id="target-confirms-zelda-switch-2-restock-but-it-39-s-not-today">Target confirms Zelda Switch 2 restock, but it's not today!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yjWK2GUWYMFDryxNo5XZVE" name="target-switch-2-zelda-listing" alt="Target listing page for Nintendo Switch 2 Zelda Edition" src="https://cdn.mos.cms.futurecdn.net/yjWK2GUWYMFDryxNo5XZVE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Target)</span></figcaption></figure><p>Some BIG news, Target has confirmed it will restock the Zelda Switch 2. However, it won't be today. Instead, <strong>Target will have more stock in store on November 5 and online on November 6</strong>. That does mean an extra week of waiting, but it's good news to have confirmation that more stock is coming.</p><ul><li><strong>Nintendo Switch 2 The Legend of Zelda 40th Anniversary Edition Console: </strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T13:36:08+00:00">October 29, 2026 – 9:36 AM</time><h2 id="walmart-might-be-waiting-till-next-week-as-well">Walmart might be waiting till next week as well!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ABomR9E2tmDghs2CGa6YtN" name="Walmart Plus.jpg" alt="Walmart Plus" src="https://cdn.mos.cms.futurecdn.net/ABomR9E2tmDghs2CGa6YtN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Another restock update, this time via <a href="https://www.reddit.com/r/zelda/comments/1xihltk/oothd_psa_for_the_switch_2_console_walmart/"><strong>Reddit</strong></a>, according to a post on the Zelda subreddit, an internal Walmart document suggests that the retailer won't be restocking the limited edition Switch 2 console until <strong>"at least Friday, Nov. 6."</strong></p><p>This would mirror the approach that Target is taking, which has publicly confirmed it's own restock for next week (in-store on Nov. 5, and online on Nov. 6). So, perhaps there won't be any restocks today on launch day, but next week will bring a slew of fresh chances to secure this in-demand Zelda console. </p><p>However, the above update remains unconfirmed by the retailer itself, so take it with a grain of salt. I'm still watching Walmart closely just in case the Reddit post proves to a hoax. It wouldn't be the first time false details have spread.</p></div><div class="live-content"><time datetime="2026-10-29T14:43:56+00:00">October 29, 2026 – 10:43 AM</time><h2 id="here-39-s-where-we-stand-right-now">Here's where we stand right now!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gXAajrMbQrrFmu3bAdJ76U" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_20" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/gXAajrMbQrrFmu3bAdJ76U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Not much to update on you at present; we've already had news from Target, confirming the retailer will restock next week, and Walmart is rumored to be planning the same. But nothing today from the likes of Best Buy, Amazon and GameStop. Those are the retailers I'm watching very closely, as they would appear to be the most likely to restock today. Let's keep our fingers crossed. </p></div><div class="live-content"><time datetime="2026-10-29T15:36:06+00:00">October 29, 2026 – 11:36 AM</time><h2 id="amazon-is-the-retailer-to-check-right-now">Amazon is the retailer to check right now</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RzZN7gXnZ5rfnyvVLbAcKS" name="Amazon logo.shutterstock_2445780831" alt="Amazon building" src="https://cdn.mos.cms.futurecdn.net/RzZN7gXnZ5rfnyvVLbAcKS-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I'm seeing some dedicated restock tracking accounts on social media claim to have seen the Zelda Switch 2 in stock at Amazon. On my end, it still says "currently unavailable," but your milage may vary. So, if you can, Amazon is the retailer I would be refreshing right now, maybe you'll get lucky and get one!</p><ul><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T16:00:10+00:00">October 29, 2026 – 12:00 PM</time><h2 id="best-buy-will-have-in-store-stock-for-ocarina-remake-launch">Best Buy will have in-store stock for Ocarina remake launch!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LxsxY9rLuE2zYXDxqoxsGE" name="best-buy-zelda-switch-2-listing" alt="Best Buy listing page with information on it's in-store restock of the Zelda Switch 2" src="https://cdn.mos.cms.futurecdn.net/LxsxY9rLuE2zYXDxqoxsGE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Best Buy)</span></figcaption></figure><p>Best Buy has confirmed it will hold late-night store openings for the launch of The Legend of Zelda: Ocarina of Time, and <strong>"limited numbers of The Legend of Zelda 40th Anniversary Nintendo Switch 2 system and Pro Controller will also be available. " </strong>Like Target and Walmart, Best Buy appears to be pairing up its next restock with the launch of the remake, and will focus on in-store.</p><p>Used the link below to access Best Buy's "find a store" page, and check if your nearest location will be holding a midnight launch event on November 5. </p><ul><li><a href="https://www.bestbuy.com/site/video-game-franchises/the-legends-of-zelda/pcmcat1620057435002.c" target="_blank" rel="nofollow"><em><strong>Check if your local Best Buy will hold an Ocarina of Time launch event </strong></em></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T16:24:44+00:00">October 29, 2026 – 12:24 PM</time><h2 id="zelda-switch-2-restocked-at-nintendo">Zelda Switch 2 restocked at Nintendo!</h2><p>We have a restock, and its comes directly from Nintendo. Get over there now and secure yours, this one likely won't last for very long...</p><ul><li><strong>Nintendo Switch 2 — Zelda Edition: </strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><strong>$519 @ Nintendo</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T17:14:19+00:00">October 29, 2026 – 1:14 PM</time><h2 id="best-buy-could-be-the-place-to-get-a-zelda-switch-2-next-week">Best Buy could be the place to get a Zelda Switch 2 next week!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1867px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="37J4oiTnoxzoLw96rAWLU5" name="Switch 2 Zelda Edition-LIST" alt="Limited Editon Zelda Switch 2 console" src="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1867" height="1050" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The big theme of today has been news that retailers will actually restock the Zelda Switch 2 <em>next week</em> on or around November 5, the day the Ocarina of Time remake launches. </p><p>Target, Walmart, and Best Buy are reportedly set to hold in-store restocks on that day, and if <a href="https://x.com/Nintendeal" target="_blank">@Nintendeal</a> is correct, Best Buy might be the place to try first. </p><p><a href="https://x.com/Nintendeal/status/2115851133847761126?a=OPcDdeLibiAYric3YrY&amp;s=20" target="_blank">According to the stock tracking account</a>, stores will have 30-100 units of the Switch 2 console and 10-50 units of the Pro Controller. If you have a local Best Buy, then you might want to get down there in person on the evening of November 4. This stock will be sold starting at midnight on November 5. </p><p>Just remember the retailer hasn't officially confirmed these unit numbers, and available stock numbers will almost certainly vary by location. </p><ul><li><a href="https://www.bestbuy.com/site/video-game-franchises/the-legends-of-zelda/pcmcat1620057435002.c" target="_blank" rel="nofollow"><em><strong>Check if your local Best Buy will hold an Ocarina of Time launch event </strong></em></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T18:01:15+00:00">October 29, 2026 – 2:01 PM</time><h2 id="best-buy-restocks-the-zelda-switch-2-carrying-case">Best Buy restocks the Zelda Switch 2 Carrying Case!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WViCnj3XoetgivSAbPmJ3X" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_08" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/WViCnj3XoetgivSAbPmJ3X-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Okay, so it's not the Switch 2 console/controller restock everybody wants right now, but <strong>Best Buy has just restocked the Zelda-themed Switch 2 Carrying Case. </strong>It's a great pick up for Zelda fans who already own a Switch 2 console. </p><p>I'm also winding down my day now (it's just hit 6 p.m. in my timezone), but don't worry, I'll be leaving you in the very capable hands of my colleagues, who will be keeping an eye on major retailers and will alert you of any restocks that appear. </p><ul><li><strong>Switch 2 Carrying Case - Zelda Edition: </strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-carrying-case-and-screen-protector-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57WCW" target="_blank" rel="nofollow"><strong>$39 @ Best Buy</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T18:29:37+00:00">October 29, 2026 – 2:29 PM</time><h2 id="the-enigma-that-is-gamestop">The enigma that is GameStop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BFxZ8zeZKbrU73bc6M7qsf" name="shutterstock_1906421812.jpg" alt="GameStop store" src="https://cdn.mos.cms.futurecdn.net/BFxZ8zeZKbrU73bc6M7qsf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Hey seekers, Scott taking over for Rory. I'm here to help you land the fish.</p><p>I figured I'd start with a general sweep to see what was available. </p><p>Unfortunately, there's been no real changes since our last update. Best Buy briefly <a href="https://www.bestbuy.com/product/nintendo-switch-2-carrying-case-and-screen-protector-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57WCW" target="_blank">restocked the carrying case</a> but I'm seeing it unavailable as of this posting.</p><p>I checked out GameStop online, where all the 40th anniversary Zelda gear is listed as exclusive to in-store pickup.</p><p>I called my local store and one that was nearby. Both associates told me that they were sold out. One store told me that was going to be the case at every store. </p><p>If you happen to live near a GameStop, it couldn't hurt to give them a call, just in case.</p></div><div class="live-content"><time datetime="2026-10-29T18:45:26+00:00">October 29, 2026 – 2:45 PM</time><h2 id="ocarina-of-time-on-sale">Ocarina of Time on sale</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2VSEeywQgRRsWUE8nPJPba" name="ocarina-of-time-remake-switch-2" alt="Zelda: Ocarina of Time Remake screenshot from the Zelda Direct" src="https://cdn.mos.cms.futurecdn.net/2VSEeywQgRRsWUE8nPJPba-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Hey, here's some good-ish news. </p><p>Over on <a href="https://www.amazon.com/dp/B0HJ6F7L6T?th=1" target="_blank" rel="nofollow">Amazon, the Zelda: Ocarina of Time Remake is on sale for $59.88</a>, or 14% off the normal $69.99 price. </p><p>It should probably cost $60 from the jump, but hey, it's not $70 right now.</p><p>From what I can tell, Amazon is the only retailer offering a discount.</p></div><div class="live-content"><time datetime="2026-10-29T19:25:13+00:00">October 29, 2026 – 3:25 PM</time><h2 id="walmart-may-be-having-issues">Walmart may be having issues?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FpTqAkYrPfFsK6BZwvFjf7" name="Walmart deals" alt="Mini shopping cart holding smartphone with Walmart logo on screen" src="https://cdn.mos.cms.futurecdn.net/FpTqAkYrPfFsK6BZwvFjf7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I've seen a <a href="https://www.polygon.com/zelda-switch-2-ocarina-of-time-edition-preorder-cancel-delay-walmart-target/" target="_blank">couple of reports</a> that Walmart may be having problems with stock, either cancelling preorders or not being able stock that they do have. </p><p>As of this writing, the Walmart website is showing the Zelda 40th items as unavailable. </p><p>Are you having problems getting the special edition console at your Walmart? Let me know in the comments or shoot me an email at scott.younker@futurenet.com</p></div><div class="live-content"><time datetime="2026-10-29T20:13:03+00:00">October 29, 2026 – 4:13 PM</time><h2 id="latest-retailer-sweep">Latest retailer sweep</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1867px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="37J4oiTnoxzoLw96rAWLU5" name="Switch 2 Zelda Edition-LIST" alt="Limited Editon Zelda Switch 2 console" src="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1867" height="1050" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>I've been keeping an eye on things generally, but let's do a full sweep of Amazon, Best Buy, GameStop, Target and Walmart.</p><p>...and no change.</p><p>The Switch 2 console, Pro controller, and carrying case are listed as out of stock or sold out at every retailer I checked.  </p><p>From what I've seen, this largely won't change until November 5 and 6 when the console is supposed to officially hit store shelves.</p></div><div class="live-content"><time datetime="2026-10-29T20:27:14+00:00">October 29, 2026 – 4:27 PM</time><h2 id="the-last-post-was-a-lie-ish">The last post was a lie-ish</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ABomR9E2tmDghs2CGa6YtN" name="Walmart Plus.jpg" alt="Walmart Plus" src="https://cdn.mos.cms.futurecdn.net/ABomR9E2tmDghs2CGa6YtN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Sort of. When I first checked during my sweep, everything was out. </p><p>But I just checked Walmart again, and the retailer appears to have the<a href="https://www.walmart.com/ip/Nintendo-Switch-2-Carrying-Case-and-Screen-Protector-The-Legend-of-Zelda-40th-Anniversary-Edition/20955069492" target="_blank" rel="nofollow"> Carrying Case and Screen Protector available for $94.99</a>. Unfortunately, that seems to be sold by a third party who is upcharging on the normal $39 price. </p><p>So, if you want the case, I'd say just wait. Don't give the scalpers a dime.</p></div><div class="live-content"><time datetime="2026-10-29T21:22:43+00:00">October 29, 2026 – 5:22 PM</time><h2 id="no-changes">No changes</h2><p>As the day winds down on the West Coast of the United States, unfortunately, I have no updates for you. </p><p>Everywhere I checked out is out of stock or showing as unavailable. </p></div><div class="live-content"><time datetime="2026-10-29T22:59:58+00:00">October 29, 2026 – 6:59 PM</time><h2 id="still-no-stock">Still no stock</h2><p>The West Coast is slowing down as the end of the workday comes to a close, and we've had no real updates since this morning. I don't expect anymore before the end of the day.</p><p>Do keep Tom's Guide in your tabs as we'll continue to keep our eyes open to see if anything pops between now and launch day next week.</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/news/live/zelda-anniversary-edition-switch-2-console-launch-day-restock-live-updates</link>
                                                                            <description>
                            <![CDATA[ The Zelda limited-edition Switch 2 console and Pro controller launch today, and I'm tracking restocks at every major retailer. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aUMGiEY6vzk9nXiBbSre9V</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 29 Oct 2026 11:07:34 +0000</pubDate>                                                                                                                                <updated>Fri, 30 Oct 2026 15:16:27 +0000</updated>
                                                                                                                                            <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                        <dc:contributor><![CDATA[ Scott Younker ]]></dc:contributor>
                                                                    <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg">
                                                            <media:credit><![CDATA[Nintendo]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Limited Editon Zelda Switch 2 console]]></media:description>                                                            <media:text><![CDATA[Limited Editon Zelda Switch 2 console]]></media:text>
                                <media:title type="plain"><![CDATA[Limited Editon Zelda Switch 2 console]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="live-content"><div  class="fancy-box"><div class="fancy_box-title">Zelda 40th Anniversary Switch 2 console and controller pre-orders</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="37J4oiTnoxzoLw96rAWLU5" name="Switch 2 Zelda Edition-LIST" caption="" alt="Limited Editon Zelda Switch 2 console" src="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p class="fancy-box__body-text"><strong>US retailers to check: </strong><br /><em>Amazon</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><em>check stock</em></a><br />- <em>Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>Best Buy</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>- Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><em>check stock</em></a><br />----------------------------------<br /><strong>UK retailers to check: </strong><br /><em>Amazon</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.amazon.co.uk/dp/B0HJ8344SW/" target="_blank" rel="nofollow"><em>check stock</em></a><br />- <em>Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.amazon.co.uk/Nintendo-Switch-Pro-Controller-Legend-Anniversary/dp/B0HN2S9JT8/" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>Smyths Toys</em><br /><em>- Switch 2 console: </em><a data-analytics-id="inline-link" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-consoles/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-console/p/265573" target="_blank" rel="nofollow"><em>check stock</em></a><br /><em>- Switch 2 Pro controller: </em><a data-analytics-id="inline-link" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-accessories/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/p/265620" target="_blank" rel="nofollow"><em>check stock</em></a><br />----------------------------------<br />1. <a data-analytics-id="inline-link" href="#section-wolverine-ps5-pre-orders-quick-links">Quick Links</a><br />2. <a data-analytics-id="inline-link" href="#section-zelda-switch-2-console-pre-orders">Zelda Switch 2 console pre-orders</a><br />3. <a data-analytics-id="inline-link" href="#section-zelda-switch-2-pro-controller-pre-orders">Zelda Switch 2 Pro controller pre-orders</a><br />4. <a data-analytics-id="inline-link" href="#section-zelda-ocarina-of-time-remake-pre-orders">Zelda Switch 2 game pre-orders</a><br />5. <a data-analytics-id="inline-link" href="#section-live-updates">LIVE: Latest updates</a></p></div></div><p>Nintendo is marking the 40th Anniversary of The Legend of Zelda with a remake of one of Link’s most legendary adventures, <a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined">Ocarina of Time</a>, and the release of a limited-edition <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> console and matching Zelda-themed Pro controller. We still have to wait an extra week for the remake's launch, but the console and controller arrive today (Oct. 29).</p><p>Anything Zelda tends to be popular, and when the stunning console and controller went up for pre-order in early September, available stock was snapped up in mere minutes. However, now that launch day has arrived, there’s a good chance we’ll see restocks of these items.</p><p>As of now, <strong>there is no Zelda Switch 2 restock available</strong>. Nintendo restocked the console earlier today but quickly sold out. <strong>Target has confirmed it will restock next week (Nov. 5 in-store, Nov. 6 online)</strong>, and<strong> Best Buy will also have fresh stock on Nov. 5 </strong>during its in-store midnight launch events for the Zelda: Ocarina of Time remake game. </p><p>I’ve been covering pre-orders and restocks at Tom’s Guide for more than five years, and in that time have helped thousands of gamers get their hands on hard-to-buy items. I’m putting all that experience to good use today to (hopefully) help you pick up some Zelda goodies.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick links</span></h3><ul><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><strong>check stock @ Walmart</strong></a></li><li><strong>Switch 2 Pro Controller - Zelda Edition: </strong><a href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 Pro Controller – Zelda Edition: </strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 Pro Controller – Zelda Edition: </strong><a href="https://www.target.com/p/nintendo-8482-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/-/A-1013213521" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li><li><strong>Switch 2 Pro Controller - Zelda Edition: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow"><strong>check stock @ Walmart</strong></a></li><li><strong>Zelda: Ocarina of Time (Switch 2): </strong><a href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><strong>$69 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-zelda-switch-2-console-pre-orders"><span>Zelda Switch 2 console pre-orders</span></h3><div class="product"><a data-dimension112="4e529a68-d2f5-11f1-8196-d9b5bb02e04f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4e529a68-d2f5-11f1-8196-d9b5bb02e04f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Amazon has a listing page for the Zelda Switch 2, and <strong>there are reports of a restock now</strong>, but availability is inconsistent. This is the retailer to refresh! <a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4e529a68-d2f5-11f1-8196-d9b5bb02e04f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529af4-d2f5-11f1-b767-e9a38da9436d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:93.65%;"><img id="Bi2iDjTxUHTUQK9FHZ4W8D" name="Walmart logo.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bi2iDjTxUHTUQK9FHZ4W8D-1920-80.jpeg" mos="" align="middle" fullscreen="" width="960" height="899" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="4e529af4-d2f5-11f1-b767-e9a38da9436d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Walmart currently lists the Zelda Switch 2, but at a big markup of almost $200 via a third-party seller. Let's hope a proper restock at MSRP arrives later today.<a class="view-deal button" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="4e529af4-d2f5-11f1-b767-e9a38da9436d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529b62-d2f5-11f1-a2fb-d7df0ef32418" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="4e529b62-d2f5-11f1-a2fb-d7df0ef32418" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Best Buy has confirmed it will have more stock of the Zelda Switch 2 console and Pro Controller during its in-store midnight launch events for the Ocarina of Time game November 5. Because of this, the odds of an online drop today (Oct. 29) are very slim.<a class="view-deal button" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="4e529b62-d2f5-11f1-a2fb-d7df0ef32418" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529bc6-d2f5-11f1-b8ff-976e51a19cf2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="4e529bc6-d2f5-11f1-b8ff-976e51a19cf2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br /><strong>Target has confirmed it will restock the Zelda Switch 2 on November 5 in-store and November 6 online.</strong> That would suggest it will not drop any stock today on launch day. <strong> </strong><a class="view-deal button" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="4e529bc6-d2f5-11f1-b8ff-976e51a19cf2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="e921de78-d2f5-11f1-9ae6-f7bbf9eb7179" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EXpDruhoaAuddyN6RUCGyb" name="GameStop logo.png" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EXpDruhoaAuddyN6RUCGyb-1920-80.png" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="e921de78-d2f5-11f1-9ae6-f7bbf9eb7179" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />GameStop is sold out of the Zelda Switch 2, but it is another retailer that could restock now that launch day has arrived. <a class="view-deal button" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="e921de78-d2f5-11f1-9ae6-f7bbf9eb7179" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4e529c2a-d2f5-11f1-8e20-e313f1517077" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="4e529c2a-d2f5-11f1-8e20-e313f1517077" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Naturally, Nintendo itself is one of the best places to get the Zelda Switch 2, as it's restocked a couple of times in recent weeks. Maybe it'll have more stock for launch day.<a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="4e529c2a-d2f5-11f1-8e20-e313f1517077" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><h3 class="article-body__section" id="section-zelda-switch-2-pro-controller-pre-orders"><span>Zelda Switch 2 Pro controller pre-orders</span></h3><div class="product"><a data-dimension112="cda6d3a0-d2f6-11f1-ab50-0bb31c40cb4f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow" data-dimension112="cda6d3a0-d2f6-11f1-ab50-0bb31c40cb4f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Amazon has a listing page for the Zelda Switch 2 Pro Controller and could take restocks now that launch day is here. <a class="view-deal button" href="https://www.amazon.com/dp/B0HKF2DM2N" target="_blank" rel="nofollow" data-dimension112="cda6d3a0-d2f6-11f1-ab50-0bb31c40cb4f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="4e529c8e-d2f5-11f1-9b31-45ef9ca5c584" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="4e529c8e-d2f5-11f1-9b31-45ef9ca5c584" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Best Buy was the first U.S. retailer to take pre-orders and sold out fast. Fingers crossed the electronics specialist store has managed to get some extra stock since.  <a class="view-deal button" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="4e529c8e-d2f5-11f1-9b31-45ef9ca5c584" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="cda6d44a-d2f6-11f1-b5fb-411e2eefbbe2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RZkKnBkdjDJ6QRZq2RmaPY" name="Walmart-Logo-2008" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RZkKnBkdjDJ6QRZq2RmaPY-1920-80.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow" data-dimension112="cda6d44a-d2f6-11f1-b5fb-411e2eefbbe2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Walmart could restock the Zelda Switch 2 Pro Controller today. Just be careful you don't overpay via the retailer's third-party marketplace, as these listings almost always come with an eye-watering markup. <a class="view-deal button" href="https://www.walmart.com/ip/Nintendo-Switch-2-Pro-Controller-The-Legend-of-Zelda-40th-Anniversary-Edition/20954470204" target="_blank" rel="nofollow" data-dimension112="cda6d44a-d2f6-11f1-b5fb-411e2eefbbe2" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="cda6d4c2-d2f6-11f1-b029-93c4343e245b" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013213521" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013213521" target="_blank" rel="nofollow" data-dimension112="cda6d4c2-d2f6-11f1-b029-93c4343e245b" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Target is another retailer that I'm watching closely today for any signs of a Zelda Switch 2 Pro Controller restock. <a class="view-deal button" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013213521" target="_blank" rel="nofollow" data-dimension112="cda6d4c2-d2f6-11f1-b029-93c4343e245b" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="4e529cf2-d2f5-11f1-b3ca-29993f7652ad" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EXpDruhoaAuddyN6RUCGyb" name="GameStop logo.png" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EXpDruhoaAuddyN6RUCGyb-1920-80.png" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="4e529cf2-d2f5-11f1-b3ca-29993f7652ad" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />GameStop hasn't confirmed any restock plans, but I'm keeping tabs on it nevertheless as stock drops often appear out of nowhere. <a class="view-deal button" href="https://www.gamestop.com/consoles-hardware/nintendo-switch-2/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition/451607.html" target="_blank" rel="nofollow" data-dimension112="4e529cf2-d2f5-11f1-b3ca-29993f7652ad" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="4e529d4c-d2f5-11f1-a4ca-b7252aaad268" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="4e529d4c-d2f5-11f1-a4ca-b7252aaad268" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">The Legend of Zelda 40th Anniversary Edition: $109</a></strong><br />The Nintendo Store is the exclusive retailer for the Switch 2 Pro Controller Zelda Edition <strong>with a display stand</strong>. Okay, so you're paying $10 extra for it, but you get a swanky way to show off your Zelda-themed controller. <a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="4e529d4c-d2f5-11f1-a4ca-b7252aaad268" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">View Deal</a></p></div><h3 class="article-body__section" id="section-zelda-ocarina-of-time-remake-pre-orders"><span>Zelda Ocarina of Time remake pre-orders</span></h3><div class="product"><a data-dimension112="700712c6-d2f3-11f1-bf23-e1bd9004d819" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined" data-dimension112="700712c6-d2f3-11f1-bf23-e1bd9004d819" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">The Legend of Zelda: Ocarina of Time</a> is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches next week, on November 5, 2026, and looks truly stunning with modern visuals, overhauled controls, and reworked puzzles.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="700712c6-d2f3-11f1-bf23-e1bd9004d819" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-u-k-pre-orders"><span>U.K. pre-orders</span></h3><ul><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition:  </strong><a href="https://www.amazon.co.uk/dp/B0HJ8344SW/" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Nintendo Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-consoles/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-console/p/265573" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.amazon.co.uk/Nintendo-Switch-Pro-Controller-Legend-Anniversary/dp/B0HN2S9JT8/" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-accessories/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/p/265620" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a></li></ul><h3 class="article-body__section" id="section-live-updates"><span>Live updates</span></h3></div><div class="live-content"><time datetime="2026-10-29T11:10:22+00:00">October 29, 2026 – 7:10 AM</time><h2 id="welcome">Welcome!</h2><p>Good morning, welcome to Tom's Guide's live coverage of the Zelda Switch 2 console and controller launch day. I'm keeping an eye across major retailers and will alert you if there's any restocks of these tough to find limited edition items. </p></div><div class="live-content"><time datetime="2026-10-29T11:20:44+00:00">October 29, 2026 – 7:20 AM</time><h2 id="here-39-s-what-everybody-is-trying-to-buy">Here's what everybody is trying to buy!</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/Ymw9UTRu1V0" allowfullscreen=""></iframe></div></div><p>If you've been out of the loop on the Zelda Switch 2 console, then it's pretty much what it sounds like: A special edition Nintendo Switch 2 with a swanky The Legend of Zelda themed design. It's a pretty nifty limited edition console, and when you factor in the Zelda aspect, it's no surprise that it's in very demand. </p></div><div class="live-content"><time datetime="2026-10-29T11:33:55+00:00">October 29, 2026 – 7:33 AM</time><h2 id="no-sign-of-zelda-switch-2-restock-so-far">No sign of Zelda Switch 2 restock so far!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2BQQK9NjQGhuaFFp47gYyU" name="zelda-switch-2-console-2026" alt="Switch 2 Legend of Zelda 40th Anniversary Edition console on a stone table" src="https://cdn.mos.cms.futurecdn.net/2BQQK9NjQGhuaFFp47gYyU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>As of 7:30 a.m. ET / 11:30 a.m. GMT there's <strong>no Zelda Switch 2 stock </strong>across all the retailers I'm tracking. However, at least in the U.S., this was expected, retailers typically restock in the mid-morning (most commonly between 9 a.m. and 11 a.m.). So Zelda fans in the States should keep watching. Meanwhile in the U.K., we could see restocks at anytime from now, so I've got a close eye on retailers.</p></div><div class="live-content"><time datetime="2026-10-29T11:54:06+00:00">October 29, 2026 – 7:54 AM</time><h2 id="don-39-t-forget-to-also-pick-up-ocarina-remake">Don't forget to also pick up Ocarina remake! </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dxxAyL5E86veZWR4rvR5wM" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_16" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/dxxAyL5E86veZWR4rvR5wM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>One quirk of the Zelda Switch 2 is that it <em>doesn't </em>include The Legend of Zelda: Ocarina of Time remake game. Naturally, anybody looking to pick up this LE console is going to be a Zelda fan, so will undoubtedly want to be playing this stunning looking remake at launch. You can pre-order the game now, ahead of its launch next week (on November 5), and the first print of the game comes with a limited launch edition foil cover, which will look seriously great on display!</p><div class="product"><a data-dimension112="71cf168e-d38f-11f1-9110-0da6f44929a5" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined" data-dimension112="71cf168e-d38f-11f1-9110-0da6f44929a5" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">The Legend of Zelda: Ocarina of Time</a> is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches next week, on November 5, 2026, and looks truly stunning with modern visuals, overhauled controls, and reworked puzzles.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="71cf168e-d38f-11f1-9110-0da6f44929a5" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">View Deal</a></p></div></div><div class="live-content"><time datetime="2026-10-29T12:18:46+00:00">October 29, 2026 – 8:18 AM</time><h2 id="check-out-our-zelda-preview-while-waiting-for-restocks">Check out our Zelda preview while waiting for restocks!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2VSEeywQgRRsWUE8nPJPba" name="ocarina-of-time-remake-switch-2" alt="Zelda: Ocarina of Time Remake screenshot from the Zelda Direct" src="https://cdn.mos.cms.futurecdn.net/2VSEeywQgRRsWUE8nPJPba-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>If you want to fill some time until Zelda Switch 2 restock (hopefully) appears, then give our <a href="https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined"><strong>Zelda: Ocarina of Time preview</strong></a> a read! A couple of members of the Tom's Guide team have already played it (yes, I'm very jealous), and this remake is shaping up to live up to the legacy of the original, and then some.</p></div><div class="live-content"><time datetime="2026-10-29T12:47:34+00:00">October 29, 2026 – 8:47 AM</time><h2 id="target-confirms-zelda-switch-2-restock-but-it-39-s-not-today">Target confirms Zelda Switch 2 restock, but it's not today!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yjWK2GUWYMFDryxNo5XZVE" name="target-switch-2-zelda-listing" alt="Target listing page for Nintendo Switch 2 Zelda Edition" src="https://cdn.mos.cms.futurecdn.net/yjWK2GUWYMFDryxNo5XZVE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Target)</span></figcaption></figure><p>Some BIG news, Target has confirmed it will restock the Zelda Switch 2. However, it won't be today. Instead, <strong>Target will have more stock in store on November 5 and online on November 6</strong>. That does mean an extra week of waiting, but it's good news to have confirmation that more stock is coming.</p><ul><li><strong>Nintendo Switch 2 The Legend of Zelda 40th Anniversary Edition Console: </strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T13:36:08+00:00">October 29, 2026 – 9:36 AM</time><h2 id="walmart-might-be-waiting-till-next-week-as-well">Walmart might be waiting till next week as well!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ABomR9E2tmDghs2CGa6YtN" name="Walmart Plus.jpg" alt="Walmart Plus" src="https://cdn.mos.cms.futurecdn.net/ABomR9E2tmDghs2CGa6YtN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Another restock update, this time via <a href="https://www.reddit.com/r/zelda/comments/1xihltk/oothd_psa_for_the_switch_2_console_walmart/"><strong>Reddit</strong></a>, according to a post on the Zelda subreddit, an internal Walmart document suggests that the retailer won't be restocking the limited edition Switch 2 console until <strong>"at least Friday, Nov. 6."</strong></p><p>This would mirror the approach that Target is taking, which has publicly confirmed it's own restock for next week (in-store on Nov. 5, and online on Nov. 6). So, perhaps there won't be any restocks today on launch day, but next week will bring a slew of fresh chances to secure this in-demand Zelda console. </p><p>However, the above update remains unconfirmed by the retailer itself, so take it with a grain of salt. I'm still watching Walmart closely just in case the Reddit post proves to a hoax. It wouldn't be the first time false details have spread.</p></div><div class="live-content"><time datetime="2026-10-29T14:43:56+00:00">October 29, 2026 – 10:43 AM</time><h2 id="here-39-s-where-we-stand-right-now">Here's where we stand right now!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gXAajrMbQrrFmu3bAdJ76U" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_20" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/gXAajrMbQrrFmu3bAdJ76U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Not much to update on you at present; we've already had news from Target, confirming the retailer will restock next week, and Walmart is rumored to be planning the same. But nothing today from the likes of Best Buy, Amazon and GameStop. Those are the retailers I'm watching very closely, as they would appear to be the most likely to restock today. Let's keep our fingers crossed. </p></div><div class="live-content"><time datetime="2026-10-29T15:36:06+00:00">October 29, 2026 – 11:36 AM</time><h2 id="amazon-is-the-retailer-to-check-right-now">Amazon is the retailer to check right now</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RzZN7gXnZ5rfnyvVLbAcKS" name="Amazon logo.shutterstock_2445780831" alt="Amazon building" src="https://cdn.mos.cms.futurecdn.net/RzZN7gXnZ5rfnyvVLbAcKS-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I'm seeing some dedicated restock tracking accounts on social media claim to have seen the Zelda Switch 2 in stock at Amazon. On my end, it still says "currently unavailable," but your milage may vary. So, if you can, Amazon is the retailer I would be refreshing right now, maybe you'll get lucky and get one!</p><ul><li><strong>Switch 2 – Zelda Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T16:00:10+00:00">October 29, 2026 – 12:00 PM</time><h2 id="best-buy-will-have-in-store-stock-for-ocarina-remake-launch">Best Buy will have in-store stock for Ocarina remake launch!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LxsxY9rLuE2zYXDxqoxsGE" name="best-buy-zelda-switch-2-listing" alt="Best Buy listing page with information on it's in-store restock of the Zelda Switch 2" src="https://cdn.mos.cms.futurecdn.net/LxsxY9rLuE2zYXDxqoxsGE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Best Buy)</span></figcaption></figure><p>Best Buy has confirmed it will hold late-night store openings for the launch of The Legend of Zelda: Ocarina of Time, and <strong>"limited numbers of The Legend of Zelda 40th Anniversary Nintendo Switch 2 system and Pro Controller will also be available. " </strong>Like Target and Walmart, Best Buy appears to be pairing up its next restock with the launch of the remake, and will focus on in-store.</p><p>Used the link below to access Best Buy's "find a store" page, and check if your nearest location will be holding a midnight launch event on November 5. </p><ul><li><a href="https://www.bestbuy.com/site/video-game-franchises/the-legends-of-zelda/pcmcat1620057435002.c" target="_blank" rel="nofollow"><em><strong>Check if your local Best Buy will hold an Ocarina of Time launch event </strong></em></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T16:24:44+00:00">October 29, 2026 – 12:24 PM</time><h2 id="zelda-switch-2-restocked-at-nintendo">Zelda Switch 2 restocked at Nintendo!</h2><p>We have a restock, and its comes directly from Nintendo. Get over there now and secure yours, this one likely won't last for very long...</p><ul><li><strong>Nintendo Switch 2 — Zelda Edition: </strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><strong>$519 @ Nintendo</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T17:14:19+00:00">October 29, 2026 – 1:14 PM</time><h2 id="best-buy-could-be-the-place-to-get-a-zelda-switch-2-next-week">Best Buy could be the place to get a Zelda Switch 2 next week!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1867px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="37J4oiTnoxzoLw96rAWLU5" name="Switch 2 Zelda Edition-LIST" alt="Limited Editon Zelda Switch 2 console" src="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1867" height="1050" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The big theme of today has been news that retailers will actually restock the Zelda Switch 2 <em>next week</em> on or around November 5, the day the Ocarina of Time remake launches. </p><p>Target, Walmart, and Best Buy are reportedly set to hold in-store restocks on that day, and if <a href="https://x.com/Nintendeal" target="_blank">@Nintendeal</a> is correct, Best Buy might be the place to try first. </p><p><a href="https://x.com/Nintendeal/status/2115851133847761126?a=OPcDdeLibiAYric3YrY&amp;s=20" target="_blank">According to the stock tracking account</a>, stores will have 30-100 units of the Switch 2 console and 10-50 units of the Pro Controller. If you have a local Best Buy, then you might want to get down there in person on the evening of November 4. This stock will be sold starting at midnight on November 5. </p><p>Just remember the retailer hasn't officially confirmed these unit numbers, and available stock numbers will almost certainly vary by location. </p><ul><li><a href="https://www.bestbuy.com/site/video-game-franchises/the-legends-of-zelda/pcmcat1620057435002.c" target="_blank" rel="nofollow"><em><strong>Check if your local Best Buy will hold an Ocarina of Time launch event </strong></em></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T18:01:15+00:00">October 29, 2026 – 2:01 PM</time><h2 id="best-buy-restocks-the-zelda-switch-2-carrying-case">Best Buy restocks the Zelda Switch 2 Carrying Case!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WViCnj3XoetgivSAbPmJ3X" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_08" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/WViCnj3XoetgivSAbPmJ3X-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Okay, so it's not the Switch 2 console/controller restock everybody wants right now, but <strong>Best Buy has just restocked the Zelda-themed Switch 2 Carrying Case. </strong>It's a great pick up for Zelda fans who already own a Switch 2 console. </p><p>I'm also winding down my day now (it's just hit 6 p.m. in my timezone), but don't worry, I'll be leaving you in the very capable hands of my colleagues, who will be keeping an eye on major retailers and will alert you of any restocks that appear. </p><ul><li><strong>Switch 2 Carrying Case - Zelda Edition: </strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-carrying-case-and-screen-protector-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57WCW" target="_blank" rel="nofollow"><strong>$39 @ Best Buy</strong></a></li></ul></div><div class="live-content"><time datetime="2026-10-29T18:29:37+00:00">October 29, 2026 – 2:29 PM</time><h2 id="the-enigma-that-is-gamestop">The enigma that is GameStop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BFxZ8zeZKbrU73bc6M7qsf" name="shutterstock_1906421812.jpg" alt="GameStop store" src="https://cdn.mos.cms.futurecdn.net/BFxZ8zeZKbrU73bc6M7qsf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Hey seekers, Scott taking over for Rory. I'm here to help you land the fish.</p><p>I figured I'd start with a general sweep to see what was available. </p><p>Unfortunately, there's been no real changes since our last update. Best Buy briefly <a href="https://www.bestbuy.com/product/nintendo-switch-2-carrying-case-and-screen-protector-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57WCW" target="_blank">restocked the carrying case</a> but I'm seeing it unavailable as of this posting.</p><p>I checked out GameStop online, where all the 40th anniversary Zelda gear is listed as exclusive to in-store pickup.</p><p>I called my local store and one that was nearby. Both associates told me that they were sold out. One store told me that was going to be the case at every store. </p><p>If you happen to live near a GameStop, it couldn't hurt to give them a call, just in case.</p></div><div class="live-content"><time datetime="2026-10-29T18:45:26+00:00">October 29, 2026 – 2:45 PM</time><h2 id="ocarina-of-time-on-sale">Ocarina of Time on sale</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2VSEeywQgRRsWUE8nPJPba" name="ocarina-of-time-remake-switch-2" alt="Zelda: Ocarina of Time Remake screenshot from the Zelda Direct" src="https://cdn.mos.cms.futurecdn.net/2VSEeywQgRRsWUE8nPJPba-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Hey, here's some good-ish news. </p><p>Over on <a href="https://www.amazon.com/dp/B0HJ6F7L6T?th=1" target="_blank" rel="nofollow">Amazon, the Zelda: Ocarina of Time Remake is on sale for $59.88</a>, or 14% off the normal $69.99 price. </p><p>It should probably cost $60 from the jump, but hey, it's not $70 right now.</p><p>From what I can tell, Amazon is the only retailer offering a discount.</p></div><div class="live-content"><time datetime="2026-10-29T19:25:13+00:00">October 29, 2026 – 3:25 PM</time><h2 id="walmart-may-be-having-issues">Walmart may be having issues?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FpTqAkYrPfFsK6BZwvFjf7" name="Walmart deals" alt="Mini shopping cart holding smartphone with Walmart logo on screen" src="https://cdn.mos.cms.futurecdn.net/FpTqAkYrPfFsK6BZwvFjf7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I've seen a <a href="https://www.polygon.com/zelda-switch-2-ocarina-of-time-edition-preorder-cancel-delay-walmart-target/" target="_blank">couple of reports</a> that Walmart may be having problems with stock, either cancelling preorders or not being able stock that they do have. </p><p>As of this writing, the Walmart website is showing the Zelda 40th items as unavailable. </p><p>Are you having problems getting the special edition console at your Walmart? Let me know in the comments or shoot me an email at scott.younker@futurenet.com</p></div><div class="live-content"><time datetime="2026-10-29T20:13:03+00:00">October 29, 2026 – 4:13 PM</time><h2 id="latest-retailer-sweep">Latest retailer sweep</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1867px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="37J4oiTnoxzoLw96rAWLU5" name="Switch 2 Zelda Edition-LIST" alt="Limited Editon Zelda Switch 2 console" src="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1867" height="1050" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>I've been keeping an eye on things generally, but let's do a full sweep of Amazon, Best Buy, GameStop, Target and Walmart.</p><p>...and no change.</p><p>The Switch 2 console, Pro controller, and carrying case are listed as out of stock or sold out at every retailer I checked.  </p><p>From what I've seen, this largely won't change until November 5 and 6 when the console is supposed to officially hit store shelves.</p></div><div class="live-content"><time datetime="2026-10-29T20:27:14+00:00">October 29, 2026 – 4:27 PM</time><h2 id="the-last-post-was-a-lie-ish">The last post was a lie-ish</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ABomR9E2tmDghs2CGa6YtN" name="Walmart Plus.jpg" alt="Walmart Plus" src="https://cdn.mos.cms.futurecdn.net/ABomR9E2tmDghs2CGa6YtN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Sort of. When I first checked during my sweep, everything was out. </p><p>But I just checked Walmart again, and the retailer appears to have the<a href="https://www.walmart.com/ip/Nintendo-Switch-2-Carrying-Case-and-Screen-Protector-The-Legend-of-Zelda-40th-Anniversary-Edition/20955069492" target="_blank" rel="nofollow"> Carrying Case and Screen Protector available for $94.99</a>. Unfortunately, that seems to be sold by a third party who is upcharging on the normal $39 price. </p><p>So, if you want the case, I'd say just wait. Don't give the scalpers a dime.</p></div><div class="live-content"><time datetime="2026-10-29T21:22:43+00:00">October 29, 2026 – 5:22 PM</time><h2 id="no-changes">No changes</h2><p>As the day winds down on the West Coast of the United States, unfortunately, I have no updates for you. </p><p>Everywhere I checked out is out of stock or showing as unavailable. </p></div><div class="live-content"><time datetime="2026-10-29T22:59:58+00:00">October 29, 2026 – 6:59 PM</time><h2 id="still-no-stock">Still no stock</h2><p>The West Coast is slowing down as the end of the workday comes to a close, and we've had no real updates since this morning. I don't expect anymore before the end of the day.</p><p>Do keep Tom's Guide in your tabs as we'll continue to keep our eyes open to see if anything pops between now and launch day next week.</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I'm replaying Red Dead Redemption 2 to prepare for GTA 6 — 5 features that need to return ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As the wait for Grand Theft Auto 6 enters its final stretch, I’ve spent my evenings back on the dirt trails and misty riverbanks of <a href="https://www.tomsguide.com/us/red-dead-redemption-2,review-5905.html">Red Dead Redemption 2</a>. </p><p>If GTA 6 is going to truly justify the thirteen long years of waiting since we first set foot in Los Santos, it cannot rely solely on scale, high-speed chases, or satirical noise. </p><p>Instead, it needs to look closely at its western cousin and adopt the patience that made New Austin feel so <em>real</em>. Here are five features that Vice City ought to inherit.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey67BW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey67BW.js" async=""></script><h2 id="1-meaningful-downtime-that-exists-outside-the-criminal-hustle">1. Meaningful downtime that exists outside the criminal hustle</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aTyNXd6bLMr7vHwNjtATy5" name="GTA 6 - Lucia.jpg" alt="GTA 6" src="https://cdn.mos.cms.futurecdn.net/aTyNXd6bLMr7vHwNjtATy5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar Games)</span></figcaption></figure><p>Rockstar has long understood that the quieter moments between shootouts are what transform an expansive map into a place that feels genuinely lived in. San Andreas gave us gym workouts and awkward dates, GTA 4 had Niko dragged to bowling alleys, and GTA 5 introduced sprawling golf courses. </p><p>Yet RDR2 elevated this concept into something meditative, allowing players to lose an entire evening to a poker table, a friendly game of dominoes, or an eccentric vaudeville performance in Saint Denis. </p><p>Vice City needs this same commitment to low-stakes immersion, particularly given its focus on Jason and Lucia. Providing opportunities to step away from high-stakes robberies and simply spend time together.</p><section class="howto-block">                    <h3>2. Realism that rewards care without becoming a burden</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ojuqhg5V2gEVpb5UGSmpoU.jpg"                                        alt="Jason Duval in Grand Theft Auto VI"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ojuqhg5V2gEVpb5UGSmpoU.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>There was something quite radical about the way RDR2 treated Arthur Morgan as an actual physical presence in the world rather than a simple floating camera. </p><p>Forcing players to monitor his weight, dress appropriately for cold mountain air, trim his growing beard, and oil his weapons made him feel human, even if those same systems occasionally tested the patience of players who just wanted to get to the next gunfight.</p><p>While GTA 6 certainly shouldn't drag players down with heavy survival micromanagement, it could adopt a softer version of this philosophy where taking care of yourself yields satisfying rewards. </p><p>Small habits like grabbing food from a local street vendor, working out, or choosing an outfit suited for a specific neighborhood could provide subtle boosts to stamina or charisma, ensuring that self-care feels like a natural part of living in the city rather than a tedious chore.</p></p>                </section><section class="howto-block">                    <h3>3. Chance encounters that ripple through the world over time</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/8rkB7eK7jswMfdGMf2dTs7.jpg"                                        alt="GTA 6"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/8rkB7eK7jswMfdGMf2dTs7.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>The moments that stick with you longest in RDR2 are almost never the scripted story missions, but rather the unscripted encounters with odd strangers along the trail. </p><p>Stopping to help a man bitten by a venomous snake in the woods feels like a minor good deed, right up until you bump into him days later outside the gunsmith in Valentine, where he proudly pays off your next rifle purchase out of gratitude.</p><p>A metropolis like Vice City is ripe for a reactive population. Save a stranded commuter, and you gain a useful contact. Start a petty brawl, and a local might hold a long-term grudge. Tied to a subtle reputation system, Vice City would actually remember what you’ve done.</p></p>                </section><section class="howto-block">                    <h3>4. A central system that completely changes how you navigate space</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/8DfUjF8hY6Xg2QcGeF5fPC.jpg"                                        alt="GTA 6"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/8DfUjF8hY6Xg2QcGeF5fPC.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>Hunting and horse bonding were never meant to be throwaway side activities in RDR2; they fundamentally altered the way you moved across the map. </p><p>GTA 6 needs a signature mechanic that grounds you in its world. Imagine a car ownership system where maintaining a single vehicle unlocks handling perks — making losing your ride feel as heartbreaking as losing a trusted horse. </p><p>Paired with Leonida’s wild wetlands and social media ecosystem, that would give players a reason to slow down and truly inhabit the city. </p></p>                </section><section class="howto-block">                    <h3>5. A living simulation that makes it easy to forget the main story</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Mv9BX7aGhfZUYgM2HVj76o.jpg"                                        alt="GTA 6"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Mv9BX7aGhfZUYgM2HVj76o.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>The real magic of RDR2 is that you can ignore the story completely. An evening spent fishing, tracking wildlife, or riding through town at sunset is just as satisfying as any story mission.</p><p>For me, that freedom is the true benchmark for GTA 6, far more than the promise of a larger map or louder set pieces. Rockstar proved it could create a world that rich once before, and as we count down the final weeks, one can only hope they are about to manage it again, this time bathed in neon light.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/news/gta-6">GTA 6 — everything we know so far, including release date and latest trailer</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/thinking-about-buying-a-handheld-console-heres-how-to-choose-the-right-one-for-you">5 tips for buying a gaming handheld — decide between Switch 2, Steam Deck and more</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/as-a-pc-snob-i-wanted-to-catch-gta-6-making-console-compromises-instead-im-in-awe-of-the-trickery">As a PC snob, I wanted to catch GTA 6 making console compromises. Instead, I’m in awe of the trickery</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/im-replaying-red-dead-redemption-2-to-prepare-for-gta-6-5-features-that-need-to-return</link>
                                                                            <description>
                            <![CDATA[ Can GTA 6 live up to 13 years of hype? Replaying RDR2 holds the answer. Here's 5 features I hope we see in Vice City. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sBhwb2v49T84iZp2RyTUGm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/MrLWtcmzQokGAVu7ozxiQ5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 24 Oct 2026 09:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xHn6RmpEqg87cvtLwrBu9G-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/MrLWtcmzQokGAVu7ozxiQ5-1920-80.jpg">
                                                            <media:credit><![CDATA[Rockstar Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Grand Theft Auto VI official cover art showing various scenes from the game]]></media:description>                                                            <media:text><![CDATA[Grand Theft Auto VI official cover art showing various scenes from the game]]></media:text>
                                <media:title type="plain"><![CDATA[Grand Theft Auto VI official cover art showing various scenes from the game]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/MrLWtcmzQokGAVu7ozxiQ5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As the wait for Grand Theft Auto 6 enters its final stretch, I’ve spent my evenings back on the dirt trails and misty riverbanks of <a href="https://www.tomsguide.com/us/red-dead-redemption-2,review-5905.html">Red Dead Redemption 2</a>. </p><p>If GTA 6 is going to truly justify the thirteen long years of waiting since we first set foot in Los Santos, it cannot rely solely on scale, high-speed chases, or satirical noise. </p><p>Instead, it needs to look closely at its western cousin and adopt the patience that made New Austin feel so <em>real</em>. Here are five features that Vice City ought to inherit.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ey67BW"></div>                            </div>                            <script src="https://kwizly.com/embed/ey67BW.js" async=""></script><h2 id="1-meaningful-downtime-that-exists-outside-the-criminal-hustle">1. Meaningful downtime that exists outside the criminal hustle</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aTyNXd6bLMr7vHwNjtATy5" name="GTA 6 - Lucia.jpg" alt="GTA 6" src="https://cdn.mos.cms.futurecdn.net/aTyNXd6bLMr7vHwNjtATy5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar Games)</span></figcaption></figure><p>Rockstar has long understood that the quieter moments between shootouts are what transform an expansive map into a place that feels genuinely lived in. San Andreas gave us gym workouts and awkward dates, GTA 4 had Niko dragged to bowling alleys, and GTA 5 introduced sprawling golf courses. </p><p>Yet RDR2 elevated this concept into something meditative, allowing players to lose an entire evening to a poker table, a friendly game of dominoes, or an eccentric vaudeville performance in Saint Denis. </p><p>Vice City needs this same commitment to low-stakes immersion, particularly given its focus on Jason and Lucia. Providing opportunities to step away from high-stakes robberies and simply spend time together.</p><section class="howto-block">                    <h3>2. Realism that rewards care without becoming a burden</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/ojuqhg5V2gEVpb5UGSmpoU.jpg"                                        alt="Jason Duval in Grand Theft Auto VI"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/ojuqhg5V2gEVpb5UGSmpoU.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>There was something quite radical about the way RDR2 treated Arthur Morgan as an actual physical presence in the world rather than a simple floating camera. </p><p>Forcing players to monitor his weight, dress appropriately for cold mountain air, trim his growing beard, and oil his weapons made him feel human, even if those same systems occasionally tested the patience of players who just wanted to get to the next gunfight.</p><p>While GTA 6 certainly shouldn't drag players down with heavy survival micromanagement, it could adopt a softer version of this philosophy where taking care of yourself yields satisfying rewards. </p><p>Small habits like grabbing food from a local street vendor, working out, or choosing an outfit suited for a specific neighborhood could provide subtle boosts to stamina or charisma, ensuring that self-care feels like a natural part of living in the city rather than a tedious chore.</p></p>                </section><section class="howto-block">                    <h3>3. Chance encounters that ripple through the world over time</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/8rkB7eK7jswMfdGMf2dTs7.jpg"                                        alt="GTA 6"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/8rkB7eK7jswMfdGMf2dTs7.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>The moments that stick with you longest in RDR2 are almost never the scripted story missions, but rather the unscripted encounters with odd strangers along the trail. </p><p>Stopping to help a man bitten by a venomous snake in the woods feels like a minor good deed, right up until you bump into him days later outside the gunsmith in Valentine, where he proudly pays off your next rifle purchase out of gratitude.</p><p>A metropolis like Vice City is ripe for a reactive population. Save a stranded commuter, and you gain a useful contact. Start a petty brawl, and a local might hold a long-term grudge. Tied to a subtle reputation system, Vice City would actually remember what you’ve done.</p></p>                </section><section class="howto-block">                    <h3>4. A central system that completely changes how you navigate space</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/8DfUjF8hY6Xg2QcGeF5fPC.jpg"                                        alt="GTA 6"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/8DfUjF8hY6Xg2QcGeF5fPC.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>Hunting and horse bonding were never meant to be throwaway side activities in RDR2; they fundamentally altered the way you moved across the map. </p><p>GTA 6 needs a signature mechanic that grounds you in its world. Imagine a car ownership system where maintaining a single vehicle unlocks handling perks — making losing your ride feel as heartbreaking as losing a trusted horse. </p><p>Paired with Leonida’s wild wetlands and social media ecosystem, that would give players a reason to slow down and truly inhabit the city. </p></p>                </section><section class="howto-block">                    <h3>5. A living simulation that makes it easy to forget the main story</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/Mv9BX7aGhfZUYgM2HVj76o.jpg"                                        alt="GTA 6"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/Mv9BX7aGhfZUYgM2HVj76o.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Rockstar Games)</div></figure>                    <p><p>The real magic of RDR2 is that you can ignore the story completely. An evening spent fishing, tracking wildlife, or riding through town at sunset is just as satisfying as any story mission.</p><p>For me, that freedom is the true benchmark for GTA 6, far more than the promise of a larger map or louder set pieces. Rockstar proved it could create a world that rich once before, and as we count down the final weeks, one can only hope they are about to manage it again, this time bathed in neon light.</p></p>                </section><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/news/gta-6">GTA 6 — everything we know so far, including release date and latest trailer</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/thinking-about-buying-a-handheld-console-heres-how-to-choose-the-right-one-for-you">5 tips for buying a gaming handheld — decide between Switch 2, Steam Deck and more</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/as-a-pc-snob-i-wanted-to-catch-gta-6-making-console-compromises-instead-im-in-awe-of-the-trickery">As a PC snob, I wanted to catch GTA 6 making console compromises. Instead, I’m in awe of the trickery</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AMD is bringing FSR 4.1 to Xbox consoles and handhelds — will it be enough to beat XeSS 3 or DLSS? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Earlier this year, <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-did-not-say-its-coming-we-spoke-to-amd-vp-david-mcafee-about-bringing-fsr-4-to-ryzen-handhelds-to-catch-up-to-intel-arc-g3" target="_blank">AMD wouldn't commit</a> to bringing FSR 4.1 support to handheld consoles, but surprise, surprise, the company just announced that its flagship scaling technology will be available on multiple platforms, including Xbox consoles. </p><p>FSR, or FidelityFX Super Resolution, is AMD's version of <a href="https://www.tomsguide.com/computing/gpus/what-is-nvidia-dlss-explaining-the-ai-tech-transforming-pc-gaming-and-why-its-getting-controversial">NVIDIA DLSS</a> or Intel's XeSS 3, both of which have <a href="https://www.tomsguide.com/computing/amd-is-cooked-intel-has-more-planned-for-core-ultra-series-3-in-gaming-handhelds-xess-3-multi-frame-generation-could-be-huge">been eating AMD's lunch</a> in the last year. Basically, FSR renders the game you're playing at a lower resolution and then utilizes AI to generate a better image. </p><p>Importantly, it makes the graphics card more efficient, meaning any savings can be put straight back into performance. It's a big <a href="https://www.tomsguide.com/computing/gpus/amds-fsr-redstone-is-finally-here-to-take-on-nvidias-dlss-4-heres-everything-you-need-to-know">step up over previous versions of FSR,</a> which didn't use machine learning to optimize performance. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/fT6TIXnmv-s" allowfullscreen=""></iframe></div></div><p>With this update, AMD is partnering with Microsoft to bring FSR 4.1 not only to the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> but also to the <a href="https://www.tomsguide.com/reviews/xbox-series-s">Series S</a> and the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Xbox Ally X and X20</a>, both of which should benefit immensely from huge performance boosts.</p><p>Notably, a release date for this feature was not provided in any announcement videos or posts we could find. Presumably, the Xbox Ally X will get FSR 4.1 before the end of the year. Xbox consoles are listed as "coming soon." Unfortunately, the vanilla Xbox Ally handheld does not appear compatible with FSR 4.1.</p><p>While cheaper, the Series S has been a boondoggle for developers due to its weaker hardware, so maybe FSR 4.1 will be able to do some of the hard work.</p><h2 id="it-39-s-not-just-xbox">It's not just Xbox</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vKphLXtCvyv3ttQQVKtLqE" name="AMD Ryzen Z2" alt="AMD Ryzen Z2" src="https://cdn.mos.cms.futurecdn.net/vKphLXtCvyv3ttQQVKtLqE-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>AMD also revealed that FSR 4.1 will be coming to Radeon RX 6000 and Ryzen AI Max graphics cards and processors. It should also feature on AMD Ryzen AI 9-powered laptops like the<a href="https://www.tomsguide.com/computing/gaming-laptops/asus-tuf-gaming-a14-2025-review"> Asus TUF Gaming A14</a>.</p><p>Gaming handhelds powered by the Ryzen Z2 Extreme and Ryzen Z2A, which are basically just the Xbox Ally handhelds right now. AMD also said that it's working on bringing FSR 4.1 to more APUs.</p><h2 id="outlook">Outlook</h2><p>This is a much-needed, and probably overdue, update from AMD, which has been losing to NVIDIA and DLSS 4.5 this year. In one study, nearly <a href="https://www.tomsguide.com/computing/gpus/dlss-4-5-wins-big-48-percent-of-gamers-pick-nvidia-over-amd-fsr-and-native-in-blind-gaming-test">half of gamers picked Nvidia over AMD</a> (and native rendering) in a blind gaming test. AMD even lost to native rendering, nabbing 15% of the vote compared to 24% for native.</p><p>At Tom's Guide, my colleagues Jason England and Tony Polanco are putting FSR 4.1 through its paces, so keep us in your tabs to see how our testing shakes out.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-which-premium-handheld-gaming-pc-should-you-buy"><strong>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Which premium handheld gaming PC should you buy?</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/they-are-new-to-the-laptop-market-amd-issues-a-reality-check-to-nvidias-rtx-spark-and-fires-a-warning-shot-at-arm"><strong>'They are new to the laptop market': AMD issues a reality check to Nvidia’s RTX Spark and fires a warning shot at Arm</strong></a></li><li><a href="https://www.tomsguide.com/computing/gpus/best-graphics-cards"><strong>Best graphics cards in 2026: I've tested every GPU to find the best bang for your buck</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/amd-is-bringing-fsr-4-1-to-xbox-consoles-and-handhelds-will-it-be-enough-to-be-xess-3-or-dlss-4-4</link>
                                                                            <description>
                            <![CDATA[ AMD just announced that FSR 4.1 support is coming to Xbox consoles and the Xbox Ally. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">NZoX9ekAn5SXVYyUQpmHmM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8arFGbZkVDNKtc7CYkPpJZ-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 20 Oct 2026 18:25:52 +0000</pubDate>                                                                                                                                <updated>Tue, 20 Oct 2026 18:53:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8arFGbZkVDNKtc7CYkPpJZ-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[ROG Xbox Ally X]]></media:description>                                                            <media:text><![CDATA[ROG Xbox Ally X]]></media:text>
                                <media:title type="plain"><![CDATA[ROG Xbox Ally X]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8arFGbZkVDNKtc7CYkPpJZ-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Earlier this year, <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-did-not-say-its-coming-we-spoke-to-amd-vp-david-mcafee-about-bringing-fsr-4-to-ryzen-handhelds-to-catch-up-to-intel-arc-g3" target="_blank">AMD wouldn't commit</a> to bringing FSR 4.1 support to handheld consoles, but surprise, surprise, the company just announced that its flagship scaling technology will be available on multiple platforms, including Xbox consoles. </p><p>FSR, or FidelityFX Super Resolution, is AMD's version of <a href="https://www.tomsguide.com/computing/gpus/what-is-nvidia-dlss-explaining-the-ai-tech-transforming-pc-gaming-and-why-its-getting-controversial">NVIDIA DLSS</a> or Intel's XeSS 3, both of which have <a href="https://www.tomsguide.com/computing/amd-is-cooked-intel-has-more-planned-for-core-ultra-series-3-in-gaming-handhelds-xess-3-multi-frame-generation-could-be-huge">been eating AMD's lunch</a> in the last year. Basically, FSR renders the game you're playing at a lower resolution and then utilizes AI to generate a better image. </p><p>Importantly, it makes the graphics card more efficient, meaning any savings can be put straight back into performance. It's a big <a href="https://www.tomsguide.com/computing/gpus/amds-fsr-redstone-is-finally-here-to-take-on-nvidias-dlss-4-heres-everything-you-need-to-know">step up over previous versions of FSR,</a> which didn't use machine learning to optimize performance. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/fT6TIXnmv-s" allowfullscreen=""></iframe></div></div><p>With this update, AMD is partnering with Microsoft to bring FSR 4.1 not only to the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> but also to the <a href="https://www.tomsguide.com/reviews/xbox-series-s">Series S</a> and the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Xbox Ally X and X20</a>, both of which should benefit immensely from huge performance boosts.</p><p>Notably, a release date for this feature was not provided in any announcement videos or posts we could find. Presumably, the Xbox Ally X will get FSR 4.1 before the end of the year. Xbox consoles are listed as "coming soon." Unfortunately, the vanilla Xbox Ally handheld does not appear compatible with FSR 4.1.</p><p>While cheaper, the Series S has been a boondoggle for developers due to its weaker hardware, so maybe FSR 4.1 will be able to do some of the hard work.</p><h2 id="it-39-s-not-just-xbox">It's not just Xbox</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vKphLXtCvyv3ttQQVKtLqE" name="AMD Ryzen Z2" alt="AMD Ryzen Z2" src="https://cdn.mos.cms.futurecdn.net/vKphLXtCvyv3ttQQVKtLqE-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>AMD also revealed that FSR 4.1 will be coming to Radeon RX 6000 and Ryzen AI Max graphics cards and processors. It should also feature on AMD Ryzen AI 9-powered laptops like the<a href="https://www.tomsguide.com/computing/gaming-laptops/asus-tuf-gaming-a14-2025-review"> Asus TUF Gaming A14</a>.</p><p>Gaming handhelds powered by the Ryzen Z2 Extreme and Ryzen Z2A, which are basically just the Xbox Ally handhelds right now. AMD also said that it's working on bringing FSR 4.1 to more APUs.</p><h2 id="outlook">Outlook</h2><p>This is a much-needed, and probably overdue, update from AMD, which has been losing to NVIDIA and DLSS 4.5 this year. In one study, nearly <a href="https://www.tomsguide.com/computing/gpus/dlss-4-5-wins-big-48-percent-of-gamers-pick-nvidia-over-amd-fsr-and-native-in-blind-gaming-test">half of gamers picked Nvidia over AMD</a> (and native rendering) in a blind gaming test. AMD even lost to native rendering, nabbing 15% of the vote compared to 24% for native.</p><p>At Tom's Guide, my colleagues Jason England and Tony Polanco are putting FSR 4.1 through its paces, so keep us in your tabs to see how our testing shakes out.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-which-premium-handheld-gaming-pc-should-you-buy"><strong>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Which premium handheld gaming PC should you buy?</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/they-are-new-to-the-laptop-market-amd-issues-a-reality-check-to-nvidias-rtx-spark-and-fires-a-warning-shot-at-arm"><strong>'They are new to the laptop market': AMD issues a reality check to Nvidia’s RTX Spark and fires a warning shot at Arm</strong></a></li><li><a href="https://www.tomsguide.com/computing/gpus/best-graphics-cards"><strong>Best graphics cards in 2026: I've tested every GPU to find the best bang for your buck</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Nintendo Switch Sports Resort and it fixes my biggest Switch Sports gripe ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Nintendo Switch Sports Resorts review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms:</strong> Nintendo Switch 2<br /><strong>Price:</strong> $59 / £49 / AU$99 (Physical), $49 / £39 / AU$79 (Digital)<br /><strong>Release date:</strong> October 22, 2026<br /><strong>Genre:</strong> Sports / Party</p></div></div><p>Nintendo Switch Sports Resort brings the series’ iconic motion-fueled gameplay to the Switch 2 with polished visuals, a couple of new sports and, of course, the return of fan-favorites like golf and bowling.</p><p>Instead of reinventing the wheel, this new, tropical-themed entry in the series builds on the groundwork laid by 2022’s <a href="https://www.tomsguide.com/reviews/nintendo-switch-sports">Switch Sports</a>. Of the 12 total activities in Switch Sports Resort, seven are directly from its predecessor. While Miis make a return as well, so too do Nintendo’s more modern and detailed Sportsmates avatars. However, instead of grinding online to earn Spocco Points to unlock new outfits and in-game items, you can now do so through both single-player and local multiplayer too.</p><p>In addition to changing its look and layout, Nintendo has added new ways to explore Wuhu Island. While you can fly around the island in a prop plane, you can also do so by water on a jet ski or even on the ground with your skateboard. Although these various traversal methods provide a nice break from the action, I still wish we had some other new sports besides skateboarding, thumb wrestling and the warm-up game jump rope. We might see some additional sports and activities added in a future update, though.</p><p>Having spent the past five days putting the game through its paces, Nintendo Switch Sports Resort is an absolute blast for both returning players and newcomers alike. But is it one of the <a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">best Nintendo Switch 2 games</a> and a must play? Find out in my full review.</p><h2 id="nintendo-switch-sports-resort-the-basics">Nintendo Switch Sports Resort: The Basics</h2><ul><li><strong>What is it? </strong>The latest motion-party game in Nintendo’s popular sports franchise, packing 12 different events across the iconic Wuhu Island.</li><li><strong>Who is it for? </strong>Series veterans looking to revisit classic sports with upgraded visuals, as well as newcomers wanting an active, motion-controlled showcase for their Switch 2.</li><li><strong>What’s the price? </strong>Nintendo Switch Sports Resort costs <a href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4NWYGCW?th=1" target="_blank" rel="nofollow">$49 for the digital version</a> or <a href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4P1YH4P" target="_blank" rel="nofollow">$59 for the physical edition</a>.</li><li><strong>What other games has the developer made? </strong>Nintendo Switch Sports Resort is from the same internal Nintendo team behind 2022’s Nintendo Switch Sports and other active Switch titles like 1-2-Switch and Ring Fit Adventure.</li><li><strong>What games is it similar to? </strong>It combines the modern structure of 2022's Nintendo Switch Sports with the tropical setting, island exploration, and event roster of Wii Sports Resort.</li></ul><h3 class="article-body__section" id="section-seeing-wuhu-island-with-new-eyes"><span>Seeing Wuhu Island with new eyes</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AZJ6HKcpXcRkzSaxn9WCrm" name="2026101901400400_s" alt="A screenshot showing the main menu of Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/AZJ6HKcpXcRkzSaxn9WCrm-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Although Switch Sports on the original Nintendo Switch was a massive visual leap, taking in the revamped Wuhu Island on Switch 2 in crisp 4K at a steady 60 fps is even more impressive. </p><p>From the first time I booted up the game, it was clear that Nintendo put a lot of polish into the visuals—from the island’s vibrant scenery all the way down to its crisp menus.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Xsuu2WRUGz2Q3CSqDtDLK3" name="2026101517532700_s" alt="A screenshot showing a replay of a volleyball game in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/Xsuu2WRUGz2Q3CSqDtDLK3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Switch Sports Resort retains the fun, cartoony look of its predecessor, but details like clothing textures and water reflections really pop on the new hardware. Character models feature noticeably smoother edges, and the courses you compete on look cleaner than ever thanks to enhanced anti-aliasing.</p><p>While this is fundamentally a return to Wuhu Island, the care and attention to detail across the board almost make it feel like you’re experiencing this classic tropical resort for the first time, even as a veteran player.</p><h3 class="article-body__section" id="section-exploring-by-air-land-and-sea"><span>Exploring by air, land and sea</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sDFkEbHVuq4S5jBjFyiJ47" name="2026101901412000_s" alt="A screenshot showing a person flying around a prop plane over Wuhu Island in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/sDFkEbHVuq4S5jBjFyiJ47-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Taking to the skies in Prop Plane to shoot down balloons was first introduced in Wii Sports Resort, but thanks to key tweaks and more responsive controls, it feels even better than before. This time around, you also collect photographs of key landmarks around Wuhu Island while holding a single Joy-Con 2 flat in your hand like a paper airplane.</p><p>Both my 4-year-old son and I had a lot of fun trying to see and collect everything in Prop Plane. However, this isn’t the only way to traverse Wuhu Island. Aboard a jet ski in Power Cruising, you can do the same thing on the water while holding two Joy-Con 2 controllers extended in front of you like handlebars. Twisting one controller up like a throttle for a quick speed boost never got old, either.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3VTDPnkYv75m9zRjKz88g9" name="2026101721015600_s" alt="A screenshot showing a person skateboarding on the road in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/3VTDPnkYv75m9zRjKz88g9-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Finally, you can take to the streets (and even the grass) on your skateboard to explore Wuhu Island from the ground. This uses a Joy-Con 2 in mouse mode, and my son took to this control scheme almost instantly after playing <a href="https://www.tomsguide.com/gaming/nintendo/i-played-over-a-dozen-games-on-the-switch-2-and-i-have-a-surprise-favorite-so-far">Drag x Drive</a> on the Switch 2. Far from an accurate portrayal of skateboarding, this activity’s arcadey feel provided a great break from competing in the rest of the game’s traditional sports.</p><h3 class="article-body__section" id="section-sharper-slices-tighter-controls"><span>Sharper slices, tighter controls</span></h3><p>There have been plenty of games — from <a href="https://www.tomsguide.com/gaming/nintendo/donkey-kong-bananza-review">Donkey Kong Bananza</a> to the excellent port of <a href="https://www.tomsguide.com/gaming/nintendo/ive-spent-24-hours-with-the-nintendo-switch-2-for-review-heres-5-things-i-love-and-2-things-i-dont">Cyberpunk 2077</a> — that showcase the Switch 2’s added power and graphical capabilities. However, Switch Sports Resort is the first to really highlight what its Joy-Con 2 controllers can do.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="a2pcVC9Y6ASh5ia7UdWdrH" name="2026101901444100_s" alt="A screenshot showing a person hitting cans while playing table tennis in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/a2pcVC9Y6ASh5ia7UdWdrH-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Much like the jump from Wii Remotes to the original Joy-Cons, the Joy-Con 2’s enhanced motion tracking makes every sport and activity in this game feel significantly more responsive. Outside of my time on the golf course, this upgrade stood out most while playing Table Tennis. Quick wrist flicks to return a fast serve felt almost instantaneous, and thanks to the tighter tracking, shots I didn't think I'd reach somehow landed right on my opponent’s side of the table.</p><h3 class="article-body__section" id="section-chasing-the-island-crown"><span>Chasing the Island Crown</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="u69HoYhf8QRi6n8yprmZyT" name="2026101901161900_s" alt="A screenshot showing a person playing Island Crown mode in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/u69HoYhf8QRi6n8yprmZyT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>One of the biggest criticisms of Switch Sports was how the game focused heavily on online multiplayer. Though you could play by yourself, there wasn’t much incentive to do so — you couldn't collect Spocco Points unless you were playing in the game’s restricted Trial Mode. Fortunately, Nintendo Switch Sports Resort fixes this with a dedicated single-player mode that offers a clear progression path.</p><p>In Island Crown mode, you take on increasingly difficult CPU opponents across nine different sports — from Archery to Volleyball — to boost your rank. Once you reach the top of a sport's ladder, you go head-to-head against formidable Island Champions, including returning Wii Sports Mii legend Matt.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qvdPtypt3N86yZvw7N9Upf" name="2026101901230600_s" alt="A screenshot showing two players approaching a hole in golf in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/qvdPtypt3N86yZvw7N9Upf-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>While you can occasionally jump multiple spots when playing particularly well, each sport features 20 distinct opponents to defeat. Given the sheer depth across all nine sports, I focused primarily on Golf. Climbing the bottom ranks by playing three-hole matches was breezy enough, but things got noticeably tougher — though never unfair — as I closed in on the Island Champion.</p><p>Even if you don’t have family or friends nearby or an active Nintendo Switch Online membership, Island Crown mode delivers a beefy single-player campaign to keep you coming back for more. It’s also a good way to practice before your next game night.</p><h3 class="article-body__section" id="section-local-parties-global-lobbies"><span>Local parties, global lobbies</span></h3><p>With just a single Switch 2 console, you can play Switch Sports Resort locally with up to four players. When playing head-to-head sports like Tennis, Table Tennis, and Volleyball, a single Joy-Con 2 per player is all you need. If you don’t want to pick up an extra pair of Joy-Con 2 controllers, you can also use Joy-Cons from your original Switch to play every sport except Skateboarding — which makes local couch co-op a whole lot more accessible.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n7B6vxvENdZPvrX8VxtQ4m" name="2026101517480600_s" alt="A screenshot showing a player winning a boxing match in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/n7B6vxvENdZPvrX8VxtQ4m-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Even though this was his first time using motion controls, my son took to Switch Sports Resort quickly. After trying out a few activities on his own, we each grabbed a Joy-Con 2 and played through several matches together. While we had a blast with Table Tennis, his favorite was Boxing. There’s a fair bit of strategy with blocking and weaving, but he happily delivered punch after punch until both he and his avatar were out of breath.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8C2rJVgg66tViPoUYkGkL3" name="2026101513290700_s" alt="A screenshot showing online multiplayer golf in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/8C2rJVgg66tViPoUYkGkL3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Given that I played Switch Sports Resort ahead of its official launch, my online multiplayer sessions were spent alongside fellow journalists and Nintendo representatives. We had a great time bowling, golfing, aiming for targets in Archery, and stepping into the boxing ring. In Golf, for instance, I joined an eight-player match and managed to come out on top after a few tight holes. Then in Knockout Bowling, a full 16-player roster was whittled down round by round until I once again emerged victorious.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gNiPLHf9eqbTLQQmBogX28" name="2026101513500300_s" alt="A screenshot showing how you can spectate and watch other players in online multiplayer in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/gNiPLHf9eqbTLQQmBogX28-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Whether I was on the golf course — playing classic holes from Wii Sports mixed with courses from Switch Sports — or on the lanes, I really enjoyed watching other players take their turns while throwing up emoji-style reactions between shots. Online play felt remarkably smooth without any noticeable lag, offering a fun, lively change of pace from local co-op and Island Crown mode.</p><h3 class="article-body__section" id="section-nintendo-switch-sports-resort-review-verdict"><span>Nintendo Switch Sports Resort review: Verdict</span></h3><p>Nintendo Switch Sports Resort is a triumphant return to form for Nintendo’s active, motion-based gameplay, complete with crisp, upgraded 4K visuals. Exploring the redesigned Wuhu Island by air, land, and sea helps break up the action, while the new Island Crown mode gives you a genuine reason to keep playing when friends go home or you're offline. While I certainly would’ve liked to see a few more sports added to the initial lineup, Thumb Wrestling is a blast and the way Skateboarding utilizes the new Joy-Con 2 is genuinely clever.</p><p>Although you can play several of these activities in Switch Sports, Wuhu Island’s tropical resort setting ties everything together beautifully. Whether you’re a seasoned Wii Sports veteran or looking to introduce your own kids to the joy of motion gaming, Nintendo Switch Sports Resort is a delightfully polished experience — one that will likely only get better as future updates arrive.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/nintendo/switch-sports-resort-review</link>
                                                                            <description>
                            <![CDATA[ Nintendo Switch Sports Resort doesn’t reinvent the classic formula but refines it with overhauled, crisp 4K visuals and smoother motion controls. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">SEMusLnEHjipRs8ZLwRC9Z</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DPrCFtyg6eCepxEGA46uae-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 20 Oct 2026 13:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DPrCFtyg6eCepxEGA46uae-1920-80.jpg">
                                                            <media:credit><![CDATA[Nintendo]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A screenshot showing a person skateboarding in Nintendo Switch Sports Resort]]></media:description>                                                            <media:text><![CDATA[A screenshot showing a person skateboarding in Nintendo Switch Sports Resort]]></media:text>
                                <media:title type="plain"><![CDATA[A screenshot showing a person skateboarding in Nintendo Switch Sports Resort]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DPrCFtyg6eCepxEGA46uae-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Nintendo Switch Sports Resorts review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms:</strong> Nintendo Switch 2<br /><strong>Price:</strong> $59 / £49 / AU$99 (Physical), $49 / £39 / AU$79 (Digital)<br /><strong>Release date:</strong> October 22, 2026<br /><strong>Genre:</strong> Sports / Party</p></div></div><p>Nintendo Switch Sports Resort brings the series’ iconic motion-fueled gameplay to the Switch 2 with polished visuals, a couple of new sports and, of course, the return of fan-favorites like golf and bowling.</p><p>Instead of reinventing the wheel, this new, tropical-themed entry in the series builds on the groundwork laid by 2022’s <a href="https://www.tomsguide.com/reviews/nintendo-switch-sports">Switch Sports</a>. Of the 12 total activities in Switch Sports Resort, seven are directly from its predecessor. While Miis make a return as well, so too do Nintendo’s more modern and detailed Sportsmates avatars. However, instead of grinding online to earn Spocco Points to unlock new outfits and in-game items, you can now do so through both single-player and local multiplayer too.</p><p>In addition to changing its look and layout, Nintendo has added new ways to explore Wuhu Island. While you can fly around the island in a prop plane, you can also do so by water on a jet ski or even on the ground with your skateboard. Although these various traversal methods provide a nice break from the action, I still wish we had some other new sports besides skateboarding, thumb wrestling and the warm-up game jump rope. We might see some additional sports and activities added in a future update, though.</p><p>Having spent the past five days putting the game through its paces, Nintendo Switch Sports Resort is an absolute blast for both returning players and newcomers alike. But is it one of the <a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">best Nintendo Switch 2 games</a> and a must play? Find out in my full review.</p><h2 id="nintendo-switch-sports-resort-the-basics">Nintendo Switch Sports Resort: The Basics</h2><ul><li><strong>What is it? </strong>The latest motion-party game in Nintendo’s popular sports franchise, packing 12 different events across the iconic Wuhu Island.</li><li><strong>Who is it for? </strong>Series veterans looking to revisit classic sports with upgraded visuals, as well as newcomers wanting an active, motion-controlled showcase for their Switch 2.</li><li><strong>What’s the price? </strong>Nintendo Switch Sports Resort costs <a href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4NWYGCW?th=1" target="_blank" rel="nofollow">$49 for the digital version</a> or <a href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4P1YH4P" target="_blank" rel="nofollow">$59 for the physical edition</a>.</li><li><strong>What other games has the developer made? </strong>Nintendo Switch Sports Resort is from the same internal Nintendo team behind 2022’s Nintendo Switch Sports and other active Switch titles like 1-2-Switch and Ring Fit Adventure.</li><li><strong>What games is it similar to? </strong>It combines the modern structure of 2022's Nintendo Switch Sports with the tropical setting, island exploration, and event roster of Wii Sports Resort.</li></ul><h3 class="article-body__section" id="section-seeing-wuhu-island-with-new-eyes"><span>Seeing Wuhu Island with new eyes</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AZJ6HKcpXcRkzSaxn9WCrm" name="2026101901400400_s" alt="A screenshot showing the main menu of Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/AZJ6HKcpXcRkzSaxn9WCrm-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Although Switch Sports on the original Nintendo Switch was a massive visual leap, taking in the revamped Wuhu Island on Switch 2 in crisp 4K at a steady 60 fps is even more impressive. </p><p>From the first time I booted up the game, it was clear that Nintendo put a lot of polish into the visuals—from the island’s vibrant scenery all the way down to its crisp menus.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Xsuu2WRUGz2Q3CSqDtDLK3" name="2026101517532700_s" alt="A screenshot showing a replay of a volleyball game in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/Xsuu2WRUGz2Q3CSqDtDLK3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Switch Sports Resort retains the fun, cartoony look of its predecessor, but details like clothing textures and water reflections really pop on the new hardware. Character models feature noticeably smoother edges, and the courses you compete on look cleaner than ever thanks to enhanced anti-aliasing.</p><p>While this is fundamentally a return to Wuhu Island, the care and attention to detail across the board almost make it feel like you’re experiencing this classic tropical resort for the first time, even as a veteran player.</p><h3 class="article-body__section" id="section-exploring-by-air-land-and-sea"><span>Exploring by air, land and sea</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sDFkEbHVuq4S5jBjFyiJ47" name="2026101901412000_s" alt="A screenshot showing a person flying around a prop plane over Wuhu Island in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/sDFkEbHVuq4S5jBjFyiJ47-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Taking to the skies in Prop Plane to shoot down balloons was first introduced in Wii Sports Resort, but thanks to key tweaks and more responsive controls, it feels even better than before. This time around, you also collect photographs of key landmarks around Wuhu Island while holding a single Joy-Con 2 flat in your hand like a paper airplane.</p><p>Both my 4-year-old son and I had a lot of fun trying to see and collect everything in Prop Plane. However, this isn’t the only way to traverse Wuhu Island. Aboard a jet ski in Power Cruising, you can do the same thing on the water while holding two Joy-Con 2 controllers extended in front of you like handlebars. Twisting one controller up like a throttle for a quick speed boost never got old, either.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3VTDPnkYv75m9zRjKz88g9" name="2026101721015600_s" alt="A screenshot showing a person skateboarding on the road in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/3VTDPnkYv75m9zRjKz88g9-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Finally, you can take to the streets (and even the grass) on your skateboard to explore Wuhu Island from the ground. This uses a Joy-Con 2 in mouse mode, and my son took to this control scheme almost instantly after playing <a href="https://www.tomsguide.com/gaming/nintendo/i-played-over-a-dozen-games-on-the-switch-2-and-i-have-a-surprise-favorite-so-far">Drag x Drive</a> on the Switch 2. Far from an accurate portrayal of skateboarding, this activity’s arcadey feel provided a great break from competing in the rest of the game’s traditional sports.</p><h3 class="article-body__section" id="section-sharper-slices-tighter-controls"><span>Sharper slices, tighter controls</span></h3><p>There have been plenty of games — from <a href="https://www.tomsguide.com/gaming/nintendo/donkey-kong-bananza-review">Donkey Kong Bananza</a> to the excellent port of <a href="https://www.tomsguide.com/gaming/nintendo/ive-spent-24-hours-with-the-nintendo-switch-2-for-review-heres-5-things-i-love-and-2-things-i-dont">Cyberpunk 2077</a> — that showcase the Switch 2’s added power and graphical capabilities. However, Switch Sports Resort is the first to really highlight what its Joy-Con 2 controllers can do.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="a2pcVC9Y6ASh5ia7UdWdrH" name="2026101901444100_s" alt="A screenshot showing a person hitting cans while playing table tennis in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/a2pcVC9Y6ASh5ia7UdWdrH-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Much like the jump from Wii Remotes to the original Joy-Cons, the Joy-Con 2’s enhanced motion tracking makes every sport and activity in this game feel significantly more responsive. Outside of my time on the golf course, this upgrade stood out most while playing Table Tennis. Quick wrist flicks to return a fast serve felt almost instantaneous, and thanks to the tighter tracking, shots I didn't think I'd reach somehow landed right on my opponent’s side of the table.</p><h3 class="article-body__section" id="section-chasing-the-island-crown"><span>Chasing the Island Crown</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="u69HoYhf8QRi6n8yprmZyT" name="2026101901161900_s" alt="A screenshot showing a person playing Island Crown mode in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/u69HoYhf8QRi6n8yprmZyT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>One of the biggest criticisms of Switch Sports was how the game focused heavily on online multiplayer. Though you could play by yourself, there wasn’t much incentive to do so — you couldn't collect Spocco Points unless you were playing in the game’s restricted Trial Mode. Fortunately, Nintendo Switch Sports Resort fixes this with a dedicated single-player mode that offers a clear progression path.</p><p>In Island Crown mode, you take on increasingly difficult CPU opponents across nine different sports — from Archery to Volleyball — to boost your rank. Once you reach the top of a sport's ladder, you go head-to-head against formidable Island Champions, including returning Wii Sports Mii legend Matt.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qvdPtypt3N86yZvw7N9Upf" name="2026101901230600_s" alt="A screenshot showing two players approaching a hole in golf in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/qvdPtypt3N86yZvw7N9Upf-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>While you can occasionally jump multiple spots when playing particularly well, each sport features 20 distinct opponents to defeat. Given the sheer depth across all nine sports, I focused primarily on Golf. Climbing the bottom ranks by playing three-hole matches was breezy enough, but things got noticeably tougher — though never unfair — as I closed in on the Island Champion.</p><p>Even if you don’t have family or friends nearby or an active Nintendo Switch Online membership, Island Crown mode delivers a beefy single-player campaign to keep you coming back for more. It’s also a good way to practice before your next game night.</p><h3 class="article-body__section" id="section-local-parties-global-lobbies"><span>Local parties, global lobbies</span></h3><p>With just a single Switch 2 console, you can play Switch Sports Resort locally with up to four players. When playing head-to-head sports like Tennis, Table Tennis, and Volleyball, a single Joy-Con 2 per player is all you need. If you don’t want to pick up an extra pair of Joy-Con 2 controllers, you can also use Joy-Cons from your original Switch to play every sport except Skateboarding — which makes local couch co-op a whole lot more accessible.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n7B6vxvENdZPvrX8VxtQ4m" name="2026101517480600_s" alt="A screenshot showing a player winning a boxing match in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/n7B6vxvENdZPvrX8VxtQ4m-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Even though this was his first time using motion controls, my son took to Switch Sports Resort quickly. After trying out a few activities on his own, we each grabbed a Joy-Con 2 and played through several matches together. While we had a blast with Table Tennis, his favorite was Boxing. There’s a fair bit of strategy with blocking and weaving, but he happily delivered punch after punch until both he and his avatar were out of breath.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8C2rJVgg66tViPoUYkGkL3" name="2026101513290700_s" alt="A screenshot showing online multiplayer golf in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/8C2rJVgg66tViPoUYkGkL3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Given that I played Switch Sports Resort ahead of its official launch, my online multiplayer sessions were spent alongside fellow journalists and Nintendo representatives. We had a great time bowling, golfing, aiming for targets in Archery, and stepping into the boxing ring. In Golf, for instance, I joined an eight-player match and managed to come out on top after a few tight holes. Then in Knockout Bowling, a full 16-player roster was whittled down round by round until I once again emerged victorious.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gNiPLHf9eqbTLQQmBogX28" name="2026101513500300_s" alt="A screenshot showing how you can spectate and watch other players in online multiplayer in Nintendo Switch Sports Resort" src="https://cdn.mos.cms.futurecdn.net/gNiPLHf9eqbTLQQmBogX28-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Whether I was on the golf course — playing classic holes from Wii Sports mixed with courses from Switch Sports — or on the lanes, I really enjoyed watching other players take their turns while throwing up emoji-style reactions between shots. Online play felt remarkably smooth without any noticeable lag, offering a fun, lively change of pace from local co-op and Island Crown mode.</p><h3 class="article-body__section" id="section-nintendo-switch-sports-resort-review-verdict"><span>Nintendo Switch Sports Resort review: Verdict</span></h3><p>Nintendo Switch Sports Resort is a triumphant return to form for Nintendo’s active, motion-based gameplay, complete with crisp, upgraded 4K visuals. Exploring the redesigned Wuhu Island by air, land, and sea helps break up the action, while the new Island Crown mode gives you a genuine reason to keep playing when friends go home or you're offline. While I certainly would’ve liked to see a few more sports added to the initial lineup, Thumb Wrestling is a blast and the way Skateboarding utilizes the new Joy-Con 2 is genuinely clever.</p><p>Although you can play several of these activities in Switch Sports, Wuhu Island’s tropical resort setting ties everything together beautifully. Whether you’re a seasoned Wii Sports veteran or looking to introduce your own kids to the joy of motion gaming, Nintendo Switch Sports Resort is a delightfully polished experience — one that will likely only get better as future updates arrive.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just tested the Asus ROG Xbox Ally X20 — 3 reasons I’d buy it and 2 reasons I’d skip ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Asus ROG Xbox Ally X20</a> is an interesting gaming handheld to discuss. That’s because it’s mostly a cosmetic upgrade of the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">Xbox Ally X</a>, keeping the same internal components. This, along with its steep $1,299 sticker price, might be reason enough to skip it. However, those design upgrades still make it a compelling portable console for some.</p><p>If you’re curious about the ROG Xbox Ally X20 but aren’t sure whether to buy it, I’ve outlined the key reasons to consider buying this gaming handheld, along with the top reasons to skip it.</p><div class="product"><a data-dimension112="b76cc868-c993-11f1-b1d0-0f61f7d23588" data-action="Deal Block" data-label="ROG Xbox Ally X20" data-dimension48="ROG Xbox Ally X20" data-dimension25="$1299" href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="uiMZzrWPoxXWkaZhKsMe4Z" name="Asus ROG Xbox Ally X20 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/uiMZzrWPoxXWkaZhKsMe4Z-1920-80.jpg" mos="" align="middle" fullscreen="" width="900" height="900" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The ROG Xbox Ally X20 is undeniably better hardware than its predecessor, with a stellar OLED screen and superior ergonomics. But an eye-watering $1,299 price tag turns what should be a mainstream handheld into a luxury gamble.<a class="view-deal button" href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W" target="_blank" rel="nofollow" data-dimension112="b76cc868-c993-11f1-b1d0-0f61f7d23588" data-action="Deal Block" data-label="ROG Xbox Ally X20" data-dimension48="ROG Xbox Ally X20" data-dimension25="$1299">View Deal</a></p></div><h3 class="article-body__section" id="section-asus-rog-xbox-ally-x20-reasons-to-buy"><span>Asus ROG Xbox Ally X20: Reasons to buy</span></h3><h2 id="that-sweet-oled">That sweet OLED</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jUcrooeSGEfteM8bJYdsHi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/jUcrooeSGEfteM8bJYdsHi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Let’s start with the star of the show—that gorgeous OLED panel. This is arguably the main thing folks have asked for in each new iteration of the ROG Ally, so it’s great that Asus finally answered. As with the <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck OLED</a>, this will no doubt be the deciding factor for folks.</p><p>I played <a href="https://www.tomsguide.com/gaming/forza-horizon-6-review">Forza Horizon 6</a> on the X20 and was floored by the OLED panel’s brightness and bold colors. Whether it was the vast countryside, packed cities, or the cars inhabiting them, everything looked incredible on the 7.4-inch 1080p display. The 120Hz refresh rate also ensured that even the fastest races moved buttery smooth.</p><p>Words can’t fully convey how good games look on the X20’s stellar OLED panel, but it’s the best I’ve seen on a gaming handheld. As I said, for some, the OLED alone will be enough of a selling point. It’s really that impressive.</p><h2 id="sleek-ergonomics">Sleek ergonomics</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A9gyXc8RTF7AWLssxNyPPi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/A9gyXc8RTF7AWLssxNyPPi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The original ROG Xbox Ally is the most comfortable handheld to actually hold thanks to its Xbox controller-inspired grips and smart weight distribution. Asus could have left this aspect alone, and I wouldn’t have complained. Instead, the company took what was already great and made it even better.</p><p>The X20 features rubberized grips that make it easier to hold during long gaming sessions. Rubber grips aren’t new to gaming controllers, but few gaming handhelds feature them, so their inclusion here is especially appreciated.</p><p>Regarding the hardware redesign, the TMR joysticks move smoothly, while the shoulder buttons feel more tactile and the rounded face buttons feel better under your thumbs. I’m also a fan of the D-Pad, which you can rotate to act as a 4-way D-Pad for side-scrolling games or an 8-way D-Pad for fighting games. These are small design tweaks that make a big difference.</p><h2 id="the-best-windows-handheld-experience">The best Windows handheld experience</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pRVgJudSygx5pTqXoX9DYi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/pRVgJudSygx5pTqXoX9DYi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like the ROG Xbox Ally systems, the X20 features the Xbox UI. That shouldn’t surprise you, since the Xbox UI was designed for handhelds, but it's worth mentioning in case you were worried you’d get another clunky Windows 11 experience.</p><p>Like SteamOS, the Xbox UI is a slick, easy-to-navigate interface. If you want to dive deeper into the settings, you can do so at any time. That last point matters, especially if you’re a PC gamer used to tweaking settings to get games to look and play just right.</p><p>One reason the Xbox UI runs so smoothly is that, when it’s open, the Windows desktop stops running—making the handheld purely optimized for gaming instead of running unnecessary background processes that impact performance. This makes a meaningful difference in both performance and battery life.</p><h3 class="article-body__section" id="section-asus-rog-xbox-ally-x20-reasons-to-skip"><span>Asus ROG Xbox Ally X20: Reasons to skip</span></h3><h2 id="a-steep-price">A steep price</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6CECMV3mFEjJ7WvQhYnBKi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/6CECMV3mFEjJ7WvQhYnBKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Let’s not dance around it. The ROG Xbox Ally X20 is a seriously expensive handheld. While the Xbox Ally X’s $999 price tag wasn’t exactly cheap, it seems like a bargain compared to the X20’s $1,299 asking price.</p><p>Before you think I’m being unfair, I’ll admit that this handheld’s price isn’t an anomaly. For instance, the phenomenal <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a> will set you back a crushing $1,799 thanks to its larger 8-inch display and 32GB of RAM, compared with the X20’s 24GB.</p><p>Still, it’s clear that the halcyon days of just 3 years ago, when Windows handhelds started as low as $599, are long over.</p><h2 id="under-performer">Under performer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d8U7fbiFe6EiU7nGxUYugX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/d8U7fbiFe6EiU7nGxUYugX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Xbox Ally X20 has the same AMD Ryzen AI Z2 Extreme chip and 24GB of RAM as the Xbox Ally X. As a result, you get similar performance—for better or worse.</p><div ><table><thead><tr><th class="firstcol " ><p>Game</p></th><th  ><p>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 17W)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Cinematic)</strong></p></td><td  ><p>11 FPS</p></td><td  ><p>14 FPS</p></td><td  ><p>10 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (720p High)</strong></p></td><td  ><p>11.87 FPS</p></td><td  ><p>27.01 FPS</p></td><td  ><p>11.27 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (1080p Medium)</strong></p></td><td  ><p>23 FPS</p></td><td  ><p>63.8 FPS</p></td><td  ><p>48.8 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Shadow of the Tomb Raider (1080p High)</strong></p></td><td  ><p>31 FPS</p></td><td  ><p>66 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>As the table above shows, Asus’ handheld can’t match the performance of the Intel Arc G3-powered MSI Claw 8 EX AI+, even at 35W TDP. You’ll need to tweak settings seriously to get the best per-game performance on the X20.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OKyaLe"></div>                            </div>                            <script src="https://kwizly.com/embed/OKyaLe.js" async=""></script><h3 class="article-body__section" id="section-bottom-line"><span>Bottom line</span></h3><p>Despite the upgrades, the X20 is still an Xbox Ally X and is already getting long in the tooth. The ROG Xbox Ally X was the best Windows handheld when it launched. Now, it faces stiff competition from MSI and other handhelds packing an Intel Arc G3 chip. The fact that it costs so much for the same performance and battery life only makes it harder to recommend.</p><p>But despite its flaws, the X20 offers exceptional image quality for a handheld, along with fantastic ergonomics. If you want a great overall Windows handheld and still have extra cash on hand, you won't walk away disappointed.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/gears-of-war-e-day-review"><strong>Gears of War: E-Day is the return to form I’ve been waiting for</strong></a></li><li><a href="https://www.tomsguide.com/computing/apple-desktops/should-you-buy-a-mac-mini-or-a-mac-studio-ill-help-you-decide-which-apple-desktop-to-get"><strong>Should you buy a Mac mini or a Mac Studio?</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/hp-omnibook-ultra-16-review"><strong>I just tested the HP OmniBook Ultra 16</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/handheld-gaming/i-just-tested-the-asus-rog-xbox-ally-x20-3-reasons-id-buy-it-and-2-reasons-id-skip</link>
                                                                            <description>
                            <![CDATA[ The Asus ROG Ally X20 brings a host of design updates, including an OLED panel and improved ergonomics but is it worth $1,299? We detail the pros and cons. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fZeEyatYb7rSgo4eauHMnX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yN3SwkbaJBNnbLHcnzidyc-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 19 Oct 2026 05:30:00 +0000</pubDate>                                                                                                                                <updated>Mon, 19 Oct 2026 08:12:42 +0000</updated>
                                                                                                                                            <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/yN3SwkbaJBNnbLHcnzidyc-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Asus ROG Xbox Ally X20]]></media:description>                                                            <media:text><![CDATA[Asus ROG Xbox Ally X20]]></media:text>
                                <media:title type="plain"><![CDATA[Asus ROG Xbox Ally X20]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yN3SwkbaJBNnbLHcnzidyc-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Asus ROG Xbox Ally X20</a> is an interesting gaming handheld to discuss. That’s because it’s mostly a cosmetic upgrade of the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">Xbox Ally X</a>, keeping the same internal components. This, along with its steep $1,299 sticker price, might be reason enough to skip it. However, those design upgrades still make it a compelling portable console for some.</p><p>If you’re curious about the ROG Xbox Ally X20 but aren’t sure whether to buy it, I’ve outlined the key reasons to consider buying this gaming handheld, along with the top reasons to skip it.</p><div class="product"><a data-dimension112="b76cc868-c993-11f1-b1d0-0f61f7d23588" data-action="Deal Block" data-label="ROG Xbox Ally X20" data-dimension48="ROG Xbox Ally X20" data-dimension25="$1299" href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="uiMZzrWPoxXWkaZhKsMe4Z" name="Asus ROG Xbox Ally X20 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/uiMZzrWPoxXWkaZhKsMe4Z-1920-80.jpg" mos="" align="middle" fullscreen="" width="900" height="900" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The ROG Xbox Ally X20 is undeniably better hardware than its predecessor, with a stellar OLED screen and superior ergonomics. But an eye-watering $1,299 price tag turns what should be a mainstream handheld into a luxury gamble.<a class="view-deal button" href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W" target="_blank" rel="nofollow" data-dimension112="b76cc868-c993-11f1-b1d0-0f61f7d23588" data-action="Deal Block" data-label="ROG Xbox Ally X20" data-dimension48="ROG Xbox Ally X20" data-dimension25="$1299">View Deal</a></p></div><h3 class="article-body__section" id="section-asus-rog-xbox-ally-x20-reasons-to-buy"><span>Asus ROG Xbox Ally X20: Reasons to buy</span></h3><h2 id="that-sweet-oled">That sweet OLED</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jUcrooeSGEfteM8bJYdsHi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/jUcrooeSGEfteM8bJYdsHi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Let’s start with the star of the show—that gorgeous OLED panel. This is arguably the main thing folks have asked for in each new iteration of the ROG Ally, so it’s great that Asus finally answered. As with the <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck OLED</a>, this will no doubt be the deciding factor for folks.</p><p>I played <a href="https://www.tomsguide.com/gaming/forza-horizon-6-review">Forza Horizon 6</a> on the X20 and was floored by the OLED panel’s brightness and bold colors. Whether it was the vast countryside, packed cities, or the cars inhabiting them, everything looked incredible on the 7.4-inch 1080p display. The 120Hz refresh rate also ensured that even the fastest races moved buttery smooth.</p><p>Words can’t fully convey how good games look on the X20’s stellar OLED panel, but it’s the best I’ve seen on a gaming handheld. As I said, for some, the OLED alone will be enough of a selling point. It’s really that impressive.</p><h2 id="sleek-ergonomics">Sleek ergonomics</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A9gyXc8RTF7AWLssxNyPPi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/A9gyXc8RTF7AWLssxNyPPi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The original ROG Xbox Ally is the most comfortable handheld to actually hold thanks to its Xbox controller-inspired grips and smart weight distribution. Asus could have left this aspect alone, and I wouldn’t have complained. Instead, the company took what was already great and made it even better.</p><p>The X20 features rubberized grips that make it easier to hold during long gaming sessions. Rubber grips aren’t new to gaming controllers, but few gaming handhelds feature them, so their inclusion here is especially appreciated.</p><p>Regarding the hardware redesign, the TMR joysticks move smoothly, while the shoulder buttons feel more tactile and the rounded face buttons feel better under your thumbs. I’m also a fan of the D-Pad, which you can rotate to act as a 4-way D-Pad for side-scrolling games or an 8-way D-Pad for fighting games. These are small design tweaks that make a big difference.</p><h2 id="the-best-windows-handheld-experience">The best Windows handheld experience</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pRVgJudSygx5pTqXoX9DYi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/pRVgJudSygx5pTqXoX9DYi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like the ROG Xbox Ally systems, the X20 features the Xbox UI. That shouldn’t surprise you, since the Xbox UI was designed for handhelds, but it's worth mentioning in case you were worried you’d get another clunky Windows 11 experience.</p><p>Like SteamOS, the Xbox UI is a slick, easy-to-navigate interface. If you want to dive deeper into the settings, you can do so at any time. That last point matters, especially if you’re a PC gamer used to tweaking settings to get games to look and play just right.</p><p>One reason the Xbox UI runs so smoothly is that, when it’s open, the Windows desktop stops running—making the handheld purely optimized for gaming instead of running unnecessary background processes that impact performance. This makes a meaningful difference in both performance and battery life.</p><h3 class="article-body__section" id="section-asus-rog-xbox-ally-x20-reasons-to-skip"><span>Asus ROG Xbox Ally X20: Reasons to skip</span></h3><h2 id="a-steep-price">A steep price</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6CECMV3mFEjJ7WvQhYnBKi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/6CECMV3mFEjJ7WvQhYnBKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Let’s not dance around it. The ROG Xbox Ally X20 is a seriously expensive handheld. While the Xbox Ally X’s $999 price tag wasn’t exactly cheap, it seems like a bargain compared to the X20’s $1,299 asking price.</p><p>Before you think I’m being unfair, I’ll admit that this handheld’s price isn’t an anomaly. For instance, the phenomenal <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a> will set you back a crushing $1,799 thanks to its larger 8-inch display and 32GB of RAM, compared with the X20’s 24GB.</p><p>Still, it’s clear that the halcyon days of just 3 years ago, when Windows handhelds started as low as $599, are long over.</p><h2 id="under-performer">Under performer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d8U7fbiFe6EiU7nGxUYugX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/d8U7fbiFe6EiU7nGxUYugX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Xbox Ally X20 has the same AMD Ryzen AI Z2 Extreme chip and 24GB of RAM as the Xbox Ally X. As a result, you get similar performance—for better or worse.</p><div ><table><thead><tr><th class="firstcol " ><p>Game</p></th><th  ><p>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 17W)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Cinematic)</strong></p></td><td  ><p>11 FPS</p></td><td  ><p>14 FPS</p></td><td  ><p>10 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (720p High)</strong></p></td><td  ><p>11.87 FPS</p></td><td  ><p>27.01 FPS</p></td><td  ><p>11.27 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (1080p Medium)</strong></p></td><td  ><p>23 FPS</p></td><td  ><p>63.8 FPS</p></td><td  ><p>48.8 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Shadow of the Tomb Raider (1080p High)</strong></p></td><td  ><p>31 FPS</p></td><td  ><p>66 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>As the table above shows, Asus’ handheld can’t match the performance of the Intel Arc G3-powered MSI Claw 8 EX AI+, even at 35W TDP. You’ll need to tweak settings seriously to get the best per-game performance on the X20.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OKyaLe"></div>                            </div>                            <script src="https://kwizly.com/embed/OKyaLe.js" async=""></script><h3 class="article-body__section" id="section-bottom-line"><span>Bottom line</span></h3><p>Despite the upgrades, the X20 is still an Xbox Ally X and is already getting long in the tooth. The ROG Xbox Ally X was the best Windows handheld when it launched. Now, it faces stiff competition from MSI and other handhelds packing an Intel Arc G3 chip. The fact that it costs so much for the same performance and battery life only makes it harder to recommend.</p><p>But despite its flaws, the X20 offers exceptional image quality for a handheld, along with fantastic ergonomics. If you want a great overall Windows handheld and still have extra cash on hand, you won't walk away disappointed.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/gears-of-war-e-day-review"><strong>Gears of War: E-Day is the return to form I’ve been waiting for</strong></a></li><li><a href="https://www.tomsguide.com/computing/apple-desktops/should-you-buy-a-mac-mini-or-a-mac-studio-ill-help-you-decide-which-apple-desktop-to-get"><strong>Should you buy a Mac mini or a Mac Studio?</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/hp-omnibook-ultra-16-review"><strong>I just tested the HP OmniBook Ultra 16</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I finished the new Ghost of Yotei DLC in one sitting — it’s short, sweet, and makes the PS5 exclusive feel complete ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/gaming/ghost-of-yotei-review">Ghost of Yotei</a> is one of my favorite games of recent years. Even though I've achieved the Platinum trophy in the base game, I keep coming back to it as Ezo's beauty is just too addictive. So, when the Echoes of Sekigahara story expansion was announced, I couldn't wait to get my hands on it. And now that I have finished it, I love the game even more — and it's the puzzle piece Ghost of Yotei was missing all along.</p><p>This isn't the first time we've heard of Sekigahara. Atsu, the katana-wielding protagonist, mentions it a few times in the base game. She fought in and earned her laurels at the Battle of Sekigahara, but that's all we're told.</p><p>The Echoes of Sekigahara DLC takes you to Ashoro Foothills, located in the eastern part of the fogged-out map, and introduces you to Nagato from Atsu's past. What unfolds is a touching (albeit short) tale that sheds light on Atsu's humanity and emotions, and left me wanting even more Yotei. </p><div class="product"><a data-dimension112="c14b6940-c94b-11f1-b26a-8db19fbe25c6" data-action="Deal Block" data-label="Complete Edition" data-dimension48="Complete Edition" data-dimension25="$69" href="https://www.playstation.com/en-us/games/ghost-of-yotei/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1197px;"><p class="vanilla-image-block" style="padding-top:125.31%;"><img id="Q6b8x284s8RCHa3sQqaRaW" name="Ghost of Yotei Complete Edition" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Q6b8x284s8RCHa3sQqaRaW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1197" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Ghost of Yotei Complete Edition includes the base game, Echoes of Sekigahara story expansion, Most Wanted (a combat survival mode), and new in-game masks and outfits.<a class="view-deal button" href="https://www.playstation.com/en-us/games/ghost-of-yotei/" target="_blank" rel="nofollow" data-dimension112="c14b6940-c94b-11f1-b26a-8db19fbe25c6" data-action="Deal Block" data-label="Complete Edition" data-dimension48="Complete Edition" data-dimension25="$69">View Deal</a></p></div><h2 id="ghost-from-the-past">Ghost from the past</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1567px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="LRUYRewCao4tV2rMvNtqJN" name="GOY_DLC_-9" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/LRUYRewCao4tV2rMvNtqJN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1567" height="881" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>Echoes of Sekigahara starts in Ezo. You pick up a bounty from a bounty board on a man called Nagato the Handsome. Turns out, Atsu knows him from her time during the Battle of Sekigahara, so she travels to Ashoro Foothills in the east. This isn't a very big area, and you can explore every aspect and complete all side activities in under 10 hours.</p><p>Though Atsu is at first reluctant due to their past, she teams up with Nagato to cut off resources to Lord Saito's army. You take on a new kind of enemy faction: the Vipers, the Snakes' followers, now without a leader (Atsu kills the Snake in the base game's intro). </p><p>There's a lot of infighting as mini-bosses, known as Snake Contenders, are vying to replace their slain leader. You seek them out and, of course, vow to put an end to them. You can wield heavy weapons (which break after about four or five hits), and I'll leave it for you to explore just how fun that is.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1635px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="AskfdYWywEK7DCyjNbURwM" name="GOY_DLC_-10" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/AskfdYWywEK7DCyjNbURwM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1635" height="920" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>There are plenty of side activities to partake in, too, such as finding fox dens and hot springs, as well as a lovely Mythic Tale starring your wolf companion. Ashoro Foothills is visually stunning, and what I love <em>a lot </em>is that you see it flourish as the expansion pans out. At first a deprived area having been plundered by the Vipers, you rebuild Ashoro Springs, the main town, by helping the locals secure food supplies.</p><p>The story expansion explores Atsu's more intimate side. The Atsu we know is fuelled by vengeance, and she has no space for personal relationships — that much is clear in the way she treats Jubei, her brother, still being alive and having a daughter.</p><p>Echoes of Sekigahara humanizes her as we explore her and Nagato's relationship through playable flashbacks. The story feels a little predictable, much like the base game, but it's told in a compelling manner, and it still hits you like a ton of bricks, thanks to the somber music and original Japanese lyrics soundtracking their encounters.</p><h2 id="ezo-39-s-most-wanted">Ezo's Most Wanted</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1546px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="xvyRfFneyjmaYcr7jF7brM" name="GOY_DLC_-7" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/xvyRfFneyjmaYcr7jF7brM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1546" height="870" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>While the Echoes of Sekigahara story expansion mode is fantastic, it's the DLC's Most Wanted mode that had me hooked for a few days after I wrapped everything up. This is a new roguelike combat-survival mode where you play as one of four characters: Atsu, Oyuki, Nagato, and everyone's favorite samurai, Jin Sakai.</p><p>You then pick up bounties on the Yotei Six and fight your way through waves of enemies. Ever wanted to fight the Kitsune as Oyuki, the one who held the mantle previously? Now you can.</p><p>Each character has their own unique play style. For instance, Atsu starts each bounty hunt with dual katanas, while Oyuki wields her trusty kusarigama. As the hunt continues and you defeat waves of enemies, you unlock new passive or active perks that aid in combat by triggering certain effects, like lightning strikes after every successful parry counter.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kXvCoRf82jyfAVT2gNSrhM" name="GOY_DLC_" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/kXvCoRf82jyfAVT2gNSrhM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>Most Wanted is seriously addicting. You face off against different types of enemies and mini bosses — agile archers, heavy brutes, you name it — and do whatever you can to best them. Fighting the members of Yotei Six, especially as Jin Sakai, was incredibly fun. While I love Ghost of Tsushima's story, I much prefer Ghost of Yotei's fluid combat system, and Jin's stances fit right into Yotei's world and Most Wanted's combat gauntlets.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JUGNobx4fTpEiwbJftykXM" name="GOY_DLC_-3" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/JUGNobx4fTpEiwbJftykXM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>But Most Wanted isn't for the weak. Waves of enemies can quickly overwhelm you and you can't always brute-force your way out of it. Instead, I had to think tactically, and choose my perks wisely.</p><p>My favorite, which I mentioned earlier, was triggering lighting strikes, and having my weapon set on fire after, say, hitting an enemy four times with my yari. It's ridiculously fun, and even if I was beaten by a mini boss before getting to the main bounty, I was compelled to try again — and this is coming from someone who sucks at punishing Soulslike games!</p><h2 id="worth-coming-back-to">Worth coming back to</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2184px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="QMj4BYEQ4psmtrk7tr8aSN" name="GOY_DLC_-6" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/QMj4BYEQ4psmtrk7tr8aSN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2184" height="1229" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>Echoes of Sekigahara is the story expansion Ghost of Yotei desperately needed. I loved the base game, but I know it didn't tell the strongest story, and it couldn't scratch the itch like Ghost of Tsushima did. The DLC slots in like a puzzle's missing piece. It massively aids Atsu's character development, and I'd recommend playing it before you head into the final quests in Oshima Coast.</p><p>Personally, I wasn't expecting to like Nagato as much as I did. He's sly and you don't know if you can trust him, but after finishing Echoes of Sekigahara, I kept wishing he was in the base game and that we got to know him more.</p><p>Regardless, the story expansion as well as the oh-so-fun Most Wanted mode have reaffirmed one thing for me: Ghost of Yotei is one of the best games of this generation, and one that keeps you coming back for more.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XrgjMe"></div>                            </div>                            <script src="https://kwizly.com/embed/XrgjMe.js" async=""></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/hot-wheels-infinite-rush-after-15-hours">I’ve played Hot Wheels Infinite Rush for 15 hours, and it scratches an itch that Forza Horizon can't</a></li><li><a href="https://www.tomsguide.com/gaming/replaying-detroit-become-human-in-2026">Detroit: Become Human was way ahead of its time — I replayed it in 2026 to unlock every ending and it broke my AI skeptic mind</a></li><li><a href="https://www.tomsguide.com/gaming/ghost-of-yotei-review">Ghost of Yotei is a cinematic and visually stunning PS5 sequel, but I wish it didn’t play things so safe</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/playstation/ghost-of-yotei-dlc-echoes-of-sekigahara-missing-puzzle-piece</link>
                                                                            <description>
                            <![CDATA[ Ghost of Yotei's Echoes of Sekigahara story expansion tells a compelling story and humanizes protagonist Atsu. It's the puzzle piece that was missing from the base game. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">89wa5gZwX4jB7oBmXaPCRR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/g8JtDXGYcrGeVGxx6r2VVN-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 18 Oct 2026 10:30:00 +0000</pubDate>                                                                                                                                <updated>Sun, 18 Oct 2026 21:59:20 +0000</updated>
                                                                                                                                            <category><![CDATA[Playstation]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7SPsEgwiRa9MdL3BPuVJUW-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&amp;#39;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&amp;#39;s also a licensed drone pilot and cameras expert so you&amp;#39;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/g8JtDXGYcrGeVGxx6r2VVN-1920-80.jpg">
                                                            <media:credit><![CDATA[Sucker Punch / Sony]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A screenshot from Ghost of Yotei Complete Edition]]></media:description>                                                            <media:text><![CDATA[A screenshot from Ghost of Yotei Complete Edition]]></media:text>
                                <media:title type="plain"><![CDATA[A screenshot from Ghost of Yotei Complete Edition]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/g8JtDXGYcrGeVGxx6r2VVN-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/gaming/ghost-of-yotei-review">Ghost of Yotei</a> is one of my favorite games of recent years. Even though I've achieved the Platinum trophy in the base game, I keep coming back to it as Ezo's beauty is just too addictive. So, when the Echoes of Sekigahara story expansion was announced, I couldn't wait to get my hands on it. And now that I have finished it, I love the game even more — and it's the puzzle piece Ghost of Yotei was missing all along.</p><p>This isn't the first time we've heard of Sekigahara. Atsu, the katana-wielding protagonist, mentions it a few times in the base game. She fought in and earned her laurels at the Battle of Sekigahara, but that's all we're told.</p><p>The Echoes of Sekigahara DLC takes you to Ashoro Foothills, located in the eastern part of the fogged-out map, and introduces you to Nagato from Atsu's past. What unfolds is a touching (albeit short) tale that sheds light on Atsu's humanity and emotions, and left me wanting even more Yotei. </p><div class="product"><a data-dimension112="c14b6940-c94b-11f1-b26a-8db19fbe25c6" data-action="Deal Block" data-label="Complete Edition" data-dimension48="Complete Edition" data-dimension25="$69" href="https://www.playstation.com/en-us/games/ghost-of-yotei/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1197px;"><p class="vanilla-image-block" style="padding-top:125.31%;"><img id="Q6b8x284s8RCHa3sQqaRaW" name="Ghost of Yotei Complete Edition" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Q6b8x284s8RCHa3sQqaRaW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1197" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Ghost of Yotei Complete Edition includes the base game, Echoes of Sekigahara story expansion, Most Wanted (a combat survival mode), and new in-game masks and outfits.<a class="view-deal button" href="https://www.playstation.com/en-us/games/ghost-of-yotei/" target="_blank" rel="nofollow" data-dimension112="c14b6940-c94b-11f1-b26a-8db19fbe25c6" data-action="Deal Block" data-label="Complete Edition" data-dimension48="Complete Edition" data-dimension25="$69">View Deal</a></p></div><h2 id="ghost-from-the-past">Ghost from the past</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1567px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="LRUYRewCao4tV2rMvNtqJN" name="GOY_DLC_-9" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/LRUYRewCao4tV2rMvNtqJN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1567" height="881" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>Echoes of Sekigahara starts in Ezo. You pick up a bounty from a bounty board on a man called Nagato the Handsome. Turns out, Atsu knows him from her time during the Battle of Sekigahara, so she travels to Ashoro Foothills in the east. This isn't a very big area, and you can explore every aspect and complete all side activities in under 10 hours.</p><p>Though Atsu is at first reluctant due to their past, she teams up with Nagato to cut off resources to Lord Saito's army. You take on a new kind of enemy faction: the Vipers, the Snakes' followers, now without a leader (Atsu kills the Snake in the base game's intro). </p><p>There's a lot of infighting as mini-bosses, known as Snake Contenders, are vying to replace their slain leader. You seek them out and, of course, vow to put an end to them. You can wield heavy weapons (which break after about four or five hits), and I'll leave it for you to explore just how fun that is.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1635px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="AskfdYWywEK7DCyjNbURwM" name="GOY_DLC_-10" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/AskfdYWywEK7DCyjNbURwM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1635" height="920" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>There are plenty of side activities to partake in, too, such as finding fox dens and hot springs, as well as a lovely Mythic Tale starring your wolf companion. Ashoro Foothills is visually stunning, and what I love <em>a lot </em>is that you see it flourish as the expansion pans out. At first a deprived area having been plundered by the Vipers, you rebuild Ashoro Springs, the main town, by helping the locals secure food supplies.</p><p>The story expansion explores Atsu's more intimate side. The Atsu we know is fuelled by vengeance, and she has no space for personal relationships — that much is clear in the way she treats Jubei, her brother, still being alive and having a daughter.</p><p>Echoes of Sekigahara humanizes her as we explore her and Nagato's relationship through playable flashbacks. The story feels a little predictable, much like the base game, but it's told in a compelling manner, and it still hits you like a ton of bricks, thanks to the somber music and original Japanese lyrics soundtracking their encounters.</p><h2 id="ezo-39-s-most-wanted">Ezo's Most Wanted</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1546px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="xvyRfFneyjmaYcr7jF7brM" name="GOY_DLC_-7" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/xvyRfFneyjmaYcr7jF7brM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1546" height="870" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>While the Echoes of Sekigahara story expansion mode is fantastic, it's the DLC's Most Wanted mode that had me hooked for a few days after I wrapped everything up. This is a new roguelike combat-survival mode where you play as one of four characters: Atsu, Oyuki, Nagato, and everyone's favorite samurai, Jin Sakai.</p><p>You then pick up bounties on the Yotei Six and fight your way through waves of enemies. Ever wanted to fight the Kitsune as Oyuki, the one who held the mantle previously? Now you can.</p><p>Each character has their own unique play style. For instance, Atsu starts each bounty hunt with dual katanas, while Oyuki wields her trusty kusarigama. As the hunt continues and you defeat waves of enemies, you unlock new passive or active perks that aid in combat by triggering certain effects, like lightning strikes after every successful parry counter.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kXvCoRf82jyfAVT2gNSrhM" name="GOY_DLC_" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/kXvCoRf82jyfAVT2gNSrhM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>Most Wanted is seriously addicting. You face off against different types of enemies and mini bosses — agile archers, heavy brutes, you name it — and do whatever you can to best them. Fighting the members of Yotei Six, especially as Jin Sakai, was incredibly fun. While I love Ghost of Tsushima's story, I much prefer Ghost of Yotei's fluid combat system, and Jin's stances fit right into Yotei's world and Most Wanted's combat gauntlets.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JUGNobx4fTpEiwbJftykXM" name="GOY_DLC_-3" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/JUGNobx4fTpEiwbJftykXM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>But Most Wanted isn't for the weak. Waves of enemies can quickly overwhelm you and you can't always brute-force your way out of it. Instead, I had to think tactically, and choose my perks wisely.</p><p>My favorite, which I mentioned earlier, was triggering lighting strikes, and having my weapon set on fire after, say, hitting an enemy four times with my yari. It's ridiculously fun, and even if I was beaten by a mini boss before getting to the main bounty, I was compelled to try again — and this is coming from someone who sucks at punishing Soulslike games!</p><h2 id="worth-coming-back-to">Worth coming back to</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2184px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="QMj4BYEQ4psmtrk7tr8aSN" name="GOY_DLC_-6" alt="A screenshot from Ghost of Yotei Complete Edition" src="https://cdn.mos.cms.futurecdn.net/QMj4BYEQ4psmtrk7tr8aSN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2184" height="1229" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sucker Punch / Sony)</span></figcaption></figure><p>Echoes of Sekigahara is the story expansion Ghost of Yotei desperately needed. I loved the base game, but I know it didn't tell the strongest story, and it couldn't scratch the itch like Ghost of Tsushima did. The DLC slots in like a puzzle's missing piece. It massively aids Atsu's character development, and I'd recommend playing it before you head into the final quests in Oshima Coast.</p><p>Personally, I wasn't expecting to like Nagato as much as I did. He's sly and you don't know if you can trust him, but after finishing Echoes of Sekigahara, I kept wishing he was in the base game and that we got to know him more.</p><p>Regardless, the story expansion as well as the oh-so-fun Most Wanted mode have reaffirmed one thing for me: Ghost of Yotei is one of the best games of this generation, and one that keeps you coming back for more.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XrgjMe"></div>                            </div>                            <script src="https://kwizly.com/embed/XrgjMe.js" async=""></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/hot-wheels-infinite-rush-after-15-hours">I’ve played Hot Wheels Infinite Rush for 15 hours, and it scratches an itch that Forza Horizon can't</a></li><li><a href="https://www.tomsguide.com/gaming/replaying-detroit-become-human-in-2026">Detroit: Become Human was way ahead of its time — I replayed it in 2026 to unlock every ending and it broke my AI skeptic mind</a></li><li><a href="https://www.tomsguide.com/gaming/ghost-of-yotei-review">Ghost of Yotei is a cinematic and visually stunning PS5 sequel, but I wish it didn’t play things so safe</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Which premium handheld gaming PC should you buy? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Asus ROG Xbox Ally X20</a> brings a gorgeous OLED screen and improved ergonomics, but the <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a> delivers a massive leap in raw performance and battery life. Is MSI’s sheer power worth the extra $500?</p><p>Thanks to RAMageddon, the Windows gaming handheld market has officially entered its ultra-premium era. If you’re looking to upgrade from your Steam Deck to something with real horsepower, the newly launched <a href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W" target="_blank" rel="nofollow">Asus ROG Xbox Ally X20 ($1,299)</a> and the <a href="https://www.microcenter.com/product/711587/msi-claw-8-ex-ai-cg3em-024us-8-gaming-handheld-pc_Hatchfeed" target="_blank" rel="nofollow">MSI Claw 8 EX AI+ ($1,799)</a> are likely at the top of your list.</p><p>Both devices cost more than some actual gaming laptops, but they target two very different types of gamers. Asus is banking on that stunning 1080p OLED display and refined ergonomics, while MSI is flexing the raw power and extreme battery efficiency of its Intel Arc G3 Extreme architecture and 32GB of RAM.</p><p>But with a massive $500 price gap between them, which one actually deserves your money? I’ve stress tested both handhelds while traveling across the globe to find out.</p><h3 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-specs"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Specs</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Asus ROG Xbox Ally X20</p></th><th  ><p>MSI Claw 8 EX AI+</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>11.8 x 4.8 x 2 inches</p></td><td  ><p>11.6 x 5.1 x 1.9 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>1.67 pounds</p></td><td  ><p>1.7 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen AI Z2 Extreme</p></td><td  ><p>Intel Arc G3 Extreme</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>24GB LPDDR5x</p></td><td  ><p>32GB LPDDR5x</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>1TB PCIe Gen 4</p></td><td  ><p>1TB PCIe Gen 4</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>7.4-inch FHD, 16:9, 120Hz refresh rate OLED panel</p></td><td  ><p>8-inch FHD+ (1920 x 1200) 48-120Hz variable refresh rate IPS display</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1x USB 4 Type-C, 1x USB 3.2 Gen 2 Type-C, 1x 3.5mm audio jack, 1x microSD card reader slot</p></td><td  ><p>1x Micro SD, 2x Thunderbolt 4, 1x 3.5mm audio jack</p></td></tr><tr><td class="firstcol " ><p><strong>Wireless connectivity</strong></p></td><td  ><p>Wi-Fi 6E, Bluetooth 5.4</p></td><td  ><p>WiFi 7, Bluetooth 6</p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$1,299</p></td><td  ><p>$1,799</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-price-and-value"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Price and value</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5iLamnVzLAfZWmViN7KAHY" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/5iLamnVzLAfZWmViN7KAHY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Let’s address the elephant in the room: neither of these are cheap.</p><p>The ROG Xbox Ally X20 has received a $300 markup from the previous Ally X, which Asus attempts to justify with its translucent design, OLED screen, rubberized grips and re-engineered buttons. The internals remain the same.</p><p>MSI’s Claw 8 EX AI+ pushes the boundary of portable pricing even further — launching at $1,799. For that extra $500, you are getting a bigger 1920x1200-pixel display (only IPS though), that Intel Arc G3 Extreme chip and 32GB of RAM (over 24GB in the X20).</p><p><strong>Winner: Asus ROG Xbox Ally X20.</strong> While $1,299 is steep, it’s less than $1,799.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-design-and-display"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Design and display</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/jUcrooeSGEfteM8bJYdsHi-1920-80.jpg" alt="Asus ROG Xbox Ally X20" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vZM5DonM5EgqMYPMJkSZTX-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>Asus has taken a massive leap ahead in the visual department. The ROG Xbox Ally X20 is armed with a beautiful 1080p OLED display that’s bright and vivid, and makes games explode off the screen in a flash flood of color.</p><p>And this is the most comfortable handheld you can use with its smaller size making it easier to reach buttons, rubberized grips reducing hand fatigue, tactile improvements to the buttons and bumpers, and that rotatable D-Pad for either 4-way control for platformers or 8-way for fighting games. Asus has really thought of everything here.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/GuRUpLnhg7UaiDi2VDh3oX-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/wSw2ErAAFWE7VeGF2aaTeX-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/h3prTP6bTUmq7GKrn3bKCY-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/sgehvaSehvxqWg95oyWJYi-1920-80.jpg" alt="Asus ROG Xbox Ally X20" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>That’s not to say MSI hasn’t with the Claw 8 EX AI+ — the company was pretty clear in telling me its form factor is inspired by the Xbox controller too. It feels nice in the hand, and that 8-inch 1200p display is bigger. But it’s IPS, lacks HDR, and the bigger size may not be for everyone.</p><p><strong>Winner: Asus ROG Xbox Ally X20. </strong>The OLED screen and superior physical ergonomics give it the win here.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-gaming-performance"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Gaming performance</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hQwwx5Qvxx2H6N4iBPoZnX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/hQwwx5Qvxx2H6N4iBPoZnX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This is where the tables flip and MSI really starts to show its teeth. Quite frankly, the Claw 8 EX AI+ absolutely bullies the Ally X20 in demanding titles, both at the full wattage and when dialed back to half the power too.</p><div ><table><thead><tr><th class="firstcol " ><p>Game</p></th><th  ><p>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 17W)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Cinematic)</strong></p></td><td  ><p>11 FPS</p></td><td  ><p>14 FPS</p></td><td  ><p>10 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (720p High)</strong></p></td><td  ><p>11.87 FPS</p></td><td  ><p>27.01 FPS</p></td><td  ><p>11.27 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (1080p Medium)</strong></p></td><td  ><p>23 FPS</p></td><td  ><p>63.8 FPS</p></td><td  ><p>48.8 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Shadow of the Tomb Raider (1080p High)</strong></p></td><td  ><p>31 FPS</p></td><td  ><p>66 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>Take <em>Red Dead Redemption 2 </em>on Medium settings at 1080p. The X20 manages 22.8 FPS at 35W. The Claw at the same power hits 63.8 FPS. Even when you restrict it to just 17W, it still pumps out 48.8 FPS — more than double the performance at a fraction of the power.</p><p>The real differentiator is the raw grunt of that Intel Arc G3 Extreme chip surpassing the AMD Ryzen Z2 AI Extreme, the raised roof of RAM to 32GB (probably causing that jump in price), and the XeSS upscaling capabilities embarrassing AMD’s current version of FSR on handhelds.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d8U7fbiFe6EiU7nGxUYugX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/d8U7fbiFe6EiU7nGxUYugX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>For example, Cyberpunk 2077 can run at a respectable 30-40 FPS if you tweak the settings on the Ally X20 and use FSR, but in our lab benchmarking, it chugs at an unplayable 11.8 FPS natively. The Claw, meanwhile, hit 36.2 FPS at 35W, but with XeSS upscaling and multi-frame generation set to 4X, that goes to a staggering <strong>171.5 FPS.</strong></p><p><strong>Winner: MSI Claw 8 EX AI+. </strong>There’s no better way to say this — MSI just dominates here.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-battery-life"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Battery life</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wSw2ErAAFWE7VeGF2aaTeX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/wSw2ErAAFWE7VeGF2aaTeX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Raw power usually drains a battery fast, but Intel clearly didn’t get that memo. MSI has seemingly worked magic with this chip in the Claw 8 EX AI+</p><div ><table><thead><tr><th class="firstcol " ><p>Device</p></th><th  ><p>Gaming battery life test result (hh:mm)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme)</strong></p></td><td  ><p>02:47</p></td></tr><tr><td class="firstcol " ><p><strong>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme)</strong></p></td><td  ><p>04:10</p></td></tr></tbody></table></div><p>In our gaming battery rundown test, the ROG Xbox Ally X20 came just shy of three hours, which is fine — one of the stronger numbers when you look at past machines. But the MSI Claw 8 EX AI+ blew past it at over four hours.</p><p>That’s a difference between your device dying mid-flight and actually finishing your gaming session. And considering the MSI can throttle down to 17W and still out-perform the Asus in many titles, its endurance is unmatched.</p><p><strong>Winner: MSI Claw 8 EX AI+. </strong>An extra hour and 20 minutes is huge.</p><h2 class="article-body__section" id="section-verdict-which-should-you-buy"><span>Verdict: Which should you buy?</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fPxaKmgJ39cEHMP3mD2nHY" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/fPxaKmgJ39cEHMP3mD2nHY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>So awkwardly, this is a tie. But that also highlights two very distinct audiences here in deciding who wins.</p><p><strong>If you're an immersion junkie: </strong>Looking for the best screen and ergonomics, and you mostly play less pressuring AAA titles and indies? The ROG Ally X20 is the better buy. You save $500, get one of the best OLED screens ever put on a handheld, and holding it feels superb.</p><p><strong>If you’re a performance purist: </strong>Want to play AAA titles smoothly wherever you are? The MSI Claw 8 EX AI+ earns its exorbitant price tag. Intel’s Arc G3 Extreme delivers performance that Asus simply cannot touch. Add in a massive 4+ hour gaming battery life, and the MSI Claw proves that sometimes, paying a premium actually buys you a true generational leap in handheld gaming.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/gaming-laptops/asus-rog-zephyrus-g14-2026-review"><strong>I tested the Asus ROG Zephyrus G14 (2026) like I was a student — its gaming, creator and AI performance is huge, but it comes at a cost</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/pc-gaming/i-gave-the-steam-machine-3-stars-at-launch-but-a-game-changing-update-and-this-1tb-storage-hack-has-me-thinking-differently"><strong>I gave the Steam Machine 3 stars at launch — but a game-changing update and this 1TB storage hack has me thinking differently</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/pc-gaming/i-benchmarked-the-real-dlss-5-in-nba-2k27-and-the-future-of-photorealistic-graphics-has-one-big-catch"><strong>I tested DLSS 5 in NBA 2K27 on a mid-range gaming laptop — it's the future of photorealistic graphics, but there's a catch</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-which-premium-handheld-gaming-pc-should-you-buy</link>
                                                                            <description>
                            <![CDATA[ Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: We benchmarked gaming performance, OLED displays, and battery life to see which $1,200+ handheld wins. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4PFz7y8ataLLZSEfBsCR6i</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/eQccvYDvVRMYscEbtFGYKY-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 17 Oct 2026 11:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/eQccvYDvVRMYscEbtFGYKY-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+]]></media:description>                                                            <media:text><![CDATA[Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+]]></media:text>
                                <media:title type="plain"><![CDATA[Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/eQccvYDvVRMYscEbtFGYKY-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Asus ROG Xbox Ally X20</a> brings a gorgeous OLED screen and improved ergonomics, but the <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a> delivers a massive leap in raw performance and battery life. Is MSI’s sheer power worth the extra $500?</p><p>Thanks to RAMageddon, the Windows gaming handheld market has officially entered its ultra-premium era. If you’re looking to upgrade from your Steam Deck to something with real horsepower, the newly launched <a href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W" target="_blank" rel="nofollow">Asus ROG Xbox Ally X20 ($1,299)</a> and the <a href="https://www.microcenter.com/product/711587/msi-claw-8-ex-ai-cg3em-024us-8-gaming-handheld-pc_Hatchfeed" target="_blank" rel="nofollow">MSI Claw 8 EX AI+ ($1,799)</a> are likely at the top of your list.</p><p>Both devices cost more than some actual gaming laptops, but they target two very different types of gamers. Asus is banking on that stunning 1080p OLED display and refined ergonomics, while MSI is flexing the raw power and extreme battery efficiency of its Intel Arc G3 Extreme architecture and 32GB of RAM.</p><p>But with a massive $500 price gap between them, which one actually deserves your money? I’ve stress tested both handhelds while traveling across the globe to find out.</p><h3 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-specs"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Specs</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Asus ROG Xbox Ally X20</p></th><th  ><p>MSI Claw 8 EX AI+</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>11.8 x 4.8 x 2 inches</p></td><td  ><p>11.6 x 5.1 x 1.9 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>1.67 pounds</p></td><td  ><p>1.7 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen AI Z2 Extreme</p></td><td  ><p>Intel Arc G3 Extreme</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>24GB LPDDR5x</p></td><td  ><p>32GB LPDDR5x</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>1TB PCIe Gen 4</p></td><td  ><p>1TB PCIe Gen 4</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>7.4-inch FHD, 16:9, 120Hz refresh rate OLED panel</p></td><td  ><p>8-inch FHD+ (1920 x 1200) 48-120Hz variable refresh rate IPS display</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1x USB 4 Type-C, 1x USB 3.2 Gen 2 Type-C, 1x 3.5mm audio jack, 1x microSD card reader slot</p></td><td  ><p>1x Micro SD, 2x Thunderbolt 4, 1x 3.5mm audio jack</p></td></tr><tr><td class="firstcol " ><p><strong>Wireless connectivity</strong></p></td><td  ><p>Wi-Fi 6E, Bluetooth 5.4</p></td><td  ><p>WiFi 7, Bluetooth 6</p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$1,299</p></td><td  ><p>$1,799</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-price-and-value"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Price and value</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5iLamnVzLAfZWmViN7KAHY" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/5iLamnVzLAfZWmViN7KAHY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Let’s address the elephant in the room: neither of these are cheap.</p><p>The ROG Xbox Ally X20 has received a $300 markup from the previous Ally X, which Asus attempts to justify with its translucent design, OLED screen, rubberized grips and re-engineered buttons. The internals remain the same.</p><p>MSI’s Claw 8 EX AI+ pushes the boundary of portable pricing even further — launching at $1,799. For that extra $500, you are getting a bigger 1920x1200-pixel display (only IPS though), that Intel Arc G3 Extreme chip and 32GB of RAM (over 24GB in the X20).</p><p><strong>Winner: Asus ROG Xbox Ally X20.</strong> While $1,299 is steep, it’s less than $1,799.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-design-and-display"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Design and display</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/jUcrooeSGEfteM8bJYdsHi-1920-80.jpg" alt="Asus ROG Xbox Ally X20" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vZM5DonM5EgqMYPMJkSZTX-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>Asus has taken a massive leap ahead in the visual department. The ROG Xbox Ally X20 is armed with a beautiful 1080p OLED display that’s bright and vivid, and makes games explode off the screen in a flash flood of color.</p><p>And this is the most comfortable handheld you can use with its smaller size making it easier to reach buttons, rubberized grips reducing hand fatigue, tactile improvements to the buttons and bumpers, and that rotatable D-Pad for either 4-way control for platformers or 8-way for fighting games. Asus has really thought of everything here.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/GuRUpLnhg7UaiDi2VDh3oX-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/wSw2ErAAFWE7VeGF2aaTeX-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/h3prTP6bTUmq7GKrn3bKCY-1920-80.jpg" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/sgehvaSehvxqWg95oyWJYi-1920-80.jpg" alt="Asus ROG Xbox Ally X20" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>That’s not to say MSI hasn’t with the Claw 8 EX AI+ — the company was pretty clear in telling me its form factor is inspired by the Xbox controller too. It feels nice in the hand, and that 8-inch 1200p display is bigger. But it’s IPS, lacks HDR, and the bigger size may not be for everyone.</p><p><strong>Winner: Asus ROG Xbox Ally X20. </strong>The OLED screen and superior physical ergonomics give it the win here.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-gaming-performance"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Gaming performance</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hQwwx5Qvxx2H6N4iBPoZnX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/hQwwx5Qvxx2H6N4iBPoZnX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This is where the tables flip and MSI really starts to show its teeth. Quite frankly, the Claw 8 EX AI+ absolutely bullies the Ally X20 in demanding titles, both at the full wattage and when dialed back to half the power too.</p><div ><table><thead><tr><th class="firstcol " ><p>Game</p></th><th  ><p>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 17W)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Cinematic)</strong></p></td><td  ><p>11 FPS</p></td><td  ><p>14 FPS</p></td><td  ><p>10 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (720p High)</strong></p></td><td  ><p>11.87 FPS</p></td><td  ><p>27.01 FPS</p></td><td  ><p>11.27 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (1080p Medium)</strong></p></td><td  ><p>23 FPS</p></td><td  ><p>63.8 FPS</p></td><td  ><p>48.8 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Shadow of the Tomb Raider (1080p High)</strong></p></td><td  ><p>31 FPS</p></td><td  ><p>66 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>Take <em>Red Dead Redemption 2 </em>on Medium settings at 1080p. The X20 manages 22.8 FPS at 35W. The Claw at the same power hits 63.8 FPS. Even when you restrict it to just 17W, it still pumps out 48.8 FPS — more than double the performance at a fraction of the power.</p><p>The real differentiator is the raw grunt of that Intel Arc G3 Extreme chip surpassing the AMD Ryzen Z2 AI Extreme, the raised roof of RAM to 32GB (probably causing that jump in price), and the XeSS upscaling capabilities embarrassing AMD’s current version of FSR on handhelds.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d8U7fbiFe6EiU7nGxUYugX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/d8U7fbiFe6EiU7nGxUYugX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>For example, Cyberpunk 2077 can run at a respectable 30-40 FPS if you tweak the settings on the Ally X20 and use FSR, but in our lab benchmarking, it chugs at an unplayable 11.8 FPS natively. The Claw, meanwhile, hit 36.2 FPS at 35W, but with XeSS upscaling and multi-frame generation set to 4X, that goes to a staggering <strong>171.5 FPS.</strong></p><p><strong>Winner: MSI Claw 8 EX AI+. </strong>There’s no better way to say this — MSI just dominates here.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-vs-msi-claw-8-ex-ai-battery-life"><span>Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+: Battery life</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wSw2ErAAFWE7VeGF2aaTeX" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/wSw2ErAAFWE7VeGF2aaTeX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Raw power usually drains a battery fast, but Intel clearly didn’t get that memo. MSI has seemingly worked magic with this chip in the Claw 8 EX AI+</p><div ><table><thead><tr><th class="firstcol " ><p>Device</p></th><th  ><p>Gaming battery life test result (hh:mm)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme)</strong></p></td><td  ><p>02:47</p></td></tr><tr><td class="firstcol " ><p><strong>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme)</strong></p></td><td  ><p>04:10</p></td></tr></tbody></table></div><p>In our gaming battery rundown test, the ROG Xbox Ally X20 came just shy of three hours, which is fine — one of the stronger numbers when you look at past machines. But the MSI Claw 8 EX AI+ blew past it at over four hours.</p><p>That’s a difference between your device dying mid-flight and actually finishing your gaming session. And considering the MSI can throttle down to 17W and still out-perform the Asus in many titles, its endurance is unmatched.</p><p><strong>Winner: MSI Claw 8 EX AI+. </strong>An extra hour and 20 minutes is huge.</p><h2 class="article-body__section" id="section-verdict-which-should-you-buy"><span>Verdict: Which should you buy?</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fPxaKmgJ39cEHMP3mD2nHY" name="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" alt="Asus ROG Xbox Ally X20 vs MSI Claw 8 EX AI+" src="https://cdn.mos.cms.futurecdn.net/fPxaKmgJ39cEHMP3mD2nHY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>So awkwardly, this is a tie. But that also highlights two very distinct audiences here in deciding who wins.</p><p><strong>If you're an immersion junkie: </strong>Looking for the best screen and ergonomics, and you mostly play less pressuring AAA titles and indies? The ROG Ally X20 is the better buy. You save $500, get one of the best OLED screens ever put on a handheld, and holding it feels superb.</p><p><strong>If you’re a performance purist: </strong>Want to play AAA titles smoothly wherever you are? The MSI Claw 8 EX AI+ earns its exorbitant price tag. Intel’s Arc G3 Extreme delivers performance that Asus simply cannot touch. Add in a massive 4+ hour gaming battery life, and the MSI Claw proves that sometimes, paying a premium actually buys you a true generational leap in handheld gaming.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/gaming-laptops/asus-rog-zephyrus-g14-2026-review"><strong>I tested the Asus ROG Zephyrus G14 (2026) like I was a student — its gaming, creator and AI performance is huge, but it comes at a cost</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/pc-gaming/i-gave-the-steam-machine-3-stars-at-launch-but-a-game-changing-update-and-this-1tb-storage-hack-has-me-thinking-differently"><strong>I gave the Steam Machine 3 stars at launch — but a game-changing update and this 1TB storage hack has me thinking differently</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/pc-gaming/i-benchmarked-the-real-dlss-5-in-nba-2k27-and-the-future-of-photorealistic-graphics-has-one-big-catch"><strong>I tested DLSS 5 in NBA 2K27 on a mid-range gaming laptop — it's the future of photorealistic graphics, but there's a catch</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played all 3 Resident Evil remakes on Nintendo Switch 2 — here’s how they compare to PS5 Pro ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Earlier this year, <a href="https://www.tomsguide.com/gaming/nintendo/i-played-all-3-new-resident-evil-games-on-switch-2-heres-the-one-you-should-buy">Capcom brought the modern Resident Evil trilogy (Biohazard, Village and Requiem) to the Nintendo Switch 2</a>. And if three excellent Resi titles to play weren’t enough, how about six?</p><p><a href="https://www.tomsguide.com/gaming/nintendo/forget-nintendo-its-capcom-keeping-the-switch-2-alive-right-now">Capcom’s Switch 2 support this year has been phenomenal,</a> and that continues with the acclaimed remakes of Resident Evil 2, Resident Evil 3, and Resident Evil 4, all launching on Nintendo’s second-generation hybrid console this week (October 16).</p><p>These are three of the finest remakes ever made, bringing three unquestionable survival-horror classics into the modern age. They were already essential games on PlayStation, Xbox, and PC, and that remains true with these new <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> versions.</p><p>I’ve now tested all three Resident Evil remakes on the Nintendo Switch 2 and compared them to the same games on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>. You won’t be surprised to hear there have been a few technical sacrifices, but the good news is that, overall, all three Resident Evil remakes remain as essential on Switch 2 as they are anywhere else.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XbjANX"></div>                            </div>                            <script src="https://kwizly.com/embed/XbjANX.js" async=""></script><h3 class="article-body__section" id="section-resident-evil-2"><span>Resident Evil 2</span></h3><iframe allow="" height="338" width="100%" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=3c639c0e-c7f5-11f1-ba1b-0e6f42328d7d"></iframe><p>Resident Evil 2 kicked off the modern remakes in style. It set the blueprint, replacing the PS1 original's fixed camera with a third-person over-the-shoulder perspective that brings the horror into sharper focus. Plus, the iconic Raccoon City police department building has never been more unnerving, yet fun to explore. </p><p>On Switch 2, the game looks excellent. For starters, it runs at 60 fps even in handheld mode, and I strongly recommend enabling HDR. Texture quality takes a hit compared to the native PS5 version; this is most noticeable in character hair — a slight annoyance, since you spend the whole game looking at the back of Leon or Claire’s head!</p><div><blockquote><p>Texture quality takes a hit compared to the native PS5 version; this is most noticeable in character hair</p></blockquote></div><p>Objects and environments in the distance also lose some detail, but up close they snap into focus. Crucially, I didn’t encounter any texture pop-in, even when quickly shifting my crosshair between in-game objects. Overall, it’s an impressive port of an already impressive game.</p><p>On the Nintendo Switch 2, you get the “Deluxe Edition” as standard, which includes a load of character costumes and a few extra weapons. It’s nice cosmetic DLC, but nothing substantial, and really, you’re going to play the whole game in Leon's cop outfit anyway.</p><div class="product"><a data-dimension112="0c8d0d7e-c879-11f1-8d8d-e31bd766e83c" data-action="Deal Block" data-label="Deluxe Edition (Switch 2)" data-dimension48="Deluxe Edition (Switch 2)" data-dimension25="$39" href="https://www.amazon.com/Resident-Deluxe-Digital-Nintendo-Switch/dp/B0HKY46147/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="kv7AckzGRoKEC79AQeju8h" name="resi-2-switch-2-listing-image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/kv7AckzGRoKEC79AQeju8h-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Resident-Deluxe-Digital-Nintendo-Switch/dp/B0HKY46147/" target="_blank" rel="nofollow" data-dimension112="0c8d0d7e-c879-11f1-8d8d-e31bd766e83c" data-action="Deal Block" data-label="Deluxe Edition (Switch 2)" data-dimension48="Deluxe Edition (Switch 2)" data-dimension25="$39">Deluxe Edition (Switch 2): $39</a></strong><br />The remake that started it all, Resident Evil 2, is reborn for a new generation, and it's a must-play survival horror. You play either Leon S. Kennedy or Claire Redfield. The pair are trapped in Raccoon City after it's been overrun by zombies and more.<a class="view-deal button" href="https://www.amazon.com/Resident-Deluxe-Digital-Nintendo-Switch/dp/B0HKY46147/" target="_blank" rel="nofollow" data-dimension112="0c8d0d7e-c879-11f1-8d8d-e31bd766e83c" data-action="Deal Block" data-label="Deluxe Edition (Switch 2)" data-dimension48="Deluxe Edition (Switch 2)" data-dimension25="$39">View Deal</a></p></div><h3 class="article-body__section" id="section-resident-evil-3"><span>Resident Evil 3</span></h3><iframe allow="" height="338" width="100%" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=549dda1e-c7f5-11f1-ba1b-0e6f42328d7d"></iframe><p>Resident Evil 3 remake is more of the same as Resident Evil 2 remake, which makes sense; the second modern remake reportedly began as a DLC for its predecessor before being spun off into a separate release. </p><p>Everything I said above applies to Resi 3. It looks great and runs well (again, 60 fps, even handheld, is a boon). I should note that the Switch 2’s HD rumble is used to great effect in these remakes. The trigger jolts when you fire a pistol, which I found satisfying.</p><p>Resi 3 moves into larger city street environments, but I didn’t notice any reduction in image quality. The neon signs, flashing lights, and raging fires of a Raccoon City plunged into chaos all look great. But you do get a <em>slightly</em> cleaner look on the more powerful PS5 Pro, as expected; it's got beefier components. </p><p>The “problem” with Resident Evil 3 Remake (and I use that word loosely; it's still great) is baked into the core game, like its short length (an average playtime is a breezy six hours), and this 2020 remake removes several sections from the PS1 original. </p><p>Resident Evil 3 didn’t receive much in the way of post-launch DLC, so on Switch 2 you get the standard addition and a single cosmetic costume for each of its characters, Jill and Carlos. At least its smaller scale and scope are reflected in a lower price point.</p><div class="product"><a data-dimension112="0c8d0e1e-c879-11f1-8ddc-4d52b77bdefd" data-action="Deal Block" data-label="(Switch 2)" data-dimension48="(Switch 2)" data-dimension25="$17" href="https://www.nintendo.com/us/store/products/resident-evil-3-switch-2/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1350px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="NQt6uc9zDgwfsX4rLLJZGX" name="resi-evil-3-switch-2-listing-image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NQt6uc9zDgwfsX4rLLJZGX-1920-80.jpg" mos="" align="middle" fullscreen="" width="1350" height="759" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/resident-evil-3-switch-2/" target="_blank" rel="nofollow" data-dimension112="0c8d0e1e-c879-11f1-8ddc-4d52b77bdefd" data-action="Deal Block" data-label="(Switch 2)" data-dimension48="(Switch 2)" data-dimension25="$17">(Switch 2): was $29 now $17</a></strong><br />Set in the chaos of Raccoon City, Jill Valentine is stalked across the streets by one of the most dangerous foes in Resident Evil history: Nemesis. To survive, Jill teams up with Carlos Oliveira and looks to expose the sinister Umbrella Corporation. <a class="view-deal button" href="https://www.nintendo.com/us/store/products/resident-evil-3-switch-2/" target="_blank" rel="nofollow" data-dimension112="0c8d0e1e-c879-11f1-8ddc-4d52b77bdefd" data-action="Deal Block" data-label="(Switch 2)" data-dimension48="(Switch 2)" data-dimension25="$17">View Deal</a></p></div><h3 class="article-body__section" id="section-resident-evil-4"><span>Resident Evil 4</span></h3><iframe allow="" height="338" width="100%" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=7b01cb3e-c7f5-11f1-ba1b-0e6f42328d7d"></iframe><p><a href="https://www.tomsguide.com/reviews/resident-evil-4">Resident Evil 4 Remake</a> is the best of the bunch for many Resi fans, a stunning reworking of one of the most influential video games in history.</p><p>Disappointingly, it’s also the most technically compromised of these new Switch 2 ports. In handheld mode, environment textures are noticeably downgraded compared to Resi 2 and Resi 3 on Switch 2. Even objects in close proximity are a little blurry, but they sharpen when you focus your crosshair on them. Plus, the fuzziness of Leon’s hair intensifies, and the problem extends to foliage, which is a frequent sight in Resident Evil 4’s initial rural village setting.</p><p>The framerate is mostly stable, though I’ve experienced occasional drops. I haven’t seen the adventure through to its conclusion on Switch 2. These might become more frequent in the game’s back half, when the action gets even more intense.</p><p>Still, it’s a perfectly playable port, even if the visual downgrades on the Switch 2 are apparent. You’re getting the Gold Edition as standard, which includes the must-play Separate Ways story DLC, The Mercenaries mode, and a long list of outfits and extras.</p><div class="product"><a data-dimension112="0c8d0eb4-c879-11f1-8ac3-bb7a45431f78" data-action="Deal Block" data-label="Gold Edition (Switch 2)" data-dimension48="Gold Edition (Switch 2)" data-dimension25="$49" href="https://www.amazon.com/Resident-Evil-Digital-Nintendo-Switch/dp/B0HKYKVM9Y/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iWSp9AvZD57gWBgW46TJSK" name="resi-evil-4-switch-2-list-icon" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/iWSp9AvZD57gWBgW46TJSK-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Resident-Evil-Digital-Nintendo-Switch/dp/B0HKYKVM9Y/" target="_blank" rel="nofollow" data-dimension112="0c8d0eb4-c879-11f1-8ac3-bb7a45431f78" data-action="Deal Block" data-label="Gold Edition (Switch 2)" data-dimension48="Gold Edition (Switch 2)" data-dimension25="$49">Gold Edition (Switch 2): $49</a></strong><br />Once again taking on the role of Leon S. Kennedy, six years after Resident Evil 2, your mission is to rescue the president's daughter, a mission that involves fending off all manner of horrors. The Gold Edition includes the Mercenaries mode and the Separate Ways campaign, with Ada Wong.<a class="view-deal button" href="https://www.amazon.com/Resident-Evil-Digital-Nintendo-Switch/dp/B0HKYKVM9Y/" target="_blank" rel="nofollow" data-dimension112="0c8d0eb4-c879-11f1-8ac3-bb7a45431f78" data-action="Deal Block" data-label="Gold Edition (Switch 2)" data-dimension48="Gold Edition (Switch 2)" data-dimension25="$49">View Deal</a></p></div><h3 class="article-body__section" id="section-which-resident-evil-remake-should-you-buy"><span>Which Resident Evil remake should you buy?</span></h3><p>When I covered the modern Resident Evil trilogy arriving on Switch 2 in the spring, I cheated this question by saying you should get all three via the Resident Evil Generations Pack. Disappointingly, there’s no bundle here, though I am still tempted to say you should buy all three. Each remake is amazing and plays well on Switch 2.</p><div><blockquote><p>If you’re pushing me for a definitive answer, Resident Evil 2 is the standout...</p></blockquote></div><p>However, if you’re pushing me for a definitive answer, Resident Evil 2 is the standout, given both the base game’s quality and its excellent transition to the Nintendo Switch 2. Resident Evil 4 is a close second, but the visual and performance downgrades are more noticeable. Resident Evil 3 isn’t far behind, but its short length and lack of incentive to replay see it settle for the bronze medal.</p><p>Overall, I’m thrilled that Capcom’s impressive Switch 2 support continues, and <em>every </em>modern Resident Evil game is now available on the platform. If six Resi games in a year aren’t enough for you, it’s been confirmed that next year’s RE: Code: Veronica remake is headed to Nintendo. The Switch 2 is rapidly becoming a Resi machine.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-played-all-3-new-resident-evil-games-on-switch-2-heres-the-one-you-should-buy">I played all 3 modern Resident Evil games on Switch 2 </a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/forget-nintendo-its-capcom-keeping-the-switch-2-alive-right-now">Capcom is keeping the Switch 2 alive right now</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/nintendo/i-played-all-3-resident-evil-remakes-on-nintendo-switch-2-heres-how-they-compare-to-ps5-pro</link>
                                                                            <description>
                            <![CDATA[ Capcom just brought three modern Resident Evil remakes to Nintendo Switch 2, and I tested them all. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">B5Sazq4ztDt9k7Lisg6mSh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/LP4sfgrrnJs8TMYPQFxRMC-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 17 Oct 2026 06:15:00 +0000</pubDate>                                                                                                                                <updated>Mon, 19 Oct 2026 12:04:24 +0000</updated>
                                                                                                                                            <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/LP4sfgrrnJs8TMYPQFxRMC-1920-80.jpg">
                                                            <media:credit><![CDATA[Future / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Nintendo Switch 2 console on a table displaying tiles for three Resident Evil games]]></media:description>                                                            <media:text><![CDATA[Nintendo Switch 2 console on a table displaying tiles for three Resident Evil games]]></media:text>
                                <media:title type="plain"><![CDATA[Nintendo Switch 2 console on a table displaying tiles for three Resident Evil games]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/LP4sfgrrnJs8TMYPQFxRMC-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Earlier this year, <a href="https://www.tomsguide.com/gaming/nintendo/i-played-all-3-new-resident-evil-games-on-switch-2-heres-the-one-you-should-buy">Capcom brought the modern Resident Evil trilogy (Biohazard, Village and Requiem) to the Nintendo Switch 2</a>. And if three excellent Resi titles to play weren’t enough, how about six?</p><p><a href="https://www.tomsguide.com/gaming/nintendo/forget-nintendo-its-capcom-keeping-the-switch-2-alive-right-now">Capcom’s Switch 2 support this year has been phenomenal,</a> and that continues with the acclaimed remakes of Resident Evil 2, Resident Evil 3, and Resident Evil 4, all launching on Nintendo’s second-generation hybrid console this week (October 16).</p><p>These are three of the finest remakes ever made, bringing three unquestionable survival-horror classics into the modern age. They were already essential games on PlayStation, Xbox, and PC, and that remains true with these new <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> versions.</p><p>I’ve now tested all three Resident Evil remakes on the Nintendo Switch 2 and compared them to the same games on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>. You won’t be surprised to hear there have been a few technical sacrifices, but the good news is that, overall, all three Resident Evil remakes remain as essential on Switch 2 as they are anywhere else.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XbjANX"></div>                            </div>                            <script src="https://kwizly.com/embed/XbjANX.js" async=""></script><h3 class="article-body__section" id="section-resident-evil-2"><span>Resident Evil 2</span></h3><iframe allow="" height="338" width="100%" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=3c639c0e-c7f5-11f1-ba1b-0e6f42328d7d"></iframe><p>Resident Evil 2 kicked off the modern remakes in style. It set the blueprint, replacing the PS1 original's fixed camera with a third-person over-the-shoulder perspective that brings the horror into sharper focus. Plus, the iconic Raccoon City police department building has never been more unnerving, yet fun to explore. </p><p>On Switch 2, the game looks excellent. For starters, it runs at 60 fps even in handheld mode, and I strongly recommend enabling HDR. Texture quality takes a hit compared to the native PS5 version; this is most noticeable in character hair — a slight annoyance, since you spend the whole game looking at the back of Leon or Claire’s head!</p><div><blockquote><p>Texture quality takes a hit compared to the native PS5 version; this is most noticeable in character hair</p></blockquote></div><p>Objects and environments in the distance also lose some detail, but up close they snap into focus. Crucially, I didn’t encounter any texture pop-in, even when quickly shifting my crosshair between in-game objects. Overall, it’s an impressive port of an already impressive game.</p><p>On the Nintendo Switch 2, you get the “Deluxe Edition” as standard, which includes a load of character costumes and a few extra weapons. It’s nice cosmetic DLC, but nothing substantial, and really, you’re going to play the whole game in Leon's cop outfit anyway.</p><div class="product"><a data-dimension112="0c8d0d7e-c879-11f1-8d8d-e31bd766e83c" data-action="Deal Block" data-label="Deluxe Edition (Switch 2)" data-dimension48="Deluxe Edition (Switch 2)" data-dimension25="$39" href="https://www.amazon.com/Resident-Deluxe-Digital-Nintendo-Switch/dp/B0HKY46147/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="kv7AckzGRoKEC79AQeju8h" name="resi-2-switch-2-listing-image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/kv7AckzGRoKEC79AQeju8h-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Resident-Deluxe-Digital-Nintendo-Switch/dp/B0HKY46147/" target="_blank" rel="nofollow" data-dimension112="0c8d0d7e-c879-11f1-8d8d-e31bd766e83c" data-action="Deal Block" data-label="Deluxe Edition (Switch 2)" data-dimension48="Deluxe Edition (Switch 2)" data-dimension25="$39">Deluxe Edition (Switch 2): $39</a></strong><br />The remake that started it all, Resident Evil 2, is reborn for a new generation, and it's a must-play survival horror. You play either Leon S. Kennedy or Claire Redfield. The pair are trapped in Raccoon City after it's been overrun by zombies and more.<a class="view-deal button" href="https://www.amazon.com/Resident-Deluxe-Digital-Nintendo-Switch/dp/B0HKY46147/" target="_blank" rel="nofollow" data-dimension112="0c8d0d7e-c879-11f1-8d8d-e31bd766e83c" data-action="Deal Block" data-label="Deluxe Edition (Switch 2)" data-dimension48="Deluxe Edition (Switch 2)" data-dimension25="$39">View Deal</a></p></div><h3 class="article-body__section" id="section-resident-evil-3"><span>Resident Evil 3</span></h3><iframe allow="" height="338" width="100%" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=549dda1e-c7f5-11f1-ba1b-0e6f42328d7d"></iframe><p>Resident Evil 3 remake is more of the same as Resident Evil 2 remake, which makes sense; the second modern remake reportedly began as a DLC for its predecessor before being spun off into a separate release. </p><p>Everything I said above applies to Resi 3. It looks great and runs well (again, 60 fps, even handheld, is a boon). I should note that the Switch 2’s HD rumble is used to great effect in these remakes. The trigger jolts when you fire a pistol, which I found satisfying.</p><p>Resi 3 moves into larger city street environments, but I didn’t notice any reduction in image quality. The neon signs, flashing lights, and raging fires of a Raccoon City plunged into chaos all look great. But you do get a <em>slightly</em> cleaner look on the more powerful PS5 Pro, as expected; it's got beefier components. </p><p>The “problem” with Resident Evil 3 Remake (and I use that word loosely; it's still great) is baked into the core game, like its short length (an average playtime is a breezy six hours), and this 2020 remake removes several sections from the PS1 original. </p><p>Resident Evil 3 didn’t receive much in the way of post-launch DLC, so on Switch 2 you get the standard addition and a single cosmetic costume for each of its characters, Jill and Carlos. At least its smaller scale and scope are reflected in a lower price point.</p><div class="product"><a data-dimension112="0c8d0e1e-c879-11f1-8ddc-4d52b77bdefd" data-action="Deal Block" data-label="(Switch 2)" data-dimension48="(Switch 2)" data-dimension25="$17" href="https://www.nintendo.com/us/store/products/resident-evil-3-switch-2/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1350px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="NQt6uc9zDgwfsX4rLLJZGX" name="resi-evil-3-switch-2-listing-image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NQt6uc9zDgwfsX4rLLJZGX-1920-80.jpg" mos="" align="middle" fullscreen="" width="1350" height="759" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/resident-evil-3-switch-2/" target="_blank" rel="nofollow" data-dimension112="0c8d0e1e-c879-11f1-8ddc-4d52b77bdefd" data-action="Deal Block" data-label="(Switch 2)" data-dimension48="(Switch 2)" data-dimension25="$17">(Switch 2): was $29 now $17</a></strong><br />Set in the chaos of Raccoon City, Jill Valentine is stalked across the streets by one of the most dangerous foes in Resident Evil history: Nemesis. To survive, Jill teams up with Carlos Oliveira and looks to expose the sinister Umbrella Corporation. <a class="view-deal button" href="https://www.nintendo.com/us/store/products/resident-evil-3-switch-2/" target="_blank" rel="nofollow" data-dimension112="0c8d0e1e-c879-11f1-8ddc-4d52b77bdefd" data-action="Deal Block" data-label="(Switch 2)" data-dimension48="(Switch 2)" data-dimension25="$17">View Deal</a></p></div><h3 class="article-body__section" id="section-resident-evil-4"><span>Resident Evil 4</span></h3><iframe allow="" height="338" width="100%" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=7b01cb3e-c7f5-11f1-ba1b-0e6f42328d7d"></iframe><p><a href="https://www.tomsguide.com/reviews/resident-evil-4">Resident Evil 4 Remake</a> is the best of the bunch for many Resi fans, a stunning reworking of one of the most influential video games in history.</p><p>Disappointingly, it’s also the most technically compromised of these new Switch 2 ports. In handheld mode, environment textures are noticeably downgraded compared to Resi 2 and Resi 3 on Switch 2. Even objects in close proximity are a little blurry, but they sharpen when you focus your crosshair on them. Plus, the fuzziness of Leon’s hair intensifies, and the problem extends to foliage, which is a frequent sight in Resident Evil 4’s initial rural village setting.</p><p>The framerate is mostly stable, though I’ve experienced occasional drops. I haven’t seen the adventure through to its conclusion on Switch 2. These might become more frequent in the game’s back half, when the action gets even more intense.</p><p>Still, it’s a perfectly playable port, even if the visual downgrades on the Switch 2 are apparent. You’re getting the Gold Edition as standard, which includes the must-play Separate Ways story DLC, The Mercenaries mode, and a long list of outfits and extras.</p><div class="product"><a data-dimension112="0c8d0eb4-c879-11f1-8ac3-bb7a45431f78" data-action="Deal Block" data-label="Gold Edition (Switch 2)" data-dimension48="Gold Edition (Switch 2)" data-dimension25="$49" href="https://www.amazon.com/Resident-Evil-Digital-Nintendo-Switch/dp/B0HKYKVM9Y/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iWSp9AvZD57gWBgW46TJSK" name="resi-evil-4-switch-2-list-icon" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/iWSp9AvZD57gWBgW46TJSK-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="844" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Resident-Evil-Digital-Nintendo-Switch/dp/B0HKYKVM9Y/" target="_blank" rel="nofollow" data-dimension112="0c8d0eb4-c879-11f1-8ac3-bb7a45431f78" data-action="Deal Block" data-label="Gold Edition (Switch 2)" data-dimension48="Gold Edition (Switch 2)" data-dimension25="$49">Gold Edition (Switch 2): $49</a></strong><br />Once again taking on the role of Leon S. Kennedy, six years after Resident Evil 2, your mission is to rescue the president's daughter, a mission that involves fending off all manner of horrors. The Gold Edition includes the Mercenaries mode and the Separate Ways campaign, with Ada Wong.<a class="view-deal button" href="https://www.amazon.com/Resident-Evil-Digital-Nintendo-Switch/dp/B0HKYKVM9Y/" target="_blank" rel="nofollow" data-dimension112="0c8d0eb4-c879-11f1-8ac3-bb7a45431f78" data-action="Deal Block" data-label="Gold Edition (Switch 2)" data-dimension48="Gold Edition (Switch 2)" data-dimension25="$49">View Deal</a></p></div><h3 class="article-body__section" id="section-which-resident-evil-remake-should-you-buy"><span>Which Resident Evil remake should you buy?</span></h3><p>When I covered the modern Resident Evil trilogy arriving on Switch 2 in the spring, I cheated this question by saying you should get all three via the Resident Evil Generations Pack. Disappointingly, there’s no bundle here, though I am still tempted to say you should buy all three. Each remake is amazing and plays well on Switch 2.</p><div><blockquote><p>If you’re pushing me for a definitive answer, Resident Evil 2 is the standout...</p></blockquote></div><p>However, if you’re pushing me for a definitive answer, Resident Evil 2 is the standout, given both the base game’s quality and its excellent transition to the Nintendo Switch 2. Resident Evil 4 is a close second, but the visual and performance downgrades are more noticeable. Resident Evil 3 isn’t far behind, but its short length and lack of incentive to replay see it settle for the bronze medal.</p><p>Overall, I’m thrilled that Capcom’s impressive Switch 2 support continues, and <em>every </em>modern Resident Evil game is now available on the platform. If six Resi games in a year aren’t enough for you, it’s been confirmed that next year’s RE: Code: Veronica remake is headed to Nintendo. The Switch 2 is rapidly becoming a Resi machine.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-played-all-3-new-resident-evil-games-on-switch-2-heres-the-one-you-should-buy">I played all 3 modern Resident Evil games on Switch 2 </a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/forget-nintendo-its-capcom-keeping-the-switch-2-alive-right-now">Capcom is keeping the Switch 2 alive right now</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Evercade Nexus is a gaming handheld that celebrates a simpler time — and that’s a compelling pitch in 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In an era of gaming dominated by mandatory installs, always-online requirements, monthly subscriptions, and the ongoing outrage surrounding physical media and whether we actually own the games we buy, the Evercade Nexus is a well-timed retort. </p><p>The latest handheld games console from Blaze Entertainment, it’s a device that harkens back to a simpler era. Arguably a better time. When you’d buy a game, insert it into your console of choice, and start playing. No downloads. No online connection. No fuss.</p><p>It also represents a few firsts for the Evercade lineup. The Nexus boasts the largest display of any Evercade device, and is the first to sport dual analog sticks. It’s also fully compatible with the existing range of more than 80 Evercade cartridges, which offer titles from the very first generation of video games up to the 64-bit era. </p><p>The Evercade Nexus can’t compete outright with the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best gaming handhelds</a>, such as the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Asus ROG Ally X</a> or the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>. However, it’s not trying to outmuscle these devices and match their also compelling pitch of blockbuster games on the go. Instead, Evercade Nexus looks to the past to celebrate the best of what video games used to be. Find out more in my full Evercade Nexus review.</p><h2 class="article-body__section" id="section-evercade-nexus-review-cheat-sheet"><span>Evercade Nexus review: Cheat Sheet</span></h2><ul><li><strong>What is it? </strong>The latest handheld hardware in the Evercade lineup, the Nexus is the biggest redesign of the range in four years, designed with 32-bit and 64-bit games in mind.</li><li><strong>Who is it for? </strong>Nostalgia gamers and retro collectors, and anyone who’s ever uttered the phrase “they don’t make them like they used to.”</li><li><strong>What does it cost? </strong><a href="https://www.amazon.com/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GVW2JHQ7/" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GTWLQ439/" target="_blank" rel="nofollow">£169</a></li><li><strong>What’s good? </strong>The focus on retro play, physical cartridges (which you actually own), the addition of dual analog sticks, solid battery life, and it comes bundled with Banjo-Kazooie</li><li><strong>What’s not? </strong>The lack of built-in grips can make long play sessions uncomfortable, the absence of a suspend feature, and weaker specs make boot-up times lengthy</li></ul><h2 class="article-body__section" id="section-evercade-nexus-review-specs"><span>Evercade Nexus review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GVW2JHQ7/" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GTWLQ439/" target="_blank" rel="nofollow">£169</a></p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>0.9lbs</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>8.46 × 4.37 × 1.34 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>Quad Core 1.5Ghz</p></td></tr><tr><td class="firstcol " ><p><strong>Memory</strong></p></td><td  ><p>512mb DDR RAM</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>5.89-nch IPS HD, 500+ nit</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1 X USB-C, 1 x 3.5mm headphone jack, 1 x Evercade cartridge slot</p></td></tr><tr><td class="firstcol " ><p><strong>Wireless connectivity</strong></p></td><td  ><p>WiFi 6 5Ghz/2.4Ghz</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life</strong></p></td><td  ><p>5+ hours (Evercade provided figure)</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-evercade-nexus-review-the-ups"><span>Evercade Nexus review: The ups</span></h2><p>The Evercade Nexus is a dream handheld for retro gaming fans. It’s simple to use and doesn't demand extensive setup and game installations. It's compatible with 80+ cartridges and offers the best play experience on any Evercade device to date thanks to its dual analog sticks. Plus, it comes bundled with two platforming classics. </p><h2 id="back-to-basics">Back to basics</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7sNv9rkATCsAQBoKfUrqPe" name="Evercade Nexus-2" alt="Evercade Nexus playing Banjo-Kazooie" src="https://cdn.mos.cms.futurecdn.net/7sNv9rkATCsAQBoKfUrqPe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Switching on the Evercade Nexus for the first time was a surprisingly novel experience. Turn on a brand new gaming device in 2026, and you’ll typically be required to sign in to an online account (or create one), run through a series of setup menus, and then likely spend your first couple of hours with your new hardware watching a download bar slowly crawl along. </p><p>Not with the Nexus. The setup was short and simple. I connected the device to my home Wi-Fi network, installed a small system firmware update, and then was let loose to start playing. No need to enter personal information, select an online ID (the good ones are always taken), or endure pop-ups encouraging me to sign up for any form of subscription service.</p><p>Evercade Nexus strips away the hurdles that have come to define modern gaming. It harkens back to an era when you bought a console, inserted a disc or cartridge (depending on the era), and then could be playing your shiny new game within moments. </p><h2 id="cartridge-collection">Cartridge collection</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SQzzsvfrJctZKQVsjzuPQe" name="Evercade Nexus-8" alt="Evercade Nexus surrounded by three Evercade cartridge cases" src="https://cdn.mos.cms.futurecdn.net/SQzzsvfrJctZKQVsjzuPQe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>The Evercade Nexus doesn’t even have a digital storefront on its homescreen. And the only digital game available is a rotating “Game of the Month” — as I write this, it's a simple side-scrolling platformer called “Flearun!”. There are more than 700 games playable on Evercade Nexus, but these are all found on physical cartridges, rather than downloadable from a digital store. </p><p>Cartridges are the crux of the Evercade ecosystem, and there is plenty of choice. There are carts for legendary franchises, such as Tomb Raider, DOOM and Duke Nukem, alongside collections dedicated to games published by Activision, Visco, NeoGeo, Piko, Atari and Interplay. </p><p>Once you buy a cartridge, it’s yours to treasure. Or loan to a friend. Or sell to somebody else. It's your choice. You own the game and can do as you wish. There's no digital license that can be revoked, or need to download anything. Just plug in and start playing.</p><p>Each Evercade cartridge is also compatible with the entire Evercade device range, from the newest Nexus down to the <a href="https://www.tomsguide.com/reviews/evercade">original Evercade handheld</a> released in 2020. </p><h2 id="banjo-kazooie-bundle">Banjo-Kazooie Bundle</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Jsq2VZEMjUPXoRGVT7rByd" name="Evercade Nexus-5" alt="Evercade Nexus cases and cartridge for Banjo-Kazooie" src="https://cdn.mos.cms.futurecdn.net/Jsq2VZEMjUPXoRGVT7rByd-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>At launch, the Evercade Nexus comes bundled with the Banjo-Kazooie Double Pack, a collection comprising two 3D platformers released on the Nintendo 64: Banjo-Kazooie and Banjo-Tootie. </p><p>I’ll fully admit a nostalgic bias towards the iconic bear and bird — Banjo-Kazooie was the first video game I <em>ever</em> played — but even putting this youthful fondness aside, the games make for a great showcase of the Nexus. </p><p>The lush greens of Spiral Mountain, Banjo-Kazooie’s starting area, look vibrant on the device’s 5.89-inch display, and they’re games designed around analog sticks, which brings me neatly into one of the Nexus’ biggest upgrades…</p><h2 id="dual-analog-sticks">Dual analog sticks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BqC26mFjYdTnLZxnTLKMQe" name="Evercade Nexus-7" alt="Evercade Nexus handheld, focused on the left analog stick" src="https://cdn.mos.cms.futurecdn.net/BqC26mFjYdTnLZxnTLKMQe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Okay, so a handheld with dual analog sticks is hardly a revelation in 2026. The PSP and Nintendo 3DS days of single sticks, which functioned more like cumbersome analog nubs, are long gone. </p><p>However, the Nexus is the first Evercade handheld device to sport two analog sticks. This not only allows games like Banjo-Kazooie to be controlled as they were originally designed, but also more closely approximates the feeling of playing on an arcade cabinet, handy because there are several arcade collections in Evercade's cartridge library.</p><p>The sticks themselves are smaller than on, say, a <a href="https://www.tomsguide.com/reviews/ps5">PS5</a> DualSense controller, but still feel sturdy, with a chunky click when you press them down, which I personally love.</p><h2 id="battery-life">Battery life</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="naKfy97pqWTi7BBCHCLKQe" name="Evercade Nexus-4" alt="Evercade Nexus displaying the cartridge library" src="https://cdn.mos.cms.futurecdn.net/naKfy97pqWTi7BBCHCLKQe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Evercade claims the Nexus boasts a battery life of “5+ hours,” and while in my testing it’s been closer to 4 hours when playing Banjo-Kazooie with LED brightness at its default setting, that’s still a lot more time than you’ll get from the Switch 2 or <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a>. </p><p>In my <a href="https://www.tomsguide.com/gaming/handheld-gaming/nintendo-switch-2-vs-steam-deck-oled-battery-test-theres-a-clear-winner-and-its-not-the-gaming-handheld-i-expected">Nintendo Switch 2 vs Steam Deck OLED battery life test</a>, I got 2 hours 40 minutes from the former, and a mere 2 hours 9 minutes from the latter. So, the Evercade Nexus wins in this category and should last you a domestic flight or train journey. </p><p>Of course, rival handhelds are running significantly more graphically complex games, so you would expect the Evercade Nexus to win here. But still, 4 hours is a solid overall battery life.</p><h2 class="article-body__section" id="section-evercade-nexus-review-the-downs"><span>Evercade Nexus review: The downs</span></h2><p>I appreciate Evercade’s celebration of all things retro, but a few modern features wouldn’t have gone amiss, and due to its flat design, it’s not the most comfortable handheld to hold. </p><h2 id="lack-of-built-in-grips">Lack of built-in grips</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dGFdz3XFinm96fTvShynFe" name="Evercade Nexus-6" alt="The back of the Evercade Nexus device" src="https://cdn.mos.cms.futurecdn.net/dGFdz3XFinm96fTvShynFe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>The back of the Evercade Nexus is sheer black plastic. It looks slick enough, but it means your fingers have nothing to grip, resting on the back of the device. This isn’t a problem in shorter bursts, but over multi-hour play sessions, it can become pretty uncomfortable.</p><p>I had a similar issue with the Nintendo Switch 2, and resolved it by housing my handheld in a <a href="https://www.tomsguide.com/gaming/nintendo/my-favorite-nintendo-switch-2-case-just-got-upgraded-and-now-its-even-better">dBrand Killswitch case</a>. Maybe third-party accessory makers (or Blaze Entertainment) will release a similar case for the Evercade Nexus. However, I wish the design had taken some inspiration from the Steam Deck OLED, which gives you something to grip with your resting fingers.</p><h2 id="no-suspend-feature">No suspend feature</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CbAs9ikL8Mr7BCnywgSiq" name="evercade-nexus-handheld-04" alt="Evercade Nexus playing Banjo-Kazooie in front of a Banjo-Kazooie Amiibo" src="https://cdn.mos.cms.futurecdn.net/CbAs9ikL8Mr7BCnywgSiq-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>My single biggest frustration with the Evercade Nexus is the lack of a suspend feature. Being able to put your handheld to "sleep" and then pick up right where you left off is such a common feature in modern devices that I didn’t realize how much I now rely on it.</p><p>On the Nexus, your options are on or off, and that’s it. This can be a major pain in games like Banjo-Kazooie when you're halfway through a level and need to pause for a period; it means either leaving it running (wasting battery life) or shutting down and losing your progress.</p><h2 id="a-little-underpowered">A little underpowered</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pXxUwJSCZxyHuAEckGgAw" name="evercade-nexus-handheld-02" alt="Evercade Nexus playing Banjo-Kazooie" src="https://cdn.mos.cms.futurecdn.net/pXxUwJSCZxyHuAEckGgAw-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>The Evercade Nexus isn't running blockbuster games, so naturally it's not as powerful as some of the mainstream handhelds out there. It doesn’t need to match their specs. However, this comparative lack of power is felt beyond games, such as in the Nexus’ lengthy boot-up, an annoyance exacerbated by the lack of a suspend feature. </p><p>In my testing, the Nexus boots up in 39 seconds, whereas the Nintendo Switch 2 takes nine seconds. Similarly, when loading into actual software, the Nexus took 16 seconds to begin Banjo-Kazooie, whereas the Switch 2 started the new Resident Evil 2 remake port in just six seconds. This is merely to start up the software as well. </p><h2 class="article-body__section" id="section-evercade-nexus-review-verdict"><span>Evercade Nexus review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p9SFBHqkaKvQfvTD854Hfn" name="Nexus Portable-4" alt="Evercade Nexus playing Banjo-Kazooie next to a stack of Evercade game cases" src="https://cdn.mos.cms.futurecdn.net/p9SFBHqkaKvQfvTD854Hfn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Evercade Nexus is a handheld for a very specific type of gamer. Anybody who wants a play experience rooted in classic games and who feels a little fed up with the baggage of modern gaming will almost certainly fall in love with this nifty retro handheld.</p><p>At an appealing $199 price point, it gets an awful lot right, and with a vast collection of cartridges available and Banjo-Kazooie as a pack-in, you won’t be short on great games to play. I do wish the design was more ergonomic, and at least a few staples of current-generation handhelds, like suspend, would have been appreciated. </p><p>Still, the Evercade platform has been described as “the vinyl of retro gaming,” and like with listening to vinyl records, perhaps some of the friction is part of the charm. So, if you fall into Evercade's niche, there's no reason not to step into the Nexus. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/handheld-gaming/evercade-nexus-review</link>
                                                                            <description>
                            <![CDATA[ Evercade Nexus is a cartridge-based handheld that serves as a well-timed reply to the pain points of modern-day gaming. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BqXeU5UzEtu4FQyLtTAdag</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/69oh8LkU5cYWZGrrY99M3e-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 16 Oct 2026 11:09:03 +0000</pubDate>                                                                                                                                <updated>Fri, 16 Oct 2026 11:18:49 +0000</updated>
                                                                                                                                            <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/69oh8LkU5cYWZGrrY99M3e-1920-80.jpg">
                                                            <media:credit><![CDATA[Future / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Evercade Nexus playing Banjo-Kazooie]]></media:description>                                                            <media:text><![CDATA[Evercade Nexus playing Banjo-Kazooie]]></media:text>
                                <media:title type="plain"><![CDATA[Evercade Nexus playing Banjo-Kazooie]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/69oh8LkU5cYWZGrrY99M3e-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In an era of gaming dominated by mandatory installs, always-online requirements, monthly subscriptions, and the ongoing outrage surrounding physical media and whether we actually own the games we buy, the Evercade Nexus is a well-timed retort. </p><p>The latest handheld games console from Blaze Entertainment, it’s a device that harkens back to a simpler era. Arguably a better time. When you’d buy a game, insert it into your console of choice, and start playing. No downloads. No online connection. No fuss.</p><p>It also represents a few firsts for the Evercade lineup. The Nexus boasts the largest display of any Evercade device, and is the first to sport dual analog sticks. It’s also fully compatible with the existing range of more than 80 Evercade cartridges, which offer titles from the very first generation of video games up to the 64-bit era. </p><p>The Evercade Nexus can’t compete outright with the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best gaming handhelds</a>, such as the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review">Asus ROG Ally X</a> or the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>. However, it’s not trying to outmuscle these devices and match their also compelling pitch of blockbuster games on the go. Instead, Evercade Nexus looks to the past to celebrate the best of what video games used to be. Find out more in my full Evercade Nexus review.</p><h2 class="article-body__section" id="section-evercade-nexus-review-cheat-sheet"><span>Evercade Nexus review: Cheat Sheet</span></h2><ul><li><strong>What is it? </strong>The latest handheld hardware in the Evercade lineup, the Nexus is the biggest redesign of the range in four years, designed with 32-bit and 64-bit games in mind.</li><li><strong>Who is it for? </strong>Nostalgia gamers and retro collectors, and anyone who’s ever uttered the phrase “they don’t make them like they used to.”</li><li><strong>What does it cost? </strong><a href="https://www.amazon.com/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GVW2JHQ7/" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GTWLQ439/" target="_blank" rel="nofollow">£169</a></li><li><strong>What’s good? </strong>The focus on retro play, physical cartridges (which you actually own), the addition of dual analog sticks, solid battery life, and it comes bundled with Banjo-Kazooie</li><li><strong>What’s not? </strong>The lack of built-in grips can make long play sessions uncomfortable, the absence of a suspend feature, and weaker specs make boot-up times lengthy</li></ul><h2 class="article-body__section" id="section-evercade-nexus-review-specs"><span>Evercade Nexus review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GVW2JHQ7/" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Evercade-Nexus-Banjo-Kazooie-Double-Pack/dp/B0GTWLQ439/" target="_blank" rel="nofollow">£169</a></p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>0.9lbs</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>8.46 × 4.37 × 1.34 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>Quad Core 1.5Ghz</p></td></tr><tr><td class="firstcol " ><p><strong>Memory</strong></p></td><td  ><p>512mb DDR RAM</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>5.89-nch IPS HD, 500+ nit</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1 X USB-C, 1 x 3.5mm headphone jack, 1 x Evercade cartridge slot</p></td></tr><tr><td class="firstcol " ><p><strong>Wireless connectivity</strong></p></td><td  ><p>WiFi 6 5Ghz/2.4Ghz</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life</strong></p></td><td  ><p>5+ hours (Evercade provided figure)</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-evercade-nexus-review-the-ups"><span>Evercade Nexus review: The ups</span></h2><p>The Evercade Nexus is a dream handheld for retro gaming fans. It’s simple to use and doesn't demand extensive setup and game installations. It's compatible with 80+ cartridges and offers the best play experience on any Evercade device to date thanks to its dual analog sticks. Plus, it comes bundled with two platforming classics. </p><h2 id="back-to-basics">Back to basics</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7sNv9rkATCsAQBoKfUrqPe" name="Evercade Nexus-2" alt="Evercade Nexus playing Banjo-Kazooie" src="https://cdn.mos.cms.futurecdn.net/7sNv9rkATCsAQBoKfUrqPe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Switching on the Evercade Nexus for the first time was a surprisingly novel experience. Turn on a brand new gaming device in 2026, and you’ll typically be required to sign in to an online account (or create one), run through a series of setup menus, and then likely spend your first couple of hours with your new hardware watching a download bar slowly crawl along. </p><p>Not with the Nexus. The setup was short and simple. I connected the device to my home Wi-Fi network, installed a small system firmware update, and then was let loose to start playing. No need to enter personal information, select an online ID (the good ones are always taken), or endure pop-ups encouraging me to sign up for any form of subscription service.</p><p>Evercade Nexus strips away the hurdles that have come to define modern gaming. It harkens back to an era when you bought a console, inserted a disc or cartridge (depending on the era), and then could be playing your shiny new game within moments. </p><h2 id="cartridge-collection">Cartridge collection</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SQzzsvfrJctZKQVsjzuPQe" name="Evercade Nexus-8" alt="Evercade Nexus surrounded by three Evercade cartridge cases" src="https://cdn.mos.cms.futurecdn.net/SQzzsvfrJctZKQVsjzuPQe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>The Evercade Nexus doesn’t even have a digital storefront on its homescreen. And the only digital game available is a rotating “Game of the Month” — as I write this, it's a simple side-scrolling platformer called “Flearun!”. There are more than 700 games playable on Evercade Nexus, but these are all found on physical cartridges, rather than downloadable from a digital store. </p><p>Cartridges are the crux of the Evercade ecosystem, and there is plenty of choice. There are carts for legendary franchises, such as Tomb Raider, DOOM and Duke Nukem, alongside collections dedicated to games published by Activision, Visco, NeoGeo, Piko, Atari and Interplay. </p><p>Once you buy a cartridge, it’s yours to treasure. Or loan to a friend. Or sell to somebody else. It's your choice. You own the game and can do as you wish. There's no digital license that can be revoked, or need to download anything. Just plug in and start playing.</p><p>Each Evercade cartridge is also compatible with the entire Evercade device range, from the newest Nexus down to the <a href="https://www.tomsguide.com/reviews/evercade">original Evercade handheld</a> released in 2020. </p><h2 id="banjo-kazooie-bundle">Banjo-Kazooie Bundle</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Jsq2VZEMjUPXoRGVT7rByd" name="Evercade Nexus-5" alt="Evercade Nexus cases and cartridge for Banjo-Kazooie" src="https://cdn.mos.cms.futurecdn.net/Jsq2VZEMjUPXoRGVT7rByd-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>At launch, the Evercade Nexus comes bundled with the Banjo-Kazooie Double Pack, a collection comprising two 3D platformers released on the Nintendo 64: Banjo-Kazooie and Banjo-Tootie. </p><p>I’ll fully admit a nostalgic bias towards the iconic bear and bird — Banjo-Kazooie was the first video game I <em>ever</em> played — but even putting this youthful fondness aside, the games make for a great showcase of the Nexus. </p><p>The lush greens of Spiral Mountain, Banjo-Kazooie’s starting area, look vibrant on the device’s 5.89-inch display, and they’re games designed around analog sticks, which brings me neatly into one of the Nexus’ biggest upgrades…</p><h2 id="dual-analog-sticks">Dual analog sticks</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BqC26mFjYdTnLZxnTLKMQe" name="Evercade Nexus-7" alt="Evercade Nexus handheld, focused on the left analog stick" src="https://cdn.mos.cms.futurecdn.net/BqC26mFjYdTnLZxnTLKMQe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Okay, so a handheld with dual analog sticks is hardly a revelation in 2026. The PSP and Nintendo 3DS days of single sticks, which functioned more like cumbersome analog nubs, are long gone. </p><p>However, the Nexus is the first Evercade handheld device to sport two analog sticks. This not only allows games like Banjo-Kazooie to be controlled as they were originally designed, but also more closely approximates the feeling of playing on an arcade cabinet, handy because there are several arcade collections in Evercade's cartridge library.</p><p>The sticks themselves are smaller than on, say, a <a href="https://www.tomsguide.com/reviews/ps5">PS5</a> DualSense controller, but still feel sturdy, with a chunky click when you press them down, which I personally love.</p><h2 id="battery-life">Battery life</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="naKfy97pqWTi7BBCHCLKQe" name="Evercade Nexus-4" alt="Evercade Nexus displaying the cartridge library" src="https://cdn.mos.cms.futurecdn.net/naKfy97pqWTi7BBCHCLKQe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Evercade claims the Nexus boasts a battery life of “5+ hours,” and while in my testing it’s been closer to 4 hours when playing Banjo-Kazooie with LED brightness at its default setting, that’s still a lot more time than you’ll get from the Switch 2 or <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a>. </p><p>In my <a href="https://www.tomsguide.com/gaming/handheld-gaming/nintendo-switch-2-vs-steam-deck-oled-battery-test-theres-a-clear-winner-and-its-not-the-gaming-handheld-i-expected">Nintendo Switch 2 vs Steam Deck OLED battery life test</a>, I got 2 hours 40 minutes from the former, and a mere 2 hours 9 minutes from the latter. So, the Evercade Nexus wins in this category and should last you a domestic flight or train journey. </p><p>Of course, rival handhelds are running significantly more graphically complex games, so you would expect the Evercade Nexus to win here. But still, 4 hours is a solid overall battery life.</p><h2 class="article-body__section" id="section-evercade-nexus-review-the-downs"><span>Evercade Nexus review: The downs</span></h2><p>I appreciate Evercade’s celebration of all things retro, but a few modern features wouldn’t have gone amiss, and due to its flat design, it’s not the most comfortable handheld to hold. </p><h2 id="lack-of-built-in-grips">Lack of built-in grips</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dGFdz3XFinm96fTvShynFe" name="Evercade Nexus-6" alt="The back of the Evercade Nexus device" src="https://cdn.mos.cms.futurecdn.net/dGFdz3XFinm96fTvShynFe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>The back of the Evercade Nexus is sheer black plastic. It looks slick enough, but it means your fingers have nothing to grip, resting on the back of the device. This isn’t a problem in shorter bursts, but over multi-hour play sessions, it can become pretty uncomfortable.</p><p>I had a similar issue with the Nintendo Switch 2, and resolved it by housing my handheld in a <a href="https://www.tomsguide.com/gaming/nintendo/my-favorite-nintendo-switch-2-case-just-got-upgraded-and-now-its-even-better">dBrand Killswitch case</a>. Maybe third-party accessory makers (or Blaze Entertainment) will release a similar case for the Evercade Nexus. However, I wish the design had taken some inspiration from the Steam Deck OLED, which gives you something to grip with your resting fingers.</p><h2 id="no-suspend-feature">No suspend feature</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CbAs9ikL8Mr7BCnywgSiq" name="evercade-nexus-handheld-04" alt="Evercade Nexus playing Banjo-Kazooie in front of a Banjo-Kazooie Amiibo" src="https://cdn.mos.cms.futurecdn.net/CbAs9ikL8Mr7BCnywgSiq-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>My single biggest frustration with the Evercade Nexus is the lack of a suspend feature. Being able to put your handheld to "sleep" and then pick up right where you left off is such a common feature in modern devices that I didn’t realize how much I now rely on it.</p><p>On the Nexus, your options are on or off, and that’s it. This can be a major pain in games like Banjo-Kazooie when you're halfway through a level and need to pause for a period; it means either leaving it running (wasting battery life) or shutting down and losing your progress.</p><h2 id="a-little-underpowered">A little underpowered</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pXxUwJSCZxyHuAEckGgAw" name="evercade-nexus-handheld-02" alt="Evercade Nexus playing Banjo-Kazooie" src="https://cdn.mos.cms.futurecdn.net/pXxUwJSCZxyHuAEckGgAw-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>The Evercade Nexus isn't running blockbuster games, so naturally it's not as powerful as some of the mainstream handhelds out there. It doesn’t need to match their specs. However, this comparative lack of power is felt beyond games, such as in the Nexus’ lengthy boot-up, an annoyance exacerbated by the lack of a suspend feature. </p><p>In my testing, the Nexus boots up in 39 seconds, whereas the Nintendo Switch 2 takes nine seconds. Similarly, when loading into actual software, the Nexus took 16 seconds to begin Banjo-Kazooie, whereas the Switch 2 started the new Resident Evil 2 remake port in just six seconds. This is merely to start up the software as well. </p><h2 class="article-body__section" id="section-evercade-nexus-review-verdict"><span>Evercade Nexus review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="p9SFBHqkaKvQfvTD854Hfn" name="Nexus Portable-4" alt="Evercade Nexus playing Banjo-Kazooie next to a stack of Evercade game cases" src="https://cdn.mos.cms.futurecdn.net/p9SFBHqkaKvQfvTD854Hfn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Evercade Nexus is a handheld for a very specific type of gamer. Anybody who wants a play experience rooted in classic games and who feels a little fed up with the baggage of modern gaming will almost certainly fall in love with this nifty retro handheld.</p><p>At an appealing $199 price point, it gets an awful lot right, and with a vast collection of cartridges available and Banjo-Kazooie as a pack-in, you won’t be short on great games to play. I do wish the design was more ergonomic, and at least a few staples of current-generation handhelds, like suspend, would have been appreciated. </p><p>Still, the Evercade platform has been described as “the vinyl of retro gaming,” and like with listening to vinyl records, perhaps some of the friction is part of the charm. So, if you fall into Evercade's niche, there's no reason not to step into the Nexus. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Razer Barracuda V2 Pro packs some bite with its outstanding sound and comfortable fit — but is it worth $199? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Razer knows how to make a good gaming headset, and it’s done it again with the Barracuda V2 Pro. Designed for PC, console and mobile gamers, the Barracuda V2 Pro boasts good ANC packed into a practical and comfortable design. Its immersive and detailed in-game sound quality is its biggest selling point, as is the extensive customization via desktop and mobile apps.</p><p>But the Barracuda V2 Pro enters a crowded market, and it takes a lot to stand out. Unfortunately, its mic performance is middling and the build quality doesn’t feel as premium as its $199 price tag. But if all you care about is sound and money is no object to you, it’s hard to fault the Barracuda V2 Pro.</p><p>To find out if this is the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best gaming headset</a> for you, read my full Razer Barracuda V2 Pro review.</p><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-cheat-sheet"><span>Razer Barracuda V2 Pro review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>A mid-range gaming headset for PC and consoles</li><li><strong>Who is it for? </strong>Gamers who need a headset with ANC</li><li><strong>How much does it cost? </strong>$199 / £199</li><li><strong>What do we like?</strong> The comfortable and practical design, strong ANC, detailed in-game sound, and dual companion apps</li><li><strong>What don’t we like? </strong>The middling mic performance and subpar build quality</li></ul><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-specs"><span>Razer Barracuda V2 Pro review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$199 / £199</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black</p></td></tr><tr><td class="firstcol " ><p><strong>Platforms</strong></p></td><td  ><p>PC, PlayStation 5, Nintendo Switch 2, Nintendo Switch, Steam Deck</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4GHz HyperSpeed Wireless, Bluetooth 6.0, USB-C wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>70 hours</p></td></tr><tr><td class="firstcol " ><p><strong>Frequency response</strong></p></td><td  ><p>12-20,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Drivers</strong></p></td><td  ><p>40mm TriForce Bio-Cellulose</p></td></tr><tr><td class="firstcol " ><p><strong>Paired devices max</strong></p></td><td  ><p>2</p></td></tr><tr><td class="firstcol " ><p><strong>Multipoint connectivity</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Microphone</strong></p></td><td  ><p>Detachable boom + built-in dual beamforming</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>10.05 ounces</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-the-ups"><span>Razer Barracuda V2 Pro review: The ups</span></h2><p>From its practical and comfortable design, to its good ANC and detailed in-game sound, the Razer Barracuda V2 Pro is a competent gaming headset.</p><h2 id="low-key-and-practical-design">Low-key and practical design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PTRYZnbP4CxVaVNNK7njkP" name="Razer_barracudaV2Pro_ 3.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/PTRYZnbP4CxVaVNNK7njkP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro is an unassuming, low-key headset as there’s nothing flashy about its design — which is great news for people who prefer their gadgets free of RGB lighting. It looks like any other set of cans: all black with minimal branding, fit for wearing when you’re out and about, too. I personally prefer the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review">Razer BlackShark V3 Pro</a>’s ($249) aviation-style design, but it certainly draws attention to itself (which the Barracuda V2 Pro doesn’t).</p><p>I love the Barracuda V2 Pro’s practicality. Its earcups fold down to make it easy to carry and travel with, and I was able to fit the headset in my already full-to-the-brim backpack. What I love most about the Barracuda V2 Pro’s design is its dongle slot, located underneath the magnetic faceplate on the left earcup.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qEbR7K9ZTVeE2RbFbWbodQ" name="Razer_barracudaV2Pro_ 6.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/qEbR7K9ZTVeE2RbFbWbodQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As someone who tests many, many keyboards, mice and other gaming peripherals, I often find myself complaining about the lack of dongle storage, as many brands don’t offer replacements if you lose the original. Thankfully, the dedicated dongle slot on the Barracuda V2 Pro means you don’t have to worry about losing the 2.4GHz receiver… unless you’re forgetful; I can’t help you there.</p><h2 id="extremely-comfortable">Extremely comfortable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vLqUd3dRxkGqENSRXkxQeQ" name="Razer_barracudaV2Pro_ 7.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/vLqUd3dRxkGqENSRXkxQeQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’ve always stood by the belief that there’s no point in spending any amount of money on a gaming headset if said headset makes your ears or head hurt. Well, the Razer Barracuda V2 Pro is an extremely comfortable set of cans, I can tell you that for nothing! The Barracuda V2 Pro utilizes plush leatherette memory foam cushions as well as a soft headband, both of which make the headset perfect for all-day wear or long gaming sessions.</p><p>The Barracuda V2 Pro isn’t very heavy to wear for extended periods of time either, weighing just 10.05 ounces. It feels weightless, really, and is lighter than the competition, like the Logitech G Pro X3 Lightspeed ($249, 12.5 ounces), <a href="https://www.tomsguide.com/gaming/gaming-peripherals/hyperx-cloud-iii-s-wireless-review">HyperX Cloud III S Wireless</a> ($179, 12.05 ounces), the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/fractal-design-scape-review">Fractal Design Scape</a> ($199, 12oz) and the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-delta-ii-gaming-headset-review">Asus ROG Delta II</a> ($229, 11.21 ounces). I wore the Barracuda V2 Pro for six straight hours and didn’t feel any discomfort whatsoever.</p><h2 id="simultaneous-multipoint-connectivity">Simultaneous multipoint connectivity</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="joA4VAxEREreRtDr5GYt8P" name="Razer_barracudaV2Pro_ 4.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/joA4VAxEREreRtDr5GYt8P-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I think multipoint connectivity is great, as it enables you to swap between two (or more) sources as and when needed. But you know what’s even better? Simultaneous multipoint, like on the Razer Barracuda V2 Pro. Basically, for instance, if you have the headset connected to your console over 2.4GHz and connected to your phone over Bluetooth, you can listen to both at the same time. No need to pause your game when you get a call, or press a button to switch to Bluetooth when you want to watch YouTube Shorts between gaming sessions.</p><p>Audio mixing, surprisingly, isn’t a common feature on gaming headsets, as you won’t find it on the likes of the Logitech G Pro X3 Lightspeed or the Fractal Design Scape — but it’s there on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-7-gen-2-review">SteelSeries Arctis Nova 7 Gen 2</a> ($199). It’s so convenient, and I think every manufacturer should start implementing it.</p><h2 id="detailed-in-game-sound">Detailed in-game sound</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rtwfyT5FXcVSNNEThaS8sQ" name="Razer_barracudaV2Pro_ 9.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/rtwfyT5FXcVSNNEThaS8sQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro costs nearly $200, and for that price, you’re getting outstanding and immersive in-game sound. The cans are fitted with 40mm drivers — Razer’s proprietary TriForce Bio-Cellulose drivers, if you want to get technical. According to Razer, these keep audio distortion-free and deliver rich mids, deep bass and crystal clear highs. I can confirm that that is, in fact, true. I tested the headset by playing a few of my favorite games on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-slim">PS5 Slim</a>.</p><p>In <a href="https://www.tomsguide.com/gaming/ghost-of-yotei-review">Ghost of Yotei</a>, the clash of katanas cut cleanly through the mix as the treble remained crisp and sharp. Every parry, deflection and finishing blow had a satisfying edge. I also liked how the swish of incoming attacks helped make the swordplay feel fast and reactive. Exploring Ezo felt immersive, too, as the higher frequencies brought out subtle environmental details, like rustling of leaves and the hiss of the wind sweeping across the open landscapes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8S6qwBBR5iisbpqiz3GhdQ" name="Razer_barracudaV2Pro_ 8.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/8S6qwBBR5iisbpqiz3GhdQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To test the Barracuda V2 Pro’s spacious soundstage, I played <a href="https://www.tomsguide.com/gaming/clair-obscur-expedition-33-review">Clair Obscur: Expedition 33</a>, and I was very impressed with how the cans handled the game’s orchestral score and atmospheric effects. The power ballads didn’t overwhelm the combat sounds or dialogue, maintaining good separation throughout. Timing your parries in Expedition 33 has you relying on visual as well as audio cues, and even with the background music playing loudly, I was able to clearly hear said cues.</p><p>If you’re gaming on PC, you get access to THX Spatial Audio+ 7.1.4 which essentially creates a three-dimensional soundstage, and it can give you a competitive advantage in games like Counter-Strike 2. When I tried it, footsteps, reloads and distant gunfire felt separated rather than compressed into a flat mix. Everything sounded like it was coming from above or around me, and I was able to pinpoint enemy positions before engaging, which helped me sneak up on other players.</p><p>The Barracuda V2 Pro really doesn’t give you much to complain about in the area that matters most for a gaming headset.</p><h2 id="good-anc-performance">Good ANC performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J3CY97WzLpdgstBPQmDKiP" name="Razer_barracudaV2Pro_ 5.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/J3CY97WzLpdgstBPQmDKiP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of the features that sets the Razer Barracuda V2 Pro apart from the competition is the presence of active noise cancelation (ANC). You won’t find it on many gaming headsets in this price range — it’s absent from the SteelSeries Arctis Nova 7 Gen 2, the Logitech G Pro X3 Lightspeed and the Fractal Design Scape.</p><p>ANC on the Barracuda V2 Pro is fairly strong — though it doesn’t block out the world like the Razer BlackShark V3 Pro does. Still, it’s great. Indoors, my partner had to tap on my shoulder to get my attention, and I couldn’t hear the kettle boiling when I was standing right next to it either. Outdoors, the headset did well to block out idle chatter in the store and on the bus — although I could still hear the bus’ rattling, which the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/alienware-pro-wireless-gaming-headset-review">Alienware Pro Wireless Gaming Headset</a> ($229) completely cut out. Still good, though!</p><p>Given that the Barracuda V2 Pro is advertised as the perfect gaming headset for mobile gaming, even on the move, I’m pleased it boasts good ANC performance to keep you locked in.</p><h2 id="extensive-customization">Extensive customization</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/WqwVRWaMvLFoLv3EZezGh3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/MqJgFWdEuo3bxwAgg9TSn3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/jtBamFaEguSUWrJWBVhdx3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/CxDE95DPWoZ25M8j6okht3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/rYapJiC6fTHb8axfgqeN34-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/yjW8SYAxLcrcVoS8Carj54-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure></figure><p>There are two ways of customizing the Razer Barracuda V2 Pro: either via <a href="https://www.razer.com/synapse-4" target="_blank" rel="nofollow">Synapse</a> on Windows, or the <a href="https://apps.apple.com/gb/app/razer-audio/id1525531841" target="_blank" rel="nofollow">Razer Audio</a> app on mobile. Razer Synapse offers extensive customization, enabling you to adjust the 10-band equalizer, toggle and adjust THX Spatial Audio, adjust the mic’s EQ, and apply sound profiles to all the games on your PC. The software sports a clean interface with everything being easy to understand.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="r58R7oYg38vHyS89mxgnr3" name="Barracuda-V2-Pro-app-1" alt="Razer Synapse and Razer Audio app screenshot" src="https://cdn.mos.cms.futurecdn.net/r58R7oYg38vHyS89mxgnr3-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1510" height="850" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/r58R7oYg38vHyS89mxgnr3-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Razer / Tom's Guide)</span></figcaption></figure><p>Then you’ve got Razer Audio — which I tested on my <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-10-pro-xl-review">Google Pixel 10 Pro XL</a> — for on-the-fly customization. The app is user-friendly and gives you quick access to EQ presets and adjustments, ANC level, and mic monitoring. It’s basically a condensed version of Synapse and the only feature you miss out on is THX Spatial Audio, which works only on Windows anyway.</p><p>Many headsets lock you out of customization if you don’t have a Windows laptop to hand, like the HyperX Cloud III S Wireless or the Asus ROG Delta II. It’s a nice touch on Razer’s behalf to add mobile app support for the Barracuda V2 Pro — although the Fractal Design Scape uses a web-based app, which makes it even more versatile.</p><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-the-downs"><span>Razer Barracuda V2 Pro review: The downs</span></h2><p>The Razer Barracuda V2 Pro isn’t perfect as its mic performance isn’t the strongest, and the build quality doesn’t match the premium price tag.</p><h2 id="middling-mic-performance">Middling mic performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8P983K75Lekp3uGsKstprN" name="Razer_barracudaV2Pro_ 1.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/8P983K75Lekp3uGsKstprN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro’s mic performance isn’t anything to write home about. The headset is fitted with dual beamforming mics, and it comes with a detachable boom mic, too. The beamforming mics sound… fine, and are good to have if you’re gaming on the train and don’t want to draw much attention to yourself. When I tested them, my voice sounded flat and neutral but slightly tinny.</p><p>I’d recommend using the boom mic as it makes you sound better — but I don’t think you sound like you’re talking into a headset that costs $199. My voice sounded a little clipped, so I wouldn’t recommend using the Barracuda V2 Pro’s alone if you’re a streamer or content creator, though those you’re playing games with online should be able to hear and understand you just fine. If you want a headset with a crystal clear mic, the Logitech G Pro X3 Lightspeed utilizes a Blue Yeti microphone and boasts strong performance.</p><h2 id="build-quality-doesn-t-feel-as-premium">Build quality doesn’t feel as premium</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YZbmMRyuxZzS2gw5RYJpjP" name="Razer_barracudaV2Pro_ 10.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/YZbmMRyuxZzS2gw5RYJpjP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>My biggest issue with the Razer Barracuda V2 Pro is that it doesn’t feel premium — which would have been absolutely fine if the headset didn’t cost nearly $200. For the retail price of $199, the headset feels overly plasticky and lightweight at just 10.05 ounces.</p><p>My go-to headset is the Razer BlackShark V3 Pro, which costs $50 more than the Barracuda V2 Pro — but the difference in build quality feels night and day. The slightly pricier Alienware Pro Wireless Gaming Headset and Logitech G Pro X3 Lightspeed (both $229) feel so much better than the Barracuda V2 Pro. What gives, Razer?</p><h2 id="expensive">Expensive</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HLF5jqNQvHBUCo4rQdmjgP" name="Razer_barracudaV2Pro_.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:0,l:519,cw:960,ch:540,q:80/HLF5jqNQvHBUCo4rQdmjgP.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is probably a pre-purchase consideration rather than an outright dealbreaker: the Razer Barracuda V2 Pro doesn’t come cheap. This headset retails for $199 / £199. Now, this isn’t outrageously expensive like the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">SteelSeries Arctis Nova Elite</a> ($599), but it’s a crowded market the Barracuda V2 Pro enters. It faces fierce competition from the likes of the Fractal Design Scape ($199) and the HyperX Cloud III S Wireless ($179).</p><p>You’ve also got heavy-hitters like the <a href="https://www.tomsguide.com/gaming/peripherals/steelseries-arctis-nova-5-review">SteelSeries Arctis Nova 5</a> ($129) and the Asus ROG Pelta ($129) offering excellent performance at much lower prices — so does it still make sense to buy the Barracuda V2 Pro? Well, you’re getting active noise cancelation, extensive customization, and one of the most comfortable fits around.</p><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-verdict"><span>Razer Barracuda V2 Pro review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HLF5jqNQvHBUCo4rQdmjgP" name="Razer_barracudaV2Pro_.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/HLF5jqNQvHBUCo4rQdmjgP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro makes quite a splash, delivering immersive and detailed in-game audio, strong ANC indoors and outdoors, and exceptional comfort in a practical design. Its wide and spacious soundstage steals the show, whether you’re exploring vast grasslands or trying to sneak up on opponents. Razer’s desktop and mobile apps offer extensive customization, too.</p><p>However, the Barracuda V2 Pro isn’t quite perfect. Though it costs $199, its plasticky build quality doesn’t feel premium enough for the price. Mic performance is also merely adequate. Still, if comfort, ANC and immersive sound are your priorities, the Barracuda V2 Pro is easy to recommend, and true to its name, it’s got some bite.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/razer-barracuda-v2-pro-review</link>
                                                                            <description>
                            <![CDATA[ The Razer Barracuda V2 Pro boasts immersive sound, good ANC and extensive customization, packed into an understated but comfortable design. But it has flaws. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4vUdSrSKJbofFNfueXKTt5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JQdXFn5kXWHPASo3iHdoLR-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 15 Oct 2026 15:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7SPsEgwiRa9MdL3BPuVJUW-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&amp;#39;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&amp;#39;s also a licensed drone pilot and cameras expert so you&amp;#39;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JQdXFn5kXWHPASo3iHdoLR-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A black Razer Barracuda V2 Pro gaming headset]]></media:description>                                                            <media:text><![CDATA[A black Razer Barracuda V2 Pro gaming headset]]></media:text>
                                <media:title type="plain"><![CDATA[A black Razer Barracuda V2 Pro gaming headset]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JQdXFn5kXWHPASo3iHdoLR-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Razer knows how to make a good gaming headset, and it’s done it again with the Barracuda V2 Pro. Designed for PC, console and mobile gamers, the Barracuda V2 Pro boasts good ANC packed into a practical and comfortable design. Its immersive and detailed in-game sound quality is its biggest selling point, as is the extensive customization via desktop and mobile apps.</p><p>But the Barracuda V2 Pro enters a crowded market, and it takes a lot to stand out. Unfortunately, its mic performance is middling and the build quality doesn’t feel as premium as its $199 price tag. But if all you care about is sound and money is no object to you, it’s hard to fault the Barracuda V2 Pro.</p><p>To find out if this is the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best gaming headset</a> for you, read my full Razer Barracuda V2 Pro review.</p><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-cheat-sheet"><span>Razer Barracuda V2 Pro review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>A mid-range gaming headset for PC and consoles</li><li><strong>Who is it for? </strong>Gamers who need a headset with ANC</li><li><strong>How much does it cost? </strong>$199 / £199</li><li><strong>What do we like?</strong> The comfortable and practical design, strong ANC, detailed in-game sound, and dual companion apps</li><li><strong>What don’t we like? </strong>The middling mic performance and subpar build quality</li></ul><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-specs"><span>Razer Barracuda V2 Pro review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$199 / £199</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black</p></td></tr><tr><td class="firstcol " ><p><strong>Platforms</strong></p></td><td  ><p>PC, PlayStation 5, Nintendo Switch 2, Nintendo Switch, Steam Deck</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4GHz HyperSpeed Wireless, Bluetooth 6.0, USB-C wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>70 hours</p></td></tr><tr><td class="firstcol " ><p><strong>Frequency response</strong></p></td><td  ><p>12-20,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Drivers</strong></p></td><td  ><p>40mm TriForce Bio-Cellulose</p></td></tr><tr><td class="firstcol " ><p><strong>Paired devices max</strong></p></td><td  ><p>2</p></td></tr><tr><td class="firstcol " ><p><strong>Multipoint connectivity</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Microphone</strong></p></td><td  ><p>Detachable boom + built-in dual beamforming</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>10.05 ounces</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-the-ups"><span>Razer Barracuda V2 Pro review: The ups</span></h2><p>From its practical and comfortable design, to its good ANC and detailed in-game sound, the Razer Barracuda V2 Pro is a competent gaming headset.</p><h2 id="low-key-and-practical-design">Low-key and practical design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PTRYZnbP4CxVaVNNK7njkP" name="Razer_barracudaV2Pro_ 3.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/PTRYZnbP4CxVaVNNK7njkP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro is an unassuming, low-key headset as there’s nothing flashy about its design — which is great news for people who prefer their gadgets free of RGB lighting. It looks like any other set of cans: all black with minimal branding, fit for wearing when you’re out and about, too. I personally prefer the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review">Razer BlackShark V3 Pro</a>’s ($249) aviation-style design, but it certainly draws attention to itself (which the Barracuda V2 Pro doesn’t).</p><p>I love the Barracuda V2 Pro’s practicality. Its earcups fold down to make it easy to carry and travel with, and I was able to fit the headset in my already full-to-the-brim backpack. What I love most about the Barracuda V2 Pro’s design is its dongle slot, located underneath the magnetic faceplate on the left earcup.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qEbR7K9ZTVeE2RbFbWbodQ" name="Razer_barracudaV2Pro_ 6.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/qEbR7K9ZTVeE2RbFbWbodQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As someone who tests many, many keyboards, mice and other gaming peripherals, I often find myself complaining about the lack of dongle storage, as many brands don’t offer replacements if you lose the original. Thankfully, the dedicated dongle slot on the Barracuda V2 Pro means you don’t have to worry about losing the 2.4GHz receiver… unless you’re forgetful; I can’t help you there.</p><h2 id="extremely-comfortable">Extremely comfortable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vLqUd3dRxkGqENSRXkxQeQ" name="Razer_barracudaV2Pro_ 7.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/vLqUd3dRxkGqENSRXkxQeQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I’ve always stood by the belief that there’s no point in spending any amount of money on a gaming headset if said headset makes your ears or head hurt. Well, the Razer Barracuda V2 Pro is an extremely comfortable set of cans, I can tell you that for nothing! The Barracuda V2 Pro utilizes plush leatherette memory foam cushions as well as a soft headband, both of which make the headset perfect for all-day wear or long gaming sessions.</p><p>The Barracuda V2 Pro isn’t very heavy to wear for extended periods of time either, weighing just 10.05 ounces. It feels weightless, really, and is lighter than the competition, like the Logitech G Pro X3 Lightspeed ($249, 12.5 ounces), <a href="https://www.tomsguide.com/gaming/gaming-peripherals/hyperx-cloud-iii-s-wireless-review">HyperX Cloud III S Wireless</a> ($179, 12.05 ounces), the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/fractal-design-scape-review">Fractal Design Scape</a> ($199, 12oz) and the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-delta-ii-gaming-headset-review">Asus ROG Delta II</a> ($229, 11.21 ounces). I wore the Barracuda V2 Pro for six straight hours and didn’t feel any discomfort whatsoever.</p><h2 id="simultaneous-multipoint-connectivity">Simultaneous multipoint connectivity</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="joA4VAxEREreRtDr5GYt8P" name="Razer_barracudaV2Pro_ 4.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/joA4VAxEREreRtDr5GYt8P-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I think multipoint connectivity is great, as it enables you to swap between two (or more) sources as and when needed. But you know what’s even better? Simultaneous multipoint, like on the Razer Barracuda V2 Pro. Basically, for instance, if you have the headset connected to your console over 2.4GHz and connected to your phone over Bluetooth, you can listen to both at the same time. No need to pause your game when you get a call, or press a button to switch to Bluetooth when you want to watch YouTube Shorts between gaming sessions.</p><p>Audio mixing, surprisingly, isn’t a common feature on gaming headsets, as you won’t find it on the likes of the Logitech G Pro X3 Lightspeed or the Fractal Design Scape — but it’s there on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-7-gen-2-review">SteelSeries Arctis Nova 7 Gen 2</a> ($199). It’s so convenient, and I think every manufacturer should start implementing it.</p><h2 id="detailed-in-game-sound">Detailed in-game sound</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rtwfyT5FXcVSNNEThaS8sQ" name="Razer_barracudaV2Pro_ 9.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/rtwfyT5FXcVSNNEThaS8sQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro costs nearly $200, and for that price, you’re getting outstanding and immersive in-game sound. The cans are fitted with 40mm drivers — Razer’s proprietary TriForce Bio-Cellulose drivers, if you want to get technical. According to Razer, these keep audio distortion-free and deliver rich mids, deep bass and crystal clear highs. I can confirm that that is, in fact, true. I tested the headset by playing a few of my favorite games on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-slim">PS5 Slim</a>.</p><p>In <a href="https://www.tomsguide.com/gaming/ghost-of-yotei-review">Ghost of Yotei</a>, the clash of katanas cut cleanly through the mix as the treble remained crisp and sharp. Every parry, deflection and finishing blow had a satisfying edge. I also liked how the swish of incoming attacks helped make the swordplay feel fast and reactive. Exploring Ezo felt immersive, too, as the higher frequencies brought out subtle environmental details, like rustling of leaves and the hiss of the wind sweeping across the open landscapes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8S6qwBBR5iisbpqiz3GhdQ" name="Razer_barracudaV2Pro_ 8.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/8S6qwBBR5iisbpqiz3GhdQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To test the Barracuda V2 Pro’s spacious soundstage, I played <a href="https://www.tomsguide.com/gaming/clair-obscur-expedition-33-review">Clair Obscur: Expedition 33</a>, and I was very impressed with how the cans handled the game’s orchestral score and atmospheric effects. The power ballads didn’t overwhelm the combat sounds or dialogue, maintaining good separation throughout. Timing your parries in Expedition 33 has you relying on visual as well as audio cues, and even with the background music playing loudly, I was able to clearly hear said cues.</p><p>If you’re gaming on PC, you get access to THX Spatial Audio+ 7.1.4 which essentially creates a three-dimensional soundstage, and it can give you a competitive advantage in games like Counter-Strike 2. When I tried it, footsteps, reloads and distant gunfire felt separated rather than compressed into a flat mix. Everything sounded like it was coming from above or around me, and I was able to pinpoint enemy positions before engaging, which helped me sneak up on other players.</p><p>The Barracuda V2 Pro really doesn’t give you much to complain about in the area that matters most for a gaming headset.</p><h2 id="good-anc-performance">Good ANC performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J3CY97WzLpdgstBPQmDKiP" name="Razer_barracudaV2Pro_ 5.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/J3CY97WzLpdgstBPQmDKiP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of the features that sets the Razer Barracuda V2 Pro apart from the competition is the presence of active noise cancelation (ANC). You won’t find it on many gaming headsets in this price range — it’s absent from the SteelSeries Arctis Nova 7 Gen 2, the Logitech G Pro X3 Lightspeed and the Fractal Design Scape.</p><p>ANC on the Barracuda V2 Pro is fairly strong — though it doesn’t block out the world like the Razer BlackShark V3 Pro does. Still, it’s great. Indoors, my partner had to tap on my shoulder to get my attention, and I couldn’t hear the kettle boiling when I was standing right next to it either. Outdoors, the headset did well to block out idle chatter in the store and on the bus — although I could still hear the bus’ rattling, which the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/alienware-pro-wireless-gaming-headset-review">Alienware Pro Wireless Gaming Headset</a> ($229) completely cut out. Still good, though!</p><p>Given that the Barracuda V2 Pro is advertised as the perfect gaming headset for mobile gaming, even on the move, I’m pleased it boasts good ANC performance to keep you locked in.</p><h2 id="extensive-customization">Extensive customization</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/WqwVRWaMvLFoLv3EZezGh3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/MqJgFWdEuo3bxwAgg9TSn3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/jtBamFaEguSUWrJWBVhdx3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/CxDE95DPWoZ25M8j6okht3-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/rYapJiC6fTHb8axfgqeN34-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/yjW8SYAxLcrcVoS8Carj54-1920-80.jpg" alt="Razer Synapse and Razer Audio app screenshot" /><figcaption><small role="credit">Razer / Tom's Guide</small></figcaption></figure></figure><p>There are two ways of customizing the Razer Barracuda V2 Pro: either via <a href="https://www.razer.com/synapse-4" target="_blank" rel="nofollow">Synapse</a> on Windows, or the <a href="https://apps.apple.com/gb/app/razer-audio/id1525531841" target="_blank" rel="nofollow">Razer Audio</a> app on mobile. Razer Synapse offers extensive customization, enabling you to adjust the 10-band equalizer, toggle and adjust THX Spatial Audio, adjust the mic’s EQ, and apply sound profiles to all the games on your PC. The software sports a clean interface with everything being easy to understand.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="r58R7oYg38vHyS89mxgnr3" name="Barracuda-V2-Pro-app-1" alt="Razer Synapse and Razer Audio app screenshot" src="https://cdn.mos.cms.futurecdn.net/r58R7oYg38vHyS89mxgnr3-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1510" height="850" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/r58R7oYg38vHyS89mxgnr3-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Razer / Tom's Guide)</span></figcaption></figure><p>Then you’ve got Razer Audio — which I tested on my <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-10-pro-xl-review">Google Pixel 10 Pro XL</a> — for on-the-fly customization. The app is user-friendly and gives you quick access to EQ presets and adjustments, ANC level, and mic monitoring. It’s basically a condensed version of Synapse and the only feature you miss out on is THX Spatial Audio, which works only on Windows anyway.</p><p>Many headsets lock you out of customization if you don’t have a Windows laptop to hand, like the HyperX Cloud III S Wireless or the Asus ROG Delta II. It’s a nice touch on Razer’s behalf to add mobile app support for the Barracuda V2 Pro — although the Fractal Design Scape uses a web-based app, which makes it even more versatile.</p><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-the-downs"><span>Razer Barracuda V2 Pro review: The downs</span></h2><p>The Razer Barracuda V2 Pro isn’t perfect as its mic performance isn’t the strongest, and the build quality doesn’t match the premium price tag.</p><h2 id="middling-mic-performance">Middling mic performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8P983K75Lekp3uGsKstprN" name="Razer_barracudaV2Pro_ 1.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/8P983K75Lekp3uGsKstprN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro’s mic performance isn’t anything to write home about. The headset is fitted with dual beamforming mics, and it comes with a detachable boom mic, too. The beamforming mics sound… fine, and are good to have if you’re gaming on the train and don’t want to draw much attention to yourself. When I tested them, my voice sounded flat and neutral but slightly tinny.</p><p>I’d recommend using the boom mic as it makes you sound better — but I don’t think you sound like you’re talking into a headset that costs $199. My voice sounded a little clipped, so I wouldn’t recommend using the Barracuda V2 Pro’s alone if you’re a streamer or content creator, though those you’re playing games with online should be able to hear and understand you just fine. If you want a headset with a crystal clear mic, the Logitech G Pro X3 Lightspeed utilizes a Blue Yeti microphone and boasts strong performance.</p><h2 id="build-quality-doesn-t-feel-as-premium">Build quality doesn’t feel as premium</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YZbmMRyuxZzS2gw5RYJpjP" name="Razer_barracudaV2Pro_ 10.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/YZbmMRyuxZzS2gw5RYJpjP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>My biggest issue with the Razer Barracuda V2 Pro is that it doesn’t feel premium — which would have been absolutely fine if the headset didn’t cost nearly $200. For the retail price of $199, the headset feels overly plasticky and lightweight at just 10.05 ounces.</p><p>My go-to headset is the Razer BlackShark V3 Pro, which costs $50 more than the Barracuda V2 Pro — but the difference in build quality feels night and day. The slightly pricier Alienware Pro Wireless Gaming Headset and Logitech G Pro X3 Lightspeed (both $229) feel so much better than the Barracuda V2 Pro. What gives, Razer?</p><h2 id="expensive">Expensive</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HLF5jqNQvHBUCo4rQdmjgP" name="Razer_barracudaV2Pro_.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:0,l:519,cw:960,ch:540,q:80/HLF5jqNQvHBUCo4rQdmjgP.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is probably a pre-purchase consideration rather than an outright dealbreaker: the Razer Barracuda V2 Pro doesn’t come cheap. This headset retails for $199 / £199. Now, this isn’t outrageously expensive like the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">SteelSeries Arctis Nova Elite</a> ($599), but it’s a crowded market the Barracuda V2 Pro enters. It faces fierce competition from the likes of the Fractal Design Scape ($199) and the HyperX Cloud III S Wireless ($179).</p><p>You’ve also got heavy-hitters like the <a href="https://www.tomsguide.com/gaming/peripherals/steelseries-arctis-nova-5-review">SteelSeries Arctis Nova 5</a> ($129) and the Asus ROG Pelta ($129) offering excellent performance at much lower prices — so does it still make sense to buy the Barracuda V2 Pro? Well, you’re getting active noise cancelation, extensive customization, and one of the most comfortable fits around.</p><h2 class="article-body__section" id="section-razer-barracuda-v2-pro-review-verdict"><span>Razer Barracuda V2 Pro review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HLF5jqNQvHBUCo4rQdmjgP" name="Razer_barracudaV2Pro_.JPG" alt="A black Razer Barracuda V2 Pro gaming headset" src="https://cdn.mos.cms.futurecdn.net/HLF5jqNQvHBUCo4rQdmjgP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Razer Barracuda V2 Pro makes quite a splash, delivering immersive and detailed in-game audio, strong ANC indoors and outdoors, and exceptional comfort in a practical design. Its wide and spacious soundstage steals the show, whether you’re exploring vast grasslands or trying to sneak up on opponents. Razer’s desktop and mobile apps offer extensive customization, too.</p><p>However, the Barracuda V2 Pro isn’t quite perfect. Though it costs $199, its plasticky build quality doesn’t feel premium enough for the price. Mic performance is also merely adequate. Still, if comfort, ANC and immersive sound are your priorities, the Barracuda V2 Pro is easy to recommend, and true to its name, it’s got some bite.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I spent a week with Logitech's $249 gaming headset — now my ears hurt ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Logitech G Pro X3 Lightspeed is Logi’s latest competition headset, aimed at competitive players. As such, it’s intended to be paired alongside the rest of the brand’s Pro lineup: the <a href="https://www.tomsguide.com/computing/mice/logitech-g-pro-x3-superstrike-review">Logitech G Pro X3 SuperStrike</a> mouse and G Pro X2 Rapid keyboard.</p><p>The Lightspeed sounds fantastic, with a bright and expansive treble. It’s tuned for competitive play, but its drivers are super capable and a 10-band EQ lets you dial in the sound for a variety of different game genres. It’s lightweight, built well, and features impressive wireless range.</p><p>So is this the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best gaming headset</a> for you? Well, it isn’t perfect. While comfy, it gets a little hot. Its battery life is mediocre, and there are some crucial features missing given the high price. Find out more in my full Logitech G Pro X3 Lightspeed review.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-cheat-sheet"><span>Logitech G Pro X3 Lightspeed review: Cheat sheet</span></h2><ul><li><strong>What is it?</strong> A premium gaming headset from Logitech</li><li><strong>Who is it for? </strong>Competitive gamers</li><li><strong>What does it cost? </strong><a href="https://www.amazon.com/Logitech-PRO-Lightspeed-Gaming-Headset/dp/B0H8BH2C4V" target="_blank" rel="nofollow">$249</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-LIGHTSPEED-Gaming-Headset-Black/dp/B0HBWVC7KC" target="_blank" rel="nofollow">£229</a></li><li><strong>What do we like? </strong>The bright, detailed sound, custom EQ, lightweight design and long range</li><li><strong>What don’t we like? </strong>The earcups get hot, battery life is mediocre and I’d like more for the money</li></ul><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-specs"><span>Logitech G Pro X3 Lightspeed review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/Logitech-PRO-Lightspeed-Gaming-Headset/dp/B0H8BH2C4V" target="_blank" rel="nofollow">$249</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-LIGHTSPEED-Gaming-Headset-Black/dp/B0HBWVC7KC" target="_blank" rel="nofollow">£229</a></p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black; White; Magenta</p></td></tr><tr><td class="firstcol " ><p><strong>Platforms</strong></p></td><td  ><p>PC, macOS, PlayStation 5</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4GHz USB-A, Bluetooth 5.3, 3.5mm wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>50 hours</p></td></tr><tr><td class="firstcol " ><p><strong>Frequency response</strong></p></td><td  ><p>20-20,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Drivers</strong></p></td><td  ><p>50mm Graphene</p></td></tr><tr><td class="firstcol " ><p><strong>Paired devices max</strong></p></td><td  ><p>2</p></td></tr><tr><td class="firstcol " ><p><strong>Multipoint connectivity</strong></p></td><td  ><p>Yes (but not simultaneous)</p></td></tr><tr><td class="firstcol " ><p><strong>Microphone</strong></p></td><td  ><p>Detachable omnidirectional boom</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>12.5 ounces</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-the-ups"><span>Logitech G Pro X3 Lightspeed review: The ups</span></h2><p>The Pro X3 Lightspeed sounds great, with an FPS-oriented default tune but capable drivers and an excellent custom EQ. It’s light, comfy, built well, and has an impressive 98-foot range.</p><h2 id="detailed-sound-quality">Detailed sound quality</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:756px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="4qACLgpxatd3sTwb2qkj4X" name="Logitech_Prox3_Lightspeed_ 7.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:335,l:402,cw:756,ch:425,q:80/4qACLgpxatd3sTwb2qkj4X.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>You can tell immediately that the X3 Pro Lightspeed was designed with and for competitive FPS players. The default tuning is all treble, which is incredibly bright and expansive. Imagine is very solid, at least stereo-wise. Both characteristics proved excellent for FPS titles like “Wardogs” and, more importantly, “Counter-Strike 2” — I could easily detect and locate enemy cues like reloads and footsteps.</p><p>Supposedly this is a 7.1 headset, which is kinda misleading. There aren’t 7 surround speakers and a sub, so it’s not 7.1. This is just Logitech marketing speak for the fact that the Lightspeed is supposed to emulate a 7.1 channel surround system and therefore be good for surround sound gaming. Honestly, while I found stereo imaging great, 360 imaging was fairly run of the mill.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QckSH7BDNQiqDKYKJi8UxL" name="Logitech G Pro X3 Lightspeed_1" alt="The Logitech G Pro X3 Lightspeed being customized in Logitech's G Hub software" src="https://cdn.mos.cms.futurecdn.net/QckSH7BDNQiqDKYKJi8UxL-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/QckSH7BDNQiqDKYKJi8UxL-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Tom's Guide)</span></figcaption></figure><p>But back to that default tuning and treble. The emphasis on top end can be a little fatiguing, as the higher frequencies get a little harsh and piercing. Combined with a lack of mid-range clout, the Lightspeed sounds a little tinny and misses the depth I wanted for more atmospheric games like “Dune: Awakening”, “Valheim” and “Total War: Rome II”.</p><p>Thankfully, there’s a 10-band parametric EQ in the <a href="https://www.logitechg.com/en-us/software/ghub" target="_blank" rel="nofollow">G Hub</a> companion software, with a range of presets to tweak the sound. And extra thankfully, the Lightspeed’s drivers are really, really excellent, so they’ll handle pretty much anything you can EQ their way.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aUjBUE9mDcLurBEbFiRi4M" name="Logitech G Pro X3 Lightspeed_4" alt="The Logitech G Pro X3 Lightspeed being customized in Logitech's G Hub software" src="https://cdn.mos.cms.futurecdn.net/aUjBUE9mDcLurBEbFiRi4M-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/aUjBUE9mDcLurBEbFiRi4M-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Tom's Guide)</span></figcaption></figure><p>There’s a ‘Detailed’ preset which boosts the top end and, frankly, isn’t needed. The ‘Media’ preset solved most of the issues I had with harsh treble, while boosting bass. But it still missed the mid-range definition I wanted to make the melancholy, futurist synths of the “Dune: Awakening” soundtrack sing. I simply created a custom EQ based off ‘Media’ with some extra power in the mids.</p><p>Bass reproduction in particular is very impressive, with super warm, deep bass and even rumbly sub bass to make my ear drums quiver. The huge quakes of Dune’s sandworms smashing out and back into the sands of Arrakis was impressive to behold.</p><h2 id="supremely-lightweight-and-comfortable">Supremely lightweight and comfortable</h2><p>This is a seriously comfortable headset. The headband and earcups are thickly padded, making them gloriously soft and squishy. Earcup-wise, I prefer the slightly more spacious cups of my daily driver, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/fractal-design-scape-review">Fractal Design Scape</a> ($199), although I find the Lightspeed’s headband more comfortable over longer stints.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yAyFDBtURGXXhZ2s7fRL5X" name="Logitech_Prox3_Lightspeed_ 6.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/yAyFDBtURGXXhZ2s7fRL5X-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While not as lightweight as the 10-ounce <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-barracuda-v2-pro-review">Razer Barracuda V2 Pro</a> ($199), the Lightspeed is still fairly light at 12.5 ounces, and I experienced no neck fatigue even after eight hours of gameplay. My Scape is a touch lighter at 12 ounces, but there’s really not a lot in it. Neither weighed me down like the enormously heavy, 1.2lb <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-2-anc-review">Audeze Maxwell 2 ANC</a> ($429) — after testing that, anything lighter feels like a blessing. </p><p>The Lightspeed’s clamp force is really gentle, too, so I’ve not experienced any temple pain. The Scape is ever-so-slightly clampier, but again, there’s not much in it. Contrast both of these to the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-7-gen-2-review">SteelSeries Arctis Nova 7 Gen 2</a> ($199) and Nova Pro Omni ($399), which sometimes start to hurt my temples after a few hours — remember, though, that mileage will vary in this regard based on individual head anatomy.</p><p>My only comfort issue is around breathability, which I’ll come onto later.</p><h2 id="yet-built-beautifully">Yet built beautifully</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZFeQCLdDTw7SprmD6NNxue" name="Logitech_ProX2_RAPID 12.JPG" alt="A photo of the Logitech G Pro X2 Rapid keyboard in hot pink on a stone surface" src="https://cdn.mos.cms.futurecdn.net/ZFeQCLdDTw7SprmD6NNxue-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite that low weight, the X3 Lightspeed is built beautifully. The earcups feature milled metal plates. The earcup hangers are lightweight aluminum with adjustment markings on the outside and divots on the inside so you can quickly check the fit before putting it on, regardless of how you’re holding it. The soft leatherette headband features an embossed “PRO” logo, and there are curly cords linking the two earcups, like an old telephone — I’m a real sucker for that.</p><p>Admittedly, I prefer the Scandi sophistication of my Fractal Design Scape, and I think the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review">Razer BlackShark V3 Pro</a> ($249) looks a little sharper, but this is mainly because my test headset was in white, which I always think looks tacky. In black, the Lightspeed is particularly fetching and a rival to the BlackShark, although I wish Logitech had sent me a magenta version to match my pink X2 Rapid keyboard and X3 SuperStrike combo. </p><h2 id="typical-blue-yeti-microphone-quality">Typical Blue Yeti microphone quality</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ci6deCpqyHTbpE2v9azQ8W-1920-80.jpg" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/tSWchZBvdWoRwNxBTJmzuL-1920-80.jpg" alt="The Logitech G Pro X3 Lightspeed being customized in Logitech's G Hub software" /><figcaption><small role="credit">Logitech / Tom's Guide</small></figcaption></figure></figure><p>The Pro X3 Lightspeed features a Blue Yeti microphone, which is hardly surprising given Logitech owns Blue Yeti. Now, this is mostly for marketing purposes — don’t expect the microphone performance of a professional Blue Yeti standalone streaming mic. The X3 Lightspeed features a typical, rather small headset boom mic, so it’s not really comparable.<br /></p><audio src="https://cdn.mos.cms.futurecdn.net/U9kFNBoMefTo7yQbj649GU/G%20Pro%20X3%20Lightspeed%20Mic%20Test%20%E2%80%94%20Default%20EQ.mp3"  controls="controls" preload="none"></audio><p><br />That said, as headset boom mics go, the X3 Lightspeed’s is pretty good. It’s omnidirectional, like the one on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">SteelSeries Arctis Nova Pro Omni</a>. That means it picks up sound from all directions rather than just the direction of your mouth. The downside is that other unwanted sounds can make their way in; the upside is that all your vocal tones are captured, giving your voice a natural tone. This is better for broadcasts, making this headset a decent choice for streamers.<br /></p><audio src="https://cdn.mos.cms.futurecdn.net/qtSix6yRULhCfhTc4EYeGU/G%20Pro%20X3%20Lightspeed%20Mic%20Test%20%E2%80%94%20Broadcaster%202%20EQ.mp3"  controls="controls" preload="none"></audio><p><br />As you can hear from the first voice clip above, the mic sounds acceptable in the default EQ. My voice is a little thin and tinny, but it’s clear and acceptable for game chat. However, enabling the Blue Voice setting (which opens up the mic equalizer and noise processing sliders) and switching to the Broadcast 2 EQ, my voice sounded much louder, fuller and richer, albeit with a little extra noise from the added gain (which can be tweaked via a noise processing slider). Broadcast 2 is my favorite EQ and I’d say good enough to be a stand-in for new streamers until they can afford their first proper mic, like the <a href="https://www.tomsguide.com/audio/microphones/shure-mv6-microphone-review"><u>Shure MV6</u></a>.</p><h2 id="impressive-connectivity-range">Impressive connectivity range</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oitUbZrSQrFYTMsE4wLh5X" name="Logitech_Prox3_Lightspeed_ 9.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/oitUbZrSQrFYTMsE4wLh5X-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before I’d even looked at the tech sheet Logitech sent me for the Lightspeed, I was astounded at the headset’s range. While testing, I had to run downstairs to get a delivery. At my door, with one earcup pushed back, I still had the glorious “Dune: Awakening” soundtrack playing in my left ear. </p><p>Compare that to two headsets I regularly use, the much pricier Arctis Nova Pro Omni and Audeze Maxwell 2 ANC: those two won’t even stay connected if I dash across the hallway to my bathroom for a lightening-fast pee while waiting in the game lobby for the next match to start.</p><p>When I checked out Logitech’s tech sheet, there it was: the Lightspeed has a 98-foot/30m range. That’s obviously a best case scenario assuming no interruptions, but I can believe it.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-the-downs"><span>Logitech G Pro X3 Lightspeed review: The downs</span></h2><p>For all its praiseworthy features, the Lightspeed has some drawbacks. I found its earcups rather hot, the battery life is mediocre, and similarly-priced competitors offer way more features.</p><h2 id="not-very-breathable">Not very breathable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="83bEQhxS6BWj42GuD3JuXW" name="Logitech_Prox3_Lightspeed_ 4.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/83bEQhxS6BWj42GuD3JuXW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Unfortunately, I found the Lightspeed’s default leatherette earcup pads way too hot. I have something called Eustachian Tube Dysfunction — basically, my inner ear tubes don’t open and close properly, making it easy to get ear infections. Hot ears exacerbate this to a serious degree, so breathability is paramount for me.</p><p>After a few hours gaming with the Lightspeed, my ears felt hot and I started noticing the telltale signs of an early infection — in-ear pain and sensitivity, plus worsening tinnitus. My ears had overheated.</p><p>I tried switching out to the included fabric earcups, but they let in a lot of ambient sound and the plush material was sticky and uncomfortable in a warm room. My Fractal Design Scape’s pads are a coarser cotton-esque fabric rather than plush. They’re still super soft and comfortable, but much more breathable, with better passive noise cancelation. A win for the Scape.</p><h2 id="battery-life-not-great-not-terrible">Battery life: not great, not terrible</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bsNsqjSt9gR2SdgHDEj4PW" name="Logitech_Prox3_Lightspeed_ 5.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/bsNsqjSt9gR2SdgHDEj4PW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pro X3 Lightspeed offers up to 50 hours of battery life. While that’s not terrible, it isn’t great either, especially given the price tag. The Razer BlackShark V3 Pro, Barracuda V2 Pro and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/alienware-pro-wireless-gaming-headset-review">Alienware Pro</a> ($229) all offer up to 70 hours with their ANC off — and they’re all similarly priced to the Pro X3 Lightspeed. The $199 SteelSeries Arctis Nova 7 Gen 2, meanwhile, offers 54 hours. </p><p>The $199 Fractal Design Scape can manage only 40 hours with its RGB off. However, there are a couple of mitigating factors. Firstly, the Scape comes with a wireless charging dock, which is a big deal in real world usage. I never forget to put the Scape back in its dock because it tidies my desk, so the headset is always freshly charged. By contrast, I have to remember to plug the Lightspeed in each time, which I often don’t. Secondly, the Scape is cheaper at $199, although often on sale for around $169.</p><h2 id="i-d-expect-more-features-at-this-price">I’d expect more features at this price</h2><p>Annoyingly, the Lightspeed is missing some key features I’d expect to see given the premium price of <a href="https://www.amazon.com/Logitech-PRO-Lightspeed-Gaming-Headset/dp/B0H8BH2C4V" target="_blank" rel="nofollow">$249</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-LIGHTSPEED-Gaming-Headset-Black/dp/B0HBWVC7KC" target="_blank" rel="nofollow">£229</a>. Basics first: there’s no game/chat mix dial, so you can’t adjust levels on the fly. There’s also no simultaneous connection either, so you need to manually switch between 2.4G and Bluetooth — annoying if you want to take a call over Bluetooth on your phone or laptop while gaming.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9sP3n6u63Ynw4LkqwnCQcW" name="Logitech_Prox3_Lightspeed_ 8.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/9sP3n6u63Ynw4LkqwnCQcW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now, Logitech touts this headset as ‘designed by pros’ and therefore competitive play. So I kinda understand the reasoning behind a lack of simultaneous connections. The game/chat mixer though? Come on, Logitech, that’s just fundamental.</p><p>Getting cynical for a minute, though: all that ‘designed by pros’ stuff is just marketing bluster to make <strong>general consumers</strong> (i.e. you) more likely to buy. In short, forget all the talk of pro esports players — you think Logitech is gonna make profit from a market that small? No, Logitech markets this headset at the mass market; knows it will be bought by the mass market; and <em>wants</em> it to be bought by the mass market. So I’d have liked to see basic quality of life features for, oh, the mass market.</p><p>And then there’s the ANC, or lack thereof. For less money, you could pick up the Alienware Pro or new Razer Barracuda V2 Pro, both of which have ANC. For the same money, you could grab the Razer BlackShark V3 Pro, which also has ANC. Sure, the Arctis Nova 7 Gen 2 and Fractal Design Scape don’t have ANC, but they’re $50 cheaper — and cost even less on sale.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-verdict"><span>Logitech G Pro X3 Lightspeed review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JwTUDkJZwFNYvNE2dPBmHW" name="Logitech_Prox3_Lightspeed_ 1.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/JwTUDkJZwFNYvNE2dPBmHW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I like the Logitech G Pro X3 Lightspeed. Sound quality, comfort, build, range and customizability get a headset quite far in my book, which is why I’ve awarded the Lightspeed an overall positive review.</p><p>But alas, I can’t award one of our highest scores, and at the core, it all comes down to price. The $249 mark is an incredibly competitive area for headsets. There’s a lot of truly fantastic competition out there, from Razer especially, which essentially makes the Lightspeed look like bad value. Almost $250 for no ANC, no simultaneous connection and no damn chat mix dial? Come on. </p><p>Look, if you’re primarily concerned with sound quality and comfort, and you either own other Logi gear or have spare cash burning a hole in your pocket: sure, the Lightspeed is a decent headset. It’s just not exactly value for money.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/logitech-g-pro-x3-lightspeed-review</link>
                                                                            <description>
                            <![CDATA[ The Logitech G Pro X3 Lightspeed is a decent gaming headset that sounds great, but it’s missing features I’d expect for the price. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Xny3x5QFcdgQYEeeLAtTLM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qHhbuWqtKwYgQuYknWL8kW-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 15 Oct 2026 15:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ peter.wolinski@futurenet.com (Peter Wolinski) ]]></author>                    <dc:creator><![CDATA[ Peter Wolinski ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/stgPfXWY7ukw8J8rfC7vjg-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Peter is a Senior Editor at Tom&#039;s Guide, heading up the site&#039;s Reviews team and Cameras section. Having built gaming PCs since he was 10 (that&#039;s a while ago now) he&#039;s a bit of a nerd about components and hardware. He&#039;s also been an iPhone user since the classic iPhone 4, and a Mac user for well over a decade. Experienced in using and testing all kinds of technology — from phones through to tablets, computers, games consoles, cameras and smart home tech — helping people find the best tech for them (at the best prices) is what Peter does best. A photographer since he bought his first camera (a Fujifilm) in 2015, Peter was previously an Editor for Canon-Europe.com. He then edited the Cameras and How To sections of Tom&#039;s Guide. When he&#039;s not crafting helpful, in-depth reviews, Peter can usually be found out and about honing his architectural photography skills, riding his motorcycle around Welsh mountain roads, telling everyone about his two greyhounds, squeezing a few extra FPS out of PC games or perfecting his espresso shots.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/qHhbuWqtKwYgQuYknWL8kW-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Logitech G Pro X3 Lightspeed headset in white, on a stone surface.]]></media:description>                                                            <media:text><![CDATA[The Logitech G Pro X3 Lightspeed headset in white, on a stone surface.]]></media:text>
                                <media:title type="plain"><![CDATA[The Logitech G Pro X3 Lightspeed headset in white, on a stone surface.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qHhbuWqtKwYgQuYknWL8kW-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Logitech G Pro X3 Lightspeed is Logi’s latest competition headset, aimed at competitive players. As such, it’s intended to be paired alongside the rest of the brand’s Pro lineup: the <a href="https://www.tomsguide.com/computing/mice/logitech-g-pro-x3-superstrike-review">Logitech G Pro X3 SuperStrike</a> mouse and G Pro X2 Rapid keyboard.</p><p>The Lightspeed sounds fantastic, with a bright and expansive treble. It’s tuned for competitive play, but its drivers are super capable and a 10-band EQ lets you dial in the sound for a variety of different game genres. It’s lightweight, built well, and features impressive wireless range.</p><p>So is this the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets">best gaming headset</a> for you? Well, it isn’t perfect. While comfy, it gets a little hot. Its battery life is mediocre, and there are some crucial features missing given the high price. Find out more in my full Logitech G Pro X3 Lightspeed review.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-cheat-sheet"><span>Logitech G Pro X3 Lightspeed review: Cheat sheet</span></h2><ul><li><strong>What is it?</strong> A premium gaming headset from Logitech</li><li><strong>Who is it for? </strong>Competitive gamers</li><li><strong>What does it cost? </strong><a href="https://www.amazon.com/Logitech-PRO-Lightspeed-Gaming-Headset/dp/B0H8BH2C4V" target="_blank" rel="nofollow">$249</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-LIGHTSPEED-Gaming-Headset-Black/dp/B0HBWVC7KC" target="_blank" rel="nofollow">£229</a></li><li><strong>What do we like? </strong>The bright, detailed sound, custom EQ, lightweight design and long range</li><li><strong>What don’t we like? </strong>The earcups get hot, battery life is mediocre and I’d like more for the money</li></ul><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-specs"><span>Logitech G Pro X3 Lightspeed review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/Logitech-PRO-Lightspeed-Gaming-Headset/dp/B0H8BH2C4V" target="_blank" rel="nofollow">$249</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-LIGHTSPEED-Gaming-Headset-Black/dp/B0HBWVC7KC" target="_blank" rel="nofollow">£229</a></p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black; White; Magenta</p></td></tr><tr><td class="firstcol " ><p><strong>Platforms</strong></p></td><td  ><p>PC, macOS, PlayStation 5</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4GHz USB-A, Bluetooth 5.3, 3.5mm wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>50 hours</p></td></tr><tr><td class="firstcol " ><p><strong>Frequency response</strong></p></td><td  ><p>20-20,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Drivers</strong></p></td><td  ><p>50mm Graphene</p></td></tr><tr><td class="firstcol " ><p><strong>Paired devices max</strong></p></td><td  ><p>2</p></td></tr><tr><td class="firstcol " ><p><strong>Multipoint connectivity</strong></p></td><td  ><p>Yes (but not simultaneous)</p></td></tr><tr><td class="firstcol " ><p><strong>Microphone</strong></p></td><td  ><p>Detachable omnidirectional boom</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>12.5 ounces</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-the-ups"><span>Logitech G Pro X3 Lightspeed review: The ups</span></h2><p>The Pro X3 Lightspeed sounds great, with an FPS-oriented default tune but capable drivers and an excellent custom EQ. It’s light, comfy, built well, and has an impressive 98-foot range.</p><h2 id="detailed-sound-quality">Detailed sound quality</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:756px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="4qACLgpxatd3sTwb2qkj4X" name="Logitech_Prox3_Lightspeed_ 7.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:335,l:402,cw:756,ch:425,q:80/4qACLgpxatd3sTwb2qkj4X.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>You can tell immediately that the X3 Pro Lightspeed was designed with and for competitive FPS players. The default tuning is all treble, which is incredibly bright and expansive. Imagine is very solid, at least stereo-wise. Both characteristics proved excellent for FPS titles like “Wardogs” and, more importantly, “Counter-Strike 2” — I could easily detect and locate enemy cues like reloads and footsteps.</p><p>Supposedly this is a 7.1 headset, which is kinda misleading. There aren’t 7 surround speakers and a sub, so it’s not 7.1. This is just Logitech marketing speak for the fact that the Lightspeed is supposed to emulate a 7.1 channel surround system and therefore be good for surround sound gaming. Honestly, while I found stereo imaging great, 360 imaging was fairly run of the mill.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QckSH7BDNQiqDKYKJi8UxL" name="Logitech G Pro X3 Lightspeed_1" alt="The Logitech G Pro X3 Lightspeed being customized in Logitech's G Hub software" src="https://cdn.mos.cms.futurecdn.net/QckSH7BDNQiqDKYKJi8UxL-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/QckSH7BDNQiqDKYKJi8UxL-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Tom's Guide)</span></figcaption></figure><p>But back to that default tuning and treble. The emphasis on top end can be a little fatiguing, as the higher frequencies get a little harsh and piercing. Combined with a lack of mid-range clout, the Lightspeed sounds a little tinny and misses the depth I wanted for more atmospheric games like “Dune: Awakening”, “Valheim” and “Total War: Rome II”.</p><p>Thankfully, there’s a 10-band parametric EQ in the <a href="https://www.logitechg.com/en-us/software/ghub" target="_blank" rel="nofollow">G Hub</a> companion software, with a range of presets to tweak the sound. And extra thankfully, the Lightspeed’s drivers are really, really excellent, so they’ll handle pretty much anything you can EQ their way.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aUjBUE9mDcLurBEbFiRi4M" name="Logitech G Pro X3 Lightspeed_4" alt="The Logitech G Pro X3 Lightspeed being customized in Logitech's G Hub software" src="https://cdn.mos.cms.futurecdn.net/aUjBUE9mDcLurBEbFiRi4M-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/aUjBUE9mDcLurBEbFiRi4M-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Tom's Guide)</span></figcaption></figure><p>There’s a ‘Detailed’ preset which boosts the top end and, frankly, isn’t needed. The ‘Media’ preset solved most of the issues I had with harsh treble, while boosting bass. But it still missed the mid-range definition I wanted to make the melancholy, futurist synths of the “Dune: Awakening” soundtrack sing. I simply created a custom EQ based off ‘Media’ with some extra power in the mids.</p><p>Bass reproduction in particular is very impressive, with super warm, deep bass and even rumbly sub bass to make my ear drums quiver. The huge quakes of Dune’s sandworms smashing out and back into the sands of Arrakis was impressive to behold.</p><h2 id="supremely-lightweight-and-comfortable">Supremely lightweight and comfortable</h2><p>This is a seriously comfortable headset. The headband and earcups are thickly padded, making them gloriously soft and squishy. Earcup-wise, I prefer the slightly more spacious cups of my daily driver, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/fractal-design-scape-review">Fractal Design Scape</a> ($199), although I find the Lightspeed’s headband more comfortable over longer stints.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yAyFDBtURGXXhZ2s7fRL5X" name="Logitech_Prox3_Lightspeed_ 6.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/yAyFDBtURGXXhZ2s7fRL5X-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While not as lightweight as the 10-ounce <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-barracuda-v2-pro-review">Razer Barracuda V2 Pro</a> ($199), the Lightspeed is still fairly light at 12.5 ounces, and I experienced no neck fatigue even after eight hours of gameplay. My Scape is a touch lighter at 12 ounces, but there’s really not a lot in it. Neither weighed me down like the enormously heavy, 1.2lb <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-2-anc-review">Audeze Maxwell 2 ANC</a> ($429) — after testing that, anything lighter feels like a blessing. </p><p>The Lightspeed’s clamp force is really gentle, too, so I’ve not experienced any temple pain. The Scape is ever-so-slightly clampier, but again, there’s not much in it. Contrast both of these to the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-7-gen-2-review">SteelSeries Arctis Nova 7 Gen 2</a> ($199) and Nova Pro Omni ($399), which sometimes start to hurt my temples after a few hours — remember, though, that mileage will vary in this regard based on individual head anatomy.</p><p>My only comfort issue is around breathability, which I’ll come onto later.</p><h2 id="yet-built-beautifully">Yet built beautifully</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZFeQCLdDTw7SprmD6NNxue" name="Logitech_ProX2_RAPID 12.JPG" alt="A photo of the Logitech G Pro X2 Rapid keyboard in hot pink on a stone surface" src="https://cdn.mos.cms.futurecdn.net/ZFeQCLdDTw7SprmD6NNxue-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite that low weight, the X3 Lightspeed is built beautifully. The earcups feature milled metal plates. The earcup hangers are lightweight aluminum with adjustment markings on the outside and divots on the inside so you can quickly check the fit before putting it on, regardless of how you’re holding it. The soft leatherette headband features an embossed “PRO” logo, and there are curly cords linking the two earcups, like an old telephone — I’m a real sucker for that.</p><p>Admittedly, I prefer the Scandi sophistication of my Fractal Design Scape, and I think the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review">Razer BlackShark V3 Pro</a> ($249) looks a little sharper, but this is mainly because my test headset was in white, which I always think looks tacky. In black, the Lightspeed is particularly fetching and a rival to the BlackShark, although I wish Logitech had sent me a magenta version to match my pink X2 Rapid keyboard and X3 SuperStrike combo. </p><h2 id="typical-blue-yeti-microphone-quality">Typical Blue Yeti microphone quality</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ci6deCpqyHTbpE2v9azQ8W-1920-80.jpg" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." /><figcaption><small role="credit">Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/tSWchZBvdWoRwNxBTJmzuL-1920-80.jpg" alt="The Logitech G Pro X3 Lightspeed being customized in Logitech's G Hub software" /><figcaption><small role="credit">Logitech / Tom's Guide</small></figcaption></figure></figure><p>The Pro X3 Lightspeed features a Blue Yeti microphone, which is hardly surprising given Logitech owns Blue Yeti. Now, this is mostly for marketing purposes — don’t expect the microphone performance of a professional Blue Yeti standalone streaming mic. The X3 Lightspeed features a typical, rather small headset boom mic, so it’s not really comparable.<br /></p><audio src="https://cdn.mos.cms.futurecdn.net/U9kFNBoMefTo7yQbj649GU/G%20Pro%20X3%20Lightspeed%20Mic%20Test%20%E2%80%94%20Default%20EQ.mp3"  controls="controls" preload="none"></audio><p><br />That said, as headset boom mics go, the X3 Lightspeed’s is pretty good. It’s omnidirectional, like the one on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">SteelSeries Arctis Nova Pro Omni</a>. That means it picks up sound from all directions rather than just the direction of your mouth. The downside is that other unwanted sounds can make their way in; the upside is that all your vocal tones are captured, giving your voice a natural tone. This is better for broadcasts, making this headset a decent choice for streamers.<br /></p><audio src="https://cdn.mos.cms.futurecdn.net/qtSix6yRULhCfhTc4EYeGU/G%20Pro%20X3%20Lightspeed%20Mic%20Test%20%E2%80%94%20Broadcaster%202%20EQ.mp3"  controls="controls" preload="none"></audio><p><br />As you can hear from the first voice clip above, the mic sounds acceptable in the default EQ. My voice is a little thin and tinny, but it’s clear and acceptable for game chat. However, enabling the Blue Voice setting (which opens up the mic equalizer and noise processing sliders) and switching to the Broadcast 2 EQ, my voice sounded much louder, fuller and richer, albeit with a little extra noise from the added gain (which can be tweaked via a noise processing slider). Broadcast 2 is my favorite EQ and I’d say good enough to be a stand-in for new streamers until they can afford their first proper mic, like the <a href="https://www.tomsguide.com/audio/microphones/shure-mv6-microphone-review"><u>Shure MV6</u></a>.</p><h2 id="impressive-connectivity-range">Impressive connectivity range</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oitUbZrSQrFYTMsE4wLh5X" name="Logitech_Prox3_Lightspeed_ 9.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/oitUbZrSQrFYTMsE4wLh5X-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Before I’d even looked at the tech sheet Logitech sent me for the Lightspeed, I was astounded at the headset’s range. While testing, I had to run downstairs to get a delivery. At my door, with one earcup pushed back, I still had the glorious “Dune: Awakening” soundtrack playing in my left ear. </p><p>Compare that to two headsets I regularly use, the much pricier Arctis Nova Pro Omni and Audeze Maxwell 2 ANC: those two won’t even stay connected if I dash across the hallway to my bathroom for a lightening-fast pee while waiting in the game lobby for the next match to start.</p><p>When I checked out Logitech’s tech sheet, there it was: the Lightspeed has a 98-foot/30m range. That’s obviously a best case scenario assuming no interruptions, but I can believe it.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-the-downs"><span>Logitech G Pro X3 Lightspeed review: The downs</span></h2><p>For all its praiseworthy features, the Lightspeed has some drawbacks. I found its earcups rather hot, the battery life is mediocre, and similarly-priced competitors offer way more features.</p><h2 id="not-very-breathable">Not very breathable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="83bEQhxS6BWj42GuD3JuXW" name="Logitech_Prox3_Lightspeed_ 4.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/83bEQhxS6BWj42GuD3JuXW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Unfortunately, I found the Lightspeed’s default leatherette earcup pads way too hot. I have something called Eustachian Tube Dysfunction — basically, my inner ear tubes don’t open and close properly, making it easy to get ear infections. Hot ears exacerbate this to a serious degree, so breathability is paramount for me.</p><p>After a few hours gaming with the Lightspeed, my ears felt hot and I started noticing the telltale signs of an early infection — in-ear pain and sensitivity, plus worsening tinnitus. My ears had overheated.</p><p>I tried switching out to the included fabric earcups, but they let in a lot of ambient sound and the plush material was sticky and uncomfortable in a warm room. My Fractal Design Scape’s pads are a coarser cotton-esque fabric rather than plush. They’re still super soft and comfortable, but much more breathable, with better passive noise cancelation. A win for the Scape.</p><h2 id="battery-life-not-great-not-terrible">Battery life: not great, not terrible</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bsNsqjSt9gR2SdgHDEj4PW" name="Logitech_Prox3_Lightspeed_ 5.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/bsNsqjSt9gR2SdgHDEj4PW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Pro X3 Lightspeed offers up to 50 hours of battery life. While that’s not terrible, it isn’t great either, especially given the price tag. The Razer BlackShark V3 Pro, Barracuda V2 Pro and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/alienware-pro-wireless-gaming-headset-review">Alienware Pro</a> ($229) all offer up to 70 hours with their ANC off — and they’re all similarly priced to the Pro X3 Lightspeed. The $199 SteelSeries Arctis Nova 7 Gen 2, meanwhile, offers 54 hours. </p><p>The $199 Fractal Design Scape can manage only 40 hours with its RGB off. However, there are a couple of mitigating factors. Firstly, the Scape comes with a wireless charging dock, which is a big deal in real world usage. I never forget to put the Scape back in its dock because it tidies my desk, so the headset is always freshly charged. By contrast, I have to remember to plug the Lightspeed in each time, which I often don’t. Secondly, the Scape is cheaper at $199, although often on sale for around $169.</p><h2 id="i-d-expect-more-features-at-this-price">I’d expect more features at this price</h2><p>Annoyingly, the Lightspeed is missing some key features I’d expect to see given the premium price of <a href="https://www.amazon.com/Logitech-PRO-Lightspeed-Gaming-Headset/dp/B0H8BH2C4V" target="_blank" rel="nofollow">$249</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-LIGHTSPEED-Gaming-Headset-Black/dp/B0HBWVC7KC" target="_blank" rel="nofollow">£229</a>. Basics first: there’s no game/chat mix dial, so you can’t adjust levels on the fly. There’s also no simultaneous connection either, so you need to manually switch between 2.4G and Bluetooth — annoying if you want to take a call over Bluetooth on your phone or laptop while gaming.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9sP3n6u63Ynw4LkqwnCQcW" name="Logitech_Prox3_Lightspeed_ 8.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/9sP3n6u63Ynw4LkqwnCQcW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now, Logitech touts this headset as ‘designed by pros’ and therefore competitive play. So I kinda understand the reasoning behind a lack of simultaneous connections. The game/chat mixer though? Come on, Logitech, that’s just fundamental.</p><p>Getting cynical for a minute, though: all that ‘designed by pros’ stuff is just marketing bluster to make <strong>general consumers</strong> (i.e. you) more likely to buy. In short, forget all the talk of pro esports players — you think Logitech is gonna make profit from a market that small? No, Logitech markets this headset at the mass market; knows it will be bought by the mass market; and <em>wants</em> it to be bought by the mass market. So I’d have liked to see basic quality of life features for, oh, the mass market.</p><p>And then there’s the ANC, or lack thereof. For less money, you could pick up the Alienware Pro or new Razer Barracuda V2 Pro, both of which have ANC. For the same money, you could grab the Razer BlackShark V3 Pro, which also has ANC. Sure, the Arctis Nova 7 Gen 2 and Fractal Design Scape don’t have ANC, but they’re $50 cheaper — and cost even less on sale.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-lightspeed-review-verdict"><span>Logitech G Pro X3 Lightspeed review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JwTUDkJZwFNYvNE2dPBmHW" name="Logitech_Prox3_Lightspeed_ 1.JPG" alt="The Logitech G Pro X3 Lightspeed headset in white, on a stone surface." src="https://cdn.mos.cms.futurecdn.net/JwTUDkJZwFNYvNE2dPBmHW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I like the Logitech G Pro X3 Lightspeed. Sound quality, comfort, build, range and customizability get a headset quite far in my book, which is why I’ve awarded the Lightspeed an overall positive review.</p><p>But alas, I can’t award one of our highest scores, and at the core, it all comes down to price. The $249 mark is an incredibly competitive area for headsets. There’s a lot of truly fantastic competition out there, from Razer especially, which essentially makes the Lightspeed look like bad value. Almost $250 for no ANC, no simultaneous connection and no damn chat mix dial? Come on. </p><p>Look, if you’re primarily concerned with sound quality and comfort, and you either own other Logi gear or have spare cash burning a hole in your pocket: sure, the Lightspeed is a decent headset. It’s just not exactly value for money.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I took the Asus ROG Xbox Ally X20 with me around the world — it’s great, but is it $1,299 great? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I started with an indifferent feeling towards the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-hands-on-review">Asus ROG Xbox Ally X20</a> — playing on it at Computex and feeling worried it was being left in the shadow of Intel Arc G3-armed handhelds being announced at the same show.</p><p>Then the price got announced: <a href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W/sku/6686854" target="_blank" rel="nofollow">$1,299</a>. Being real, that’s <strong>not </strong>as bad as I thought it could be in the age of <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a>. Plus with the ergonomic improvements, translucent aesthetics and that gorgeous OLED screen, I believed this was the slightly-weaker-but-better-quality-alternative to what we’re seeing in the <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a> and others.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jUeRrUixy8GU2nZycZyXFi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/jUeRrUixy8GU2nZycZyXFi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And then, I took it on my press trips across the globe over the past couple of weeks, and I’m left feeling a little mixed. The internal specs remain exactly the same (AMD Ryzen Z2 AI Extreme, 24GB RAM, 1TB SSD), and while Asus did mention evolved ROG Intelligent Cooling, the performance hasn’t moved an inch. </p><p>At $999 with nothing else really competing in the market, that level of performance was the absolute best you could get. Now Team Blue’s in town, that price increase becomes harder to swallow.</p><p>In all fairness, this may improve over time, as AMD has announced FSR 4 is going to be coming to its handheld silicon. I’ll be keeping a close eye on that, but then we’re back at that same issue again — with the OG ROG Xbox Ally X at the $1,000 mark, are these upgrades worth the cost increase?</p><h2 class="article-body__section" id="section-rog-xbox-ally-x-cheat-sheet"><span>ROG Xbox Ally X: Cheat Sheet</span></h2><ul><li><strong>What is it? </strong>Asus’ latest premium Windows gaming handled — aiming to fix the minor gripes of the previous Xbox Ally X, while adding a major screen upgrade.</li><li><strong>Who is it for? </strong>This is for the PC gamers who want a premium, portable Windows 11 machine and value screen quality and ergonomics over the highest performance.</li><li><strong>What does it cost? </strong><a href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W/sku/6686854" target="_blank" rel="nofollow">$1,299</a> — a full $300 more than the launch price of the previous <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a>.</li><li><strong>What do we like? </strong>The new translucent design looks fantastic, the rubberized grips make long play sessions a joy, and the rotatable D-pad is a massive win for fighting game fans. The 1080p OLED display is exceptionally bright and vivid.</li><li><strong>What don’t we like? </strong>The price. It is incredibly hard to shake the feeling that the physical tweaks are just a smokescreen to absorb the cost of the pricier memory. At this price point, native performance on demanding titles like Cyberpunk 2077 is also sluggish.</li></ul><h2 class="article-body__section" id="section-rog-xbox-ally-x-specs"><span>ROG Xbox Ally X: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>11.8 x 4.8 x 2 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>1.67 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen AI Z2 Extreme</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>24GB LPDDR5x</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>1TB PCIe Gen 4x4 SSD</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>7.4-inch FHD, 16:9, 120Hz refresh rate OLED panel</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1x USB 4 Type-C, 1x USB 3.2 Gen 2 Type-C, 1x 3.5mm audio jack, 1x microSD card reader slot</p></td></tr><tr><td class="firstcol " ><p><strong>Wireless connectivity</strong></p></td><td  ><p>Wi-Fi 6E, Bluetooth 5.4</p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$1,299</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-rog-xbox-ally-x-the-ups"><span>ROG Xbox Ally X: The ups</span></h2><p>And so, I take off from Heathrow for another long haul to an event that I can’t tell you about (yet). Firing this up and getting into a bit of Silksong showed me the absolute best of what these upgrades bring to the table.</p><h2 id="an-oled-display-that-steals-the-show">An OLED display that steals the show</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jUcrooeSGEfteM8bJYdsHi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/jUcrooeSGEfteM8bJYdsHi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The immediate standout feature that you’ll notice about the Ally X20 is its new 7.4-inch OLED display. This is a mesmerizing flash-flood of color that really brings a game to life on-screen — be it the vivid world of Japan blurring past at over 200MPH in Forza Horizon 6, or the dark, immersive world of Silksong.</p><div ><table><thead><tr><th class="firstcol " ><p>Device</p></th><th  ><p>Average brightness (nits)</p></th><th  ><p>DCI-P3 color gamut (closer to 100% is better)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X20 (OLED)</strong></p></td><td  ><p>579.8</p></td><td  ><p>82.6%</p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X (LCD)</strong></p></td><td  ><p>515.8</p></td><td  ><p>77.9%</p></td></tr></tbody></table></div><p>And as you can see from our display results, it’s bright, it’s colorful, and it leaves a lot of its Intel counterparts in the dust. Make no mistake about it: if screens are very much your make-or-break when it comes to getting a handheld, this is a winner. But of course, gaming devices are about so much more than that.</p><h2 id="ergonomics-done-right">Ergonomics done right</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sgehvaSehvxqWg95oyWJYi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/sgehvaSehvxqWg95oyWJYi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Last year, I said that the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a> is the best-feeling Windows gaming handheld you could get. That is still absolutely the case with its even weight distribution, the Xbox-inspired controller grips and the perfectly-placed buttons for your thumbs to naturally rest around.</p><p>This year, Asus has listened to some of the feedback and made small but significant tweaks to make it feel even better. The new transparent chassis isn’t just visually striking; it features highly effective rubberized grips that drastically improve grip and reduce hand fatigue during long sessions.</p><p>On top of that, the TMR joysticks feel silky smooth in operation and guarantee much better longevity of the hardware, the improved bumpers have a more satisfying tactile tap to them, and the rounded face buttons feel better sculpted to the thumb.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="35oKhRkgc2jPejUoT3i3Qi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/35oKhRkgc2jPejUoT3i3Qi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Then there’s the D-Pad, which is more than just a cool party trick. It’s ideal for switching game genres on the fly and getting your best performance out of them. It starts with a rubber and metal dome hybrid beneath the directional buttons that improves its preciseness and tactility.</p><p>But that rotating function can change it from a 4-way D-Pad (perfect for platformers or quick weapon selection in FPS games) to a 8-way (exactly what you need for fighting games). It’s this kind of versatility that makes it stand out in terms of overall comfort from the competition.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-the-downs"><span>Asus ROG Xbox Ally X20: The downs</span></h2><p>And as I played more and more when I really should’ve been working (sorry boss), it became clear to me that while these upgrades are nice to have for sure, the lack of improvement in performance while charging $300 more is a tough pill to swallow — especially when 007 First Light comes to a crawl.</p><h2 id="the-300-smokescreen">The $300 smokescreen</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Fk8JmmvWVBQFujY3sKYWii" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/Fk8JmmvWVBQFujY3sKYWii-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The previous ROG Xbox Ally X was a 4-star device, with my primary complaint being its $999 price tag. The X20 pushes that to an eye-watering $1,299. </p><p>While the OLED screen and new grips are great, those same performance stats that I saw from last year’s handheld are hard to justify a $300 leap in price when you can still get that <a href="https://www.bestbuy.com/product/rog-xbox-ally-x-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-ai-z2-extreme-24gb-ram-1tb-ssd/JJGHGPLVHW/sku/6642253" target="_blank" rel="nofollow">OG model with the same internals for that same price</a>.</p><p>Instead, these upgrades feel like a smokescreen to pass the higher costs of that 24GB RAM array directly onto you. Of course, how you feel about that depends on how much you care about OLED and ergonomics in balance with performance.</p><h2 id="struggling-under-the-weight-of-aaa">Struggling under the weight of AAA</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A9gyXc8RTF7AWLssxNyPPi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/A9gyXc8RTF7AWLssxNyPPi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And that (alongside the debut of <a href="https://www.tomsguide.com/gaming/handheld-gaming/intel-arc-g3-is-here-to-shake-up-handheld-gaming-and-amd-should-be-terrified-acer-predator-atlas-8-is-the-first-out-the-gate">Intel Arc G3 Extreme</a>) paints the AMD Ryzen AI Z2 Extreme in a different light. You see, while it can handle moderately demanding titles well, native performance on heavy hitters can crawl.</p><div ><table><thead><tr><th class="firstcol " ><p>Game</p></th><th  ><p>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 17W)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Cinematic)</strong></p></td><td  ><p>11 FPS</p></td><td  ><p>14 FPS</p></td><td  ><p>10 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (720p High)</strong></p></td><td  ><p>11.87 FPS</p></td><td  ><p>27.01 FPS</p></td><td  ><p>11.27 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (1080p Medium)</strong></p></td><td  ><p>23 FPS</p></td><td  ><p>63.8 FPS</p></td><td  ><p>48.8 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Shadow of the Tomb Raider (1080p High)</strong></p></td><td  ><p>31 FPS</p></td><td  ><p>66 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>Of course, you can rely on upscaling and tweak the settings to play the heaviest titles, but while we wait for <a href="https://www.tomsguide.com/gaming/amd-is-bringing-fsr-4-1-upscaling-to-older-radeon-rx-gpus-this-is-huge">FSR 4</a>, the past generation frame gen and upscaling tech can be rather noticeable — especially with the improved clarity of that OLED panel.</p><p>And then there’s the battery, which as you can see hasn’t really budged either from last year’s model. </p><div ><table><thead><tr><th class="firstcol " ><p>Device</p></th><th  ><p>Gaming battery life test result (hh:mm)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme)</strong></p></td><td  ><p>02:47</p></td></tr><tr><td class="firstcol " ><p><strong>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme)</strong></p></td><td  ><p>04:10</p></td></tr></tbody></table></div><p>With Team Blue managing to hit similar frame rates at half the power, while also offering vastly better efficiency, it makes this tricky to recommend when a little more investment can futureproof you against future AAA titles.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-verdict"><span>Asus ROG Xbox Ally X20: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6CECMV3mFEjJ7WvQhYnBKi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/6CECMV3mFEjJ7WvQhYnBKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Asus ROG Xbox Ally X20 is a frustrating paradox. In one way, it is an undeniably better physical device than its predecessor — the OLED screen is stunning, and tweaks to the ergonomics make it a joy to hold.</p><p>But at $1,299 (and with Intel handhelds offering a whole lot more for the power players), the value proposition falls apart.</p><p>You are paying an ultra-premium tax for a handheld that requires heavy upscaling to play the latest AAA games, and trails in rivals in endurance.</p><p>If your eyes lit up at the idea of OLED, congratulations: this is the device for you! But for the rest of you, this is a gorgeous piece of hardware that’s tricky to recommend for the price.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-review</link>
                                                                            <description>
                            <![CDATA[ The ROG Xbox Ally X20 is undeniably better than its predecessor, with a stellar OLED screen and superior ergonomics but a $1,299 price tag holds it back. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6GNLJ9noJYnFWw5ShY7iWa</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hjYvmp8ZwwqBSiuwzNRCyg-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 15 Oct 2026 13:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/hjYvmp8ZwwqBSiuwzNRCyg-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Asus ROG Xbox Ally X20]]></media:description>                                                            <media:text><![CDATA[Asus ROG Xbox Ally X20]]></media:text>
                                <media:title type="plain"><![CDATA[Asus ROG Xbox Ally X20]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hjYvmp8ZwwqBSiuwzNRCyg-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I started with an indifferent feeling towards the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-hands-on-review">Asus ROG Xbox Ally X20</a> — playing on it at Computex and feeling worried it was being left in the shadow of Intel Arc G3-armed handhelds being announced at the same show.</p><p>Then the price got announced: <a href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W/sku/6686854" target="_blank" rel="nofollow">$1,299</a>. Being real, that’s <strong>not </strong>as bad as I thought it could be in the age of <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a>. Plus with the ergonomic improvements, translucent aesthetics and that gorgeous OLED screen, I believed this was the slightly-weaker-but-better-quality-alternative to what we’re seeing in the <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a> and others.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jUeRrUixy8GU2nZycZyXFi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/jUeRrUixy8GU2nZycZyXFi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And then, I took it on my press trips across the globe over the past couple of weeks, and I’m left feeling a little mixed. The internal specs remain exactly the same (AMD Ryzen Z2 AI Extreme, 24GB RAM, 1TB SSD), and while Asus did mention evolved ROG Intelligent Cooling, the performance hasn’t moved an inch. </p><p>At $999 with nothing else really competing in the market, that level of performance was the absolute best you could get. Now Team Blue’s in town, that price increase becomes harder to swallow.</p><p>In all fairness, this may improve over time, as AMD has announced FSR 4 is going to be coming to its handheld silicon. I’ll be keeping a close eye on that, but then we’re back at that same issue again — with the OG ROG Xbox Ally X at the $1,000 mark, are these upgrades worth the cost increase?</p><h2 class="article-body__section" id="section-rog-xbox-ally-x-cheat-sheet"><span>ROG Xbox Ally X: Cheat Sheet</span></h2><ul><li><strong>What is it? </strong>Asus’ latest premium Windows gaming handled — aiming to fix the minor gripes of the previous Xbox Ally X, while adding a major screen upgrade.</li><li><strong>Who is it for? </strong>This is for the PC gamers who want a premium, portable Windows 11 machine and value screen quality and ergonomics over the highest performance.</li><li><strong>What does it cost? </strong><a href="https://www.bestbuy.com/product/rog-xbox-ally-x20-7-4-fhd-1080p-120hz-oled-gaming-handheld-amd-ryzen-ai-z2-extreme-processor-24gb-ram-1tb-ssd/JJGHGST42W/sku/6686854" target="_blank" rel="nofollow">$1,299</a> — a full $300 more than the launch price of the previous <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a>.</li><li><strong>What do we like? </strong>The new translucent design looks fantastic, the rubberized grips make long play sessions a joy, and the rotatable D-pad is a massive win for fighting game fans. The 1080p OLED display is exceptionally bright and vivid.</li><li><strong>What don’t we like? </strong>The price. It is incredibly hard to shake the feeling that the physical tweaks are just a smokescreen to absorb the cost of the pricier memory. At this price point, native performance on demanding titles like Cyberpunk 2077 is also sluggish.</li></ul><h2 class="article-body__section" id="section-rog-xbox-ally-x-specs"><span>ROG Xbox Ally X: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>11.8 x 4.8 x 2 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>1.67 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen AI Z2 Extreme</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>24GB LPDDR5x</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>1TB PCIe Gen 4x4 SSD</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>7.4-inch FHD, 16:9, 120Hz refresh rate OLED panel</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1x USB 4 Type-C, 1x USB 3.2 Gen 2 Type-C, 1x 3.5mm audio jack, 1x microSD card reader slot</p></td></tr><tr><td class="firstcol " ><p><strong>Wireless connectivity</strong></p></td><td  ><p>Wi-Fi 6E, Bluetooth 5.4</p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$1,299</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-rog-xbox-ally-x-the-ups"><span>ROG Xbox Ally X: The ups</span></h2><p>And so, I take off from Heathrow for another long haul to an event that I can’t tell you about (yet). Firing this up and getting into a bit of Silksong showed me the absolute best of what these upgrades bring to the table.</p><h2 id="an-oled-display-that-steals-the-show">An OLED display that steals the show</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jUcrooeSGEfteM8bJYdsHi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/jUcrooeSGEfteM8bJYdsHi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The immediate standout feature that you’ll notice about the Ally X20 is its new 7.4-inch OLED display. This is a mesmerizing flash-flood of color that really brings a game to life on-screen — be it the vivid world of Japan blurring past at over 200MPH in Forza Horizon 6, or the dark, immersive world of Silksong.</p><div ><table><thead><tr><th class="firstcol " ><p>Device</p></th><th  ><p>Average brightness (nits)</p></th><th  ><p>DCI-P3 color gamut (closer to 100% is better)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X20 (OLED)</strong></p></td><td  ><p>579.8</p></td><td  ><p>82.6%</p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X (LCD)</strong></p></td><td  ><p>515.8</p></td><td  ><p>77.9%</p></td></tr></tbody></table></div><p>And as you can see from our display results, it’s bright, it’s colorful, and it leaves a lot of its Intel counterparts in the dust. Make no mistake about it: if screens are very much your make-or-break when it comes to getting a handheld, this is a winner. But of course, gaming devices are about so much more than that.</p><h2 id="ergonomics-done-right">Ergonomics done right</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="sgehvaSehvxqWg95oyWJYi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/sgehvaSehvxqWg95oyWJYi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Last year, I said that the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a> is the best-feeling Windows gaming handheld you could get. That is still absolutely the case with its even weight distribution, the Xbox-inspired controller grips and the perfectly-placed buttons for your thumbs to naturally rest around.</p><p>This year, Asus has listened to some of the feedback and made small but significant tweaks to make it feel even better. The new transparent chassis isn’t just visually striking; it features highly effective rubberized grips that drastically improve grip and reduce hand fatigue during long sessions.</p><p>On top of that, the TMR joysticks feel silky smooth in operation and guarantee much better longevity of the hardware, the improved bumpers have a more satisfying tactile tap to them, and the rounded face buttons feel better sculpted to the thumb.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="35oKhRkgc2jPejUoT3i3Qi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/35oKhRkgc2jPejUoT3i3Qi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Then there’s the D-Pad, which is more than just a cool party trick. It’s ideal for switching game genres on the fly and getting your best performance out of them. It starts with a rubber and metal dome hybrid beneath the directional buttons that improves its preciseness and tactility.</p><p>But that rotating function can change it from a 4-way D-Pad (perfect for platformers or quick weapon selection in FPS games) to a 8-way (exactly what you need for fighting games). It’s this kind of versatility that makes it stand out in terms of overall comfort from the competition.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-the-downs"><span>Asus ROG Xbox Ally X20: The downs</span></h2><p>And as I played more and more when I really should’ve been working (sorry boss), it became clear to me that while these upgrades are nice to have for sure, the lack of improvement in performance while charging $300 more is a tough pill to swallow — especially when 007 First Light comes to a crawl.</p><h2 id="the-300-smokescreen">The $300 smokescreen</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Fk8JmmvWVBQFujY3sKYWii" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/Fk8JmmvWVBQFujY3sKYWii-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The previous ROG Xbox Ally X was a 4-star device, with my primary complaint being its $999 price tag. The X20 pushes that to an eye-watering $1,299. </p><p>While the OLED screen and new grips are great, those same performance stats that I saw from last year’s handheld are hard to justify a $300 leap in price when you can still get that <a href="https://www.bestbuy.com/product/rog-xbox-ally-x-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-ai-z2-extreme-24gb-ram-1tb-ssd/JJGHGPLVHW/sku/6642253" target="_blank" rel="nofollow">OG model with the same internals for that same price</a>.</p><p>Instead, these upgrades feel like a smokescreen to pass the higher costs of that 24GB RAM array directly onto you. Of course, how you feel about that depends on how much you care about OLED and ergonomics in balance with performance.</p><h2 id="struggling-under-the-weight-of-aaa">Struggling under the weight of AAA</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A9gyXc8RTF7AWLssxNyPPi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/A9gyXc8RTF7AWLssxNyPPi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And that (alongside the debut of <a href="https://www.tomsguide.com/gaming/handheld-gaming/intel-arc-g3-is-here-to-shake-up-handheld-gaming-and-amd-should-be-terrified-acer-predator-atlas-8-is-the-first-out-the-gate">Intel Arc G3 Extreme</a>) paints the AMD Ryzen AI Z2 Extreme in a different light. You see, while it can handle moderately demanding titles well, native performance on heavy hitters can crawl.</p><div ><table><thead><tr><th class="firstcol " ><p>Game</p></th><th  ><p>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 35W)</p></th><th  ><p>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme 17W)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Cinematic)</strong></p></td><td  ><p>11 FPS</p></td><td  ><p>14 FPS</p></td><td  ><p>10 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (720p High)</strong></p></td><td  ><p>11.87 FPS</p></td><td  ><p>27.01 FPS</p></td><td  ><p>11.27 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (1080p Medium)</strong></p></td><td  ><p>23 FPS</p></td><td  ><p>63.8 FPS</p></td><td  ><p>48.8 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Shadow of the Tomb Raider (1080p High)</strong></p></td><td  ><p>31 FPS</p></td><td  ><p>66 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>Of course, you can rely on upscaling and tweak the settings to play the heaviest titles, but while we wait for <a href="https://www.tomsguide.com/gaming/amd-is-bringing-fsr-4-1-upscaling-to-older-radeon-rx-gpus-this-is-huge">FSR 4</a>, the past generation frame gen and upscaling tech can be rather noticeable — especially with the improved clarity of that OLED panel.</p><p>And then there’s the battery, which as you can see hasn’t really budged either from last year’s model. </p><div ><table><thead><tr><th class="firstcol " ><p>Device</p></th><th  ><p>Gaming battery life test result (hh:mm)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X20 (AMD Ryzen Z2 AI Extreme)</strong></p></td><td  ><p>02:47</p></td></tr><tr><td class="firstcol " ><p><strong>MSI Claw 8 EX AI+ (Intel Arc G3 Extreme)</strong></p></td><td  ><p>04:10</p></td></tr></tbody></table></div><p>With Team Blue managing to hit similar frame rates at half the power, while also offering vastly better efficiency, it makes this tricky to recommend when a little more investment can futureproof you against future AAA titles.</p><h2 class="article-body__section" id="section-asus-rog-xbox-ally-x20-verdict"><span>Asus ROG Xbox Ally X20: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6CECMV3mFEjJ7WvQhYnBKi" name="Asus ROG Xbox Ally X20" alt="Asus ROG Xbox Ally X20" src="https://cdn.mos.cms.futurecdn.net/6CECMV3mFEjJ7WvQhYnBKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Asus ROG Xbox Ally X20 is a frustrating paradox. In one way, it is an undeniably better physical device than its predecessor — the OLED screen is stunning, and tweaks to the ergonomics make it a joy to hold.</p><p>But at $1,299 (and with Intel handhelds offering a whole lot more for the power players), the value proposition falls apart.</p><p>You are paying an ultra-premium tax for a handheld that requires heavy upscaling to play the latest AAA games, and trails in rivals in endurance.</p><p>If your eyes lit up at the idea of OLED, congratulations: this is the device for you! But for the rest of you, this is a gorgeous piece of hardware that’s tricky to recommend for the price.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just played The Legend of Zelda: Ocarina of Time remake — and it looks and plays better than I could have ever imagined ]]></title>
                                                                                                <dc:content><![CDATA[ <p>My days as a PlayStation fanboy in the mid-to-late ‘90s put me in the crosshairs of Nintendo diehards.</p><p>My grade school lunch breaks and recess sessions were filled with passionate debates about Crash Bandicoot vs. Super Mario 64, why the PS1 is the ultimate RPG console while the N64 isn’t and how Nintendo’s 3D console was the king of wrestling games (unlike the PS1). </p><p>At one point, I finally abandoned my fanboyish ways and tried the N64 at my best friend’s house. One of the first games I played was The Legend of Zelda: Majora’s Mask.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/VRaaoZvSqlQ" allowfullscreen=""></iframe></div></div><p>I know that sounds insane—playing the second N64 adventure in Link’s famed series before the first one, which is regarded as the GOAT, is wild. What’s even crazier is that I didn't play The Ocarina of Time until this year, through the <a href="https://www.tomsguide.com/gaming/nintendo/i-waited-30-years-to-own-a-virtual-boy-and-this-new-switch-2-accessory-lets-me-live-out-my-childhood-dream">Nintendo Switch Online + Expansion Pack</a>. After making my way through Hyrule Field and Kakariko Village, I finally realized all the hype about the quintessential action/adventure game was well warranted.</p><p>With fresh memories of the original swirling around in my head, I went into the Switch 2 remake of Ocarina of Time with extremely high expectations. And after making my way through three sections of the game, I walked away with even more anticipation for its November release.</p><h2 id="searching-for-a-sword-and-a-shield">Searching for a sword and a shield</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WViCnj3XoetgivSAbPmJ3X" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_08" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/WViCnj3XoetgivSAbPmJ3X-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The start of my foray into Link’s remade adventure kicked off with me helping Link search for his first sword and shield. </p><p>As I ran (and jumped!) around Kokiri Forest, I compared the graphical presentation of the remake to the N64 original and even the 3DS version. The porcelain doll look of Link and the rest of the Kokiri people felt a bit off to me at first when I watched the initial reveal trailer for this remake. But seeing Young Link and his fellow forest denizens in motion convinced me that the remake’s visual presentation looks pretty damned good. The forest’s more detailed woodland locales are equally impressive, as are the inner sanctums of the village’s populace. </p><p>Watching the initial cutscene unfold where Navi navigates toward Link’s hut is a bit different this time around, as the first-person viewpoint gets switched to a third-person one. I have no qualms about that one bit, especially cause the instance of Navi flying into a gate comes off a little bit more humorous with that viewpoint switch up (no pun intended). All the familiarities of this section, such as dodging that massive boulder to pick up the Kokiri Sword and buying the Deku Shield he needs to get past Mido, are intact as expected. </p><p>And thankfully, the spruced-up visuals do enough to make those nostalgic activities feel a bit fresh while retaining what made them so endearing in the first place.</p><h2 id="venturing-through-hyrule-field-and-hyrule-castle-town">Venturing through Hyrule Field and Hyrule Castle Town</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5cn5j2tN7jjknTJ5fFsZ25" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_13" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/5cn5j2tN7jjknTJ5fFsZ25-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Once I made my way out into the iconic Hyrule Field, I couldn’t help but be taken aback by just how much more expressive it looked this time around. </p><p>Fully detailed shrubs of grass, the presence of a noticeable mist floating through the air, patches of colorful flowers, towering trees and dirt roads make up the entirety of this remake’s newly realized pasture.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dxxAyL5E86veZWR4rvR5wM" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_16" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/dxxAyL5E86veZWR4rvR5wM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The same feelings of excitement and amazement remained intact once I finally entered Hyrule Castle Town. </p><p>I couldn’t help but crack a nostalgic smile at the sight of that dancing couple near the watering hole, who looked expectedly better than their N64 and 3DS variations. The use of loading screens between the town’s many areas wasn’t much of a bother, even though I’d prefer it if there were seamless navigation in this remake. Hyrule Castle Town’s vibrancy is on full display and is proof of just how jaw-dropping this new version of Ocarina of Time truly is. </p><p>I’m sure I’ll spend a few moments watching the NPCs move through their daily routines, chat with them to see what new bits of dialogue they may have and roll &amp; jump around every corner of their wholesome town once I get the full game in my hands.</p><h2 id="exploring-the-forest-temple">Exploring the Forest Temple</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gXAajrMbQrrFmu3bAdJ76U" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_20" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/gXAajrMbQrrFmu3bAdJ76U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The furthest I made it into the OG version of Ocarina of Time thus far is the famed “Forest Temple,” so I was pretty hyped to find out I’d be getting the chance to hop into its remade rendition.</p><p>I was surprised by just how amazing it looked on the inside and outside. Coming to blows with rabid Wolfos, using Link’s trusty Hookshot to knock Blue Bubbles out of the air and carefully picking my spots to do damage on Stalfos soldiers felt good from a combat standpoint. </p><p>Landing precise sword swings, blocking and flinging bombs brought with it a nice sense of impact, which appeals to someone like me who’s big on action games that deliver an appropriate sense of combat feedback. I spammed Link’s spinning sword attack far too many times than I can count, which is proof of just how much more I liked smacking around his foes in this remake compared to the original.</p><p>Running through the Forest Temple showcased a much moodier atmosphere, thanks to the remake’s darker lighting. That brooding feeling I couldn’t shake was even more apparent once I ran through the temple’s signature twisting hallway, which led to another moment where I was more than impressed with the remake’s visual flair.</p><p>While I didn’t have enough time to solve all of Forest Temple’s puzzles and clash with Phantom Ganon, I got more than enough of a sense of just how much better this area looks and sounds in its remade form.</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7696514546713824525" data-video-id="7696514546713824525" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ Ocarina Of Time (From "The Legend Of Zelda") - Geek Music" href="https://www.tiktok.com/music/Ocarina-Of-Time-From-The-Legend-Of-Zelda-6891415286575007745">♬ Ocarina Of Time (From "The Legend Of Zelda") - Geek Music</a></section>                    </blockquote></div>                <h2 id="final-thoughts">Final thoughts</h2><p>It’s funny to think that playing the Ocarina of Time remake now has me excited to jump back into the original, so I have even more of a memorized reference guide to go to once this Switch 2 exclusive arrives on November 5, 2026. </p><p>I have a few weeks to get it done so I can hop right into one of the most anticipated video game remakes ever made. </p><p>The porcelain doll-like characters, revised musical arrangements, eye-popping graphical presentation and impactful combat all came together during my demo time to convince me Nintendo has something special in its hands that I can’t wait for you all to experience for yourselves.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/nintendo/im-pretty-sure-this-is-the-most-underrated-switch-game-ever-and-you-can-get-it-for-just-usd21" target="_blank"><strong>I’m pretty sure this is the most underrated Switch game ever, and you can get it for just $21</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/handheld-gaming/evercade-nexus-hands-on-report-this-new-handheld-might-be-the-perfect-retro-gaming-device" target="_blank"><strong>Evercade Nexus hands-on report — this new handheld might be the perfect retro gaming device</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/forever-ago-a-heartfelt-road-trip-adventure-about-grief-and-loss" target="_blank"><strong>This new adventure game is one of the best indies I've ever played — and it'll make you cry, laugh and then cry a bit more</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/i-just-played-the-legend-of-zelda-ocarina-of-time-remake-and-it-looks-and-plays-better-than-i-could-have-ever-imagined</link>
                                                                            <description>
                            <![CDATA[ As someone who just recently gave Link’s N64 magnum opus a chance, I walked away from the remake of that game with even more excitement about its November release. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">L8vU2xhK6vj2GKz2CAELiM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Kf7e83yS4y7L3owkkDDCeF-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 14 Oct 2026 13:00:00 +0000</pubDate>                                                                                                                                <updated>Wed, 14 Oct 2026 22:31:29 +0000</updated>
                                                                                                                                            <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Kf7e83yS4y7L3owkkDDCeF-1920-80.jpg">
                                                            <media:credit><![CDATA[Nintendo]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[legend of zelda ocarina of time remake]]></media:description>                                                            <media:text><![CDATA[legend of zelda ocarina of time remake]]></media:text>
                                <media:title type="plain"><![CDATA[legend of zelda ocarina of time remake]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Kf7e83yS4y7L3owkkDDCeF-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>My days as a PlayStation fanboy in the mid-to-late ‘90s put me in the crosshairs of Nintendo diehards.</p><p>My grade school lunch breaks and recess sessions were filled with passionate debates about Crash Bandicoot vs. Super Mario 64, why the PS1 is the ultimate RPG console while the N64 isn’t and how Nintendo’s 3D console was the king of wrestling games (unlike the PS1). </p><p>At one point, I finally abandoned my fanboyish ways and tried the N64 at my best friend’s house. One of the first games I played was The Legend of Zelda: Majora’s Mask.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/VRaaoZvSqlQ" allowfullscreen=""></iframe></div></div><p>I know that sounds insane—playing the second N64 adventure in Link’s famed series before the first one, which is regarded as the GOAT, is wild. What’s even crazier is that I didn't play The Ocarina of Time until this year, through the <a href="https://www.tomsguide.com/gaming/nintendo/i-waited-30-years-to-own-a-virtual-boy-and-this-new-switch-2-accessory-lets-me-live-out-my-childhood-dream">Nintendo Switch Online + Expansion Pack</a>. After making my way through Hyrule Field and Kakariko Village, I finally realized all the hype about the quintessential action/adventure game was well warranted.</p><p>With fresh memories of the original swirling around in my head, I went into the Switch 2 remake of Ocarina of Time with extremely high expectations. And after making my way through three sections of the game, I walked away with even more anticipation for its November release.</p><h2 id="searching-for-a-sword-and-a-shield">Searching for a sword and a shield</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WViCnj3XoetgivSAbPmJ3X" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_08" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/WViCnj3XoetgivSAbPmJ3X-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The start of my foray into Link’s remade adventure kicked off with me helping Link search for his first sword and shield. </p><p>As I ran (and jumped!) around Kokiri Forest, I compared the graphical presentation of the remake to the N64 original and even the 3DS version. The porcelain doll look of Link and the rest of the Kokiri people felt a bit off to me at first when I watched the initial reveal trailer for this remake. But seeing Young Link and his fellow forest denizens in motion convinced me that the remake’s visual presentation looks pretty damned good. The forest’s more detailed woodland locales are equally impressive, as are the inner sanctums of the village’s populace. </p><p>Watching the initial cutscene unfold where Navi navigates toward Link’s hut is a bit different this time around, as the first-person viewpoint gets switched to a third-person one. I have no qualms about that one bit, especially cause the instance of Navi flying into a gate comes off a little bit more humorous with that viewpoint switch up (no pun intended). All the familiarities of this section, such as dodging that massive boulder to pick up the Kokiri Sword and buying the Deku Shield he needs to get past Mido, are intact as expected. </p><p>And thankfully, the spruced-up visuals do enough to make those nostalgic activities feel a bit fresh while retaining what made them so endearing in the first place.</p><h2 id="venturing-through-hyrule-field-and-hyrule-castle-town">Venturing through Hyrule Field and Hyrule Castle Town</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5cn5j2tN7jjknTJ5fFsZ25" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_13" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/5cn5j2tN7jjknTJ5fFsZ25-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Once I made my way out into the iconic Hyrule Field, I couldn’t help but be taken aback by just how much more expressive it looked this time around. </p><p>Fully detailed shrubs of grass, the presence of a noticeable mist floating through the air, patches of colorful flowers, towering trees and dirt roads make up the entirety of this remake’s newly realized pasture.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dxxAyL5E86veZWR4rvR5wM" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_16" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/dxxAyL5E86veZWR4rvR5wM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The same feelings of excitement and amazement remained intact once I finally entered Hyrule Castle Town. </p><p>I couldn’t help but crack a nostalgic smile at the sight of that dancing couple near the watering hole, who looked expectedly better than their N64 and 3DS variations. The use of loading screens between the town’s many areas wasn’t much of a bother, even though I’d prefer it if there were seamless navigation in this remake. Hyrule Castle Town’s vibrancy is on full display and is proof of just how jaw-dropping this new version of Ocarina of Time truly is. </p><p>I’m sure I’ll spend a few moments watching the NPCs move through their daily routines, chat with them to see what new bits of dialogue they may have and roll &amp; jump around every corner of their wholesome town once I get the full game in my hands.</p><h2 id="exploring-the-forest-temple">Exploring the Forest Temple</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gXAajrMbQrrFmu3bAdJ76U" name="Switch2_ZeldaOoT_MedaiBroll_SCRN_20" alt="legend of zelda ocarina of time remake" src="https://cdn.mos.cms.futurecdn.net/gXAajrMbQrrFmu3bAdJ76U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>The furthest I made it into the OG version of Ocarina of Time thus far is the famed “Forest Temple,” so I was pretty hyped to find out I’d be getting the chance to hop into its remade rendition.</p><p>I was surprised by just how amazing it looked on the inside and outside. Coming to blows with rabid Wolfos, using Link’s trusty Hookshot to knock Blue Bubbles out of the air and carefully picking my spots to do damage on Stalfos soldiers felt good from a combat standpoint. </p><p>Landing precise sword swings, blocking and flinging bombs brought with it a nice sense of impact, which appeals to someone like me who’s big on action games that deliver an appropriate sense of combat feedback. I spammed Link’s spinning sword attack far too many times than I can count, which is proof of just how much more I liked smacking around his foes in this remake compared to the original.</p><p>Running through the Forest Temple showcased a much moodier atmosphere, thanks to the remake’s darker lighting. That brooding feeling I couldn’t shake was even more apparent once I ran through the temple’s signature twisting hallway, which led to another moment where I was more than impressed with the remake’s visual flair.</p><p>While I didn’t have enough time to solve all of Forest Temple’s puzzles and clash with Phantom Ganon, I got more than enough of a sense of just how much better this area looks and sounds in its remade form.</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7696514546713824525" data-video-id="7696514546713824525" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ Ocarina Of Time (From "The Legend Of Zelda") - Geek Music" href="https://www.tiktok.com/music/Ocarina-Of-Time-From-The-Legend-Of-Zelda-6891415286575007745">♬ Ocarina Of Time (From "The Legend Of Zelda") - Geek Music</a></section>                    </blockquote></div>                <h2 id="final-thoughts">Final thoughts</h2><p>It’s funny to think that playing the Ocarina of Time remake now has me excited to jump back into the original, so I have even more of a memorized reference guide to go to once this Switch 2 exclusive arrives on November 5, 2026. </p><p>I have a few weeks to get it done so I can hop right into one of the most anticipated video game remakes ever made. </p><p>The porcelain doll-like characters, revised musical arrangements, eye-popping graphical presentation and impactful combat all came together during my demo time to convince me Nintendo has something special in its hands that I can’t wait for you all to experience for yourselves.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/nintendo/im-pretty-sure-this-is-the-most-underrated-switch-game-ever-and-you-can-get-it-for-just-usd21" target="_blank"><strong>I’m pretty sure this is the most underrated Switch game ever, and you can get it for just $21</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/handheld-gaming/evercade-nexus-hands-on-report-this-new-handheld-might-be-the-perfect-retro-gaming-device" target="_blank"><strong>Evercade Nexus hands-on report — this new handheld might be the perfect retro gaming device</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/forever-ago-a-heartfelt-road-trip-adventure-about-grief-and-loss" target="_blank"><strong>This new adventure game is one of the best indies I've ever played — and it'll make you cry, laugh and then cry a bit more</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I didn’t expect to love Star Wars: Galactic Racer this much — and it’s all thanks to the excellent single-player mode ]]></title>
                                                                                                <dc:content><![CDATA[ <p>We've been waiting a few years for another truly great Star Wars video game post-<a href="https://www.tomsguide.com/reviews/star-wars-jedi-survivor-review">Jedi Survivor</a>, and then two show up at once. First there was the addictive tactical battles of <a href="https://www.tomsguide.com/gaming/star-wars-zero-company-is-a-surprise-goty-contender-but-you-need-to-switch-on-permadeath-trust-me">Star Wars: Zero Company</a>, and now Star Wars: Galactic Racer has also arrived into the GOTY conversation. </p><p>I felt this arcade racer was in danger of slipping under the radar, lost in the ludicrously packed sea of new releases landing in September and October as every publisher under the sun tries to get new games out before GTA 6 arrives. I was wrong. Galactic Racer is making quite the splash, and after getting behind the wheel (yoke?) of a speeder myself, I totally see why. </p><p>This racing game set in a galaxy far, far away offers a white-knuckle sense of speed that few racers can rival. Skimming through the deserts of Jakku, the frozen wasteland of Ando Prime, or the lush jungles of Lantaana is a joy. Of course, it helps that the game looks and sounds phenomenal while doing it — even if you don’t have time to stop and admire the views. </p><p>However, it’s not the tight controls, authentic audio and visuals, or even the chance to try my hand at pod racing that has won me over. Star Wars: Galactic Racers' best aspect is its surprisingly engaging single-player campaign, which is, in a nutshell, a Star Wars racing rougelite. And it's as awesome as it sounds.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eygJnO"></div>                            </div>                            <script src="https://kwizly.com/embed/eygJnO.js" async=""></script><div class="product"><a data-dimension112="b841b5b2-c341-11f1-a3f5-b74b6a8d5421" data-action="Deal Block" data-label="Galactic Racer" data-dimension48="Galactic Racer" data-dimension25="$59" href="https://www.amazon.com/Star-Wars-Galactic-Racer-PlayStation-5/dp/B0GZ5MDG2P/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1204px;"><p class="vanilla-image-block" style="padding-top:124.58%;"><img id="nYv56ybAbjCej7U9EBYgk9" name="star-wars-galactic-racer-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/nYv56ybAbjCej7U9EBYgk9-1920-80.jpg" mos="" align="middle" fullscreen="" width="1204" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Star Wars: Galactic Racer is a new arcade racing game set in the beloved sci-fi universe. It puts you behind the wheel of a range of ultra-fast vehicles, racing across iconic planets and competing to win the Galactic League in the game's excellent, rougelite single-player mode.<a class="view-deal button" href="https://www.amazon.com/Star-Wars-Galactic-Racer-PlayStation-5/dp/B0GZ5MDG2P/" target="_blank" rel="nofollow" data-dimension112="b841b5b2-c341-11f1-a3f5-b74b6a8d5421" data-action="Deal Block" data-label="Galactic Racer" data-dimension48="Galactic Racer" data-dimension25="$59">View Deal</a></p></div><h2 id="galactic-racers-single-player-is-super-special">Galactic Racers’ single-player is super special</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/pR-V3j-sc7s" allowfullscreen=""></iframe></div></div><p>Galactic Racer’s sci-fi story is a simple one: you play a lightly customizable character named Shade, who enters the dangerous Galactic League not seeking glory, but revenge. You have beef with the league’s top dog, Kestar Bool, and plan to humiliate him on the track by taking his champion crown. </p><p>In a conventional racing game, this story might play out over a series of races and events, each victory giving you some form of XP or currency, slowly accruing enough to upgrade your garage and take on more challenging races, and repeat until you unlock the big showdown with Kestar Bool. </p><p>While in Galactic Racer, you do indeed earn rewards after each race — the higher your placement, the bigger the spoils — but progress isn’t quite so linear. That’s because its single-player campaign is built around a roguelite structure. Flame out of an event (and I mean that literally; the crash animations are quite explosive), and you have to start over at the bottom.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FomcbupBb4muUw5KqSTP5W" name="star-wars-galactic-racer-screenshot-02.JPG" alt="Star Wars: Galactic Racer screenshot taken on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/FomcbupBb4muUw5KqSTP5W-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Secret Mode / Fuse Games)</span></figcaption></figure><p>All your vehicle upgrades and unlocks are stripped away, and you start again in a whole new league season. It’s a wonderfully compelling loop that makes each race and event feel like a desperate sprint not just to the finish line, but to keep your run alive. Failure doesn’t just mean a quick restart; it could mean your run is over, and you have to start again at the bottom of the ladder.</p><p>Successful roguelites do have to walk a delicate balance between giving every encounter (or race, in this case) stakes and not demoralising the player by forcing them to pound a brick wall for hours only to make minor progression. But Galactic Racer walks this line nearly perfectly. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4ovcu8wggsiTxcqrviCg6W" name="star-wars-galactic-racer-screenshot-03.JPG" alt="Star Wars: Galactic Racer screenshot taken on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/4ovcu8wggsiTxcqrviCg6W-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Secret Mode / Fuse Games)</span></figcaption></figure><p>The story is split into three individual acts, with a major showdown race capping each. Once you complete an act, it’s finished for good. You only restart back to the beginning of the act you’re currently playing. And even in failure, there is still reward, as you are given the chance to unlock permanent upgrades that tip the odds of success in your direction next time around.</p><p>Runs are also kept interesting with randomised upgrades dished out after each event. This adds an element of build-crafting; for example, in a recent run, I found myself constructing a speeder that was slow off the mark and couldn’t take tight corners, but it was a total speed demon in the straight. In my next run, the vehicle I create will likely be different based on upgrades.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b5kQtMmefuaMsNvFc23S4W" name="star-wars-galactic-racer-screenshot-01.JPG" alt="Star Wars: Galactic Racer screenshot taken on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/b5kQtMmefuaMsNvFc23S4W-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Secret Mode / Fuse Games)</span></figcaption></figure><p>This rougelite structure is a great way to make players experiment with different racing styles and vehicle configurations, and ensures that no races feel unimportant or only necessary for XP grinding; every time you’re out on the track, you’re just a wrong turn away from losing (almost) everything. </p><p>I typically find in a racing game, the real excitement comes when racing online or competing with friends in split-screen, but Star Wars: Galactic Racer has found a way to make playing alone feel just as intense and high-stakes as competing against other human players. That's worthy of the podium.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/star-wars-zero-company-is-a-surprise-goty-contender-but-you-need-to-switch-on-permadeath-trust-me"><strong>Star Wars Zero Company is a surprise GOTY contender</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games"><strong>The best PS5 games in 2026</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/news/star-wars-movies-in-order-4k-hdr"><strong>How to watch the Star Wars movies in order — and the shows too</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/i-didnt-expect-to-love-star-wars-galactic-racer-this-much-and-its-all-thanks-to-the-excellent-single-player-mode</link>
                                                                            <description>
                            <![CDATA[ Star Wars: Galactic Racer has quickly become one of my favorite racing games in years, and the incredible rougelite campaign is why. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZiNnRniiTwMjm33WfU7YpW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/3NPTr73K7XuphgA8CfPGC5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 11 Oct 2026 08:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/3NPTr73K7XuphgA8CfPGC5-1920-80.jpg">
                                                            <media:credit><![CDATA[Secret Mode / Fuse Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Star Wars Galactic Racer screenshot showing a pod-race]]></media:description>                                                            <media:text><![CDATA[Star Wars Galactic Racer screenshot showing a pod-race]]></media:text>
                                <media:title type="plain"><![CDATA[Star Wars Galactic Racer screenshot showing a pod-race]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/3NPTr73K7XuphgA8CfPGC5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We've been waiting a few years for another truly great Star Wars video game post-<a href="https://www.tomsguide.com/reviews/star-wars-jedi-survivor-review">Jedi Survivor</a>, and then two show up at once. First there was the addictive tactical battles of <a href="https://www.tomsguide.com/gaming/star-wars-zero-company-is-a-surprise-goty-contender-but-you-need-to-switch-on-permadeath-trust-me">Star Wars: Zero Company</a>, and now Star Wars: Galactic Racer has also arrived into the GOTY conversation. </p><p>I felt this arcade racer was in danger of slipping under the radar, lost in the ludicrously packed sea of new releases landing in September and October as every publisher under the sun tries to get new games out before GTA 6 arrives. I was wrong. Galactic Racer is making quite the splash, and after getting behind the wheel (yoke?) of a speeder myself, I totally see why. </p><p>This racing game set in a galaxy far, far away offers a white-knuckle sense of speed that few racers can rival. Skimming through the deserts of Jakku, the frozen wasteland of Ando Prime, or the lush jungles of Lantaana is a joy. Of course, it helps that the game looks and sounds phenomenal while doing it — even if you don’t have time to stop and admire the views. </p><p>However, it’s not the tight controls, authentic audio and visuals, or even the chance to try my hand at pod racing that has won me over. Star Wars: Galactic Racers' best aspect is its surprisingly engaging single-player campaign, which is, in a nutshell, a Star Wars racing rougelite. And it's as awesome as it sounds.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eygJnO"></div>                            </div>                            <script src="https://kwizly.com/embed/eygJnO.js" async=""></script><div class="product"><a data-dimension112="b841b5b2-c341-11f1-a3f5-b74b6a8d5421" data-action="Deal Block" data-label="Galactic Racer" data-dimension48="Galactic Racer" data-dimension25="$59" href="https://www.amazon.com/Star-Wars-Galactic-Racer-PlayStation-5/dp/B0GZ5MDG2P/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1204px;"><p class="vanilla-image-block" style="padding-top:124.58%;"><img id="nYv56ybAbjCej7U9EBYgk9" name="star-wars-galactic-racer-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/nYv56ybAbjCej7U9EBYgk9-1920-80.jpg" mos="" align="middle" fullscreen="" width="1204" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Star Wars: Galactic Racer is a new arcade racing game set in the beloved sci-fi universe. It puts you behind the wheel of a range of ultra-fast vehicles, racing across iconic planets and competing to win the Galactic League in the game's excellent, rougelite single-player mode.<a class="view-deal button" href="https://www.amazon.com/Star-Wars-Galactic-Racer-PlayStation-5/dp/B0GZ5MDG2P/" target="_blank" rel="nofollow" data-dimension112="b841b5b2-c341-11f1-a3f5-b74b6a8d5421" data-action="Deal Block" data-label="Galactic Racer" data-dimension48="Galactic Racer" data-dimension25="$59">View Deal</a></p></div><h2 id="galactic-racers-single-player-is-super-special">Galactic Racers’ single-player is super special</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/pR-V3j-sc7s" allowfullscreen=""></iframe></div></div><p>Galactic Racer’s sci-fi story is a simple one: you play a lightly customizable character named Shade, who enters the dangerous Galactic League not seeking glory, but revenge. You have beef with the league’s top dog, Kestar Bool, and plan to humiliate him on the track by taking his champion crown. </p><p>In a conventional racing game, this story might play out over a series of races and events, each victory giving you some form of XP or currency, slowly accruing enough to upgrade your garage and take on more challenging races, and repeat until you unlock the big showdown with Kestar Bool. </p><p>While in Galactic Racer, you do indeed earn rewards after each race — the higher your placement, the bigger the spoils — but progress isn’t quite so linear. That’s because its single-player campaign is built around a roguelite structure. Flame out of an event (and I mean that literally; the crash animations are quite explosive), and you have to start over at the bottom.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FomcbupBb4muUw5KqSTP5W" name="star-wars-galactic-racer-screenshot-02.JPG" alt="Star Wars: Galactic Racer screenshot taken on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/FomcbupBb4muUw5KqSTP5W-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Secret Mode / Fuse Games)</span></figcaption></figure><p>All your vehicle upgrades and unlocks are stripped away, and you start again in a whole new league season. It’s a wonderfully compelling loop that makes each race and event feel like a desperate sprint not just to the finish line, but to keep your run alive. Failure doesn’t just mean a quick restart; it could mean your run is over, and you have to start again at the bottom of the ladder.</p><p>Successful roguelites do have to walk a delicate balance between giving every encounter (or race, in this case) stakes and not demoralising the player by forcing them to pound a brick wall for hours only to make minor progression. But Galactic Racer walks this line nearly perfectly. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4ovcu8wggsiTxcqrviCg6W" name="star-wars-galactic-racer-screenshot-03.JPG" alt="Star Wars: Galactic Racer screenshot taken on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/4ovcu8wggsiTxcqrviCg6W-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Secret Mode / Fuse Games)</span></figcaption></figure><p>The story is split into three individual acts, with a major showdown race capping each. Once you complete an act, it’s finished for good. You only restart back to the beginning of the act you’re currently playing. And even in failure, there is still reward, as you are given the chance to unlock permanent upgrades that tip the odds of success in your direction next time around.</p><p>Runs are also kept interesting with randomised upgrades dished out after each event. This adds an element of build-crafting; for example, in a recent run, I found myself constructing a speeder that was slow off the mark and couldn’t take tight corners, but it was a total speed demon in the straight. In my next run, the vehicle I create will likely be different based on upgrades.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b5kQtMmefuaMsNvFc23S4W" name="star-wars-galactic-racer-screenshot-01.JPG" alt="Star Wars: Galactic Racer screenshot taken on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/b5kQtMmefuaMsNvFc23S4W-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Secret Mode / Fuse Games)</span></figcaption></figure><p>This rougelite structure is a great way to make players experiment with different racing styles and vehicle configurations, and ensures that no races feel unimportant or only necessary for XP grinding; every time you’re out on the track, you’re just a wrong turn away from losing (almost) everything. </p><p>I typically find in a racing game, the real excitement comes when racing online or competing with friends in split-screen, but Star Wars: Galactic Racer has found a way to make playing alone feel just as intense and high-stakes as competing against other human players. That's worthy of the podium.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/star-wars-zero-company-is-a-surprise-goty-contender-but-you-need-to-switch-on-permadeath-trust-me"><strong>Star Wars Zero Company is a surprise GOTY contender</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games"><strong>The best PS5 games in 2026</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/news/star-wars-movies-in-order-4k-hdr"><strong>How to watch the Star Wars movies in order — and the shows too</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Logitech’s latest esports mouse clicks faster and gets you more kills — what happened to my scoreboards after a week gaming ]]></title>
                                                                                                <dc:content><![CDATA[ <p>How much does a click per second matter? Turns out quite a bit, if you’re a competitive gamer. That extra click per second is the difference between firing off one or two shots on a semi-automatic weapon, potentially giving you a competitive advantage.</p><p>That’s where the Logitech G Pro X3 SuperStrike comes in. On the surface, it’s a fairly typical competition gaming mouse: lightweight, fairly unergonomic, with two buttons on the top and two on the side. This mouse, however, like its predecessor, has some handy tech within. Specifically, magnetic switches under the mouse buttons, which allow adjustable click actuation and rapid trigger.</p><p>So should you buy this mouse? Admittedly, it isn’t perfect. There’s no ergonomic variant available, no onboard DPI switch, and rivals have the edge in key areas. But the Logi is still doubtless one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-mouse">best gaming mice</a> around. Find out more in my full Logitech G Pro X3 SuperStrike review.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-cheat-sheet"><span>Logitech G Pro X3 SuperStrike review: Cheat sheet</span></h2><ul><li><strong>What is it?</strong> Logitech’s latest elite esports mouse</li><li><strong>Who is it for? </strong>Competitive gamers, especially FPS and MOBA players</li><li><strong>What does it cost? </strong><a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a></li><li><strong>What’s good? </strong>The quick, haptic clicks with rapid trigger, plus the lightweight design and customization options</li><li><strong>What’s not? </strong>There’s no DPI button or ergonomic version, and (clicks aside) rivals offer more features for less money</li></ul><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-specs"><span>Logitech G Pro X3 SuperStrike review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a> </p></td></tr><tr><td class="firstcol " ><p><strong>Max DPI</strong></p></td><td  ><p>48,000</p></td></tr><tr><td class="firstcol " ><p><strong>Polling rate</strong></p></td><td  ><p>8,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Buttons</strong></p></td><td  ><p>5</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>4.92 x 2.5 x 1.57 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>61g / 2.1 ounces</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black; magenta</p></td></tr><tr><td class="firstcol " ><p><strong>Body material</strong></p></td><td  ><p>Plastic</p></td></tr><tr><td class="firstcol " ><p><strong>Design</strong></p></td><td  ><p>Right-handed symmetrical</p></td></tr><tr><td class="firstcol " ><p><strong>Operating system</strong></p></td><td  ><p>Windows, macOS</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4GHz; wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>Up to 135 hours</p></td></tr><tr><td class="firstcol " ><p><strong>Lighting</strong></p></td><td  ><p>No</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-the-ups"><span>Logitech G Pro X3 SuperStrike review: The ups</span></h2><p>The Logitech Pro X3 SuperStrike is an elite gaming mouse through and through, packing adjustable click switches, rapid trigger and 8K polling. It’s lightweight, customizable and looks rather fetching in hot pink.</p><h2 id="elite-click-performance">Elite click performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t5XGg6fREjfyimpL7S3gTV" name="Logitech G Pro X3 SuperStrike_5.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/t5XGg6fREjfyimpL7S3gTV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Core to the SuperStrike’s performance are its HITS switches. They’re magnetic, like you’d find in one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-keyboard">best gaming keyboards</a> (including the Logitech G X2 Pro Rapid keyboard released at the same time). They offer customizable haptic feedback, which is neat — honestly, I don’t find this too beneficial, but it sure feels good. </p><h4 id="adjustable-actuation">Adjustable actuation</h4><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/FChTiSh6FoKbAfQj5moYFV-1920-80.jpg" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" /><figcaption><small role="credit">Logitech / Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/v9kAdDWTjqCjMXFnUDpUDV-1920-80.jpg" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" /><figcaption><small role="credit">Logitech / Future</small></figcaption></figure></figure><p>More importantly, the switches open up adjustable actuation for LMB and RMB, meaning ultra fast, responsive clicks. The downside is unwanted clicks, leading to accidental shots in games like Counter-Strike 2. </p><p>I got used to the increased sensitivity pretty fast though, so this wasn’t a problem for long. The upside is ultra quick click registry, which is ideal for FPS players — that millisecond of time you get over an enemy using typical optical switches can be the difference between you headshotting them, or them you. </p><p>Logi's G Hub software features an actuation test to see how much faster you'll click using the HITS switches versus traditional optical or mechanical switches. My result was 17ms faster. Competitive players will probably see even more of a difference, and it could be enough to have potentially game-changing results.</p><h4 id="rapid-trigger">Rapid trigger</h4><p>My favorite feature, though, is rapid trigger — after actuating, the switch doesn’t need to reset like a mechanical switch would in order to actuate again. This means you can spam repeat inputs without resetting the mouse button, which is ideal for MOBA players. In theory, this speeds up your repeat clicking versus non-rapid-trigger switches.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v9kAdDWTjqCjMXFnUDpUDV" name="Logitech G Pro X3 SuperStrike_GHub Screenshots-3" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" src="https://cdn.mos.cms.futurecdn.net/v9kAdDWTjqCjMXFnUDpUDV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The difference for me was subtle, but I still noticed it straight away. I took back to back tests on <a href="http://cpstest.org" target="_blank">cpstest.org</a>, which averages clicks over 30 seconds. My overall average clicks per second (CPS) were more or less the same over 30 seconds on the SuperStrike versus the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-rival-pro-sensei-pro-review">SteelSeries Rival Pro</a> (optical switches, with no rapid trigger). This is because over 30 seconds, my fingers tired and I slowed down (I’m no MOBA player).</p><p>Importantly, though, my realtime click speeds in the opening few seconds went from just over 6CPS (Rival Pro) to 7CPS (SuperStrike). When initially opening up on a semi-automatic weapon, that means I’m getting an extra click per second on the SuperStrike, and therefore an extra shot — a big advantage in a 1v1.</p><p>I found this especially useful for semi-auto or high recoil weapons on Counter-Strike 2 and Wardogs, like the AK47. Firing single shots or short bursts controls recoil better — being able to chain more of those together in quick succession helped me shoot more frequently and accurately, scoring more kills than I usually would. I went from my usual upper-mid scoreboards on Counter-Strike 2 to top three. That’s a result.</p><p>Rapid quick succession clicks are also obviously ideal for MOBA players who need to spam clicks constantly, but I’m lacking the joint health for that these days.</p><h3 id="ultra-sensitive">Ultra sensitive</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="94aJtSwiLXc2RhvX5DAaPV" name="Logitech G Pro X3 SuperStrike_GHub Screenshots-5" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" src="https://cdn.mos.cms.futurecdn.net/94aJtSwiLXc2RhvX5DAaPV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/94aJtSwiLXc2RhvX5DAaPV-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The SuperStrike tops out at 48,000 DPI and 8,000Hz polling, all adjustable in G Hub. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Future)</span></figcaption></figure><p>When it comes to keyboards, I stand by my position that 8,000Hz polling is snake oil. In a competition mouse, though, it’s vital. A mouse moves incredibly quickly and accurately. Greater data transfer is therefore required to ensure no latency, and that every tiny movement or adjustment is translated properly so that your cursor lands exactly where it’s supposed to. </p><p>Thankfully, the SuperStrike packs 8K polling, which is as fast as it gets these days, giving you peace of mind about all the above (well… almost — as I’ll discuss in the cons). The SuperStrike’s sensitivity also maxes out at 48,000 DPI, which is extremely fast, enabling rapid movement. </p><h2 id="lightweight-and-flickable">Lightweight and flickable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="abhLcfozPUEMvaeE7D5KBV" name="Logitech G Pro X3 SuperStrike_2.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/abhLcfozPUEMvaeE7D5KBV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Pro X3 SuperStrike weighs 61g or 2.1 ounces, which is the same as its predecessor, the <a href="https://www.tomsguide.com/computing/mice/logitech-g-pro-x2-superstrike-review">Logitech G Pro X2 SuperStrike</a>. Compare that to other elite mice and the SuperStrike starts to look a little heavy.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Mouse</strong></p></th><th  ><p><strong>Weight in g (grams)</strong></p></th><th  ><p><strong>Acceleration in G (g-force)</strong></p></th><th  ><p><strong>Price</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Logitech G Pro X3 SuperStrike</p></td><td  ><p>61g</p></td><td  ><p>90G</p></td><td  ><p><a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a> </p></td></tr><tr><td class="firstcol " ><p>Logitech G Pro X2 SuperStrike</p></td><td  ><p>61g</p></td><td  ><p>88G</p></td><td  ><p>$169 / £159</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/gaming/peripherals/logitech-g-pro-x-superlight-2-review">Logitech G Pro X SuperLight 2</a></p></td><td  ><p>60g</p></td><td  ><p>88G</p></td><td  ><p>$159 / $139</p></td></tr><tr><td class="firstcol " ><p>SteelSeries Rival/Sensei Pro</p></td><td  ><p>53g</p></td><td  ><p>70G</p></td><td  ><p>$179 / £169</p></td></tr><tr><td class="firstcol " ><p>SteelSeries Rival/Sensei Mini</p></td><td  ><p>49g</p></td><td  ><p>70G</p></td><td  ><p>$179 / £169</p></td></tr><tr><td class="firstcol " ><p>Razer DeathAdder V4 Pro</p></td><td  ><p>56g</p></td><td  ><p>85G</p></td><td  ><p>$169 / £169</p></td></tr><tr><td class="firstcol " ><p>Razer Viper V4 Pro</p></td><td  ><p>49g</p></td><td  ><p>90G</p></td><td  ><p>$159 / £159</p></td></tr></tbody></table></div><p>It doesn’t feel like it, though. The SuperStrike also has up to 90G of acceleration (up from 88G in the prior model), meaning more cursor movement from less hand movement — that’s greater than the 70G acceleration of the Rival/Sensei Pro, which can counteract the weight difference between the two. If you want the lowest weight combined with the highest acceleration, though, check out the <a href="https://www.tomsguide.com/computing/mice/razer-viper-v4-pro-review">Razer Viper V4 Pro</a> and 49g + 90G acceleration.</p><p>Of course, this will kinda depend on preference. Some players prefer a little extra weight in their hand. And besides, I’ve found the SuperStrike adequately lightweight and flickable.</p><h2 id="fairly-customizable">Fairly customizable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eEVxwnhuNy2McY7KQwzwJV" name="Logitech G Pro X3 SuperStrike_GHub Screenshots-4" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" src="https://cdn.mos.cms.futurecdn.net/eEVxwnhuNy2McY7KQwzwJV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/eEVxwnhuNy2McY7KQwzwJV-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Future)</span></figcaption></figure><p>As I’ll cover below, I think Logitech is lagging behind software-wise. That said, the SuperStrike is still a highly customizable mouse, so praise where it’s due.</p><p>The <a href="https://www.logitechg.com/en-gb/software/ghub">G Hub</a> software is fairly slick and reliable, and lets you customize lots of aspects. You can change actuation, enable and tweak rapid trigger, assign binds and macros, and tailor DPI and poll rates. That’s all you <em>really</em> need, although I’d appreciate a few more nice-to-haves.</p><p>Importantly, you can set custom configs in addition to the range of per-genre presets. This is vital for me, as I like to bind both side buttons to crouch and prone, which differs per game.</p><h2 id="decent-battery-life">Decent battery life</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Mik42QjW5TPdxM8QwxVqjV" name="Logitech G Pro X3 SuperStrike_8.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/Mik42QjW5TPdxM8QwxVqjV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The SuperStrike offers up to 135 hours of battery life. Of course, that’s an ‘up to,’ and polling at 8K, you can forget anything near that. It’s a little short of the Viper V4 Pro’s 180 hours, and, in my opinion, pales in comparison to the zero-downtime system in the Rival/Sensei Pro. But safe to say the SuperStrike’s battery life has been long enough for me to not have to think about it <em>much</em>.</p><h2 id="that-hot-pink">That hot pink</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B8pY4i3uKwHrLV9GuTENk6" name="Logitech_ProX2_RAPID 12.JPG" alt="A photo of a desk setup including the Logitech Pro X2 Rapid keyboard, Logitech Pro X3 SuperStrike mouse and Pro X3 Lightspeed headset." src="https://cdn.mos.cms.futurecdn.net/B8pY4i3uKwHrLV9GuTENk6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The Logitech G Pro X3 SuperStrike alongside the Pro X2 Rapid keyboard and Pro X3 Lightspeed headset. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I know looks don’t really matter, but damn do I find it refreshing to see mice that aren’t just available in black or white. I’m a huge fan of the green Razer Viper V4 Pro and the two orange Fnatic-collabs mice — the <a href="https://www.tomsguide.com/computing/peripherals/fnatic-x-lamzu-maya-8k-maya-x-8k-mouse-review">Lamzu Maya 8K</a> ($119) and Sony Inzone Mouse-A ($149). Likewise, I absolutely love the SuperStrike in hot pink, especially when paired with the Pro X2 Rapid keyboard.</p><p>Weirdly, Logitech hasn’t yet released a white variant of the Pro X3 SuperStrike, despite releasing it alongside the Pro X2 Rapid keyboard and Pro X2 Lightspeed headset — both of which come in black, white and the same hot magenta. If you want an all-white trio, you’re out of luck, unless you go for the last-gen X2 SuperStrike.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-the-downs"><span>Logitech G Pro X3 SuperStrike review: The downs</span></h2><p>I mostly love the Logitech G Pro X3 SuperStrike. However, it’s available in symmetrical guise only and there’s no onboard DPI switch. I also think SteelSeries has a couple of legs up over the SuperStrike with its latest elite mouse.</p><h2 id="symmetrical-only">Symmetrical only</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LbfUEPrcc7fFgpKsgbzeNW" name="Logitech G Pro X3 SuperStrike in hand" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/LbfUEPrcc7fFgpKsgbzeNW-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">I prefer the ergonomic shape of my SteelSeries Rival Pro. This will come down to preference and grip type, but it's a shame to see no ergonomic option offered. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If, like me, you’re a palm gripper, you may well prefer an ergonomic design. Unfortunately, the SuperStrike only comes in symmetrical guise, which tends to benefit claw and finger grip styles. </p><p>Obviously, those are just general rules, so mileage may vary. However, after playing with the SuperStrike for a week instead of my ergonomic mouse, I’ve noticed some pain and stiffness in my right wrist and pinky finger. If you want a cutting edge ergo mouse, check out the SteelSeries Rival Pro or Razer DeathAdder V4 Pro.</p><h2 id="no-onboard-dpi-switch">No onboard DPI switch</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DasABu2ez7rNPFQs3kP7JW" name="Logitech G Pro X3 SuperStrike_6.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/DasABu2ez7rNPFQs3kP7JW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The button on the base is a power slider only. Many other mice use this as a DPI toggle once the power is on. A very frustrating (repeated) missed trick from Logitech. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We had this problem with Logi’s last generation of gaming mice, the X2 SuperStrike and X Pro SuperLight 2 — there’s no onboard DPI switch. I get that it’s tricky to fit one on the body of a competition mouse, but come on… just put one on the base like SteelSeries and Razer.</p><p>So what happens when you want to switch DPI in game? Logitech seriously expects you to a) keep G Hub running while gaming; and b) either switch apps in game to change DPI, or remap one of your two precious side buttons to DPI switch. Come on. Sort it out, Logitech.</p><h2 id="falling-behind-the-rival">Falling behind the Rival?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QT8zew6Qzi8qXN5Jg49EzV" name="Logitech G Pro X3 SuperStrike_7.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/QT8zew6Qzi8qXN5Jg49EzV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The G Pro X3 SuperStrike uses a 2.4GHz dongle for wireless 8K connection. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As great as adjustable actuation and rapid trigger may be, elsewhere I think the SuperStrike is a tier (okay, maybe half a tier) below recent rivals. Hear me out.</p><p>SteelSeries’ Rival and Sensei Pro use UWB 6GHz connection instead of the typical 2.4GHz used on the SuperStrike, Viper V4 Pro and, well, virtually all other peripherals. This reduces connection dropouts caused by your mouse hunting for a free 2.4GHz lane, resulting in (theoretically) greater accuracy. I’d love to see more elite mice use this tech — imagine the SuperStrike’s buttons with UWB!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2400px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oN5LGbuqJxkL9DRqwHaKzb" name="Rival Pro 8K UWB_Extended" alt="A photo showing the difference in mouse cursor relay between 2.4Ghz and 6Ghz UWB" src="https://cdn.mos.cms.futurecdn.net/oN5LGbuqJxkL9DRqwHaKzb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2400" height="1350" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Here's an illustration of the potential benefit of UWB, courtesy of SteelSeries. Notice those left-hand dead zones caused by hunting for free 2.4GHz lanes. </span><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>I also find Logitech’s software features and companion app pretty basic versus my Rival Pro. There’s no angle snapping, no acceleration curve customization, no separate click and sensor polling. You get all of this on SteelSeries’ GG. To be fair, though, I much prefer using G Hub to Razer’s Synapse, which I’m really not a fan of. </p><p>I also prefer the zero-downtime battery life of the Rival Pro. I’ve already had to use the SuperStrike while wired charging, which is something I never have to do with the dual swappable batteries of my SteelSeries. I suppose, in short, the SuperStrike feels simply like a minor improvement on an old formula, while other brands are trying harder to innovate, yet at <a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a> the SuperStrike is the most expensive of all the competition.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-verdict"><span>Logitech G Pro X3 SuperStrike review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nNFmQu2vUV3mT8MMYHPuHW" name="Logitech G Pro X3 SuperStrike_9.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/nNFmQu2vUV3mT8MMYHPuHW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ll admit, competition at the top is fierce. There’s not much separating the elite esports mice these days. All the top contenders are super light, super sensitive and super fast — the Pro X3 SuperStrike is no different. </p><p>As I mentioned above, though, it kinda feels like Logitech has rested on its laurels somewhat since the Pro X2 SuperStrike and failed to address the issues with that mouse, or to build on it in any different, innovative way. It’s for that reason I’m scoring this lower than the recent SteelSeries Rival Pro, which, while not as fast clicks-wise, offers loads of cool features to make up for that and puts itself ahead.</p><p>In the end, though, it’ll come down to the features most important to you. If you value that edge on click speed above all else, the Pro X3 SuperStrike is easily top dawg.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/mice/logitech-g-pro-x3-superstrike-review</link>
                                                                            <description>
                            <![CDATA[ The Logitech G Pro X3 SuperStrike is the fastest lightweight clicker on the market, although it’s got some serious competition these days. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aywHYVaDDHSvSh2tspob64</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KhYf6ZPZuNhoPAkZWZtG5V-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 09 Oct 2026 10:06:19 +0000</pubDate>                                                                                                                                <updated>Fri, 09 Oct 2026 10:08:21 +0000</updated>
                                                                                                                                            <category><![CDATA[Mice]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                                                                <author><![CDATA[ peter.wolinski@futurenet.com (Peter Wolinski) ]]></author>                    <dc:creator><![CDATA[ Peter Wolinski ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/stgPfXWY7ukw8J8rfC7vjg-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Peter is a Senior Editor at Tom&#039;s Guide, heading up the site&#039;s Reviews team and Cameras section. Having built gaming PCs since he was 10 (that&#039;s a while ago now) he&#039;s a bit of a nerd about components and hardware. He&#039;s also been an iPhone user since the classic iPhone 4, and a Mac user for well over a decade. Experienced in using and testing all kinds of technology — from phones through to tablets, computers, games consoles, cameras and smart home tech — helping people find the best tech for them (at the best prices) is what Peter does best. A photographer since he bought his first camera (a Fujifilm) in 2015, Peter was previously an Editor for Canon-Europe.com. He then edited the Cameras and How To sections of Tom&#039;s Guide. When he&#039;s not crafting helpful, in-depth reviews, Peter can usually be found out and about honing his architectural photography skills, riding his motorcycle around Welsh mountain roads, telling everyone about his two greyhounds, squeezing a few extra FPS out of PC games or perfecting his espresso shots.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/KhYf6ZPZuNhoPAkZWZtG5V-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Logitech G Pro X3 SuperStrike on a stone surface]]></media:description>                                                            <media:text><![CDATA[The Logitech G Pro X3 SuperStrike on a stone surface]]></media:text>
                                <media:title type="plain"><![CDATA[The Logitech G Pro X3 SuperStrike on a stone surface]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KhYf6ZPZuNhoPAkZWZtG5V-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>How much does a click per second matter? Turns out quite a bit, if you’re a competitive gamer. That extra click per second is the difference between firing off one or two shots on a semi-automatic weapon, potentially giving you a competitive advantage.</p><p>That’s where the Logitech G Pro X3 SuperStrike comes in. On the surface, it’s a fairly typical competition gaming mouse: lightweight, fairly unergonomic, with two buttons on the top and two on the side. This mouse, however, like its predecessor, has some handy tech within. Specifically, magnetic switches under the mouse buttons, which allow adjustable click actuation and rapid trigger.</p><p>So should you buy this mouse? Admittedly, it isn’t perfect. There’s no ergonomic variant available, no onboard DPI switch, and rivals have the edge in key areas. But the Logi is still doubtless one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-mouse">best gaming mice</a> around. Find out more in my full Logitech G Pro X3 SuperStrike review.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-cheat-sheet"><span>Logitech G Pro X3 SuperStrike review: Cheat sheet</span></h2><ul><li><strong>What is it?</strong> Logitech’s latest elite esports mouse</li><li><strong>Who is it for? </strong>Competitive gamers, especially FPS and MOBA players</li><li><strong>What does it cost? </strong><a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a></li><li><strong>What’s good? </strong>The quick, haptic clicks with rapid trigger, plus the lightweight design and customization options</li><li><strong>What’s not? </strong>There’s no DPI button or ergonomic version, and (clicks aside) rivals offer more features for less money</li></ul><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-specs"><span>Logitech G Pro X3 SuperStrike review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a> </p></td></tr><tr><td class="firstcol " ><p><strong>Max DPI</strong></p></td><td  ><p>48,000</p></td></tr><tr><td class="firstcol " ><p><strong>Polling rate</strong></p></td><td  ><p>8,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Buttons</strong></p></td><td  ><p>5</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>4.92 x 2.5 x 1.57 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>61g / 2.1 ounces</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black; magenta</p></td></tr><tr><td class="firstcol " ><p><strong>Body material</strong></p></td><td  ><p>Plastic</p></td></tr><tr><td class="firstcol " ><p><strong>Design</strong></p></td><td  ><p>Right-handed symmetrical</p></td></tr><tr><td class="firstcol " ><p><strong>Operating system</strong></p></td><td  ><p>Windows, macOS</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4GHz; wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>Up to 135 hours</p></td></tr><tr><td class="firstcol " ><p><strong>Lighting</strong></p></td><td  ><p>No</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-the-ups"><span>Logitech G Pro X3 SuperStrike review: The ups</span></h2><p>The Logitech Pro X3 SuperStrike is an elite gaming mouse through and through, packing adjustable click switches, rapid trigger and 8K polling. It’s lightweight, customizable and looks rather fetching in hot pink.</p><h2 id="elite-click-performance">Elite click performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t5XGg6fREjfyimpL7S3gTV" name="Logitech G Pro X3 SuperStrike_5.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/t5XGg6fREjfyimpL7S3gTV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Core to the SuperStrike’s performance are its HITS switches. They’re magnetic, like you’d find in one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-keyboard">best gaming keyboards</a> (including the Logitech G X2 Pro Rapid keyboard released at the same time). They offer customizable haptic feedback, which is neat — honestly, I don’t find this too beneficial, but it sure feels good. </p><h4 id="adjustable-actuation">Adjustable actuation</h4><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/FChTiSh6FoKbAfQj5moYFV-1920-80.jpg" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" /><figcaption><small role="credit">Logitech / Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/v9kAdDWTjqCjMXFnUDpUDV-1920-80.jpg" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" /><figcaption><small role="credit">Logitech / Future</small></figcaption></figure></figure><p>More importantly, the switches open up adjustable actuation for LMB and RMB, meaning ultra fast, responsive clicks. The downside is unwanted clicks, leading to accidental shots in games like Counter-Strike 2. </p><p>I got used to the increased sensitivity pretty fast though, so this wasn’t a problem for long. The upside is ultra quick click registry, which is ideal for FPS players — that millisecond of time you get over an enemy using typical optical switches can be the difference between you headshotting them, or them you. </p><p>Logi's G Hub software features an actuation test to see how much faster you'll click using the HITS switches versus traditional optical or mechanical switches. My result was 17ms faster. Competitive players will probably see even more of a difference, and it could be enough to have potentially game-changing results.</p><h4 id="rapid-trigger">Rapid trigger</h4><p>My favorite feature, though, is rapid trigger — after actuating, the switch doesn’t need to reset like a mechanical switch would in order to actuate again. This means you can spam repeat inputs without resetting the mouse button, which is ideal for MOBA players. In theory, this speeds up your repeat clicking versus non-rapid-trigger switches.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v9kAdDWTjqCjMXFnUDpUDV" name="Logitech G Pro X3 SuperStrike_GHub Screenshots-3" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" src="https://cdn.mos.cms.futurecdn.net/v9kAdDWTjqCjMXFnUDpUDV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The difference for me was subtle, but I still noticed it straight away. I took back to back tests on <a href="http://cpstest.org" target="_blank">cpstest.org</a>, which averages clicks over 30 seconds. My overall average clicks per second (CPS) were more or less the same over 30 seconds on the SuperStrike versus the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-rival-pro-sensei-pro-review">SteelSeries Rival Pro</a> (optical switches, with no rapid trigger). This is because over 30 seconds, my fingers tired and I slowed down (I’m no MOBA player).</p><p>Importantly, though, my realtime click speeds in the opening few seconds went from just over 6CPS (Rival Pro) to 7CPS (SuperStrike). When initially opening up on a semi-automatic weapon, that means I’m getting an extra click per second on the SuperStrike, and therefore an extra shot — a big advantage in a 1v1.</p><p>I found this especially useful for semi-auto or high recoil weapons on Counter-Strike 2 and Wardogs, like the AK47. Firing single shots or short bursts controls recoil better — being able to chain more of those together in quick succession helped me shoot more frequently and accurately, scoring more kills than I usually would. I went from my usual upper-mid scoreboards on Counter-Strike 2 to top three. That’s a result.</p><p>Rapid quick succession clicks are also obviously ideal for MOBA players who need to spam clicks constantly, but I’m lacking the joint health for that these days.</p><h3 id="ultra-sensitive">Ultra sensitive</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="94aJtSwiLXc2RhvX5DAaPV" name="Logitech G Pro X3 SuperStrike_GHub Screenshots-5" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" src="https://cdn.mos.cms.futurecdn.net/94aJtSwiLXc2RhvX5DAaPV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/94aJtSwiLXc2RhvX5DAaPV-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The SuperStrike tops out at 48,000 DPI and 8,000Hz polling, all adjustable in G Hub. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Future)</span></figcaption></figure><p>When it comes to keyboards, I stand by my position that 8,000Hz polling is snake oil. In a competition mouse, though, it’s vital. A mouse moves incredibly quickly and accurately. Greater data transfer is therefore required to ensure no latency, and that every tiny movement or adjustment is translated properly so that your cursor lands exactly where it’s supposed to. </p><p>Thankfully, the SuperStrike packs 8K polling, which is as fast as it gets these days, giving you peace of mind about all the above (well… almost — as I’ll discuss in the cons). The SuperStrike’s sensitivity also maxes out at 48,000 DPI, which is extremely fast, enabling rapid movement. </p><h2 id="lightweight-and-flickable">Lightweight and flickable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="abhLcfozPUEMvaeE7D5KBV" name="Logitech G Pro X3 SuperStrike_2.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/abhLcfozPUEMvaeE7D5KBV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Pro X3 SuperStrike weighs 61g or 2.1 ounces, which is the same as its predecessor, the <a href="https://www.tomsguide.com/computing/mice/logitech-g-pro-x2-superstrike-review">Logitech G Pro X2 SuperStrike</a>. Compare that to other elite mice and the SuperStrike starts to look a little heavy.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Mouse</strong></p></th><th  ><p><strong>Weight in g (grams)</strong></p></th><th  ><p><strong>Acceleration in G (g-force)</strong></p></th><th  ><p><strong>Price</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Logitech G Pro X3 SuperStrike</p></td><td  ><p>61g</p></td><td  ><p>90G</p></td><td  ><p><a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a> </p></td></tr><tr><td class="firstcol " ><p>Logitech G Pro X2 SuperStrike</p></td><td  ><p>61g</p></td><td  ><p>88G</p></td><td  ><p>$169 / £159</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/gaming/peripherals/logitech-g-pro-x-superlight-2-review">Logitech G Pro X SuperLight 2</a></p></td><td  ><p>60g</p></td><td  ><p>88G</p></td><td  ><p>$159 / $139</p></td></tr><tr><td class="firstcol " ><p>SteelSeries Rival/Sensei Pro</p></td><td  ><p>53g</p></td><td  ><p>70G</p></td><td  ><p>$179 / £169</p></td></tr><tr><td class="firstcol " ><p>SteelSeries Rival/Sensei Mini</p></td><td  ><p>49g</p></td><td  ><p>70G</p></td><td  ><p>$179 / £169</p></td></tr><tr><td class="firstcol " ><p>Razer DeathAdder V4 Pro</p></td><td  ><p>56g</p></td><td  ><p>85G</p></td><td  ><p>$169 / £169</p></td></tr><tr><td class="firstcol " ><p>Razer Viper V4 Pro</p></td><td  ><p>49g</p></td><td  ><p>90G</p></td><td  ><p>$159 / £159</p></td></tr></tbody></table></div><p>It doesn’t feel like it, though. The SuperStrike also has up to 90G of acceleration (up from 88G in the prior model), meaning more cursor movement from less hand movement — that’s greater than the 70G acceleration of the Rival/Sensei Pro, which can counteract the weight difference between the two. If you want the lowest weight combined with the highest acceleration, though, check out the <a href="https://www.tomsguide.com/computing/mice/razer-viper-v4-pro-review">Razer Viper V4 Pro</a> and 49g + 90G acceleration.</p><p>Of course, this will kinda depend on preference. Some players prefer a little extra weight in their hand. And besides, I’ve found the SuperStrike adequately lightweight and flickable.</p><h2 id="fairly-customizable">Fairly customizable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eEVxwnhuNy2McY7KQwzwJV" name="Logitech G Pro X3 SuperStrike_GHub Screenshots-4" alt="The Logitech G Hub software being used to customize the Pro X3 SuperStrike" src="https://cdn.mos.cms.futurecdn.net/eEVxwnhuNy2McY7KQwzwJV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/eEVxwnhuNy2McY7KQwzwJV-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Logitech / Future)</span></figcaption></figure><p>As I’ll cover below, I think Logitech is lagging behind software-wise. That said, the SuperStrike is still a highly customizable mouse, so praise where it’s due.</p><p>The <a href="https://www.logitechg.com/en-gb/software/ghub">G Hub</a> software is fairly slick and reliable, and lets you customize lots of aspects. You can change actuation, enable and tweak rapid trigger, assign binds and macros, and tailor DPI and poll rates. That’s all you <em>really</em> need, although I’d appreciate a few more nice-to-haves.</p><p>Importantly, you can set custom configs in addition to the range of per-genre presets. This is vital for me, as I like to bind both side buttons to crouch and prone, which differs per game.</p><h2 id="decent-battery-life">Decent battery life</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Mik42QjW5TPdxM8QwxVqjV" name="Logitech G Pro X3 SuperStrike_8.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/Mik42QjW5TPdxM8QwxVqjV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The SuperStrike offers up to 135 hours of battery life. Of course, that’s an ‘up to,’ and polling at 8K, you can forget anything near that. It’s a little short of the Viper V4 Pro’s 180 hours, and, in my opinion, pales in comparison to the zero-downtime system in the Rival/Sensei Pro. But safe to say the SuperStrike’s battery life has been long enough for me to not have to think about it <em>much</em>.</p><h2 id="that-hot-pink">That hot pink</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B8pY4i3uKwHrLV9GuTENk6" name="Logitech_ProX2_RAPID 12.JPG" alt="A photo of a desk setup including the Logitech Pro X2 Rapid keyboard, Logitech Pro X3 SuperStrike mouse and Pro X3 Lightspeed headset." src="https://cdn.mos.cms.futurecdn.net/B8pY4i3uKwHrLV9GuTENk6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The Logitech G Pro X3 SuperStrike alongside the Pro X2 Rapid keyboard and Pro X3 Lightspeed headset. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I know looks don’t really matter, but damn do I find it refreshing to see mice that aren’t just available in black or white. I’m a huge fan of the green Razer Viper V4 Pro and the two orange Fnatic-collabs mice — the <a href="https://www.tomsguide.com/computing/peripherals/fnatic-x-lamzu-maya-8k-maya-x-8k-mouse-review">Lamzu Maya 8K</a> ($119) and Sony Inzone Mouse-A ($149). Likewise, I absolutely love the SuperStrike in hot pink, especially when paired with the Pro X2 Rapid keyboard.</p><p>Weirdly, Logitech hasn’t yet released a white variant of the Pro X3 SuperStrike, despite releasing it alongside the Pro X2 Rapid keyboard and Pro X2 Lightspeed headset — both of which come in black, white and the same hot magenta. If you want an all-white trio, you’re out of luck, unless you go for the last-gen X2 SuperStrike.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-the-downs"><span>Logitech G Pro X3 SuperStrike review: The downs</span></h2><p>I mostly love the Logitech G Pro X3 SuperStrike. However, it’s available in symmetrical guise only and there’s no onboard DPI switch. I also think SteelSeries has a couple of legs up over the SuperStrike with its latest elite mouse.</p><h2 id="symmetrical-only">Symmetrical only</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LbfUEPrcc7fFgpKsgbzeNW" name="Logitech G Pro X3 SuperStrike in hand" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/LbfUEPrcc7fFgpKsgbzeNW-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">I prefer the ergonomic shape of my SteelSeries Rival Pro. This will come down to preference and grip type, but it's a shame to see no ergonomic option offered. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If, like me, you’re a palm gripper, you may well prefer an ergonomic design. Unfortunately, the SuperStrike only comes in symmetrical guise, which tends to benefit claw and finger grip styles. </p><p>Obviously, those are just general rules, so mileage may vary. However, after playing with the SuperStrike for a week instead of my ergonomic mouse, I’ve noticed some pain and stiffness in my right wrist and pinky finger. If you want a cutting edge ergo mouse, check out the SteelSeries Rival Pro or Razer DeathAdder V4 Pro.</p><h2 id="no-onboard-dpi-switch">No onboard DPI switch</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DasABu2ez7rNPFQs3kP7JW" name="Logitech G Pro X3 SuperStrike_6.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/DasABu2ez7rNPFQs3kP7JW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The button on the base is a power slider only. Many other mice use this as a DPI toggle once the power is on. A very frustrating (repeated) missed trick from Logitech. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We had this problem with Logi’s last generation of gaming mice, the X2 SuperStrike and X Pro SuperLight 2 — there’s no onboard DPI switch. I get that it’s tricky to fit one on the body of a competition mouse, but come on… just put one on the base like SteelSeries and Razer.</p><p>So what happens when you want to switch DPI in game? Logitech seriously expects you to a) keep G Hub running while gaming; and b) either switch apps in game to change DPI, or remap one of your two precious side buttons to DPI switch. Come on. Sort it out, Logitech.</p><h2 id="falling-behind-the-rival">Falling behind the Rival?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QT8zew6Qzi8qXN5Jg49EzV" name="Logitech G Pro X3 SuperStrike_7.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/QT8zew6Qzi8qXN5Jg49EzV-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The G Pro X3 SuperStrike uses a 2.4GHz dongle for wireless 8K connection. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As great as adjustable actuation and rapid trigger may be, elsewhere I think the SuperStrike is a tier (okay, maybe half a tier) below recent rivals. Hear me out.</p><p>SteelSeries’ Rival and Sensei Pro use UWB 6GHz connection instead of the typical 2.4GHz used on the SuperStrike, Viper V4 Pro and, well, virtually all other peripherals. This reduces connection dropouts caused by your mouse hunting for a free 2.4GHz lane, resulting in (theoretically) greater accuracy. I’d love to see more elite mice use this tech — imagine the SuperStrike’s buttons with UWB!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2400px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oN5LGbuqJxkL9DRqwHaKzb" name="Rival Pro 8K UWB_Extended" alt="A photo showing the difference in mouse cursor relay between 2.4Ghz and 6Ghz UWB" src="https://cdn.mos.cms.futurecdn.net/oN5LGbuqJxkL9DRqwHaKzb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2400" height="1350" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Here's an illustration of the potential benefit of UWB, courtesy of SteelSeries. Notice those left-hand dead zones caused by hunting for free 2.4GHz lanes. </span><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>I also find Logitech’s software features and companion app pretty basic versus my Rival Pro. There’s no angle snapping, no acceleration curve customization, no separate click and sensor polling. You get all of this on SteelSeries’ GG. To be fair, though, I much prefer using G Hub to Razer’s Synapse, which I’m really not a fan of. </p><p>I also prefer the zero-downtime battery life of the Rival Pro. I’ve already had to use the SuperStrike while wired charging, which is something I never have to do with the dual swappable batteries of my SteelSeries. I suppose, in short, the SuperStrike feels simply like a minor improvement on an old formula, while other brands are trying harder to innovate, yet at <a href="https://www.amazon.com/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse/dp/B0H8BR7BCW" target="_blank" rel="nofollow">$199</a> / <a href="https://www.amazon.co.uk/Logitech-PRO-SUPERSTRIKE-Gaming-Mouse-Black/dp/B0HBX8GS9N" target="_blank" rel="nofollow">$169</a> the SuperStrike is the most expensive of all the competition.</p><h2 class="article-body__section" id="section-logitech-g-pro-x3-superstrike-review-verdict"><span>Logitech G Pro X3 SuperStrike review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nNFmQu2vUV3mT8MMYHPuHW" name="Logitech G Pro X3 SuperStrike_9.JPG" alt="The Logitech G Pro X3 SuperStrike on a stone surface" src="https://cdn.mos.cms.futurecdn.net/nNFmQu2vUV3mT8MMYHPuHW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ll admit, competition at the top is fierce. There’s not much separating the elite esports mice these days. All the top contenders are super light, super sensitive and super fast — the Pro X3 SuperStrike is no different. </p><p>As I mentioned above, though, it kinda feels like Logitech has rested on its laurels somewhat since the Pro X2 SuperStrike and failed to address the issues with that mouse, or to build on it in any different, innovative way. It’s for that reason I’m scoring this lower than the recent SteelSeries Rival Pro, which, while not as fast clicks-wise, offers loads of cool features to make up for that and puts itself ahead.</p><p>In the end, though, it’ll come down to the features most important to you. If you value that edge on click speed above all else, the Pro X3 SuperStrike is easily top dawg.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Evercade Nexus hands-on report — this new handheld might be the perfect retro gaming device ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Two simple words sold me on the new Evercade Nexus: Banjo-Kazooie. The new retro handheld from Blaze Entertainment comes with a host of improvements over previous Evercade devices, such as the Evercade EXP-R or the first-generation <a href="https://www.tomsguide.com/reviews/evercade">Evercade</a>, but for me, it’s all about the bear and bird.</p><p>Banjo-Kazooie on the Nintendo 64 was the first video game I ever played as a youngster, kickstarting an obsession with gaming that shows no signs of dissipating even as I enter my 30s. The Evercade Nexus, releasing October 30 for $199 / £169, comes bundled with a copy of the Banjo-Kazooie Double Pack (containing the 1998 original and its sequel, Banjo-Tooie). Consider me sold.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eAG3rO"></div>                            </div>                            <script src="https://kwizly.com/embed/eAG3rO.js" async=""></script><p>I’ve now got my hands on the Evercade Nexus, and have started my umpteenth playthrough of Banjo’s legendary first adventure — I’ve lost track of how many times I’ve 100% completed this classic 64-bit platformer. I still need to put the portable through its paces a little more before I can deliver my full review, but I’m already eager to gush about the Nexus. So, these are my first impressions of the latest Evercade after spending two days with it.</p><div class="product"><a data-dimension112="ba679cac-c30b-11f1-8b14-8ddfcdf1b566" data-action="Deal Block" data-label="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension48="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension25="$199" href="https://www.bestbuy.com/product/evercade-nexus-with-banjo-kazooie-double-pack/CLXXZP7626/sku/6675705" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="tgyvfMgxWBzQ6v6wnj85oY" name="evercade-nexus-banjo-double-pack" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tgyvfMgxWBzQ6v6wnj85oY-1920-80.jpg" mos="" align="middle" fullscreen="" width="900" height="900" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/evercade-nexus-with-banjo-kazooie-double-pack/CLXXZP7626/sku/6675705" target="_blank" rel="nofollow" data-dimension112="ba679cac-c30b-11f1-8b14-8ddfcdf1b566" data-action="Deal Block" data-label="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension48="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension25="$199">Nexus (w/ Banjo-Kazooie Double Pack): $199</a></strong><br />The Evercade Nexus is a handheld device designed to take retro gaming on the go. It includes a 5.89-inch IPS display, dual analogue sticks, and wireless headphone support. It's compatible with more than 80 Evercade cartridges (that's 700+ games), and the Nexus comes bundled with the Banjo-Kazooie Double Pack. Which packs-in a pair of classic 3D platformers on a single cartridge.<a class="view-deal button" href="https://www.bestbuy.com/product/evercade-nexus-with-banjo-kazooie-double-pack/CLXXZP7626/sku/6675705" target="_blank" rel="nofollow" data-dimension112="ba679cac-c30b-11f1-8b14-8ddfcdf1b566" data-action="Deal Block" data-label="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension48="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension25="$199">View Deal</a></p></div><h2 id="evercade-nexus-might-be-the-perfect-retro-device">Evercade Nexus might be the perfect retro device</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nwb8QjCHfiTWQGQWHd6vgn" name="Nexus Portable" alt="Evercade Nexus playing Banjo-Kazooie while held in hand" src="https://cdn.mos.cms.futurecdn.net/nwb8QjCHfiTWQGQWHd6vgn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Described as “the vinyl of retro gaming,” Evercade’s mission is to return gaming to its roots, to the time before mandatory installs, always-online requirements, and purchasing a digital license. The latter point is particularly compelling in the wake of <a href="https://www.tomsguide.com/gaming/playstation/playstation-is-officially-killing-physical-discs-heres-when-they-disappear-and-what-that-means-for-you">Sony’s announcement</a> that it plans to stop producing physical discs for PlayStation consoles in January 2028.</p><p>Evercade already has several devices under its belt, including home consoles, portables and tabletop arcade cabinets. But in steps the Evercade Nexus which is quite possibly the company’s most appealing handheld yet. For starters, it’s the first Evercade portable with dual analog sticks and comes sporting a high-resolution 5.89-inch IPS display, which, while not OLED levels of beauty, still catches the eye. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GZbk3LhHg9wjJtY4PiUMhn" name="Nexus Portable-2" alt="Evercade Nexus playing Banjo-Kazooie next to a Banjo-Kazooie figurine" src="https://cdn.mos.cms.futurecdn.net/GZbk3LhHg9wjJtY4PiUMhn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When you first boot up an Evercade system, you’ll notice there is no digital storefront. Evercade hardware and the new Nexus are built to exclusively play physical cartridges. There are more than 80 available. Beyond Banjo, there are cartridges for classic Tomb Raider, Doom, Duke Nukem, and a host of retro collections from Atari, Activision, Interplay, Neo Geo and more. </p><p>Each cartridge works on <em>any </em>Evercade device, from the entry-level Super Pocket to the shiny new Nexus. And once you buy a cartridge, it’s yours. There’s no digital license that can be revoked, or requirement to download most of the game from a server that could be shut down. Your collection is a tangible thing to treasure. Or loan to a friend. Or sell to someone else. The choice is yours. Evercade Nexus puts you in complete control of your library. </p><h2 id="banjo-is-back-and-better-than-ever-on-evercade">Banjo is back and better than ever on Evercade</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="k2ToKKeqJQWvGLAbkYC7p" name="evercade-nexus-handheld-06" alt="Banjo-Kazooie N64 cartridge next to an Evercade Banjo-Kazooie Double Pack cartridge" src="https://cdn.mos.cms.futurecdn.net/k2ToKKeqJQWvGLAbkYC7p-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Less than two minutes after booting up the Nexus for the first time, I was pottering around the lush green fields of Spiral Mountain, Banjo-Kazooie’s starting level. Unlike booting up a current-generation console/handheld, I didn’t have to create an online account, install new firmware, and then wait what feels like an age for software to download and install. I just switched the Nexus on, plugged in the Banjo cartridge, and off I went on my adventure.</p><p>It’s a deeply nostalgic throwback to a simpler — to many, better — era of gaming. And the version of Banjo-Kazooie brought to the Evercade range of devices is perhaps the best port of the N64 classic to date. Developed directly by the team at Blaze Entertainment, in collaboration with Rare, the British studio that birthed Banjo, this is no rushed emulation job.</p><p>On a technical level, you’ll find improved resolution and a smooth 60 fps framerate, alongside a host of quality-of-life features. These include deeper control options — key if you’re playing on an older Evercade device that lacks dual sticks —  and useful QoL additions like the ability to return to the hub area from the pause menu. Plus, there's bonus content like new cheats, and the (in)famous Stop 'n' Swop feature actually functions in this port.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9diuMZkgKuqBkB2A6AiGfn" name="Nexus Portable-3" alt="Evercade Nexus playing Banjo-Kazooie next to Evercade game case" src="https://cdn.mos.cms.futurecdn.net/9diuMZkgKuqBkB2A6AiGfn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Evercade’s Banjo-Kazooie Double Pack has clearly been crafted with great reverence for the original games, and while boosted resolution and minor QoL updates smooth out some rough edges, these two platforming greats have not been dramatically overhauled. That’s no criticism. Evercade’s cartridge library is about celebrating past games, not remaking them.</p><p>I still want to spend more time with the Evercade Nexus before delivering my final verdict — look out for my full review on Tom’s Guide shortly — but my first impressions of this nifty retro device are very good. It helps that the portable is launching with an excellent collection of two games close to my heart. However, even when looking beyond the powerful pull of nostalgia, the Nexus makes a strong initial impression. It might be a retro gamer's dream. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/i-played-kingdom-hearts-for-the-first-time-on-switch-2-and-im-both-overwhelmed-and-hooked">I played Kingdom Hearts for the first time on Switch 2</a></li><li><a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">These are the 6 best gaming handhelds in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features">I spent 5 hours building the new Lego PlayStation</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/handheld-gaming/evercade-nexus-hands-on-report-this-new-handheld-might-be-the-perfect-retro-gaming-device</link>
                                                                            <description>
                            <![CDATA[ Playing 3D platformer Banjo-Kazooie on Evercade Nexus is an instant nostalgia booster — and retro gamers will love this new handheld. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">i2KaYnoxa3YiPCBCpT5vEj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/p9SFBHqkaKvQfvTD854Hfn-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 08 Oct 2026 18:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/p9SFBHqkaKvQfvTD854Hfn-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Evercade Nexus playing Banjo-Kazooie next to a stack of Evercade game cases]]></media:description>                                                            <media:text><![CDATA[Evercade Nexus playing Banjo-Kazooie next to a stack of Evercade game cases]]></media:text>
                                <media:title type="plain"><![CDATA[Evercade Nexus playing Banjo-Kazooie next to a stack of Evercade game cases]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/p9SFBHqkaKvQfvTD854Hfn-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Two simple words sold me on the new Evercade Nexus: Banjo-Kazooie. The new retro handheld from Blaze Entertainment comes with a host of improvements over previous Evercade devices, such as the Evercade EXP-R or the first-generation <a href="https://www.tomsguide.com/reviews/evercade">Evercade</a>, but for me, it’s all about the bear and bird.</p><p>Banjo-Kazooie on the Nintendo 64 was the first video game I ever played as a youngster, kickstarting an obsession with gaming that shows no signs of dissipating even as I enter my 30s. The Evercade Nexus, releasing October 30 for $199 / £169, comes bundled with a copy of the Banjo-Kazooie Double Pack (containing the 1998 original and its sequel, Banjo-Tooie). Consider me sold.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eAG3rO"></div>                            </div>                            <script src="https://kwizly.com/embed/eAG3rO.js" async=""></script><p>I’ve now got my hands on the Evercade Nexus, and have started my umpteenth playthrough of Banjo’s legendary first adventure — I’ve lost track of how many times I’ve 100% completed this classic 64-bit platformer. I still need to put the portable through its paces a little more before I can deliver my full review, but I’m already eager to gush about the Nexus. So, these are my first impressions of the latest Evercade after spending two days with it.</p><div class="product"><a data-dimension112="ba679cac-c30b-11f1-8b14-8ddfcdf1b566" data-action="Deal Block" data-label="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension48="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension25="$199" href="https://www.bestbuy.com/product/evercade-nexus-with-banjo-kazooie-double-pack/CLXXZP7626/sku/6675705" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:900px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="tgyvfMgxWBzQ6v6wnj85oY" name="evercade-nexus-banjo-double-pack" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tgyvfMgxWBzQ6v6wnj85oY-1920-80.jpg" mos="" align="middle" fullscreen="" width="900" height="900" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/evercade-nexus-with-banjo-kazooie-double-pack/CLXXZP7626/sku/6675705" target="_blank" rel="nofollow" data-dimension112="ba679cac-c30b-11f1-8b14-8ddfcdf1b566" data-action="Deal Block" data-label="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension48="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension25="$199">Nexus (w/ Banjo-Kazooie Double Pack): $199</a></strong><br />The Evercade Nexus is a handheld device designed to take retro gaming on the go. It includes a 5.89-inch IPS display, dual analogue sticks, and wireless headphone support. It's compatible with more than 80 Evercade cartridges (that's 700+ games), and the Nexus comes bundled with the Banjo-Kazooie Double Pack. Which packs-in a pair of classic 3D platformers on a single cartridge.<a class="view-deal button" href="https://www.bestbuy.com/product/evercade-nexus-with-banjo-kazooie-double-pack/CLXXZP7626/sku/6675705" target="_blank" rel="nofollow" data-dimension112="ba679cac-c30b-11f1-8b14-8ddfcdf1b566" data-action="Deal Block" data-label="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension48="Nexus (w/ Banjo-Kazooie Double Pack)" data-dimension25="$199">View Deal</a></p></div><h2 id="evercade-nexus-might-be-the-perfect-retro-device">Evercade Nexus might be the perfect retro device</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nwb8QjCHfiTWQGQWHd6vgn" name="Nexus Portable" alt="Evercade Nexus playing Banjo-Kazooie while held in hand" src="https://cdn.mos.cms.futurecdn.net/nwb8QjCHfiTWQGQWHd6vgn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Described as “the vinyl of retro gaming,” Evercade’s mission is to return gaming to its roots, to the time before mandatory installs, always-online requirements, and purchasing a digital license. The latter point is particularly compelling in the wake of <a href="https://www.tomsguide.com/gaming/playstation/playstation-is-officially-killing-physical-discs-heres-when-they-disappear-and-what-that-means-for-you">Sony’s announcement</a> that it plans to stop producing physical discs for PlayStation consoles in January 2028.</p><p>Evercade already has several devices under its belt, including home consoles, portables and tabletop arcade cabinets. But in steps the Evercade Nexus which is quite possibly the company’s most appealing handheld yet. For starters, it’s the first Evercade portable with dual analog sticks and comes sporting a high-resolution 5.89-inch IPS display, which, while not OLED levels of beauty, still catches the eye. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GZbk3LhHg9wjJtY4PiUMhn" name="Nexus Portable-2" alt="Evercade Nexus playing Banjo-Kazooie next to a Banjo-Kazooie figurine" src="https://cdn.mos.cms.futurecdn.net/GZbk3LhHg9wjJtY4PiUMhn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When you first boot up an Evercade system, you’ll notice there is no digital storefront. Evercade hardware and the new Nexus are built to exclusively play physical cartridges. There are more than 80 available. Beyond Banjo, there are cartridges for classic Tomb Raider, Doom, Duke Nukem, and a host of retro collections from Atari, Activision, Interplay, Neo Geo and more. </p><p>Each cartridge works on <em>any </em>Evercade device, from the entry-level Super Pocket to the shiny new Nexus. And once you buy a cartridge, it’s yours. There’s no digital license that can be revoked, or requirement to download most of the game from a server that could be shut down. Your collection is a tangible thing to treasure. Or loan to a friend. Or sell to someone else. The choice is yours. Evercade Nexus puts you in complete control of your library. </p><h2 id="banjo-is-back-and-better-than-ever-on-evercade">Banjo is back and better than ever on Evercade</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="k2ToKKeqJQWvGLAbkYC7p" name="evercade-nexus-handheld-06" alt="Banjo-Kazooie N64 cartridge next to an Evercade Banjo-Kazooie Double Pack cartridge" src="https://cdn.mos.cms.futurecdn.net/k2ToKKeqJQWvGLAbkYC7p-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Less than two minutes after booting up the Nexus for the first time, I was pottering around the lush green fields of Spiral Mountain, Banjo-Kazooie’s starting level. Unlike booting up a current-generation console/handheld, I didn’t have to create an online account, install new firmware, and then wait what feels like an age for software to download and install. I just switched the Nexus on, plugged in the Banjo cartridge, and off I went on my adventure.</p><p>It’s a deeply nostalgic throwback to a simpler — to many, better — era of gaming. And the version of Banjo-Kazooie brought to the Evercade range of devices is perhaps the best port of the N64 classic to date. Developed directly by the team at Blaze Entertainment, in collaboration with Rare, the British studio that birthed Banjo, this is no rushed emulation job.</p><p>On a technical level, you’ll find improved resolution and a smooth 60 fps framerate, alongside a host of quality-of-life features. These include deeper control options — key if you’re playing on an older Evercade device that lacks dual sticks —  and useful QoL additions like the ability to return to the hub area from the pause menu. Plus, there's bonus content like new cheats, and the (in)famous Stop 'n' Swop feature actually functions in this port.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9diuMZkgKuqBkB2A6AiGfn" name="Nexus Portable-3" alt="Evercade Nexus playing Banjo-Kazooie next to Evercade game case" src="https://cdn.mos.cms.futurecdn.net/9diuMZkgKuqBkB2A6AiGfn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Evercade’s Banjo-Kazooie Double Pack has clearly been crafted with great reverence for the original games, and while boosted resolution and minor QoL updates smooth out some rough edges, these two platforming greats have not been dramatically overhauled. That’s no criticism. Evercade’s cartridge library is about celebrating past games, not remaking them.</p><p>I still want to spend more time with the Evercade Nexus before delivering my final verdict — look out for my full review on Tom’s Guide shortly — but my first impressions of this nifty retro device are very good. It helps that the portable is launching with an excellent collection of two games close to my heart. However, even when looking beyond the powerful pull of nostalgia, the Nexus makes a strong initial impression. It might be a retro gamer's dream. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/i-played-kingdom-hearts-for-the-first-time-on-switch-2-and-im-both-overwhelmed-and-hooked">I played Kingdom Hearts for the first time on Switch 2</a></li><li><a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">These are the 6 best gaming handhelds in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features">I spent 5 hours building the new Lego PlayStation</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Hellraiser Revival is intense, graphic and disturbing — but it's not ready for Halloween 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The last decade has been a real boom period for video games based on classic horror movies. Games have been made based on Friday the 13th, Halloween, The Texas Chain Saw Massacre, Predator and Saw. Plus, the ongoing Dead by Daylight, which has crossed over with just about every fan-favorite horror franchise around, from A Nightmare on Elm Street to Scream.</p><p>On the surface, Clive Barker’s Hellraiser: Revival might look like the latest in a long line of online games cashing in on a classic horror IP. But unlike those aforementioned games, it’s <em>not </em>an asymmetrical multiplayer experience casting one player as Hellraiser’s Pinhead and the rest as fleshy humans. No, it’s a single-player survival horror title. </p><p>A narrative-driven, single-player, survival horror experience set in the brutal world of Clive Barker’s original “Hellraiser” movie? Sign me up. </p><p>However, after playing through the entire 10-hour campaign on <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>, I'm disappointed. I love the intent behind Hellraiser: Revival, but the execution is all too often a whole lot more pain than pleasure.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMPANX"></div>                            </div>                            <script src="https://kwizly.com/embed/eMPANX.js" async=""></script><div class="product"><a data-dimension112="f756371a-c27d-11f1-855d-1f5b58bd932a" data-action="Deal Block" data-label="Hellraiser: Revival" data-dimension48="Hellraiser: Revival" data-dimension25="$39" href="https://www.amazon.com/Clive-Barkers-Hellraiser-Revival-PlayStation-5/dp/B0H78C37LG/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="ZLphxEynNci4s7ko4URVxW" name="hellraiser-revival-ps5-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZLphxEynNci4s7ko4URVxW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Hellraiser: Revival tells an original story in Clive Barker's cult horror universe. You play a biker named Aidan, trying to rescue his hellbound girlfriend from the clutches of Pinhead and the Cenobites while battling a twisted cult in this narrative-driven, single-player survival horror experience.<a class="view-deal button" href="https://www.amazon.com/Clive-Barkers-Hellraiser-Revival-PlayStation-5/dp/B0H78C37LG/" target="_blank" rel="nofollow" data-dimension112="f756371a-c27d-11f1-855d-1f5b58bd932a" data-action="Deal Block" data-label="Hellraiser: Revival" data-dimension48="Hellraiser: Revival" data-dimension25="$39">View Deal</a></p></div><h2 id="we-have-such-sights-to-show-you">We have such sights to show you</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/0Qbyo_rNKBo" allowfullscreen=""></iframe></div></div><p>You play Aidan Lynch, a gruff (somewhat unlikable) biker who unwillingly summons Pinhead and his Cenobites — extradimensional beings who are described in the films as “demons to some, angels to others” — during a raunchy evening with his girlfriend, Sunny, when they activate a strange box known as the Genesis Configuration.</p><p>Pinhead and his grotesque pals whisk Sunny away to the depths of their hellish dimension, and it’s up to Aidan to rescue his lost love — even if flashbacks suggest that the couple's relationship was anything but blissful. It’s your routine “save the girl” story, but because this is Hellraiser, the whole narrative is coated in a thick soup of blood, guts, and seriously graphic sights. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wF7e9AmeVMWU7ZRuYZkJw7" name="hellraiser-revival-screenshot-09.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/wF7e9AmeVMWU7ZRuYZkJw7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>It will come as no shock to anybody familiar with the “Hellraiser” movies, but Revival is extremely graphic. And I don’t just mean in terms of violence (though there’s <em>a lot</em> of that). There is so much extreme sexual content here that I felt obligated to forewarn my partner about it before starting, just in case she accidentally walked in on me playing.</p><p>On the one hand, I commend the developers at Saber Interactive for being willing to push the boundaries of good taste — one early objective has Aidan collecting sex toys at the request of a woman decked out in a full leather outfit. To have presented a watered-down Hellraiser experience would have been inauthentic. But pretty quickly, the frequency of sexual content starts to feel like a shock-value play.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o5VBP3FT9AQ8YqaV2Jn8o7" name="hellraiser-revival-screenshot-07.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/o5VBP3FT9AQ8YqaV2Jn8o7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>This felt most keenly in the game’s most meaningful original contribution to the Hellraiser canon, the Scarlet Church. A Cenobite-obsessed cult that you spend the vast majority of the game hiding from and then butchering with sharp melee weapons and powerful firearms. The Church adds an extra wrinkle, but is often used as a vehicle to shove yet more graphic scenes in the player’s face. Which, at the very least, does make thinning their ranks rather cathartic.</p><h2 id="a-revival-but-certainly-not-a-gameplay-revolution">A revival, but certainly not a gameplay revolution</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SpZ6NbUSk77sydekxQpeb8" name="hellraiser-revival-screenshot-01" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/SpZ6NbUSk77sydekxQpeb8-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>Like many modern survival horror games, from the <a href="https://www.tomsguide.com/gaming/this-survival-horror-is-more-confusing-than-scary-but-i-cant-stop-playing-heres-why">Alone in the Dark reboot</a> to <a href="https://www.tomsguide.com/gaming/pc-gaming/the-sinking-city-2-is-one-of-my-biggest-gaming-surprises-of-the-year-and-its-scratching-that-resident-evil-itch">The Sinking City 2</a>, Hellraiser: Revival’s is a close approximation of the recent Resident Evil games. </p><p>I’m okay with this; Resident Evil is among my favorite series in gaming, and I’m happy to play games that pinch its best ideas in between new RE releases. As Aidan, your goal is to slowly make your way through each area of the Scarlet Church’s vast compound, picking up items, fending off foes, and finding keys that open more doors, and repeat.</p><p>Enemies can be engaged head-on, not always wise due to limited ammo and breakable melee weapons, or you can take a stealthy approach. The Genesis Configuration is added to your arsenal, giving you supernatural powers like controlling flame, or best of all, telekinesis, letting you throw all sharp objects at enemies, impaling them on walls.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3odcZuwfv2n2ofmqSAbnd8" name="hellraiser-revival-screenshot-02" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/3odcZuwfv2n2ofmqSAbnd8-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>It’s a compelling enough loop, and Hellraiser: Revival largely works on a moment-to-moment basis because of this. But what’s particularly disappointing is that the sporadic occasions where the game strikes out and tries to be its own beast are among the best sections. </p><p>After major story beats, you’ll usually find yourself in the Cenobites labyrinth. These levels have you solving basic puzzles or trying to escape from the demon fans refer to as the Chatterer, which are comfortably the most intense parts of the game. There’s also a riff on the (in)famous PT demo, which is simple but effective. </p><p>In fact, I had to wonder why the whole game isn’t set in the labyrinth instead of the generic corridors of the church’s base, which become very repetitive.</p><h2 id="the-most-hellish-part-isn-t-pinhead">The most hellish part isn’t Pinhead</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cJJ5iqwRcSifT8WqMbyPb8" name="hellraiser-revival-screenshot-04" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/cJJ5iqwRcSifT8WqMbyPb8-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>Hellraiser: Revival spends a lot of time showing you hellish sights or forcing you to come face-to-face with repugnant characters, both the Cenobites and the sadistic leaders of the Scarlet Church. However, the fear they strike in you is nothing compared to the terror I faced thanks to constant glitches.</p><p>Unfortunately, on a technical level, Hellraiser: Revival is rough. At its best, the game looks and runs to an acceptable standard. It’s never a graphical showcase, but interiors are detailed, and characters closely resemble their movie counterparts. However, Hellraiser: Revival is only rarely at its best. Far too often, the cracks show, and then start to widen. </p><p>If I listed every bug and glitch I encountered, this article would triple in size, but the <em>low</em>lights include textures frequently taking several seconds to appear, particularly after a loading screen, enemy bodies regularly morphing into furniture, which admittedly was quite funny, and noticeable framerate drops during large combat encounters.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="X3A7R4o2sHALB3CgGJTxv7" name="hellraiser-revival-screenshot-06.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/X3A7R4o2sHALB3CgGJTxv7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>Adding to the pain, the game gets increasingly unstable as you delve deeper. In the final three hours of my playthrough, something would break around every corner. A late-game save station refused to work, the in-game storage box ate my revolver pistol, completely robbing me of a powerful weapon for late-game levels, and the final boss became totally unresponsive not once, but twice, forcing a reload both times. </p><p>If all that wasn’t enough, Hellraiser: Revival waved me off with a final cutscene glitch. Character dialogue began looping. Each line repeated over the next. And so, the culmination of the game’s story descended into barely comprehensible audio gibberish. Talk about ending on a real low.</p><h2 id="should-you-play-hellraiser-revival-this-halloween">Should you play Hellraiser: Revival this Halloween?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EBXB2V3kniAvDpmrQJeXj7" name="hellraiser-revival-screenshot-08.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/EBXB2V3kniAvDpmrQJeXj7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>With Halloween on the horizon, there’s no doubt an appetite for new horror games, and I’d hoped to declare Hellraiser: Revival the perfect gaming experience for Spooky Season.</p><p>Sadly, in its current state, I simply can’t. However, I do want to acknowledge its $39 / £34 price point, which I appreciate, making it a more cost-effective option in an era of $69 games.</p><p>Maybe by Halloween 2027, the technical shortcomings will have been smoothed out, and at that point, Hellraiser: Revival might justify a purchase, at least for dedicated fans of the horror franchise. </p><p>Still, in a year that has seen truly essential horror games like <a href="https://www.tomsguide.com/gaming/resident-evil-requiem-review">Resident Evil: Requiem</a> and <a href="https://www.tomsguide.com/gaming/silent-hill-townfall-review">Silent Hill: Townfall</a>, it’s hard to recommend in its current state. Hellraiser: Revival might beat its contemporaries for disturbing content, but that’s about the only area where it wins.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-restocks-updates-and-news">PS5 Pro restocks — latest updates as retailers sell out</a></li><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/silent-hill-townfall-review">Silent Hill: Townfall is one of the most intense games ever</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/hellraiser-revival-is-intense-graphic-and-disturbing-but-its-not-ready-for-halloween-2026</link>
                                                                            <description>
                            <![CDATA[ Hellraiser: Revival has potential, but this single-player survival horror is most terrifying because of its puzzle box full of bugs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vmV8pJkr2fqCRy9TkGdaS7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zTBFC4RQVoiT2hgy2Cp6c8-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 08 Oct 2026 12:01:44 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/zTBFC4RQVoiT2hgy2Cp6c8-1920-80.png">
                                                            <media:credit><![CDATA[Saber Interactive]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hellraiser Revival screenshot]]></media:description>                                                            <media:text><![CDATA[Hellraiser Revival screenshot]]></media:text>
                                <media:title type="plain"><![CDATA[Hellraiser Revival screenshot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zTBFC4RQVoiT2hgy2Cp6c8-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The last decade has been a real boom period for video games based on classic horror movies. Games have been made based on Friday the 13th, Halloween, The Texas Chain Saw Massacre, Predator and Saw. Plus, the ongoing Dead by Daylight, which has crossed over with just about every fan-favorite horror franchise around, from A Nightmare on Elm Street to Scream.</p><p>On the surface, Clive Barker’s Hellraiser: Revival might look like the latest in a long line of online games cashing in on a classic horror IP. But unlike those aforementioned games, it’s <em>not </em>an asymmetrical multiplayer experience casting one player as Hellraiser’s Pinhead and the rest as fleshy humans. No, it’s a single-player survival horror title. </p><p>A narrative-driven, single-player, survival horror experience set in the brutal world of Clive Barker’s original “Hellraiser” movie? Sign me up. </p><p>However, after playing through the entire 10-hour campaign on <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>, I'm disappointed. I love the intent behind Hellraiser: Revival, but the execution is all too often a whole lot more pain than pleasure.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMPANX"></div>                            </div>                            <script src="https://kwizly.com/embed/eMPANX.js" async=""></script><div class="product"><a data-dimension112="f756371a-c27d-11f1-855d-1f5b58bd932a" data-action="Deal Block" data-label="Hellraiser: Revival" data-dimension48="Hellraiser: Revival" data-dimension25="$39" href="https://www.amazon.com/Clive-Barkers-Hellraiser-Revival-PlayStation-5/dp/B0H78C37LG/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="ZLphxEynNci4s7ko4URVxW" name="hellraiser-revival-ps5-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZLphxEynNci4s7ko4URVxW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Hellraiser: Revival tells an original story in Clive Barker's cult horror universe. You play a biker named Aidan, trying to rescue his hellbound girlfriend from the clutches of Pinhead and the Cenobites while battling a twisted cult in this narrative-driven, single-player survival horror experience.<a class="view-deal button" href="https://www.amazon.com/Clive-Barkers-Hellraiser-Revival-PlayStation-5/dp/B0H78C37LG/" target="_blank" rel="nofollow" data-dimension112="f756371a-c27d-11f1-855d-1f5b58bd932a" data-action="Deal Block" data-label="Hellraiser: Revival" data-dimension48="Hellraiser: Revival" data-dimension25="$39">View Deal</a></p></div><h2 id="we-have-such-sights-to-show-you">We have such sights to show you</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/0Qbyo_rNKBo" allowfullscreen=""></iframe></div></div><p>You play Aidan Lynch, a gruff (somewhat unlikable) biker who unwillingly summons Pinhead and his Cenobites — extradimensional beings who are described in the films as “demons to some, angels to others” — during a raunchy evening with his girlfriend, Sunny, when they activate a strange box known as the Genesis Configuration.</p><p>Pinhead and his grotesque pals whisk Sunny away to the depths of their hellish dimension, and it’s up to Aidan to rescue his lost love — even if flashbacks suggest that the couple's relationship was anything but blissful. It’s your routine “save the girl” story, but because this is Hellraiser, the whole narrative is coated in a thick soup of blood, guts, and seriously graphic sights. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wF7e9AmeVMWU7ZRuYZkJw7" name="hellraiser-revival-screenshot-09.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/wF7e9AmeVMWU7ZRuYZkJw7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>It will come as no shock to anybody familiar with the “Hellraiser” movies, but Revival is extremely graphic. And I don’t just mean in terms of violence (though there’s <em>a lot</em> of that). There is so much extreme sexual content here that I felt obligated to forewarn my partner about it before starting, just in case she accidentally walked in on me playing.</p><p>On the one hand, I commend the developers at Saber Interactive for being willing to push the boundaries of good taste — one early objective has Aidan collecting sex toys at the request of a woman decked out in a full leather outfit. To have presented a watered-down Hellraiser experience would have been inauthentic. But pretty quickly, the frequency of sexual content starts to feel like a shock-value play.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o5VBP3FT9AQ8YqaV2Jn8o7" name="hellraiser-revival-screenshot-07.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/o5VBP3FT9AQ8YqaV2Jn8o7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>This felt most keenly in the game’s most meaningful original contribution to the Hellraiser canon, the Scarlet Church. A Cenobite-obsessed cult that you spend the vast majority of the game hiding from and then butchering with sharp melee weapons and powerful firearms. The Church adds an extra wrinkle, but is often used as a vehicle to shove yet more graphic scenes in the player’s face. Which, at the very least, does make thinning their ranks rather cathartic.</p><h2 id="a-revival-but-certainly-not-a-gameplay-revolution">A revival, but certainly not a gameplay revolution</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SpZ6NbUSk77sydekxQpeb8" name="hellraiser-revival-screenshot-01" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/SpZ6NbUSk77sydekxQpeb8-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>Like many modern survival horror games, from the <a href="https://www.tomsguide.com/gaming/this-survival-horror-is-more-confusing-than-scary-but-i-cant-stop-playing-heres-why">Alone in the Dark reboot</a> to <a href="https://www.tomsguide.com/gaming/pc-gaming/the-sinking-city-2-is-one-of-my-biggest-gaming-surprises-of-the-year-and-its-scratching-that-resident-evil-itch">The Sinking City 2</a>, Hellraiser: Revival’s is a close approximation of the recent Resident Evil games. </p><p>I’m okay with this; Resident Evil is among my favorite series in gaming, and I’m happy to play games that pinch its best ideas in between new RE releases. As Aidan, your goal is to slowly make your way through each area of the Scarlet Church’s vast compound, picking up items, fending off foes, and finding keys that open more doors, and repeat.</p><p>Enemies can be engaged head-on, not always wise due to limited ammo and breakable melee weapons, or you can take a stealthy approach. The Genesis Configuration is added to your arsenal, giving you supernatural powers like controlling flame, or best of all, telekinesis, letting you throw all sharp objects at enemies, impaling them on walls.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3odcZuwfv2n2ofmqSAbnd8" name="hellraiser-revival-screenshot-02" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/3odcZuwfv2n2ofmqSAbnd8-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>It’s a compelling enough loop, and Hellraiser: Revival largely works on a moment-to-moment basis because of this. But what’s particularly disappointing is that the sporadic occasions where the game strikes out and tries to be its own beast are among the best sections. </p><p>After major story beats, you’ll usually find yourself in the Cenobites labyrinth. These levels have you solving basic puzzles or trying to escape from the demon fans refer to as the Chatterer, which are comfortably the most intense parts of the game. There’s also a riff on the (in)famous PT demo, which is simple but effective. </p><p>In fact, I had to wonder why the whole game isn’t set in the labyrinth instead of the generic corridors of the church’s base, which become very repetitive.</p><h2 id="the-most-hellish-part-isn-t-pinhead">The most hellish part isn’t Pinhead</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cJJ5iqwRcSifT8WqMbyPb8" name="hellraiser-revival-screenshot-04" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/cJJ5iqwRcSifT8WqMbyPb8-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>Hellraiser: Revival spends a lot of time showing you hellish sights or forcing you to come face-to-face with repugnant characters, both the Cenobites and the sadistic leaders of the Scarlet Church. However, the fear they strike in you is nothing compared to the terror I faced thanks to constant glitches.</p><p>Unfortunately, on a technical level, Hellraiser: Revival is rough. At its best, the game looks and runs to an acceptable standard. It’s never a graphical showcase, but interiors are detailed, and characters closely resemble their movie counterparts. However, Hellraiser: Revival is only rarely at its best. Far too often, the cracks show, and then start to widen. </p><p>If I listed every bug and glitch I encountered, this article would triple in size, but the <em>low</em>lights include textures frequently taking several seconds to appear, particularly after a loading screen, enemy bodies regularly morphing into furniture, which admittedly was quite funny, and noticeable framerate drops during large combat encounters.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="X3A7R4o2sHALB3CgGJTxv7" name="hellraiser-revival-screenshot-06.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/X3A7R4o2sHALB3CgGJTxv7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>Adding to the pain, the game gets increasingly unstable as you delve deeper. In the final three hours of my playthrough, something would break around every corner. A late-game save station refused to work, the in-game storage box ate my revolver pistol, completely robbing me of a powerful weapon for late-game levels, and the final boss became totally unresponsive not once, but twice, forcing a reload both times. </p><p>If all that wasn’t enough, Hellraiser: Revival waved me off with a final cutscene glitch. Character dialogue began looping. Each line repeated over the next. And so, the culmination of the game’s story descended into barely comprehensible audio gibberish. Talk about ending on a real low.</p><h2 id="should-you-play-hellraiser-revival-this-halloween">Should you play Hellraiser: Revival this Halloween?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EBXB2V3kniAvDpmrQJeXj7" name="hellraiser-revival-screenshot-08.JPG" alt="Hellraiser Revival screenshot" src="https://cdn.mos.cms.futurecdn.net/EBXB2V3kniAvDpmrQJeXj7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>With Halloween on the horizon, there’s no doubt an appetite for new horror games, and I’d hoped to declare Hellraiser: Revival the perfect gaming experience for Spooky Season.</p><p>Sadly, in its current state, I simply can’t. However, I do want to acknowledge its $39 / £34 price point, which I appreciate, making it a more cost-effective option in an era of $69 games.</p><p>Maybe by Halloween 2027, the technical shortcomings will have been smoothed out, and at that point, Hellraiser: Revival might justify a purchase, at least for dedicated fans of the horror franchise. </p><p>Still, in a year that has seen truly essential horror games like <a href="https://www.tomsguide.com/gaming/resident-evil-requiem-review">Resident Evil: Requiem</a> and <a href="https://www.tomsguide.com/gaming/silent-hill-townfall-review">Silent Hill: Townfall</a>, it’s hard to recommend in its current state. Hellraiser: Revival might beat its contemporaries for disturbing content, but that’s about the only area where it wins.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-restocks-updates-and-news">PS5 Pro restocks — latest updates as retailers sell out</a></li><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/silent-hill-townfall-review">Silent Hill: Townfall is one of the most intense games ever</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This new adventure game is one of the best indies I've ever played — and it'll make you cry, laugh and then cry a bit more ]]></title>
                                                                                                <dc:content><![CDATA[ <p>"I'm going to make a game about grief that is so sad," is probably what the lovely folks at indie game studio, Third Shift, thought to themselves when they channeled their inner Sue Sylvester while making Forever Ago. If you're after a third-person, story-driven, slow-paced game that you can finish in one sitting, this is one for you — but you might want to grab a box of tissues before locking in.</p><p>Forever Ago follows Alfred's road trip adventure after the death of his wife, who he has been married to for several decades. Told in a beautiful graphic novel art style, you play as Alfred, revisiting all the places he had been with his wife. You take photos, meet various NPCs with different points of view on life, and even make an uncanny friend along the way.</p><p>In some places, Forever Ago is funny and it makes you smile, but the overarching themes of grief, loss, love and redemption are omnipresent. Though it's a very short game, it's a must-play for anyone who enjoys emotional and reflective narrative adventures. As soon as the credits rolled, I knew this was one of my favorite indies of all time. Let me show you why.</p><p><em>Minor spoilers to follow.</em></p><h2 id="the-power-of-memory">The power of memory</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/oWKqo6u4uFsaJhbwvPstK8-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GUogN8788n6hu7MAXmNJ58-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure></figure><p>Forever Ago is a gut-punch from the get-go. At the beginning, you play as a young Alfred who has only just begun dating Audrey. Audrey finds a camera at a yard sale and starts taking photographs, but as you learn throughout the story, Alfred was the one who took to photography more than she did. You don't see Audrey much in the game — but her impact is lasting, as she passes away from a long illness, and an ageing Alfred is left to grieve on his own.</p><p>The premise of the game is simple: Audrey wants Alfred to visit all the places she'd been with him when they were together. As you travel to different locations through the game, the narrative builds. Each location has sets of orange petals you can collect, and completing each set reveals a memory, triggered by Alfred taking a photo.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/h2ZjnGk5NnHxJpon6uLu78-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Mf64EVXtftQbcZMtbZQns7-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure></figure><p>Armed with Audrey's journal and a camera attached to his satchel, Alfred sets off on a road trip, hoping to reach Wilhelmina Peak in the north. Audrey's journal specifies your objectives and you can refer to as and when needed. As you visit different places, you capture photos and are limited to just 12 per level if you want to print them out to stick in your journal at the end of each chapter.</p><p>As someone who loves photography and even tests the <a href="https://www.tomsguide.com/us/best-cameras,review-2196.html">best cameras</a> for a living, the photography aspect in Forever Ago hit me like a truck. Alfred and Audrey immortalized many of their adventures through this medium — like I do in my life — and Alfred continued to do so after his beloved wife's passing, too, only because she didn't want his love of adventure to die.</p><h2 id="the-importance-of-slowing-down">The importance of slowing down</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pYVKS42cUkGtjjDnqAMNg7" name="Forever_Ago_screenshot-6" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/pYVKS42cUkGtjjDnqAMNg7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>As someone who loves action adventure games and RPGs, like <a href="https://www.tomsguide.com/gaming/assassins-creed-black-flag-resynced-review">Assassin’s Creed Black Flag Resynced</a> and <a href="https://www.tomsguide.com/gaming/clair-obscur-expedition-33-review">Clair Obscur: Expedition 33</a>, I wasn't expecting much from Forever Ago, and I certainly wasn't expecting it to leave its mark on me in the way it has. But then again, I've also cried over indies like <a href="https://www.tomsguide.com/gaming/playstation/the-best-ps5-game-you-probably-havent-played-just-got-a-prequel-announced-at-state-of-play-and-you-can-get-the-original-right-now-for-just-usd9">Neva</a> and <a href="https://www.tomsguide.com/gaming/endling-extinction-is-forever">Endling: Extinction is Forever</a>.</p><p>Unlike the fast-paced titles I love playing, Forever Ago is a slow game. Alfred can't sprint or run — the most he can do is walk briskly on certain surfaces. He can't jump or crouch as and when he wishes either. Though he has a final destination to reach, there's no sense of urgency that makes you want to rush.</p><p>This isn't a very long game — it took me about five hours to complete — and I took my time admiring the art style, exploring every part of every level, allowing every dialogue that was spoken to wash over me, and matching Alfred's pace, really. Forever Ago is an important lesson to us, the gamers, that it's okay to slow down and take your time, and that a short game can be just as impactful (if not more) as a long one.</p><h2 id="grief-loss-but-also-redemption">Grief, loss but also redemption</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="76FVnT4oD4FoeHHagPCvy7" name="Forever_Ago_screenshot-3" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/76FVnT4oD4FoeHHagPCvy7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>Throughout the majority of the game, Alfred is grumpy and doesn't want anything to do with anyone, and he has every reason to be. Grief isn't an easy emotion to deal with, and you don't just "get over" the passing of a loved one overnight. Alfred's loneliness comes across with great clarity through his interactions with NPCs.</p><p>Asking a grocery store attendant to leave him alone, struggling to accept help from a young woman who offers to fix his camper van, and even making comments like, "I have no one left to call" — it's clear that Alfred is all by himself.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JugfJjfyUBxh3fJrdsR9X7" name="Forever_Ago_screenshot-2" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/JugfJjfyUBxh3fJrdsR9X7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>But he doesn't have to be, and it's something he eventually realizes as the game progresses. A dog is a man's best friend, and Forever Ago drives this message home by introducing a fluffy four-legged companion who refuses to leave Alfred's side. You get to name her, play fetch with her, pet her. Alfred's cold demeanor eventually melts.</p><p>He also makes friends with a man hiking with his ageing dog during one of the levels. It's a brief encounter, but it tugs at your heartstrings through exceptionally well-written dialogues, and of course, photographs, which Alfred makes sure to take plenty of.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vs27y6AtMrEzuDcLw9SET8" name="Forever_Ago_screenshot-5" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/vs27y6AtMrEzuDcLw9SET8-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>Even when Alfred is at his lowest, crying out for Audrey to come back, and on the verge of calling quits on his road trip, it's certain encounters with NPCs in the game that keep him going. The brains behind Forever Ago have done a fantastic job of showing that human connection is important, and perhaps more important than ever when you're bruised and beaten like Alfred is.</p><p>Forever Ago might not be everyone's cup of tea, but I truly believe it's a game everyone has to play at least once. The art style, storytelling, writing and calming music are just so charming that they draw you in instantly and make you feel like you're part of Alfred's world.</p><p>I didn't think a story of grief and love told through photos and memories would have me feeling existential for a whole evening, but that's the kind of power Forever Ago holds.</p><p><em><strong>Forever Ago will be available to buy on </strong></em><a href="https://store.steampowered.com/app/1215940/Forever_Ago/" target="_blank" rel="nofollow"><em><strong>Steam</strong></em></a><em><strong>, </strong></em><a href="https://store.playstation.com/en-us/concept/10018129" target="_blank" rel="nofollow"><em><strong>PS5</strong></em></a><em><strong>, </strong></em><a href="https://www.xbox.com/en-US/games/store/forever-ago/9nfb47h2sdrx" target="_blank" rel="nofollow"><em><strong>Xbox Series X|S</strong></em></a><em><strong>, and Nintendo Switch 2, starting 8 October.</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port"><strong>Witcher 3 Remastered on Switch 2 is the portable RPG experience Nintendo fans deserve — and a huge upgrade over the Switch 1’s compromised port</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/hot-wheels-infinite-rush-after-15-hours"><strong>I’ve played Hot Wheels Infinite Rush for 15 hours, and it scratches an itch that Forza Horizon can't</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/nintendo/i-never-understood-the-cozy-game-hype-until-i-played-pokemon-pokopia-and-after-200-hours-i-still-cant-put-it-down"><strong>I never understood the cozy game hype until I played Pokémon Pokopia — and after 200 hours, I still can't put it down</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/forever-ago-a-heartfelt-road-trip-adventure-about-grief-and-loss</link>
                                                                            <description>
                            <![CDATA[ Forever Ago is a slow-paced heartfelt road trip adventure about love, loss and grief, told through photographs and memories. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xeBNw37BjNDxtYMd8ALUrj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pYwASv5B896eUGACaQGVm7-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 07 Oct 2026 14:00:00 +0000</pubDate>                                                                                                                                <updated>Wed, 07 Oct 2026 22:43:04 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7SPsEgwiRa9MdL3BPuVJUW-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&amp;#39;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&amp;#39;s also a licensed drone pilot and cameras expert so you&amp;#39;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pYwASv5B896eUGACaQGVm7-1920-80.jpg">
                                                            <media:credit><![CDATA[Third Shift / Annapurna Interactive]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A screenshot from Forever Ago, an indie adventure game]]></media:description>                                                            <media:text><![CDATA[A screenshot from Forever Ago, an indie adventure game]]></media:text>
                                <media:title type="plain"><![CDATA[A screenshot from Forever Ago, an indie adventure game]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pYwASv5B896eUGACaQGVm7-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>"I'm going to make a game about grief that is so sad," is probably what the lovely folks at indie game studio, Third Shift, thought to themselves when they channeled their inner Sue Sylvester while making Forever Ago. If you're after a third-person, story-driven, slow-paced game that you can finish in one sitting, this is one for you — but you might want to grab a box of tissues before locking in.</p><p>Forever Ago follows Alfred's road trip adventure after the death of his wife, who he has been married to for several decades. Told in a beautiful graphic novel art style, you play as Alfred, revisiting all the places he had been with his wife. You take photos, meet various NPCs with different points of view on life, and even make an uncanny friend along the way.</p><p>In some places, Forever Ago is funny and it makes you smile, but the overarching themes of grief, loss, love and redemption are omnipresent. Though it's a very short game, it's a must-play for anyone who enjoys emotional and reflective narrative adventures. As soon as the credits rolled, I knew this was one of my favorite indies of all time. Let me show you why.</p><p><em>Minor spoilers to follow.</em></p><h2 id="the-power-of-memory">The power of memory</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/oWKqo6u4uFsaJhbwvPstK8-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GUogN8788n6hu7MAXmNJ58-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure></figure><p>Forever Ago is a gut-punch from the get-go. At the beginning, you play as a young Alfred who has only just begun dating Audrey. Audrey finds a camera at a yard sale and starts taking photographs, but as you learn throughout the story, Alfred was the one who took to photography more than she did. You don't see Audrey much in the game — but her impact is lasting, as she passes away from a long illness, and an ageing Alfred is left to grieve on his own.</p><p>The premise of the game is simple: Audrey wants Alfred to visit all the places she'd been with him when they were together. As you travel to different locations through the game, the narrative builds. Each location has sets of orange petals you can collect, and completing each set reveals a memory, triggered by Alfred taking a photo.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/h2ZjnGk5NnHxJpon6uLu78-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Mf64EVXtftQbcZMtbZQns7-1920-80.jpg" alt="A screenshot from Forever Ago, an indie adventure game" /><figcaption><small role="credit">Third Shift / Annapurna Interactive</small></figcaption></figure></figure><p>Armed with Audrey's journal and a camera attached to his satchel, Alfred sets off on a road trip, hoping to reach Wilhelmina Peak in the north. Audrey's journal specifies your objectives and you can refer to as and when needed. As you visit different places, you capture photos and are limited to just 12 per level if you want to print them out to stick in your journal at the end of each chapter.</p><p>As someone who loves photography and even tests the <a href="https://www.tomsguide.com/us/best-cameras,review-2196.html">best cameras</a> for a living, the photography aspect in Forever Ago hit me like a truck. Alfred and Audrey immortalized many of their adventures through this medium — like I do in my life — and Alfred continued to do so after his beloved wife's passing, too, only because she didn't want his love of adventure to die.</p><h2 id="the-importance-of-slowing-down">The importance of slowing down</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pYVKS42cUkGtjjDnqAMNg7" name="Forever_Ago_screenshot-6" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/pYVKS42cUkGtjjDnqAMNg7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>As someone who loves action adventure games and RPGs, like <a href="https://www.tomsguide.com/gaming/assassins-creed-black-flag-resynced-review">Assassin’s Creed Black Flag Resynced</a> and <a href="https://www.tomsguide.com/gaming/clair-obscur-expedition-33-review">Clair Obscur: Expedition 33</a>, I wasn't expecting much from Forever Ago, and I certainly wasn't expecting it to leave its mark on me in the way it has. But then again, I've also cried over indies like <a href="https://www.tomsguide.com/gaming/playstation/the-best-ps5-game-you-probably-havent-played-just-got-a-prequel-announced-at-state-of-play-and-you-can-get-the-original-right-now-for-just-usd9">Neva</a> and <a href="https://www.tomsguide.com/gaming/endling-extinction-is-forever">Endling: Extinction is Forever</a>.</p><p>Unlike the fast-paced titles I love playing, Forever Ago is a slow game. Alfred can't sprint or run — the most he can do is walk briskly on certain surfaces. He can't jump or crouch as and when he wishes either. Though he has a final destination to reach, there's no sense of urgency that makes you want to rush.</p><p>This isn't a very long game — it took me about five hours to complete — and I took my time admiring the art style, exploring every part of every level, allowing every dialogue that was spoken to wash over me, and matching Alfred's pace, really. Forever Ago is an important lesson to us, the gamers, that it's okay to slow down and take your time, and that a short game can be just as impactful (if not more) as a long one.</p><h2 id="grief-loss-but-also-redemption">Grief, loss but also redemption</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="76FVnT4oD4FoeHHagPCvy7" name="Forever_Ago_screenshot-3" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/76FVnT4oD4FoeHHagPCvy7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>Throughout the majority of the game, Alfred is grumpy and doesn't want anything to do with anyone, and he has every reason to be. Grief isn't an easy emotion to deal with, and you don't just "get over" the passing of a loved one overnight. Alfred's loneliness comes across with great clarity through his interactions with NPCs.</p><p>Asking a grocery store attendant to leave him alone, struggling to accept help from a young woman who offers to fix his camper van, and even making comments like, "I have no one left to call" — it's clear that Alfred is all by himself.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JugfJjfyUBxh3fJrdsR9X7" name="Forever_Ago_screenshot-2" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/JugfJjfyUBxh3fJrdsR9X7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>But he doesn't have to be, and it's something he eventually realizes as the game progresses. A dog is a man's best friend, and Forever Ago drives this message home by introducing a fluffy four-legged companion who refuses to leave Alfred's side. You get to name her, play fetch with her, pet her. Alfred's cold demeanor eventually melts.</p><p>He also makes friends with a man hiking with his ageing dog during one of the levels. It's a brief encounter, but it tugs at your heartstrings through exceptionally well-written dialogues, and of course, photographs, which Alfred makes sure to take plenty of.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vs27y6AtMrEzuDcLw9SET8" name="Forever_Ago_screenshot-5" alt="A screenshot from Forever Ago, an indie adventure game" src="https://cdn.mos.cms.futurecdn.net/vs27y6AtMrEzuDcLw9SET8-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Third Shift / Annapurna Interactive)</span></figcaption></figure><p>Even when Alfred is at his lowest, crying out for Audrey to come back, and on the verge of calling quits on his road trip, it's certain encounters with NPCs in the game that keep him going. The brains behind Forever Ago have done a fantastic job of showing that human connection is important, and perhaps more important than ever when you're bruised and beaten like Alfred is.</p><p>Forever Ago might not be everyone's cup of tea, but I truly believe it's a game everyone has to play at least once. The art style, storytelling, writing and calming music are just so charming that they draw you in instantly and make you feel like you're part of Alfred's world.</p><p>I didn't think a story of grief and love told through photos and memories would have me feeling existential for a whole evening, but that's the kind of power Forever Ago holds.</p><p><em><strong>Forever Ago will be available to buy on </strong></em><a href="https://store.steampowered.com/app/1215940/Forever_Ago/" target="_blank" rel="nofollow"><em><strong>Steam</strong></em></a><em><strong>, </strong></em><a href="https://store.playstation.com/en-us/concept/10018129" target="_blank" rel="nofollow"><em><strong>PS5</strong></em></a><em><strong>, </strong></em><a href="https://www.xbox.com/en-US/games/store/forever-ago/9nfb47h2sdrx" target="_blank" rel="nofollow"><em><strong>Xbox Series X|S</strong></em></a><em><strong>, and Nintendo Switch 2, starting 8 October.</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port"><strong>Witcher 3 Remastered on Switch 2 is the portable RPG experience Nintendo fans deserve — and a huge upgrade over the Switch 1’s compromised port</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/hot-wheels-infinite-rush-after-15-hours"><strong>I’ve played Hot Wheels Infinite Rush for 15 hours, and it scratches an itch that Forza Horizon can't</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/nintendo/i-never-understood-the-cozy-game-hype-until-i-played-pokemon-pokopia-and-after-200-hours-i-still-cant-put-it-down"><strong>I never understood the cozy game hype until I played Pokémon Pokopia — and after 200 hours, I still can't put it down</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ GameStop is suddenly selling used PS5 Pros for over $1,400: what's going on and where you can actually get one for cheaper ]]></title>
                                                                                                <dc:content><![CDATA[ <p>GameStop and various third-party resellers dramatically increased the price of a used <a href="https://www.tomsguide.com/gaming/playstation/ive-used-the-ps5-pro-every-day-for-a-year-heres-what-i-like-and-dislike">PS5 Pro </a>console by as much as $500, on the low end. In the case of GameStop that includes refurbished consoles as well.</p><p>The <a href="https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-pro-console/416188.html?utm_source=rakutenls&amp;utm_medium=affiliate&amp;utm_content=IGN&amp;utm_campaign=10&amp;utm_id=3011275&amp;utm_kxconfid=tebx5rmj3&amp;cid=afl_10000087&amp;affID=77777&amp;sourceID=oelFIBIMgTk-cfK81sExlybOHKYWKRdVHQ&amp;ranMID=24348&amp;ranEAID=oelFIBIMgTk&amp;ranSiteID=oelFIBIMgTk-cfK81sExlybOHKYWKRdVHQ" target="_blank">company's website</a> currently shows pre-owned and refurbished PS5 Pro consoles for $1329, a nearly $500 markup on the current $900 MSRP. Unfortunately, GameStop isn't the only place with absurdly high prices. </p><p>Tom's Guide checked <a href="https://www.amazon.com/PlayStation%C2%AE5-Digital-825GB-PlayStation-5/dp/B0FTMY4YZ2/ref=sr_1_1?crid=30FD4X9J84GEI&amp;dib=eyJ2IjoiMSJ9.N4xLKJ9gWDQyDSrmXnmHmZkR8gLpsGJNn21tweRtaB3f0l6DFLeaDIW2E6y5lTVOlnwGl2DFgxtx_hR5B529SdgwoyLyxnBDw7NF8s6uue7n80_wslm0p8kVDuGII91IynPLd_KpOJjlI4OVTJWh3opvnTDzDfUp3kjrK-xei2XrsAHbl1Qmuvf9nxS_ofnLf1vEvWyt8nmsjo7pCvXOgBtXL8gnMpyRHTg8T7B77YM.J8sh3HxoM1b4i40HgIWR-6cW4YNkFpvk56LHxYSxddw&amp;dib_tag=se&amp;keywords=ps5%2Bconsole&amp;qid=1791310726&amp;sprefix=ps5%2Bconsol%2Caps%2C287&amp;sr=8-1&amp;th=1" target="_blank">Amazon</a>, <a href="https://www.bestbuy.com/product/playstation-5-pro-console/JXHQ37TR86/sku/6601524" target="_blank">Best Buy</a>, <a href="https://www.newegg.com/p/N82E16868110346" target="_blank">Newegg </a>and <a href="https://www.walmart.com/ip/Sony-PlayStation-5-Pro-Console-PS5-Pro/18235967161?conditionGroupCode=3&amp;classType=REGULAR&amp;athbdg=L1102&amp;from=/search" target="_blank">Walmart </a>where third-party sellers who sell through those online platforms are showing similar prices with some as high as $1700. </p><p>We reached out to GameStop and PlayStation for comment on PS5 Pro availability and these new prices. We will update this article if either company responds.</p><h3 class="article-body__section" id="section-ps5-pro-restock-quick-links"><span>PS5 Pro restock — Quick links</span></h3><ul><li><strong>PS5 Pro: </strong><a href="https://www.amazon.com/PlayStation%C2%AE5-console-1TB-PlayStation-5/dp/B0FTMY4YZ2" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://www.bestbuy.com/product/playstation-5-pro-console/JXHQ37TR86" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a><strong></strong></li><li><strong>PS5 Pro: </strong><a href="https://www.walmart.com/ip/Sony-PlayStation-5-Pro-Console-PS5-Pro/18235967161" target="_blank" rel="nofollow"><strong>check stock @ Walmart</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://www.target.com/p/playstation-5-pro-console/-/A-93620188" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-pro-console/20015604.html" target="_blank" rel="nofollow"><strong>check stock @ GameStop</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://direct.playstation.com/en-us/buy-consoles/playstation5-pro-console-2-tb" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li></ul><h2 id="used">Used</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bMX2buAmAL7uK2BwXXj5F" name="PS5 Pro-17" alt="PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/bMX2buAmAL7uK2BwXXj5F-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To be clear, all of these prices are for used, refurbished or "open box" versions of the PS5 Pro. As far as we can tell new PS5 Pro consoles are out of stock everywhere including the <a href="https://direct.playstation.com/en-us/buy-consoles/playstation5-pro-console-2-tb?smcid=pdc:us-en:web-pdc-ps5-ps5-pro:buttonblock-buy-now&amp;emcid=pa-co-520647" target="_blank">official PlayStation Store</a>.</p><p>Every retail site we checked lists the PS5 Pro as a high-demand product, probably related to the imminent launch of <a href="https://www.tomsguide.com/gaming/gta-6s-ultimate-edition-is-the-real-full-game-and-the-rumors-of-it-costing-usd100-were-true-after-all">GTA 6</a>. With ongoing tariffs and the AI-caused memory shortage, Sony has been <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-restocks-latest-updates">struggling to meet demand</a>. </p><p>Resellers have tended have higher prices since the Ps5 Pro was launched and especially after the<a href="https://www.tomsguide.com/gaming/playstation/major-sony-ps5-price-hike-just-hit-all-models-heres-what-youll-pay-now"> $150 price increase earlier this year</a>. But at these prices you could get a decent gaming PC even in the current climate, like the <a href="https://www.tomsguide.com/computing/gaming-desktops/dell-tower-plus-2025-review">Dell Tower Plus</a> which is "only" <a href="https://www.amazon.com/dp/B0F2NQT461" target="_blank" rel="nofollow">$1693 on Amazon right now</a>.</p><h2 id="where-can-you-get-a-ps5-pro">Where can you get a PS5 Pro?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UXNVkEQTRdkoLs6LGMMig6" name="TG-Ebay header.jpg" alt="Image showing eBay homepage with magnifying glass highlighting the logo" src="https://cdn.mos.cms.futurecdn.net/UXNVkEQTRdkoLs6LGMMig6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you absolutely must have a PS5 Pro in anticipation of GTA 6, then your current best bet is to check out eBay. No, you won't find any consoles at MSRP, but I found several bundles that are cheaper than these third-party sellers and get you a few extras. </p><p>For example, <a href="https://www.ebay.com/itm/178561617375?_skw=ps5+pro&amp;itmmeta=01M4979Y66584H4VZ5EWEV5GJK&amp;hash=item29931a0ddf%3Ag%3A3qUAAeSwQ6VqxRlh&amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xDlwmvji5xf9uCMrmu78RBnUc%2F1LPdfFEIJdaBA0Jq6ENYZWccdjXudKNJvBbF5U5a2nWbo%2FrmFX1DvBjQevLmHEiklAqzWTgnv54p8OS2DVROsrriSY2JXkG%2BKCQWytTKfN347RS1vDn0zAbkfoFAa38xkpsn4AGbYJPM3fKvXkD%2FP9NX85X5BPik4DoNoCRTO%2B4wfFd6hVAAXGs8BgXKDPFcfojOE67J7Ogl0Nle6a7HArFowM%2F56USk4wGV5rtalxpmIV7S2igfbgfdw%2B9xNr%2BWuhPFShkEK04u0nyM8pw%3D%3D%7Ctkp%3ABk9SR6bjp6eiaA&amp;LH_BIN=1" target="_blank">this listing</a> gets you the console and a controller for $1,049. <a href="https://www.ebay.com/itm/178561617375?_skw=ps5+pro&amp;itmmeta=01M4979Y66584H4VZ5EWEV5GJK&amp;hash=item29931a0ddf%3Ag%3A3qUAAeSwQ6VqxRlh&amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xDlwmvji5xf9uCMrmu78RBnUc%2F1LPdfFEIJdaBA0Jq6ENYZWccdjXudKNJvBbF5U5a2nWbo%2FrmFX1DvBjQevLmHEiklAqzWTgnv54p8OS2DVROsrriSY2JXkG%2BKCQWytTKfN347RS1vDn0zAbkfoFAa38xkpsn4AGbYJPM3fKvXkD%2FP9NX85X5BPik4DoNoCRTO%2B4wfFd6hVAAXGs8BgXKDPFcfojOE67J7Ogl0Nle6a7HArFowM%2F56USk4wGV5rtalxpmIV7S2igfbgfdw%2B9xNr%2BWuhPFShkEK04u0nyM8pw%3D%3D%7Ctkp%3ABk9SR6bjp6eiaA&amp;LH_BIN=1" target="_blank" rel="nofollow">This one</a> comes with eight games, a media remote and a couple of charging stations for $1,387, cheaper than the resellers by at least $100.</p><p>Normally, eBay isn't your friend when it comes to tech, but right now, in this specific PS5 Pro instance, it just might be.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features"><strong>I spent 5 hours building the new Lego PlayStation — here are my 4 favorite features</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/ive-played-every-fifa-game-since-2000-heres-my-verdict-on-ea-sports-fc-27"><strong>I’ve played every FIFA game since 2000 — here’s my verdict on EA Sports FC 27</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/ace-combat-8-is-high-flying-aerial-combat-perfection-thats-more-exhilarating-than-top-gun-despite-its-unavoidable-contradictions"><strong>Ace Combat 8 is high-flying aerial combat perfection that's more exhilarating than 'Top Gun' — despite its unavoidable contradictions</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/playstation/gamestop-is-suddenly-selling-used-ps5-pros-for-over-usd1400-whats-going-on-and-where-you-can-actually-get-one-for-cheaper</link>
                                                                            <description>
                            <![CDATA[ Prices for the PS5 Pro suddenly shot up today at GameStop and via third party resellers with tags hitting over $1400 for used consoles. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">S5VSwxXgiCBLb8z5MonqWk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RdfVjhAkbrfLkYMXcqRVda-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 06 Oct 2026 18:59:54 +0000</pubDate>                                                                                                                                <updated>Tue, 06 Oct 2026 19:17:30 +0000</updated>
                                                                                                                                            <category><![CDATA[Playstation]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/RdfVjhAkbrfLkYMXcqRVda-1920-80.jpg">
                                                            <media:credit><![CDATA[Future / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[PS5 Pro console upright on a table]]></media:description>                                                            <media:text><![CDATA[PS5 Pro console upright on a table]]></media:text>
                                <media:title type="plain"><![CDATA[PS5 Pro console upright on a table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RdfVjhAkbrfLkYMXcqRVda-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>GameStop and various third-party resellers dramatically increased the price of a used <a href="https://www.tomsguide.com/gaming/playstation/ive-used-the-ps5-pro-every-day-for-a-year-heres-what-i-like-and-dislike">PS5 Pro </a>console by as much as $500, on the low end. In the case of GameStop that includes refurbished consoles as well.</p><p>The <a href="https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-pro-console/416188.html?utm_source=rakutenls&amp;utm_medium=affiliate&amp;utm_content=IGN&amp;utm_campaign=10&amp;utm_id=3011275&amp;utm_kxconfid=tebx5rmj3&amp;cid=afl_10000087&amp;affID=77777&amp;sourceID=oelFIBIMgTk-cfK81sExlybOHKYWKRdVHQ&amp;ranMID=24348&amp;ranEAID=oelFIBIMgTk&amp;ranSiteID=oelFIBIMgTk-cfK81sExlybOHKYWKRdVHQ" target="_blank">company's website</a> currently shows pre-owned and refurbished PS5 Pro consoles for $1329, a nearly $500 markup on the current $900 MSRP. Unfortunately, GameStop isn't the only place with absurdly high prices. </p><p>Tom's Guide checked <a href="https://www.amazon.com/PlayStation%C2%AE5-Digital-825GB-PlayStation-5/dp/B0FTMY4YZ2/ref=sr_1_1?crid=30FD4X9J84GEI&amp;dib=eyJ2IjoiMSJ9.N4xLKJ9gWDQyDSrmXnmHmZkR8gLpsGJNn21tweRtaB3f0l6DFLeaDIW2E6y5lTVOlnwGl2DFgxtx_hR5B529SdgwoyLyxnBDw7NF8s6uue7n80_wslm0p8kVDuGII91IynPLd_KpOJjlI4OVTJWh3opvnTDzDfUp3kjrK-xei2XrsAHbl1Qmuvf9nxS_ofnLf1vEvWyt8nmsjo7pCvXOgBtXL8gnMpyRHTg8T7B77YM.J8sh3HxoM1b4i40HgIWR-6cW4YNkFpvk56LHxYSxddw&amp;dib_tag=se&amp;keywords=ps5%2Bconsole&amp;qid=1791310726&amp;sprefix=ps5%2Bconsol%2Caps%2C287&amp;sr=8-1&amp;th=1" target="_blank">Amazon</a>, <a href="https://www.bestbuy.com/product/playstation-5-pro-console/JXHQ37TR86/sku/6601524" target="_blank">Best Buy</a>, <a href="https://www.newegg.com/p/N82E16868110346" target="_blank">Newegg </a>and <a href="https://www.walmart.com/ip/Sony-PlayStation-5-Pro-Console-PS5-Pro/18235967161?conditionGroupCode=3&amp;classType=REGULAR&amp;athbdg=L1102&amp;from=/search" target="_blank">Walmart </a>where third-party sellers who sell through those online platforms are showing similar prices with some as high as $1700. </p><p>We reached out to GameStop and PlayStation for comment on PS5 Pro availability and these new prices. We will update this article if either company responds.</p><h3 class="article-body__section" id="section-ps5-pro-restock-quick-links"><span>PS5 Pro restock — Quick links</span></h3><ul><li><strong>PS5 Pro: </strong><a href="https://www.amazon.com/PlayStation%C2%AE5-console-1TB-PlayStation-5/dp/B0FTMY4YZ2" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://www.bestbuy.com/product/playstation-5-pro-console/JXHQ37TR86" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a><strong></strong></li><li><strong>PS5 Pro: </strong><a href="https://www.walmart.com/ip/Sony-PlayStation-5-Pro-Console-PS5-Pro/18235967161" target="_blank" rel="nofollow"><strong>check stock @ Walmart</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://www.target.com/p/playstation-5-pro-console/-/A-93620188" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-pro-console/20015604.html" target="_blank" rel="nofollow"><strong>check stock @ GameStop</strong></a></li><li><strong>PS5 Pro: </strong><a href="https://direct.playstation.com/en-us/buy-consoles/playstation5-pro-console-2-tb" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li></ul><h2 id="used">Used</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bMX2buAmAL7uK2BwXXj5F" name="PS5 Pro-17" alt="PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/bMX2buAmAL7uK2BwXXj5F-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To be clear, all of these prices are for used, refurbished or "open box" versions of the PS5 Pro. As far as we can tell new PS5 Pro consoles are out of stock everywhere including the <a href="https://direct.playstation.com/en-us/buy-consoles/playstation5-pro-console-2-tb?smcid=pdc:us-en:web-pdc-ps5-ps5-pro:buttonblock-buy-now&amp;emcid=pa-co-520647" target="_blank">official PlayStation Store</a>.</p><p>Every retail site we checked lists the PS5 Pro as a high-demand product, probably related to the imminent launch of <a href="https://www.tomsguide.com/gaming/gta-6s-ultimate-edition-is-the-real-full-game-and-the-rumors-of-it-costing-usd100-were-true-after-all">GTA 6</a>. With ongoing tariffs and the AI-caused memory shortage, Sony has been <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-restocks-latest-updates">struggling to meet demand</a>. </p><p>Resellers have tended have higher prices since the Ps5 Pro was launched and especially after the<a href="https://www.tomsguide.com/gaming/playstation/major-sony-ps5-price-hike-just-hit-all-models-heres-what-youll-pay-now"> $150 price increase earlier this year</a>. But at these prices you could get a decent gaming PC even in the current climate, like the <a href="https://www.tomsguide.com/computing/gaming-desktops/dell-tower-plus-2025-review">Dell Tower Plus</a> which is "only" <a href="https://www.amazon.com/dp/B0F2NQT461" target="_blank" rel="nofollow">$1693 on Amazon right now</a>.</p><h2 id="where-can-you-get-a-ps5-pro">Where can you get a PS5 Pro?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UXNVkEQTRdkoLs6LGMMig6" name="TG-Ebay header.jpg" alt="Image showing eBay homepage with magnifying glass highlighting the logo" src="https://cdn.mos.cms.futurecdn.net/UXNVkEQTRdkoLs6LGMMig6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you absolutely must have a PS5 Pro in anticipation of GTA 6, then your current best bet is to check out eBay. No, you won't find any consoles at MSRP, but I found several bundles that are cheaper than these third-party sellers and get you a few extras. </p><p>For example, <a href="https://www.ebay.com/itm/178561617375?_skw=ps5+pro&amp;itmmeta=01M4979Y66584H4VZ5EWEV5GJK&amp;hash=item29931a0ddf%3Ag%3A3qUAAeSwQ6VqxRlh&amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xDlwmvji5xf9uCMrmu78RBnUc%2F1LPdfFEIJdaBA0Jq6ENYZWccdjXudKNJvBbF5U5a2nWbo%2FrmFX1DvBjQevLmHEiklAqzWTgnv54p8OS2DVROsrriSY2JXkG%2BKCQWytTKfN347RS1vDn0zAbkfoFAa38xkpsn4AGbYJPM3fKvXkD%2FP9NX85X5BPik4DoNoCRTO%2B4wfFd6hVAAXGs8BgXKDPFcfojOE67J7Ogl0Nle6a7HArFowM%2F56USk4wGV5rtalxpmIV7S2igfbgfdw%2B9xNr%2BWuhPFShkEK04u0nyM8pw%3D%3D%7Ctkp%3ABk9SR6bjp6eiaA&amp;LH_BIN=1" target="_blank">this listing</a> gets you the console and a controller for $1,049. <a href="https://www.ebay.com/itm/178561617375?_skw=ps5+pro&amp;itmmeta=01M4979Y66584H4VZ5EWEV5GJK&amp;hash=item29931a0ddf%3Ag%3A3qUAAeSwQ6VqxRlh&amp;itmprp=enc%3AAQALAAAA8GfYFPkwiKCW4ZNSs2u11xDlwmvji5xf9uCMrmu78RBnUc%2F1LPdfFEIJdaBA0Jq6ENYZWccdjXudKNJvBbF5U5a2nWbo%2FrmFX1DvBjQevLmHEiklAqzWTgnv54p8OS2DVROsrriSY2JXkG%2BKCQWytTKfN347RS1vDn0zAbkfoFAa38xkpsn4AGbYJPM3fKvXkD%2FP9NX85X5BPik4DoNoCRTO%2B4wfFd6hVAAXGs8BgXKDPFcfojOE67J7Ogl0Nle6a7HArFowM%2F56USk4wGV5rtalxpmIV7S2igfbgfdw%2B9xNr%2BWuhPFShkEK04u0nyM8pw%3D%3D%7Ctkp%3ABk9SR6bjp6eiaA&amp;LH_BIN=1" target="_blank" rel="nofollow">This one</a> comes with eight games, a media remote and a couple of charging stations for $1,387, cheaper than the resellers by at least $100.</p><p>Normally, eBay isn't your friend when it comes to tech, but right now, in this specific PS5 Pro instance, it just might be.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features"><strong>I spent 5 hours building the new Lego PlayStation — here are my 4 favorite features</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/ive-played-every-fifa-game-since-2000-heres-my-verdict-on-ea-sports-fc-27"><strong>I’ve played every FIFA game since 2000 — here’s my verdict on EA Sports FC 27</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/ace-combat-8-is-high-flying-aerial-combat-perfection-thats-more-exhilarating-than-top-gun-despite-its-unavoidable-contradictions"><strong>Ace Combat 8 is high-flying aerial combat perfection that's more exhilarating than 'Top Gun' — despite its unavoidable contradictions</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Kingdom Hearts for the first time on Switch 2 — and I'm both overwhelmed and hooked ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Like most gamers, I have a list of personal gaming blind spots. Long-running franchises I’ve always wanted to dip into, but have never gotten around to actually playing. </p><p>Without question, at the very top of my "list of gaming shame" is Kingdom Hearts. For years, I’ve been curious about this action-RPG mash-up of Disney and Final Fantasy — which has now morphed into its own beast since its 2002 debut on PlayStation 2 — but at some point, I started to feel like the Disney-shaped ship had passed me by. </p><p>But when Square Enix announced the Kingdom Hearts Collection, it felt like a package designed for somebody like me, and I got hold of the collection on <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> a little early. I can now officially say that I have played a Kingdom Hearts game. Okay, so I’ve only played a handful of hours of the very first one, but it's a start!</p><p>Kingdom Hearts has spawned an extraordinarily passionate following, so I have little doubt that dedicated fans will flock to this new collection for an excuse to replay the series. But if you’re in a similar boat to me and have never played Kingdom Hearts before, let’s dive into why this collection is the perfect opportunity to give the series a shot.</p><div class="product"><a data-dimension112="ea5198e0-c1b3-11f1-8452-a590fe3f8256" data-action="Deal Block" data-label="Collection [I-III]" data-dimension48="Collection [I-III]" data-dimension25="$74" href="https://www.amazon.com/KINGDOM-HEARTS-Collection-I-III-Amazon-Exclusive/dp/B0H4NNFZ71/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:983px;"><p class="vanilla-image-block" style="padding-top:152.59%;"><img id="tzNU998BcvUXpg7uTzuK7V" name="kingdom-hearts-collection-switch-2-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tzNU998BcvUXpg7uTzuK7V-1920-80.jpg" mos="" align="middle" fullscreen="" width="983" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/KINGDOM-HEARTS-Collection-I-III-Amazon-Exclusive/dp/B0H4NNFZ71/" target="_blank" rel="nofollow" data-dimension112="ea5198e0-c1b3-11f1-8452-a590fe3f8256" data-action="Deal Block" data-label="Collection [I-III]" data-dimension48="Collection [I-III]" data-dimension25="$74">Collection [I-III]: $74</a></strong><br />The Kingdom Hearts Collection brings the beloved series to Switch 2, and there's no Cloud Version in sight. It includes all three numbered Kingdom Hearts games, alongside multiple spin-offs and a trio of HD movies. It's the perfect starting point for newcomers, or a great value package for longtime fans looking to re-experience the magic of protagonist Sora's epic quest.<a class="view-deal button" href="https://www.amazon.com/KINGDOM-HEARTS-Collection-I-III-Amazon-Exclusive/dp/B0H4NNFZ71/" target="_blank" rel="nofollow" data-dimension112="ea5198e0-c1b3-11f1-8452-a590fe3f8256" data-action="Deal Block" data-label="Collection [I-III]" data-dimension48="Collection [I-III]" data-dimension25="$74">View Deal</a></p></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OR96vW"></div>                            </div>                            <script src="https://kwizly.com/embed/OR96vW.js" async=""></script><h2 id="so-i-guess-this-is-kingdom-hearts">So, I guess this is Kingdom Hearts…</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ldMqRmTwy80" allowfullscreen=""></iframe></div></div><p>The opening to Kingdom Hearts is <em>rough</em>. Obviously, it looks and plays like a PS2 game. Even if the Final Mix version, which is what’s been ported to Nintendo Switch 2, bumps the resolution and framerate, it’s not a ground-up remake; Kingdom Hearts looks and feels its age. </p><p>But this didn’t bother me; I started playing games during the PS1 era, and still regularly replay some of my childhood favorites in 2026. No, Kingdom Hearts’ less-than-stellar introduction comes down to some questionable level design. You start the game by being introduced to young protagonist Sora, as he dreams of escaping his small island.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QkeDaS9AARdCr6Mbeowq5e" name="kingdom-hearts-collection-switch-2-02" alt="Kingdom Hearts screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/QkeDaS9AARdCr6Mbeowq5e-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>And from there, you are forced to complete a series of dull fetch quests to retrieve a host of items for your friends. It’s not exactly a thrilling introduction to the sprawling Kingdom Hearts universe. I wasn’t totally sure what to expect when playing Kingdom Hearts 1 in 2026, but collecting a stockpile of coconuts and looking for old rope wasn’t it.</p><p>Mercifully, after a little trouble locating a seagull's egg (another item on my checklist), things began to pick up. Soon darkness spread over the tropical island; Sora was entrusted with the series’ iconic Keyblade, and the spiked-haired character was quickly transported to a new setting. </p><p>It’s here, in the new location of Traverse Town (which serves as a sort of hub), that it feels like Kingdom Hearts truly begins. Sora meets a couple of iconic Disney characters, and a few familiar faces from Final Fantasy VII as well. At this point, the ponderous opening section faded from my memory, and I found its narrative hooks starting to latch onto me.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zTEekVdnkghCCooKA5eWwd" name="kingdom-hearts-collection-switch-2-01" alt="Kingdom Hearts screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/zTEekVdnkghCCooKA5eWwd-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>A couple more hours later, and these hooks are only embedding deeper the more I play. Even if the gameplay, which feels particularly clunky compared to modern action-RPGs, adds a degree of friction, the intriguing story and lovable characters, both familiar and original to the game, have me invested. Even if the game feels mechanically dated.</p><p>And from what fans tell me, the best is certainly yet to come. I hear the later games are a real step up in terms of gameplay. Particularly 2005's Kingdom Hearts 2, which many consider the best Kingdom Hearts title. </p><h2 id="kingdom-hearts-collection-was-made-for-players-like-me">Kingdom Hearts Collection was made for players like me</h2><p>I’m still a Kingdom Hearts newbie. There’s a long road ahead before I can consider myself well-versed in this franchise. But that’s what makes the Kingdom Hearts Collection so appealing. It includes basically <em>everything </em>released to date, from the three mainline games to the numerous spin-off titles, which I’m informed are all canonically key. </p><p>The collection covers 10 Kingdom Hearts titles. 7 are fully playable games, each remastered to varying degrees, while 3 have been reworked into HD movies. Considering Kingdom Hearts games aren’t exactly short either, with an average playtime of about 30 hours per title, for $74, that’s an awful lot of game crammed into a collection. </p><p>In fact, there’s so much to experience that, to start, it's more than a little overwhelming. I imagine this must be what it feels like to be somebody trying to catch up on the MCU before “Avengers: Doomsday.”</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yVACwtMnjmPDafVLMPMt5e" name="kingdom-hearts-3-screenshot" alt="Kingdom Hearts 3 image showing Donald, Sora and Goofy" src="https://cdn.mos.cms.futurecdn.net/yVACwtMnjmPDafVLMPMt5e-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>Kingdom Hearts also feels at home on the Nintendo Switch 2. As there’s so much content to experience here, being able to chip away at a title while playing in the console’s handheld mode is a huge selling point compared to picking up the collection on PS5, Xbox, or PC. </p><p>While I can speak to performance on later titles (I’ve heard the newest title, Kingdom Hearts 3, is a little spotty on Switch), the first game runs great on Nintendo’s system. But then again, it is a remastered PS2 title.</p><p>Kingdom Hearts 4 is currently set for a late 2027 release, which is helpful because it might take me the best part of a year to make my way through the collection. So, if you’re a newcomer to the series like me, this collection was basically designed for us. It offers the perfect opportunity to dive into Kingdom Hearts and get all caught up. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features">I spent 5 hours building the new Lego PlayStation</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port">Witcher 3 Remastered on Switch 2 is a huge upgrade</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/nintendo/i-played-kingdom-hearts-for-the-first-time-on-switch-2-and-im-both-overwhelmed-and-hooked</link>
                                                                            <description>
                            <![CDATA[ The Kingdom Hearts Collection has finally let me experience this fan-favorite action-RPG series on Switch 2. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rDmyqWXensgzeCQwKBt5ne</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/UgYCSuSX6SuDwUgN9Y7xZ5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 06 Oct 2026 18:58:58 +0000</pubDate>                                                                                                                                <updated>Wed, 07 Oct 2026 00:23:11 +0000</updated>
                                                                                                                                            <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/UgYCSuSX6SuDwUgN9Y7xZ5-1920-80.jpg">
                                                            <media:credit><![CDATA[Square Enix ]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Kingdom Hearts Collection keyart]]></media:description>                                                            <media:text><![CDATA[Kingdom Hearts Collection keyart]]></media:text>
                                <media:title type="plain"><![CDATA[Kingdom Hearts Collection keyart]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/UgYCSuSX6SuDwUgN9Y7xZ5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Like most gamers, I have a list of personal gaming blind spots. Long-running franchises I’ve always wanted to dip into, but have never gotten around to actually playing. </p><p>Without question, at the very top of my "list of gaming shame" is Kingdom Hearts. For years, I’ve been curious about this action-RPG mash-up of Disney and Final Fantasy — which has now morphed into its own beast since its 2002 debut on PlayStation 2 — but at some point, I started to feel like the Disney-shaped ship had passed me by. </p><p>But when Square Enix announced the Kingdom Hearts Collection, it felt like a package designed for somebody like me, and I got hold of the collection on <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> a little early. I can now officially say that I have played a Kingdom Hearts game. Okay, so I’ve only played a handful of hours of the very first one, but it's a start!</p><p>Kingdom Hearts has spawned an extraordinarily passionate following, so I have little doubt that dedicated fans will flock to this new collection for an excuse to replay the series. But if you’re in a similar boat to me and have never played Kingdom Hearts before, let’s dive into why this collection is the perfect opportunity to give the series a shot.</p><div class="product"><a data-dimension112="ea5198e0-c1b3-11f1-8452-a590fe3f8256" data-action="Deal Block" data-label="Collection [I-III]" data-dimension48="Collection [I-III]" data-dimension25="$74" href="https://www.amazon.com/KINGDOM-HEARTS-Collection-I-III-Amazon-Exclusive/dp/B0H4NNFZ71/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:983px;"><p class="vanilla-image-block" style="padding-top:152.59%;"><img id="tzNU998BcvUXpg7uTzuK7V" name="kingdom-hearts-collection-switch-2-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tzNU998BcvUXpg7uTzuK7V-1920-80.jpg" mos="" align="middle" fullscreen="" width="983" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/KINGDOM-HEARTS-Collection-I-III-Amazon-Exclusive/dp/B0H4NNFZ71/" target="_blank" rel="nofollow" data-dimension112="ea5198e0-c1b3-11f1-8452-a590fe3f8256" data-action="Deal Block" data-label="Collection [I-III]" data-dimension48="Collection [I-III]" data-dimension25="$74">Collection [I-III]: $74</a></strong><br />The Kingdom Hearts Collection brings the beloved series to Switch 2, and there's no Cloud Version in sight. It includes all three numbered Kingdom Hearts games, alongside multiple spin-offs and a trio of HD movies. It's the perfect starting point for newcomers, or a great value package for longtime fans looking to re-experience the magic of protagonist Sora's epic quest.<a class="view-deal button" href="https://www.amazon.com/KINGDOM-HEARTS-Collection-I-III-Amazon-Exclusive/dp/B0H4NNFZ71/" target="_blank" rel="nofollow" data-dimension112="ea5198e0-c1b3-11f1-8452-a590fe3f8256" data-action="Deal Block" data-label="Collection [I-III]" data-dimension48="Collection [I-III]" data-dimension25="$74">View Deal</a></p></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OR96vW"></div>                            </div>                            <script src="https://kwizly.com/embed/OR96vW.js" async=""></script><h2 id="so-i-guess-this-is-kingdom-hearts">So, I guess this is Kingdom Hearts…</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/ldMqRmTwy80" allowfullscreen=""></iframe></div></div><p>The opening to Kingdom Hearts is <em>rough</em>. Obviously, it looks and plays like a PS2 game. Even if the Final Mix version, which is what’s been ported to Nintendo Switch 2, bumps the resolution and framerate, it’s not a ground-up remake; Kingdom Hearts looks and feels its age. </p><p>But this didn’t bother me; I started playing games during the PS1 era, and still regularly replay some of my childhood favorites in 2026. No, Kingdom Hearts’ less-than-stellar introduction comes down to some questionable level design. You start the game by being introduced to young protagonist Sora, as he dreams of escaping his small island.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QkeDaS9AARdCr6Mbeowq5e" name="kingdom-hearts-collection-switch-2-02" alt="Kingdom Hearts screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/QkeDaS9AARdCr6Mbeowq5e-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>And from there, you are forced to complete a series of dull fetch quests to retrieve a host of items for your friends. It’s not exactly a thrilling introduction to the sprawling Kingdom Hearts universe. I wasn’t totally sure what to expect when playing Kingdom Hearts 1 in 2026, but collecting a stockpile of coconuts and looking for old rope wasn’t it.</p><p>Mercifully, after a little trouble locating a seagull's egg (another item on my checklist), things began to pick up. Soon darkness spread over the tropical island; Sora was entrusted with the series’ iconic Keyblade, and the spiked-haired character was quickly transported to a new setting. </p><p>It’s here, in the new location of Traverse Town (which serves as a sort of hub), that it feels like Kingdom Hearts truly begins. Sora meets a couple of iconic Disney characters, and a few familiar faces from Final Fantasy VII as well. At this point, the ponderous opening section faded from my memory, and I found its narrative hooks starting to latch onto me.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zTEekVdnkghCCooKA5eWwd" name="kingdom-hearts-collection-switch-2-01" alt="Kingdom Hearts screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/zTEekVdnkghCCooKA5eWwd-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>A couple more hours later, and these hooks are only embedding deeper the more I play. Even if the gameplay, which feels particularly clunky compared to modern action-RPGs, adds a degree of friction, the intriguing story and lovable characters, both familiar and original to the game, have me invested. Even if the game feels mechanically dated.</p><p>And from what fans tell me, the best is certainly yet to come. I hear the later games are a real step up in terms of gameplay. Particularly 2005's Kingdom Hearts 2, which many consider the best Kingdom Hearts title. </p><h2 id="kingdom-hearts-collection-was-made-for-players-like-me">Kingdom Hearts Collection was made for players like me</h2><p>I’m still a Kingdom Hearts newbie. There’s a long road ahead before I can consider myself well-versed in this franchise. But that’s what makes the Kingdom Hearts Collection so appealing. It includes basically <em>everything </em>released to date, from the three mainline games to the numerous spin-off titles, which I’m informed are all canonically key. </p><p>The collection covers 10 Kingdom Hearts titles. 7 are fully playable games, each remastered to varying degrees, while 3 have been reworked into HD movies. Considering Kingdom Hearts games aren’t exactly short either, with an average playtime of about 30 hours per title, for $74, that’s an awful lot of game crammed into a collection. </p><p>In fact, there’s so much to experience that, to start, it's more than a little overwhelming. I imagine this must be what it feels like to be somebody trying to catch up on the MCU before “Avengers: Doomsday.”</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yVACwtMnjmPDafVLMPMt5e" name="kingdom-hearts-3-screenshot" alt="Kingdom Hearts 3 image showing Donald, Sora and Goofy" src="https://cdn.mos.cms.futurecdn.net/yVACwtMnjmPDafVLMPMt5e-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>Kingdom Hearts also feels at home on the Nintendo Switch 2. As there’s so much content to experience here, being able to chip away at a title while playing in the console’s handheld mode is a huge selling point compared to picking up the collection on PS5, Xbox, or PC. </p><p>While I can speak to performance on later titles (I’ve heard the newest title, Kingdom Hearts 3, is a little spotty on Switch), the first game runs great on Nintendo’s system. But then again, it is a remastered PS2 title.</p><p>Kingdom Hearts 4 is currently set for a late 2027 release, which is helpful because it might take me the best part of a year to make my way through the collection. So, if you’re a newcomer to the series like me, this collection was basically designed for us. It offers the perfect opportunity to dive into Kingdom Hearts and get all caught up. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features">I spent 5 hours building the new Lego PlayStation</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port">Witcher 3 Remastered on Switch 2 is a huge upgrade</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 23 best Prime Day Gaming deals: Up to 50% off PS5, Nintendo Switch 2, gaming PCs and more ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Prime Big Deal Days, or <a href="https://www.tomsguide.com/sales-events/amazon-october-prime-big-deal-days-2026-best-sales-now">October Prime Day</a>, is finally here. Fortunately, if you're looking to upgrade your gaming set up there are great saving to be had. </p><p>Just about every console has deals right now including <a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972781011" target="_blank" rel="nofollow">PS5 games and accessories are on sale from $6</a>, and you'll find <a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972798011" target="_blank" rel="nofollow">Xbox Series X games and accessories from $9</a>. More of a PC gamer? <a href="https://www.amazon.com/PC-Gaming/b/?ie=UTF8&amp;node=8588809011" target="_blank" rel="nofollow">Amazon has gaming laptops, monitors and keyboards on sale from $36</a>.</p><p>If you haven't picked up the Switch 2 yet, right now the <a href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow">Nintendo Switch 2 Mario Kart World Bundle is available for $549</a>. The recent price increase sucks, but you're still saving $37 with this bundle versus buying each item separately.</p><p>Keep reading to see all of my current favorite Prime Day gaming deals. (And don't forget to <a href="https://www.amazon.com/amazonprime" target="_blank" rel="nofollow">sign up for an Amazon Prime membership</a> to get ready for more discounts!)</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong></strong><a href="https://www.amazon.com/primeday" target="_blank" rel="nofollow"><strong>shop all Prime Day deals</strong></a></li><li><a href="https://www.amazon.com/PC-Gaming/b/?ie=UTF8&amp;node=8588809011" target="_blank" rel="nofollow"><strong>PC gaming deals from $36</strong></a></li><li><strong>PS5 games/accessories: </strong><a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972781011" target="_blank" rel="nofollow"><strong>deals from $6</strong></a></li><li><strong>Xbox games/accessories: </strong><a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972798011" target="_blank" rel="nofollow"><strong>deals from $9</strong></a></li><li><strong>Nintendo Switch games/accessories: </strong><a href="https://www.amazon.com/Nintendo-Switch/b/?ie=UTF8&amp;node=16227128011" target="_blank" rel="nofollow"><strong>deals from $10</strong></a></li><li><strong>Xbox Wireless Controller: </strong><a href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Velocity-Console/dp/B0F1HDBJKH" target="_blank" rel="nofollow"><strong>was $69 now $54</strong></a></li><li><strong>8Bitdo Ultimate 2 Bluetooth Controller: </strong><a href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow"><strong>was $69 now $57</strong></a></li><li><strong>Asus Chromebook Vibe CX34 Flip 14": </strong><a href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow"><strong>was $799 now $499</strong></a></li><li><strong>Switch 2 Mario Kart World Bundle: </strong><a href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow"><strong>now $549</strong></a> (<strong>save $37!)</strong></li><li><strong>Gigabyte Aero X16 Gaming Laptop: </strong><a href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow"><strong>was $2,099 now $1,750</strong></a></li></ul><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-nintendo"><span>Nintendo</span></h3><div class="product"><a data-dimension112="6749522c-c0ea-11f1-8741-3b110d32fcb3" data-action="Deal Block" data-label="Switch 2 + Mario Kart World" data-dimension48="Switch 2 + Mario Kart World" data-dimension25="$549" href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:90.60%;"><img id="sNi6WPRjp52mkhyX2WHwqg" name="Switch 2 + Mario Kart World" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sNi6WPRjp52mkhyX2WHwqg-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1359" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow" data-dimension112="6749522c-c0ea-11f1-8741-3b110d32fcb3" data-action="Deal Block" data-label="Switch 2 + Mario Kart World" data-dimension48="Switch 2 + Mario Kart World" data-dimension25="$549">Switch 2 + Mario Kart World: $549</a></strong><br />The first Switch 2 bundle gets you the console, a digital copy of Mario Kart World and a 3-month Nintendo Switch online membership for $549. If you were to buy all this separately, it would be $37 more expensive. Prior to the recent Switch 2 price hike, this bundle was available for $499, but at least you can still save a couple bucks.<a class="view-deal button" href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow" data-dimension112="6749522c-c0ea-11f1-8741-3b110d32fcb3" data-action="Deal Block" data-label="Switch 2 + Mario Kart World" data-dimension48="Switch 2 + Mario Kart World" data-dimension25="$549">View Deal</a></p></div><div class="product"><a data-dimension112="6749529a-c0ea-11f1-a0da-b3582ac113a4" data-action="Deal Block" data-label="Switch 2 + Switch Sports Resort" data-dimension48="Switch 2 + Switch Sports Resort" data-dimension25="$529" href="https://www.amazon.com/dp/B0HJB2Q62D" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:90.60%;"><img id="qYtCS4XDz7LSpmaUxU7PJ3" name="Nintendo Switch 2 + Switch Sports Resort bundle" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qYtCS4XDz7LSpmaUxU7PJ3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1359" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJB2Q62D" target="_blank" rel="nofollow" data-dimension112="6749529a-c0ea-11f1-a0da-b3582ac113a4" data-action="Deal Block" data-label="Switch 2 + Switch Sports Resort" data-dimension48="Switch 2 + Switch Sports Resort" data-dimension25="$529">Switch 2 + Switch Sports Resort: $529</a></strong><br />Like the Mario Kart World bundle, this one gets the console, a game - Nintendo Switch Sports Resort, and a 3-month Nintendo Switch online membership. But it's $20 cheaper than the Mario Kart bundle at $529. That's $27 saving if you bought them all separately. Heads up, this is a pre-order. since it won't release until October 22.<br /><strong>Price check: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-Nintendo-Switch-Sports-Resort-Bundle/20961269298" target="_blank" rel="nofollow"><strong>$529 @ Walmart</strong></a> <strong>| </strong><a href="https://www.bestbuy.com/product/switch-2-nintendo-switch-sports-resort-bundle/J7GSL57W5Z/sku/6691506" target="_blank" rel="nofollow"><strong>$529 @ Best Buy</strong></a><a class="view-deal button" href="https://www.amazon.com/dp/B0HJB2Q62D" target="_blank" rel="nofollow" data-dimension112="6749529a-c0ea-11f1-a0da-b3582ac113a4" data-action="Deal Block" data-label="Switch 2 + Switch Sports Resort" data-dimension48="Switch 2 + Switch Sports Resort" data-dimension25="$529">View Deal</a></p></div><div class="product"><a data-dimension112="fefbfac8-c0f1-11f1-9fbc-c562b555daf0" data-action="Deal Block" data-label="Pokemon Legends: Z-A - Switch 2 edition" data-dimension48="Pokemon Legends: Z-A - Switch 2 edition" data-dimension25="$49" href="https://www.amazon.com/Pok%C3%A9monTM-Legends-Z-Nintendo-SwitchTM-Switch/dp/B0FC6J5CMG" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="4SK7BusXknpf3LwfBkcqDg" name="pokemon-legends-za-nintendo-switch-6065a362-a02e-4b33-9cf9-68b7cbbc0255.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4SK7BusXknpf3LwfBkcqDg-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="800" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Pok%C3%A9monTM-Legends-Z-Nintendo-SwitchTM-Switch/dp/B0FC6J5CMG" target="_blank" rel="nofollow" data-dimension112="fefbfac8-c0f1-11f1-9fbc-c562b555daf0" data-action="Deal Block" data-label="Pokemon Legends: Z-A - Switch 2 edition" data-dimension48="Pokemon Legends: Z-A - Switch 2 edition" data-dimension25="$49">Pokemon Legends: Z-A - Switch 2 edition: was $69 now $49</a></strong><br />Normally, <a href="https://www.tomsguide.com/gaming/pokemon-legends-z-a-review">Pokemon Legends Z-A</a> costs $70 for the Switch 2 edition but right now you can get it for $20 off at $49! With its open city and a fresh spin on Pokémon battles this might be my favorite Pokémon game in recent memory. It could still use voice acting, but the gameplay is a delight.<a class="view-deal button" href="https://www.amazon.com/Pok%C3%A9monTM-Legends-Z-Nintendo-SwitchTM-Switch/dp/B0FC6J5CMG" target="_blank" rel="nofollow" data-dimension112="fefbfac8-c0f1-11f1-9fbc-c562b555daf0" data-action="Deal Block" data-label="Pokemon Legends: Z-A - Switch 2 edition" data-dimension48="Pokemon Legends: Z-A - Switch 2 edition" data-dimension25="$49">View Deal</a></p></div><div class="product"><a data-dimension112="67495308-c0ea-11f1-b368-138c40ebcaf3" data-action="Deal Block" data-label="Sonic X Shadow Generations" data-dimension48="Sonic X Shadow Generations" data-dimension25="$24" href="https://www.amazon.com/Sonic-Shadow-Generations-Nintendo-Switch-2/dp/B0F663CWT8/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:71.47%;"><img id="9ZrMt2Hq2yhZU6NMDPtQmc" name="sonic-x-shadow-switch-2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9ZrMt2Hq2yhZU6NMDPtQmc-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1072" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/sonic-x-shadow-generations-review" data-dimension112="67495308-c0ea-11f1-b368-138c40ebcaf3" data-action="Deal Block" data-label="Sonic X Shadow Generations" data-dimension48="Sonic X Shadow Generations" data-dimension25="$24">Sonic X Shadow Generations</a> is a remaster of the classic Nintendo 3DS and PS3/Xbox 360 game that comes with a new chapter that puts you in the shoes of anti-hero Shadow. It's a great mix of 2D and 3D Sonic with short, replayable levels and fits great on the Nintendo Switch 2.<a class="view-deal button" href="https://www.amazon.com/Sonic-Shadow-Generations-Nintendo-Switch-2/dp/B0F663CWT8/" target="_blank" rel="nofollow" data-dimension112="67495308-c0ea-11f1-b368-138c40ebcaf3" data-action="Deal Block" data-label="Sonic X Shadow Generations" data-dimension48="Sonic X Shadow Generations" data-dimension25="$24">View Deal</a></p></div><div class="product"><a data-dimension112="6749536c-c0ea-11f1-9aa0-f9a078595265" data-action="Deal Block" data-label="Persona 5 Royal" data-dimension48="Persona 5 Royal" data-dimension25="$29" href="https://www.amazon.com/Persona-5-Royal-Standard-Nintendo-Switch/dp/B0BF9L5CK8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:921px;"><p class="vanilla-image-block" style="padding-top:162.76%;"><img id="pcERSBWuGpNWKa3fwKTd6H" name="persona_5.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/pcERSBWuGpNWKa3fwKTd6H-1920-80.jpg" mos="" align="middle" fullscreen="" width="921" height="1499" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Confusingly, Persona 5 has multiple variants but the turn-based RPG/high-school simulator is probably best in the <a href="https://www.tomsguide.com/reviews/persona-5" data-dimension112="6749536c-c0ea-11f1-9aa0-f9a078595265" data-action="Deal Block" data-label="Persona 5 Royal" data-dimension48="Persona 5 Royal" data-dimension25="$29">Persona 5 Royal</a> release, which combines the game and a bunch of DLC and quality-of-life updates. You play as a new student who has just moved to Tokyo. Soon you discover the ability to a transverse an alternate reality form The Phantom Thieves. Just be warned, Persona 5 Royal will consume all your free time once it gets its hooks in. <a class="view-deal button" href="https://www.amazon.com/Persona-5-Royal-Standard-Nintendo-Switch/dp/B0BF9L5CK8" target="_blank" rel="nofollow" data-dimension112="6749536c-c0ea-11f1-9aa0-f9a078595265" data-action="Deal Block" data-label="Persona 5 Royal" data-dimension48="Persona 5 Royal" data-dimension25="$29">View Deal</a></p></div><div class="product"><a data-dimension112="674953da-c0ea-11f1-ba71-3b4b5e90262e" data-action="Deal Block" data-label="Nintendo Switch Sports Resort" data-dimension48="Nintendo Switch Sports Resort" data-dimension25="$49" href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4P1YH4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="RVu63Zpyrr4mE6E7DgAFLe" name="Nintendo Switch Sports Resort NS2 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RVu63Zpyrr4mE6E7DgAFLe-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Nintendo Switch 2 is finally getting its version of the uber-popular Wii Sports in Nintendo Switch Sports Resort. It's a sequel to Nintendo Switch Sports and features 12 different games that take advantage of the motion-sensitive Joy-Con 2 controllers to play. Like the Switch 2 and Resort bundle, this is a pre-order, as the game doesn't launch until October 22. But you can save $10 off the normal $59 price with this Prime Day deal.<a class="view-deal button" href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4P1YH4P" target="_blank" rel="nofollow" data-dimension112="674953da-c0ea-11f1-ba71-3b4b5e90262e" data-action="Deal Block" data-label="Nintendo Switch Sports Resort" data-dimension48="Nintendo Switch Sports Resort" data-dimension25="$49">View Deal</a></p></div><div class="product"><a data-dimension112="6749543e-c0ea-11f1-bcb3-e7909d27cef8" data-action="Deal Block" data-label="Ultimate 2 Bluetooth Controller" data-dimension48="Ultimate 2 Bluetooth Controller" data-dimension25="$57" href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EiaELzxguKPZpXS2WgqiHP" name="Ultimate 2 Bluetooth Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EiaELzxguKPZpXS2WgqiHP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow" data-dimension112="6749543e-c0ea-11f1-bcb3-e7909d27cef8" data-action="Deal Block" data-label="Ultimate 2 Bluetooth Controller" data-dimension48="Ultimate 2 Bluetooth Controller" data-dimension25="$57">Ultimate 2 Bluetooth Controller: was $69 now $57</a></strong><br />We love 8BitDo controllers at Tom's Guide. The Ultimate 2 is compatible with the Switch, Switch 2 and PC. You also get hall effect triggers and an integrated charging dock.<a class="view-deal button" href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow" data-dimension112="6749543e-c0ea-11f1-bcb3-e7909d27cef8" data-action="Deal Block" data-label="Ultimate 2 Bluetooth Controller" data-dimension48="Ultimate 2 Bluetooth Controller" data-dimension25="$57">View Deal</a></p></div><div class="product"><a data-dimension112="674954ac-c0ea-11f1-98d2-3d3f10b0409a" data-action="Deal Block" data-label="The Legend of Zelda Ocarina of Time" data-dimension48="The Legend of Zelda Ocarina of Time" data-dimension25="$59" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="674954ac-c0ea-11f1-98d2-3d3f10b0409a" data-action="Deal Block" data-label="The Legend of Zelda Ocarina of Time" data-dimension48="The Legend of Zelda Ocarina of Time" data-dimension25="$59">The Legend of Zelda Ocarina of Time: was $69 now $59</a></strong><br />The Legend of Zelda: Ocarina of Time is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches on November 5, 2026, and looks truly stunning! Amazon is taking $10 off physical copies as a hidden discount.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="674954ac-c0ea-11f1-98d2-3d3f10b0409a" data-action="Deal Block" data-label="The Legend of Zelda Ocarina of Time" data-dimension48="The Legend of Zelda Ocarina of Time" data-dimension25="$59">View Deal</a></p></div><div class="product"><a data-dimension112="67495510-c0ea-11f1-a80d-5b6ce9020d66" data-action="Deal Block" data-label="P9 microSD Express Card 256GB" data-dimension48="P9 microSD Express Card 256GB" data-dimension25="$69" href="https://www.amazon.com/Samsung-Express-microSDXC-Nintendo-Switch-AM/dp/B0FT99KCV8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:73.13%;"><img id="cYb96WCt22DZy3AXTssTSn" name="P9 microSD Express Card" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/cYb96WCt22DZy3AXTssTSn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1097" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Samsung-Express-microSDXC-Nintendo-Switch-AM/dp/B0FT99KCV8" target="_blank" rel="nofollow" data-dimension112="67495510-c0ea-11f1-a80d-5b6ce9020d66" data-action="Deal Block" data-label="P9 microSD Express Card 256GB" data-dimension48="P9 microSD Express Card 256GB" data-dimension25="$69">P9 microSD Express Card 256GB: was $79 now $69</a></strong><br />Storage isn't getting cheaper, so it's good to take advantage of a sale when it happens. The Samsung P9 microSD Express Card offers 256GB with up to 800 MB/s transfer speeds and is built specifically for the Switch 2. This deal save you $10 without sacrificing quality.<a class="view-deal button" href="https://www.amazon.com/Samsung-Express-microSDXC-Nintendo-Switch-AM/dp/B0FT99KCV8" target="_blank" rel="nofollow" data-dimension112="67495510-c0ea-11f1-a80d-5b6ce9020d66" data-action="Deal Block" data-label="P9 microSD Express Card 256GB" data-dimension48="P9 microSD Express Card 256GB" data-dimension25="$69">View Deal</a></p></div><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-gaming-laptops-pcs"><span>Gaming Laptops/PCs</span></h3><div class="product"><a data-dimension112="9761d02a-c0f3-11f1-87c0-3b97a35f9f68" data-action="Deal Block" data-label="Iskur V2" data-dimension48="Iskur V2" data-dimension25="$249" href="https://www.amazon.com/Razer-Iskur-Ergonomic-Gaming-Built/dp/B0DXS1BVCB/ref=sr_1_2_sspa?crid=1AG5UBQ134C7I&amp;dib=eyJ2IjoiMSJ9.Gw3MYahy1wraxIif5lpV-H6BRo344LBjRQLvV3BfXWrRZVm0qXDygg2cH4850HC6WWn_X4lRHjakUWOCv-tsm3a9HwqOWUX4tM41Rr5B0h7u18wmJf5z2CDUxrr3sDT1NcLS7DGHKd2yOZe4Rw7nohiH5ZCZhT2gN8NP7JA2ulaTHM1XfWfFYYaloDdmr0IDFypU0WMnvAxKvkgiOgS1H77caNSB9h8AH4GVf7A2ka-gQxDE3zgYiPONOMyLHpYcMOnbeQ_HNuTxyq_zOpoabzGFF8XIQiKHTH2XRCHuyB0.L4kQRbT3Lhrtq6ihry6Jo7etHUW6avqOszkUyeHQYz4&amp;dib_tag=se&amp;keywords=secret%2Blab&amp;qid=1791228481&amp;refinements=p_n_deal_type%3A23566065011&amp;rnid=23566063011&amp;sprefix=secret%2Bla%2Caps%2C220&amp;sr=8-2-spons&amp;ufe=app_do%3Aamzn1.fos.f088afa9-fb0b-4145-8d8d-218a6afeae72&amp;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:329px;"><p class="vanilla-image-block" style="padding-top:184.50%;"><img id="pEnG8PZbpKDpHizVZYayJ8" name="razer iskur v2 newgen" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/pEnG8PZbpKDpHizVZYayJ8-1920-80.jpg" mos="" align="middle" fullscreen="" width="329" height="607" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The machine matters, but so does the seating. Fortunately, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-ditched-my-office-chair-for-the-razer-iskur-v2-newgen-and-it-finally-sold-me-on-gaming-chairs" data-dimension112="9761d02a-c0f3-11f1-87c0-3b97a35f9f68" data-action="Deal Block" data-label="Iskur V2" data-dimension48="Iskur V2" data-dimension25="$249">Razer Iskur V2 </a>is on sale this week. Gaming chairs don't typically have good adjustability or fit, but Razer's reimagined seating does, making it more comfortable and supportive for your back. It's an excellent chair to game in.<a class="view-deal button" href="https://www.amazon.com/Razer-Iskur-Ergonomic-Gaming-Built/dp/B0DXS1BVCB/ref=sr_1_2_sspa?crid=1AG5UBQ134C7I&amp;dib=eyJ2IjoiMSJ9.Gw3MYahy1wraxIif5lpV-H6BRo344LBjRQLvV3BfXWrRZVm0qXDygg2cH4850HC6WWn_X4lRHjakUWOCv-tsm3a9HwqOWUX4tM41Rr5B0h7u18wmJf5z2CDUxrr3sDT1NcLS7DGHKd2yOZe4Rw7nohiH5ZCZhT2gN8NP7JA2ulaTHM1XfWfFYYaloDdmr0IDFypU0WMnvAxKvkgiOgS1H77caNSB9h8AH4GVf7A2ka-gQxDE3zgYiPONOMyLHpYcMOnbeQ_HNuTxyq_zOpoabzGFF8XIQiKHTH2XRCHuyB0.L4kQRbT3Lhrtq6ihry6Jo7etHUW6avqOszkUyeHQYz4&amp;dib_tag=se&amp;keywords=secret%2Blab&amp;qid=1791228481&amp;refinements=p_n_deal_type%3A23566065011&amp;rnid=23566063011&amp;sprefix=secret%2Bla%2Caps%2C220&amp;sr=8-2-spons&amp;ufe=app_do%3Aamzn1.fos.f088afa9-fb0b-4145-8d8d-218a6afeae72&amp;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;th=1" target="_blank" rel="nofollow" data-dimension112="9761d02a-c0f3-11f1-87c0-3b97a35f9f68" data-action="Deal Block" data-label="Iskur V2" data-dimension48="Iskur V2" data-dimension25="$249">View Deal</a></p></div><div class="product"><a data-dimension112="6749568c-c0ea-11f1-b582-7d7168e9a651" data-action="Deal Block" data-label="Chromebook Vibe CX34 Flip 14"" data-dimension48="Chromebook Vibe CX34 Flip 14"" data-dimension25="$679" href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1489px;"><p class="vanilla-image-block" style="padding-top:72.80%;"><img id="c5KMkZwdoBWeMrG8juZNMF" name="asus chromebook vibe cx34 flip" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/c5KMkZwdoBWeMrG8juZNMF-1920-80.png" mos="" align="middle" fullscreen="" width="1489" height="1084" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow" data-dimension112="6749568c-c0ea-11f1-b582-7d7168e9a651" data-action="Deal Block" data-label='Chromebook Vibe CX34 Flip 14"' data-dimension48='Chromebook Vibe CX34 Flip 14"' data-dimension25="$679">Chromebook Vibe CX34 Flip 14": was $799 now $679</a></strong><br />If you're fine with cloud-based gaming, this Asus Chromebook is one of the best value gaming laptops you'll find. It comes with a 14-inch 144Hz display, RGB keyboard and access to NVIDIA GeForce NOW and Xbox Cloud Gaming. You can also flip it into tablet mode for more versatility.</p><p>Stock appears low, so get in quickly if you're interested.<a class="view-deal button" href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow" data-dimension112="6749568c-c0ea-11f1-b582-7d7168e9a651" data-action="Deal Block" data-label="Chromebook Vibe CX34 Flip 14"" data-dimension48="Chromebook Vibe CX34 Flip 14"" data-dimension25="$679">View Deal</a></p></div><div class="product"><a data-dimension112="674956fa-c0ea-11f1-bc5f-7b965c576bde" data-action="Deal Block" data-label="TUF Gaming F16 w/ RTX 5050" data-dimension48="TUF Gaming F16 w/ RTX 5050" data-dimension25="$1234" href="https://www.amazon.com/ASUS-TUF-Gaming-Laptop-165Hz/dp/B0FFDDFW47" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="GEXVx9CDBRMeFccTP8NCqm" name="Asus TUF Gaming F16 deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/GEXVx9CDBRMeFccTP8NCqm-1920-80.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/ASUS-TUF-Gaming-Laptop-165Hz/dp/B0FFDDFW47" target="_blank" rel="nofollow" data-dimension112="674956fa-c0ea-11f1-bc5f-7b965c576bde" data-action="Deal Block" data-label="TUF Gaming F16 w/ RTX 5050" data-dimension48="TUF Gaming F16 w/ RTX 5050" data-dimension25="$1234">TUF Gaming F16 w/ RTX 5050: was $1299 now $1234</a></strong><br />One thing that makes the ASUS TUF Gaming F16 stand out from the crowd is the 16:10 aspect ratio display. Along with that, you'll get an Intel Core i5-13450HX, NVIDIA GeForce RTX 5050, 16GB DDR5 RAM and a 512GB SSD. For just over $1,000, those are some solid specs that gamers are sure to love.<a class="view-deal button" href="https://www.amazon.com/ASUS-TUF-Gaming-Laptop-165Hz/dp/B0FFDDFW47" target="_blank" rel="nofollow" data-dimension112="674956fa-c0ea-11f1-bc5f-7b965c576bde" data-action="Deal Block" data-label="TUF Gaming F16 w/ RTX 5050" data-dimension48="TUF Gaming F16 w/ RTX 5050" data-dimension25="$1234">View Deal</a></p></div><div class="product"><a data-dimension112="67495768-c0ea-11f1-b7ec-2daf531b8aa8" data-action="Deal Block" data-label="Aero X16" data-dimension48="Aero X16" data-dimension25="$1699" href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:57.20%;"><img id="trhfpBf8e2wmLYvaDj8DZG" name="Aero X16" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/trhfpBf8e2wmLYvaDj8DZG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="858" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow" data-dimension112="67495768-c0ea-11f1-b7ec-2daf531b8aa8" data-action="Deal Block" data-label="Aero X16" data-dimension48="Aero X16" data-dimension25="$1699">Aero X16: was $2099 now $1699</a></strong><br />Now $400 off, this Gigabyte Aero 16X with an RTX 5070 offers mighty mid-range power for a value-driven price. With its AMD Ryzen Al 7 350 CPU, 32GB of DDR5 RAM and 1TB SSD, it has all the makings of playing the latest AAA PC games with super-fast refresh rates at high settings.<a class="view-deal button" href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow" data-dimension112="67495768-c0ea-11f1-b7ec-2daf531b8aa8" data-action="Deal Block" data-label="Aero X16" data-dimension48="Aero X16" data-dimension25="$1699">View Deal</a></p></div><div class="product"><a data-dimension112="674957cc-c0ea-11f1-86cc-93619281eb43" data-action="Deal Block" data-label="Wired Gaming Headset" data-dimension48="Wired Gaming Headset" data-dimension25="$29" href="https://www.amazon.com/dp/B0GJBL1RMK" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1418px;"><p class="vanilla-image-block" style="padding-top:105.78%;"><img id="tS7uPJrCr2u4jLJvdLM2WN" name="Wired Gaming Headset" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tS7uPJrCr2u4jLJvdLM2WN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1418" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>I prefer wired headsets, and the Acer Wired Gaming Headset is pretty good, especially at $29. They're super light, flexible and have RGB lights for those who need colors.<a class="view-deal button" href="https://www.amazon.com/dp/B0GJBL1RMK" target="_blank" rel="nofollow" data-dimension112="674957cc-c0ea-11f1-86cc-93619281eb43" data-action="Deal Block" data-label="Wired Gaming Headset" data-dimension48="Wired Gaming Headset" data-dimension25="$29">View Deal</a></p></div><div class="product"><a data-dimension112="67495830-c0ea-11f1-a7a2-0522db107318" data-action="Deal Block" data-label="K673 Pro" data-dimension48="K673 Pro" data-dimension25="$49" href="https://www.amazon.com/Redragon-K673-Mechanical-Dedicated-Absorbing/dp/B0CDX5XGLK" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1382px;"><p class="vanilla-image-block" style="padding-top:42.76%;"><img id="zrFk2rQd6HZRGoKiNSagSi" name="Redragon K673 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/zrFk2rQd6HZRGoKiNSagSi-1920-80.jpg" mos="" align="middle" fullscreen="" width="1382" height="591" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>"Powerful dragon, small price" is how we summed up this board in our <a href="https://www.tomsguide.com/computing/peripherals/redragon-k673-pro-keyboard-review" data-dimension112="67495830-c0ea-11f1-a7a2-0522db107318" data-action="Deal Block" data-label="K673 Pro" data-dimension48="K673 Pro" data-dimension25="$49">Redragon K673 Pro review</a>. If you want a nice-typing and solid gaming keyboard on a tight budget, you can do a heck of a lot worse than this!<a class="view-deal button" href="https://www.amazon.com/Redragon-K673-Mechanical-Dedicated-Absorbing/dp/B0CDX5XGLK" target="_blank" rel="nofollow" data-dimension112="67495830-c0ea-11f1-a7a2-0522db107318" data-action="Deal Block" data-label="K673 Pro" data-dimension48="K673 Pro" data-dimension25="$49">View Deal</a></p></div><div class="product"><a data-dimension112="6749589e-c0ea-11f1-9c5e-3bdf9c2808af" data-action="Deal Block" data-label="Scimitar Elite Wireless SE Gaming Mouse" data-dimension48="Scimitar Elite Wireless SE Gaming Mouse" data-dimension25="$123" href="https://www.amazon.com/Corsair-Scimitar-Elite-Wireless-Gaming/dp/B0F6NGCDFN" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1100px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ciYCEeenYMWmheeSrHkqg6" name="SCIMITAR ELITE WIRELESS SE MMO Gaming Mous" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ciYCEeenYMWmheeSrHkqg6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1100" height="1100" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Corsair-Scimitar-Elite-Wireless-Gaming/dp/B0F6NGCDFN" target="_blank" rel="nofollow" data-dimension112="6749589e-c0ea-11f1-9c5e-3bdf9c2808af" data-action="Deal Block" data-label="Scimitar Elite Wireless SE Gaming Mouse" data-dimension48="Scimitar Elite Wireless SE Gaming Mouse" data-dimension25="$123">Scimitar Elite Wireless SE Gaming Mouse: was $139 now $123</a></strong><br />Corsair gaming mice are comfortable to use, and the Scimitar Elite is a high-performing take with 16 customizable buttons and an adjustable Key Slider. It also boasts a super-accurate MARKSMAN S 33K sensor and ultra-low latency — earning it a strong 4-star rating from shoppers on Amazon.<a class="view-deal button" href="https://www.amazon.com/Corsair-Scimitar-Elite-Wireless-Gaming/dp/B0F6NGCDFN" target="_blank" rel="nofollow" data-dimension112="6749589e-c0ea-11f1-9c5e-3bdf9c2808af" data-action="Deal Block" data-label="Scimitar Elite Wireless SE Gaming Mouse" data-dimension48="Scimitar Elite Wireless SE Gaming Mouse" data-dimension25="$123">View Deal</a></p></div><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-ps5"><span>PS5</span></h3><div class="product"><a data-dimension112="67495a38-c0ea-11f1-9e49-ef193bd4058e" data-action="Deal Block" data-label="God of War Ragnarök" data-dimension48="God of War Ragnarök" data-dimension25="$36" href="https://www.amazon.com/God-War-Ragnar%C3%B6k-PlayStation-5/dp/B0B61YDF5V" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:342px;"><p class="vanilla-image-block" style="padding-top:121.05%;"><img id="pLfkNWvA5iHK5Lz8sXQqaa" name="god-of-war-ragnarok-box-art.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/pLfkNWvA5iHK5Lz8sXQqaa-1920-80.jpg" mos="" align="middle" fullscreen="" width="342" height="414" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The sequel to one of the most acclaimed PlayStation games of all time, <a href="https://www.tomsguide.com/reviews/god-of-war-ragnarok" data-dimension112="67495a38-c0ea-11f1-9e49-ef193bd4058e" data-action="Deal Block" data-label="God of War Ragnarök" data-dimension48="God of War Ragnarök" data-dimension25="$36">God of War Ragnarök</a> sees father and son duo Kratos and Atreus embark on another epic journey as they travel across all Nine Realms of Norse mythology. Enjoy visceral combat against a multitude of foes, as well as rewarding exploration and a highly cinematic story that culminates in a stunning finale that you won't soon forget.<a class="view-deal button" href="https://www.amazon.com/God-War-Ragnar%C3%B6k-PlayStation-5/dp/B0B61YDF5V" target="_blank" rel="nofollow" data-dimension112="67495a38-c0ea-11f1-9e49-ef193bd4058e" data-action="Deal Block" data-label="God of War Ragnarök" data-dimension48="God of War Ragnarök" data-dimension25="$36">View Deal</a></p></div><div class="product"><a data-dimension112="67495a9c-c0ea-11f1-96bb-89e2e22068f3" data-action="Deal Block" data-label="The Last of Us Part I" data-dimension48="The Last of Us Part I" data-dimension25="$37" href="https://www.amazon.com/Last-Us-Part-PlayStation-5/dp/B0B3QWRQL8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:174px;"><p class="vanilla-image-block" style="padding-top:125.29%;"><img id="ngFxgdH4s4menkkabyvGfh" name="716wDmHJYLL._AC_UY218_.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ngFxgdH4s4menkkabyvGfh-1920-80.jpg" mos="" align="middle" fullscreen="" width="174" height="218" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Last-Us-Part-PlayStation-5/dp/B0B3QWRQL8" target="_blank" rel="nofollow" data-dimension112="67495a9c-c0ea-11f1-96bb-89e2e22068f3" data-action="Deal Block" data-label="The Last of Us Part I" data-dimension48="The Last of Us Part I" data-dimension25="$37">The Last of Us Part I: was $69 now $37</a></strong><br />If you somehow haven't played The Last of US Part 1 yet, or want a replay, now is the time to pick it up. Ellie and Joel's journey is simultaneously heartbreaking, beautiful and tense as they explore post-apocalyptic America. The remake boosts the visuals, adds new animations, and more tactical enemies that should be a treat for even veteran players.<a class="view-deal button" href="https://www.amazon.com/Last-Us-Part-PlayStation-5/dp/B0B3QWRQL8" target="_blank" rel="nofollow" data-dimension112="67495a9c-c0ea-11f1-96bb-89e2e22068f3" data-action="Deal Block" data-label="The Last of Us Part I" data-dimension48="The Last of Us Part I" data-dimension25="$37">View Deal</a></p></div><div class="product"><a data-dimension112="67495b00-c0ea-11f1-ba65-3bd6ea92d0cc" data-action="Deal Block" data-label="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension48="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension25="$264" href="https://www.amazon.com/Logitech-G29-Racing-Wheel-Pedals/dp/B00Z0UWWYC" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="BZ2PGFNptgo9YMzJSKuNmA" name="logitech-g29-driving-force-racing-wheel--b019993a-fc9a-4479-b76a-5525c2af290e.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/BZ2PGFNptgo9YMzJSKuNmA-1920-80.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-G29-Racing-Wheel-Pedals/dp/B00Z0UWWYC" target="_blank" rel="nofollow" data-dimension112="67495b00-c0ea-11f1-ba65-3bd6ea92d0cc" data-action="Deal Block" data-label="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension48="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension25="$264">G29 Driving Force Racing Wheel and Floor Pedals: was $299 now $264</a></strong><br />Get your heart racing with this Driving Force wheel from Logitech. Compatible with PS5, PS4 and PC gaming, this wheel will take your sim racing to the next level, thanks to its comfortable pedals and precision force feedback wheel action. <a class="view-deal button" href="https://www.amazon.com/Logitech-G29-Racing-Wheel-Pedals/dp/B00Z0UWWYC" target="_blank" rel="nofollow" data-dimension112="67495b00-c0ea-11f1-ba65-3bd6ea92d0cc" data-action="Deal Block" data-label="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension48="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension25="$264">View Deal</a></p></div><div class="product"><a data-dimension112="67495b64-c0ea-11f1-815e-55a81eb0cb17" data-action="Deal Block" data-label="990 Pro (2TB)" data-dimension48="990 Pro (2TB)" data-dimension25="$389" href="https://www.amazon.com/SAMSUNG-Internal-Expansion-MZ-V9P2T0B-AM/dp/B0BHJJ9Y77" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:87.50%;"><img id="5fBHZckCTSEf7KiNq7m2Go" name="Samsung 2TB 990 PRO.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5fBHZckCTSEf7KiNq7m2Go-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="1400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-Internal-Expansion-MZ-V9P2T0B-AM/dp/B0BHJJ9Y77" target="_blank" rel="nofollow" data-dimension112="67495b64-c0ea-11f1-815e-55a81eb0cb17" data-action="Deal Block" data-label="990 Pro (2TB)" data-dimension48="990 Pro (2TB)" data-dimension25="$389">990 Pro (2TB): was $639 now $389</a></strong><br />Again, storage isn't going to get cheaper for years to come, and at nearly half-ff the Samsung 990 Pro is fast with plenty of space at 2TB. We think it's the best PS5 SSD available right now. Before the tariffs and RAMeggedon, we saw this hard drive as low as $119, but it likely won't get that low any time soon.<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Internal-Expansion-MZ-V9P2T0B-AM/dp/B0BHJJ9Y77" target="_blank" rel="nofollow" data-dimension112="67495b64-c0ea-11f1-815e-55a81eb0cb17" data-action="Deal Block" data-label="990 Pro (2TB)" data-dimension48="990 Pro (2TB)" data-dimension25="$389">View Deal</a></p></div><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-xbox"><span>Xbox</span></h3><div class="product"><a data-dimension112="674959ca-c0ea-11f1-99d9-2f4f3ad0ec72" data-action="Deal Block" data-label="Razer BlackShark V2 X Gaming Headset" data-dimension48="Razer BlackShark V2 X Gaming Headset" data-dimension25="$31" href="https://www.amazon.com/Razer-BlackShark-Xbox-Gaming-Headset-Console/dp/B0CXH14PPD" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="3dobBXEPzpXjpMnfNYwSDo" name="Razer BlackShark V2 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3dobBXEPzpXjpMnfNYwSDo-1920-80.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Razer-BlackShark-Xbox-Gaming-Headset-Console/dp/B0CXH14PPD" target="_blank" rel="nofollow" data-dimension112="674959ca-c0ea-11f1-99d9-2f4f3ad0ec72" data-action="Deal Block" data-label="Razer BlackShark V2 X Gaming Headset" data-dimension48="Razer BlackShark V2 X Gaming Headset" data-dimension25="$31">Razer BlackShark V2 X Gaming Headset: was $49 now $31</a></strong><br />Razer BlackShark V2 X is an excellent headset with a comfortable design especially at its price, and now it's even lower. You can get it working with PS5, Xbox or PC and it comes in different colors. Notably the PS5 version is more expensive and only works with PC and PS5, not Xbox.<a class="view-deal button" href="https://www.amazon.com/Razer-BlackShark-Xbox-Gaming-Headset-Console/dp/B0CXH14PPD" target="_blank" rel="nofollow" data-dimension112="674959ca-c0ea-11f1-99d9-2f4f3ad0ec72" data-action="Deal Block" data-label="Razer BlackShark V2 X Gaming Headset" data-dimension48="Razer BlackShark V2 X Gaming Headset" data-dimension25="$31">View Deal</a></p></div><div class="product"><a data-dimension112="67495c9a-c0ea-11f1-b863-e3772b9a23b4" data-action="Deal Block" data-label="Play &amp; Charge Kit" data-dimension48="Play &amp; Charge Kit" data-dimension25="$14" href="https://www.amazon.com/PowerA-Play-Charge-Kit-Xbox/dp/B0BVKW546T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:57.53%;"><img id="t8E5qFNhoKdGnVJnHpMLqg" name="Play &amp; Charge Kit" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/t8E5qFNhoKdGnVJnHpMLqg-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="863" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/PowerA-Play-Charge-Kit-Xbox/dp/B0BVKW546T" target="_blank" rel="nofollow" data-dimension112="67495c9a-c0ea-11f1-b863-e3772b9a23b4" data-action="Deal Block" data-label="Play &amp; Charge Kit" data-dimension48="Play &amp; Charge Kit" data-dimension25="$14">Play &amp; Charge Kit: was $19 now $14</a></strong><br />This handy kit gives your Xbox controllers more functionality. Rather than using AA batteries, you can plug these in and use USB-C to charge your controllers while you play!<a class="view-deal button" href="https://www.amazon.com/PowerA-Play-Charge-Kit-Xbox/dp/B0BVKW546T" target="_blank" rel="nofollow" data-dimension112="67495c9a-c0ea-11f1-b863-e3772b9a23b4" data-action="Deal Block" data-label="Play &amp; Charge Kit" data-dimension48="Play &amp; Charge Kit" data-dimension25="$14">View Deal</a></p></div><div class="product"><a data-dimension112="67495d08-c0ea-11f1-8f3f-2700407c41c5" data-action="Deal Block" data-label="Wireless Controller" data-dimension48="Wireless Controller" data-dimension25="$54" href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Velocity-Console/dp/B0F1HDBJKH" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:724px;"><p class="vanilla-image-block" style="padding-top:68.37%;"><img id="kWwmbndGML6VqxiRTBtMPG" name="xbox-wireless-controller-robot-white.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/kWwmbndGML6VqxiRTBtMPG-1920-80.jpg" mos="" align="middle" fullscreen="" width="724" height="495" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>I always recommend waiting for sales for controllers since the full price is equal to a game. The Xbox Core Wireless Controller is a Tom's Guide favorite thanks to its versatile, comfortable and responsive build. It's also compatible with PC, Android and iOS devices. The Xbox Core comes with an ergonomic design, textured grips and a button to share screenshots. Even if you don't have an Xbox, you should get one of these controllers.<a class="view-deal button" href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Velocity-Console/dp/B0F1HDBJKH" target="_blank" rel="nofollow" data-dimension112="67495d08-c0ea-11f1-8f3f-2700407c41c5" data-action="Deal Block" data-label="Wireless Controller" data-dimension48="Wireless Controller" data-dimension25="$54">View Deal</a></p></div><div class="product"><a data-dimension112="67495d6c-c0ea-11f1-b349-fd1332ad2e6c" data-action="Deal Block" data-label="Assassin's Creed Black Flag Resynced" data-dimension48="Assassin's Creed Black Flag Resynced" data-dimension25="$54" href="https://www.amazon.com/Assassins-Creed-Black-Resynced-Xbox-X/dp/B0GY5M9P2W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="9jfEyuEiLuboxipgmjNWGF" name="Assassin's Creed Black Flag Resynced" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9jfEyuEiLuboxipgmjNWGF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/assassins-creed-black-flag-resynced-review" data-dimension112="67495d6c-c0ea-11f1-b349-fd1332ad2e6c" data-action="Deal Block" data-label="Assassin's Creed Black Flag Resynced" data-dimension48="Assassin's Creed Black Flag Resynced" data-dimension25="$54">Assassin's Creed Black Flag Resynced</a> is a complete remake of the 2013 original, featuring updated textures, smoother gameplay, and hours of extra content. This is a fantastic game for newcomers and veterans alike.<a class="view-deal button" href="https://www.amazon.com/Assassins-Creed-Black-Resynced-Xbox-X/dp/B0GY5M9P2W" target="_blank" rel="nofollow" data-dimension112="67495d6c-c0ea-11f1-b349-fd1332ad2e6c" data-action="Deal Block" data-label="Assassin's Creed Black Flag Resynced" data-dimension48="Assassin's Creed Black Flag Resynced" data-dimension25="$54">View Deal</a></p></div><div class="product"><a data-dimension112="67495dd0-c0ea-11f1-beb9-69376a0194c0" data-action="Deal Block" data-label="Arctis Nova 5" data-dimension48="Arctis Nova 5" data-dimension25="$129" href="https://www.amazon.com/dp/B0DFRX1Z35" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1944px;"><p class="vanilla-image-block" style="padding-top:71.19%;"><img id="mk94bcrNWQGJvUf3gxU8zB" name="SteelSeries Arctis Nova 5" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/mk94bcrNWQGJvUf3gxU8zB-1920-80.png" mos="" align="middle" fullscreen="" width="1944" height="1384" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The new undisputed ruler of gaming headsets. Designed specifically with Xbox in mind, the Arctis Nova 5 took the top overall spot in our <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets" data-dimension112="67495dd0-c0ea-11f1-beb9-69376a0194c0" data-action="Deal Block" data-label="Arctis Nova 5" data-dimension48="Arctis Nova 5" data-dimension25="$129">best gaming headset guide</a>, and for good reason. Sound quality is incredible, it looks super sleek and its easy-to-use companion software is a joy to use.<a class="view-deal button" href="https://www.amazon.com/dp/B0DFRX1Z35" target="_blank" rel="nofollow" data-dimension112="67495dd0-c0ea-11f1-beb9-69376a0194c0" data-action="Deal Block" data-label="Arctis Nova 5" data-dimension48="Arctis Nova 5" data-dimension25="$129">View Deal</a></p></div><h3 class="article-body__section" id="section-shop-more-deals"><span>Shop more deals</span></h3><ul><li><strong></strong><a href="https://www.amazon.com/primebigdealdays?" target="_blank" rel="nofollow"><strong>See all deals in the Prime Day sale</strong></a><strong></strong></li><li><a href="https://www.amazon.com/headphones-sale/s?k=headphones+on+sale" target="_blank" rel="nofollow"><strong>All headphones on sale at Amazon</strong></a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=tablets&amp;brands=Amazon&amp;min_discount_ratio=0.95&amp;widget_title=Top+Deals+Handpicked+by+Our+Editors&amp;widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&amp;bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="8">8 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const finalHref = cardLink.href || cardLink.getAttribute('href') || '';                let actualRevenueId = cardLink.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: this.decodeHTML(item.name || item.title || item.model_name || item.product_name || 'Unknown Product'),            brand: this.decodeHTML(item.brand || ''),            productName: this.decodeHTML(item.model_name || item.product_name || item.name || ''),            merchant: this.decodeHTML(item.merchant_name || item.merchant || item.retailer || 'Retailer'),            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const finalHref = btn.href || btn.getAttribute('href') || '';                let actualRevenueId = btn.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/23-best-prime-day-gaming-deals-up-to-50-percent-off-ps5-nintendo-switch-2-gaming-pcs-and-more</link>
                                                                            <description>
                            <![CDATA[ Upgrade your gaming setup by grabbing these Prime Big Deal Days gaming discounts before they disappear for Switch 2, PS5 and more. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">n2euhFww7joVzGzrokiJZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AP3Zss3Zps7SuTW2FXMrDS-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 06 Oct 2026 18:29:53 +0000</pubDate>                                                                                                                                <updated>Tue, 06 Oct 2026 18:34:19 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AP3Zss3Zps7SuTW2FXMrDS-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Prime Day 2026 gaming deals]]></media:description>                                                            <media:text><![CDATA[Prime Day 2026 gaming deals]]></media:text>
                                <media:title type="plain"><![CDATA[Prime Day 2026 gaming deals]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AP3Zss3Zps7SuTW2FXMrDS-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Prime Big Deal Days, or <a href="https://www.tomsguide.com/sales-events/amazon-october-prime-big-deal-days-2026-best-sales-now">October Prime Day</a>, is finally here. Fortunately, if you're looking to upgrade your gaming set up there are great saving to be had. </p><p>Just about every console has deals right now including <a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972781011" target="_blank" rel="nofollow">PS5 games and accessories are on sale from $6</a>, and you'll find <a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972798011" target="_blank" rel="nofollow">Xbox Series X games and accessories from $9</a>. More of a PC gamer? <a href="https://www.amazon.com/PC-Gaming/b/?ie=UTF8&amp;node=8588809011" target="_blank" rel="nofollow">Amazon has gaming laptops, monitors and keyboards on sale from $36</a>.</p><p>If you haven't picked up the Switch 2 yet, right now the <a href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow">Nintendo Switch 2 Mario Kart World Bundle is available for $549</a>. The recent price increase sucks, but you're still saving $37 with this bundle versus buying each item separately.</p><p>Keep reading to see all of my current favorite Prime Day gaming deals. (And don't forget to <a href="https://www.amazon.com/amazonprime" target="_blank" rel="nofollow">sign up for an Amazon Prime membership</a> to get ready for more discounts!)</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong></strong><a href="https://www.amazon.com/primeday" target="_blank" rel="nofollow"><strong>shop all Prime Day deals</strong></a></li><li><a href="https://www.amazon.com/PC-Gaming/b/?ie=UTF8&amp;node=8588809011" target="_blank" rel="nofollow"><strong>PC gaming deals from $36</strong></a></li><li><strong>PS5 games/accessories: </strong><a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972781011" target="_blank" rel="nofollow"><strong>deals from $6</strong></a></li><li><strong>Xbox games/accessories: </strong><a href="https://www.amazon.com/b/?ie=UTF8&amp;node=20972798011" target="_blank" rel="nofollow"><strong>deals from $9</strong></a></li><li><strong>Nintendo Switch games/accessories: </strong><a href="https://www.amazon.com/Nintendo-Switch/b/?ie=UTF8&amp;node=16227128011" target="_blank" rel="nofollow"><strong>deals from $10</strong></a></li><li><strong>Xbox Wireless Controller: </strong><a href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Velocity-Console/dp/B0F1HDBJKH" target="_blank" rel="nofollow"><strong>was $69 now $54</strong></a></li><li><strong>8Bitdo Ultimate 2 Bluetooth Controller: </strong><a href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow"><strong>was $69 now $57</strong></a></li><li><strong>Asus Chromebook Vibe CX34 Flip 14": </strong><a href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow"><strong>was $799 now $499</strong></a></li><li><strong>Switch 2 Mario Kart World Bundle: </strong><a href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow"><strong>now $549</strong></a> (<strong>save $37!)</strong></li><li><strong>Gigabyte Aero X16 Gaming Laptop: </strong><a href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow"><strong>was $2,099 now $1,750</strong></a></li></ul><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-nintendo"><span>Nintendo</span></h3><div class="product"><a data-dimension112="6749522c-c0ea-11f1-8741-3b110d32fcb3" data-action="Deal Block" data-label="Switch 2 + Mario Kart World" data-dimension48="Switch 2 + Mario Kart World" data-dimension25="$549" href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:90.60%;"><img id="sNi6WPRjp52mkhyX2WHwqg" name="Switch 2 + Mario Kart World" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/sNi6WPRjp52mkhyX2WHwqg-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1359" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow" data-dimension112="6749522c-c0ea-11f1-8741-3b110d32fcb3" data-action="Deal Block" data-label="Switch 2 + Mario Kart World" data-dimension48="Switch 2 + Mario Kart World" data-dimension25="$549">Switch 2 + Mario Kart World: $549</a></strong><br />The first Switch 2 bundle gets you the console, a digital copy of Mario Kart World and a 3-month Nintendo Switch online membership for $549. If you were to buy all this separately, it would be $37 more expensive. Prior to the recent Switch 2 price hike, this bundle was available for $499, but at least you can still save a couple bucks.<a class="view-deal button" href="https://www.amazon.com/Nintendo-Switch-3-month-Individual-Membership-2/dp/B0HGHB3V16" target="_blank" rel="nofollow" data-dimension112="6749522c-c0ea-11f1-8741-3b110d32fcb3" data-action="Deal Block" data-label="Switch 2 + Mario Kart World" data-dimension48="Switch 2 + Mario Kart World" data-dimension25="$549">View Deal</a></p></div><div class="product"><a data-dimension112="6749529a-c0ea-11f1-a0da-b3582ac113a4" data-action="Deal Block" data-label="Switch 2 + Switch Sports Resort" data-dimension48="Switch 2 + Switch Sports Resort" data-dimension25="$529" href="https://www.amazon.com/dp/B0HJB2Q62D" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:90.60%;"><img id="qYtCS4XDz7LSpmaUxU7PJ3" name="Nintendo Switch 2 + Switch Sports Resort bundle" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qYtCS4XDz7LSpmaUxU7PJ3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1359" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJB2Q62D" target="_blank" rel="nofollow" data-dimension112="6749529a-c0ea-11f1-a0da-b3582ac113a4" data-action="Deal Block" data-label="Switch 2 + Switch Sports Resort" data-dimension48="Switch 2 + Switch Sports Resort" data-dimension25="$529">Switch 2 + Switch Sports Resort: $529</a></strong><br />Like the Mario Kart World bundle, this one gets the console, a game - Nintendo Switch Sports Resort, and a 3-month Nintendo Switch online membership. But it's $20 cheaper than the Mario Kart bundle at $529. That's $27 saving if you bought them all separately. Heads up, this is a pre-order. since it won't release until October 22.<br /><strong>Price check: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-Nintendo-Switch-Sports-Resort-Bundle/20961269298" target="_blank" rel="nofollow"><strong>$529 @ Walmart</strong></a> <strong>| </strong><a href="https://www.bestbuy.com/product/switch-2-nintendo-switch-sports-resort-bundle/J7GSL57W5Z/sku/6691506" target="_blank" rel="nofollow"><strong>$529 @ Best Buy</strong></a><a class="view-deal button" href="https://www.amazon.com/dp/B0HJB2Q62D" target="_blank" rel="nofollow" data-dimension112="6749529a-c0ea-11f1-a0da-b3582ac113a4" data-action="Deal Block" data-label="Switch 2 + Switch Sports Resort" data-dimension48="Switch 2 + Switch Sports Resort" data-dimension25="$529">View Deal</a></p></div><div class="product"><a data-dimension112="fefbfac8-c0f1-11f1-9fbc-c562b555daf0" data-action="Deal Block" data-label="Pokemon Legends: Z-A - Switch 2 edition" data-dimension48="Pokemon Legends: Z-A - Switch 2 edition" data-dimension25="$49" href="https://www.amazon.com/Pok%C3%A9monTM-Legends-Z-Nintendo-SwitchTM-Switch/dp/B0FC6J5CMG" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="4SK7BusXknpf3LwfBkcqDg" name="pokemon-legends-za-nintendo-switch-6065a362-a02e-4b33-9cf9-68b7cbbc0255.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4SK7BusXknpf3LwfBkcqDg-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="800" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Pok%C3%A9monTM-Legends-Z-Nintendo-SwitchTM-Switch/dp/B0FC6J5CMG" target="_blank" rel="nofollow" data-dimension112="fefbfac8-c0f1-11f1-9fbc-c562b555daf0" data-action="Deal Block" data-label="Pokemon Legends: Z-A - Switch 2 edition" data-dimension48="Pokemon Legends: Z-A - Switch 2 edition" data-dimension25="$49">Pokemon Legends: Z-A - Switch 2 edition: was $69 now $49</a></strong><br />Normally, <a href="https://www.tomsguide.com/gaming/pokemon-legends-z-a-review">Pokemon Legends Z-A</a> costs $70 for the Switch 2 edition but right now you can get it for $20 off at $49! With its open city and a fresh spin on Pokémon battles this might be my favorite Pokémon game in recent memory. It could still use voice acting, but the gameplay is a delight.<a class="view-deal button" href="https://www.amazon.com/Pok%C3%A9monTM-Legends-Z-Nintendo-SwitchTM-Switch/dp/B0FC6J5CMG" target="_blank" rel="nofollow" data-dimension112="fefbfac8-c0f1-11f1-9fbc-c562b555daf0" data-action="Deal Block" data-label="Pokemon Legends: Z-A - Switch 2 edition" data-dimension48="Pokemon Legends: Z-A - Switch 2 edition" data-dimension25="$49">View Deal</a></p></div><div class="product"><a data-dimension112="67495308-c0ea-11f1-b368-138c40ebcaf3" data-action="Deal Block" data-label="Sonic X Shadow Generations" data-dimension48="Sonic X Shadow Generations" data-dimension25="$24" href="https://www.amazon.com/Sonic-Shadow-Generations-Nintendo-Switch-2/dp/B0F663CWT8/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:71.47%;"><img id="9ZrMt2Hq2yhZU6NMDPtQmc" name="sonic-x-shadow-switch-2" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9ZrMt2Hq2yhZU6NMDPtQmc-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1072" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/sonic-x-shadow-generations-review" data-dimension112="67495308-c0ea-11f1-b368-138c40ebcaf3" data-action="Deal Block" data-label="Sonic X Shadow Generations" data-dimension48="Sonic X Shadow Generations" data-dimension25="$24">Sonic X Shadow Generations</a> is a remaster of the classic Nintendo 3DS and PS3/Xbox 360 game that comes with a new chapter that puts you in the shoes of anti-hero Shadow. It's a great mix of 2D and 3D Sonic with short, replayable levels and fits great on the Nintendo Switch 2.<a class="view-deal button" href="https://www.amazon.com/Sonic-Shadow-Generations-Nintendo-Switch-2/dp/B0F663CWT8/" target="_blank" rel="nofollow" data-dimension112="67495308-c0ea-11f1-b368-138c40ebcaf3" data-action="Deal Block" data-label="Sonic X Shadow Generations" data-dimension48="Sonic X Shadow Generations" data-dimension25="$24">View Deal</a></p></div><div class="product"><a data-dimension112="6749536c-c0ea-11f1-9aa0-f9a078595265" data-action="Deal Block" data-label="Persona 5 Royal" data-dimension48="Persona 5 Royal" data-dimension25="$29" href="https://www.amazon.com/Persona-5-Royal-Standard-Nintendo-Switch/dp/B0BF9L5CK8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:921px;"><p class="vanilla-image-block" style="padding-top:162.76%;"><img id="pcERSBWuGpNWKa3fwKTd6H" name="persona_5.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/pcERSBWuGpNWKa3fwKTd6H-1920-80.jpg" mos="" align="middle" fullscreen="" width="921" height="1499" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Confusingly, Persona 5 has multiple variants but the turn-based RPG/high-school simulator is probably best in the <a href="https://www.tomsguide.com/reviews/persona-5" data-dimension112="6749536c-c0ea-11f1-9aa0-f9a078595265" data-action="Deal Block" data-label="Persona 5 Royal" data-dimension48="Persona 5 Royal" data-dimension25="$29">Persona 5 Royal</a> release, which combines the game and a bunch of DLC and quality-of-life updates. You play as a new student who has just moved to Tokyo. Soon you discover the ability to a transverse an alternate reality form The Phantom Thieves. Just be warned, Persona 5 Royal will consume all your free time once it gets its hooks in. <a class="view-deal button" href="https://www.amazon.com/Persona-5-Royal-Standard-Nintendo-Switch/dp/B0BF9L5CK8" target="_blank" rel="nofollow" data-dimension112="6749536c-c0ea-11f1-9aa0-f9a078595265" data-action="Deal Block" data-label="Persona 5 Royal" data-dimension48="Persona 5 Royal" data-dimension25="$29">View Deal</a></p></div><div class="product"><a data-dimension112="674953da-c0ea-11f1-ba71-3b4b5e90262e" data-action="Deal Block" data-label="Nintendo Switch Sports Resort" data-dimension48="Nintendo Switch Sports Resort" data-dimension25="$49" href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4P1YH4P" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="RVu63Zpyrr4mE6E7DgAFLe" name="Nintendo Switch Sports Resort NS2 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RVu63Zpyrr4mE6E7DgAFLe-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Nintendo Switch 2 is finally getting its version of the uber-popular Wii Sports in Nintendo Switch Sports Resort. It's a sequel to Nintendo Switch Sports and features 12 different games that take advantage of the motion-sensitive Joy-Con 2 controllers to play. Like the Switch 2 and Resort bundle, this is a pre-order, as the game doesn't launch until October 22. But you can save $10 off the normal $59 price with this Prime Day deal.<a class="view-deal button" href="https://www.amazon.com/Nintendo-SwitchTM-Sports-Resort-Switch-2/dp/B0H4P1YH4P" target="_blank" rel="nofollow" data-dimension112="674953da-c0ea-11f1-ba71-3b4b5e90262e" data-action="Deal Block" data-label="Nintendo Switch Sports Resort" data-dimension48="Nintendo Switch Sports Resort" data-dimension25="$49">View Deal</a></p></div><div class="product"><a data-dimension112="6749543e-c0ea-11f1-bcb3-e7909d27cef8" data-action="Deal Block" data-label="Ultimate 2 Bluetooth Controller" data-dimension48="Ultimate 2 Bluetooth Controller" data-dimension25="$57" href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EiaELzxguKPZpXS2WgqiHP" name="Ultimate 2 Bluetooth Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EiaELzxguKPZpXS2WgqiHP-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow" data-dimension112="6749543e-c0ea-11f1-bcb3-e7909d27cef8" data-action="Deal Block" data-label="Ultimate 2 Bluetooth Controller" data-dimension48="Ultimate 2 Bluetooth Controller" data-dimension25="$57">Ultimate 2 Bluetooth Controller: was $69 now $57</a></strong><br />We love 8BitDo controllers at Tom's Guide. The Ultimate 2 is compatible with the Switch, Switch 2 and PC. You also get hall effect triggers and an integrated charging dock.<a class="view-deal button" href="https://www.amazon.com/dp/B0F194QFT2" target="_blank" rel="nofollow" data-dimension112="6749543e-c0ea-11f1-bcb3-e7909d27cef8" data-action="Deal Block" data-label="Ultimate 2 Bluetooth Controller" data-dimension48="Ultimate 2 Bluetooth Controller" data-dimension25="$57">View Deal</a></p></div><div class="product"><a data-dimension112="674954ac-c0ea-11f1-98d2-3d3f10b0409a" data-action="Deal Block" data-label="The Legend of Zelda Ocarina of Time" data-dimension48="The Legend of Zelda Ocarina of Time" data-dimension25="$59" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="674954ac-c0ea-11f1-98d2-3d3f10b0409a" data-action="Deal Block" data-label="The Legend of Zelda Ocarina of Time" data-dimension48="The Legend of Zelda Ocarina of Time" data-dimension25="$59">The Legend of Zelda Ocarina of Time: was $69 now $59</a></strong><br />The Legend of Zelda: Ocarina of Time is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches on November 5, 2026, and looks truly stunning! Amazon is taking $10 off physical copies as a hidden discount.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="674954ac-c0ea-11f1-98d2-3d3f10b0409a" data-action="Deal Block" data-label="The Legend of Zelda Ocarina of Time" data-dimension48="The Legend of Zelda Ocarina of Time" data-dimension25="$59">View Deal</a></p></div><div class="product"><a data-dimension112="67495510-c0ea-11f1-a80d-5b6ce9020d66" data-action="Deal Block" data-label="P9 microSD Express Card 256GB" data-dimension48="P9 microSD Express Card 256GB" data-dimension25="$69" href="https://www.amazon.com/Samsung-Express-microSDXC-Nintendo-Switch-AM/dp/B0FT99KCV8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:73.13%;"><img id="cYb96WCt22DZy3AXTssTSn" name="P9 microSD Express Card" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/cYb96WCt22DZy3AXTssTSn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1097" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Samsung-Express-microSDXC-Nintendo-Switch-AM/dp/B0FT99KCV8" target="_blank" rel="nofollow" data-dimension112="67495510-c0ea-11f1-a80d-5b6ce9020d66" data-action="Deal Block" data-label="P9 microSD Express Card 256GB" data-dimension48="P9 microSD Express Card 256GB" data-dimension25="$69">P9 microSD Express Card 256GB: was $79 now $69</a></strong><br />Storage isn't getting cheaper, so it's good to take advantage of a sale when it happens. The Samsung P9 microSD Express Card offers 256GB with up to 800 MB/s transfer speeds and is built specifically for the Switch 2. This deal save you $10 without sacrificing quality.<a class="view-deal button" href="https://www.amazon.com/Samsung-Express-microSDXC-Nintendo-Switch-AM/dp/B0FT99KCV8" target="_blank" rel="nofollow" data-dimension112="67495510-c0ea-11f1-a80d-5b6ce9020d66" data-action="Deal Block" data-label="P9 microSD Express Card 256GB" data-dimension48="P9 microSD Express Card 256GB" data-dimension25="$69">View Deal</a></p></div><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-gaming-laptops-pcs"><span>Gaming Laptops/PCs</span></h3><div class="product"><a data-dimension112="9761d02a-c0f3-11f1-87c0-3b97a35f9f68" data-action="Deal Block" data-label="Iskur V2" data-dimension48="Iskur V2" data-dimension25="$249" href="https://www.amazon.com/Razer-Iskur-Ergonomic-Gaming-Built/dp/B0DXS1BVCB/ref=sr_1_2_sspa?crid=1AG5UBQ134C7I&amp;dib=eyJ2IjoiMSJ9.Gw3MYahy1wraxIif5lpV-H6BRo344LBjRQLvV3BfXWrRZVm0qXDygg2cH4850HC6WWn_X4lRHjakUWOCv-tsm3a9HwqOWUX4tM41Rr5B0h7u18wmJf5z2CDUxrr3sDT1NcLS7DGHKd2yOZe4Rw7nohiH5ZCZhT2gN8NP7JA2ulaTHM1XfWfFYYaloDdmr0IDFypU0WMnvAxKvkgiOgS1H77caNSB9h8AH4GVf7A2ka-gQxDE3zgYiPONOMyLHpYcMOnbeQ_HNuTxyq_zOpoabzGFF8XIQiKHTH2XRCHuyB0.L4kQRbT3Lhrtq6ihry6Jo7etHUW6avqOszkUyeHQYz4&amp;dib_tag=se&amp;keywords=secret%2Blab&amp;qid=1791228481&amp;refinements=p_n_deal_type%3A23566065011&amp;rnid=23566063011&amp;sprefix=secret%2Bla%2Caps%2C220&amp;sr=8-2-spons&amp;ufe=app_do%3Aamzn1.fos.f088afa9-fb0b-4145-8d8d-218a6afeae72&amp;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:329px;"><p class="vanilla-image-block" style="padding-top:184.50%;"><img id="pEnG8PZbpKDpHizVZYayJ8" name="razer iskur v2 newgen" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/pEnG8PZbpKDpHizVZYayJ8-1920-80.jpg" mos="" align="middle" fullscreen="" width="329" height="607" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The machine matters, but so does the seating. Fortunately, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-ditched-my-office-chair-for-the-razer-iskur-v2-newgen-and-it-finally-sold-me-on-gaming-chairs" data-dimension112="9761d02a-c0f3-11f1-87c0-3b97a35f9f68" data-action="Deal Block" data-label="Iskur V2" data-dimension48="Iskur V2" data-dimension25="$249">Razer Iskur V2 </a>is on sale this week. Gaming chairs don't typically have good adjustability or fit, but Razer's reimagined seating does, making it more comfortable and supportive for your back. It's an excellent chair to game in.<a class="view-deal button" href="https://www.amazon.com/Razer-Iskur-Ergonomic-Gaming-Built/dp/B0DXS1BVCB/ref=sr_1_2_sspa?crid=1AG5UBQ134C7I&amp;dib=eyJ2IjoiMSJ9.Gw3MYahy1wraxIif5lpV-H6BRo344LBjRQLvV3BfXWrRZVm0qXDygg2cH4850HC6WWn_X4lRHjakUWOCv-tsm3a9HwqOWUX4tM41Rr5B0h7u18wmJf5z2CDUxrr3sDT1NcLS7DGHKd2yOZe4Rw7nohiH5ZCZhT2gN8NP7JA2ulaTHM1XfWfFYYaloDdmr0IDFypU0WMnvAxKvkgiOgS1H77caNSB9h8AH4GVf7A2ka-gQxDE3zgYiPONOMyLHpYcMOnbeQ_HNuTxyq_zOpoabzGFF8XIQiKHTH2XRCHuyB0.L4kQRbT3Lhrtq6ihry6Jo7etHUW6avqOszkUyeHQYz4&amp;dib_tag=se&amp;keywords=secret%2Blab&amp;qid=1791228481&amp;refinements=p_n_deal_type%3A23566065011&amp;rnid=23566063011&amp;sprefix=secret%2Bla%2Caps%2C220&amp;sr=8-2-spons&amp;ufe=app_do%3Aamzn1.fos.f088afa9-fb0b-4145-8d8d-218a6afeae72&amp;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&amp;th=1" target="_blank" rel="nofollow" data-dimension112="9761d02a-c0f3-11f1-87c0-3b97a35f9f68" data-action="Deal Block" data-label="Iskur V2" data-dimension48="Iskur V2" data-dimension25="$249">View Deal</a></p></div><div class="product"><a data-dimension112="6749568c-c0ea-11f1-b582-7d7168e9a651" data-action="Deal Block" data-label="Chromebook Vibe CX34 Flip 14"" data-dimension48="Chromebook Vibe CX34 Flip 14"" data-dimension25="$679" href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1489px;"><p class="vanilla-image-block" style="padding-top:72.80%;"><img id="c5KMkZwdoBWeMrG8juZNMF" name="asus chromebook vibe cx34 flip" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/c5KMkZwdoBWeMrG8juZNMF-1920-80.png" mos="" align="middle" fullscreen="" width="1489" height="1084" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow" data-dimension112="6749568c-c0ea-11f1-b582-7d7168e9a651" data-action="Deal Block" data-label='Chromebook Vibe CX34 Flip 14"' data-dimension48='Chromebook Vibe CX34 Flip 14"' data-dimension25="$679">Chromebook Vibe CX34 Flip 14": was $799 now $679</a></strong><br />If you're fine with cloud-based gaming, this Asus Chromebook is one of the best value gaming laptops you'll find. It comes with a 14-inch 144Hz display, RGB keyboard and access to NVIDIA GeForce NOW and Xbox Cloud Gaming. You can also flip it into tablet mode for more versatility.</p><p>Stock appears low, so get in quickly if you're interested.<a class="view-deal button" href="https://www.amazon.com/ASUS-Chromebook-1920x1200-Processor-CX3401FBA-DH586T-S/dp/B0BQX4WPFX" target="_blank" rel="nofollow" data-dimension112="6749568c-c0ea-11f1-b582-7d7168e9a651" data-action="Deal Block" data-label="Chromebook Vibe CX34 Flip 14"" data-dimension48="Chromebook Vibe CX34 Flip 14"" data-dimension25="$679">View Deal</a></p></div><div class="product"><a data-dimension112="674956fa-c0ea-11f1-bc5f-7b965c576bde" data-action="Deal Block" data-label="TUF Gaming F16 w/ RTX 5050" data-dimension48="TUF Gaming F16 w/ RTX 5050" data-dimension25="$1234" href="https://www.amazon.com/ASUS-TUF-Gaming-Laptop-165Hz/dp/B0FFDDFW47" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="GEXVx9CDBRMeFccTP8NCqm" name="Asus TUF Gaming F16 deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/GEXVx9CDBRMeFccTP8NCqm-1920-80.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/ASUS-TUF-Gaming-Laptop-165Hz/dp/B0FFDDFW47" target="_blank" rel="nofollow" data-dimension112="674956fa-c0ea-11f1-bc5f-7b965c576bde" data-action="Deal Block" data-label="TUF Gaming F16 w/ RTX 5050" data-dimension48="TUF Gaming F16 w/ RTX 5050" data-dimension25="$1234">TUF Gaming F16 w/ RTX 5050: was $1299 now $1234</a></strong><br />One thing that makes the ASUS TUF Gaming F16 stand out from the crowd is the 16:10 aspect ratio display. Along with that, you'll get an Intel Core i5-13450HX, NVIDIA GeForce RTX 5050, 16GB DDR5 RAM and a 512GB SSD. For just over $1,000, those are some solid specs that gamers are sure to love.<a class="view-deal button" href="https://www.amazon.com/ASUS-TUF-Gaming-Laptop-165Hz/dp/B0FFDDFW47" target="_blank" rel="nofollow" data-dimension112="674956fa-c0ea-11f1-bc5f-7b965c576bde" data-action="Deal Block" data-label="TUF Gaming F16 w/ RTX 5050" data-dimension48="TUF Gaming F16 w/ RTX 5050" data-dimension25="$1234">View Deal</a></p></div><div class="product"><a data-dimension112="67495768-c0ea-11f1-b7ec-2daf531b8aa8" data-action="Deal Block" data-label="Aero X16" data-dimension48="Aero X16" data-dimension25="$1699" href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:57.20%;"><img id="trhfpBf8e2wmLYvaDj8DZG" name="Aero X16" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/trhfpBf8e2wmLYvaDj8DZG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="858" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow" data-dimension112="67495768-c0ea-11f1-b7ec-2daf531b8aa8" data-action="Deal Block" data-label="Aero X16" data-dimension48="Aero X16" data-dimension25="$1699">Aero X16: was $2099 now $1699</a></strong><br />Now $400 off, this Gigabyte Aero 16X with an RTX 5070 offers mighty mid-range power for a value-driven price. With its AMD Ryzen Al 7 350 CPU, 32GB of DDR5 RAM and 1TB SSD, it has all the makings of playing the latest AAA PC games with super-fast refresh rates at high settings.<a class="view-deal button" href="https://www.amazon.com/GIGABYTE-AERO-X16-Copilot-2560x1600/dp/B0FDMM46TT" target="_blank" rel="nofollow" data-dimension112="67495768-c0ea-11f1-b7ec-2daf531b8aa8" data-action="Deal Block" data-label="Aero X16" data-dimension48="Aero X16" data-dimension25="$1699">View Deal</a></p></div><div class="product"><a data-dimension112="674957cc-c0ea-11f1-86cc-93619281eb43" data-action="Deal Block" data-label="Wired Gaming Headset" data-dimension48="Wired Gaming Headset" data-dimension25="$29" href="https://www.amazon.com/dp/B0GJBL1RMK" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1418px;"><p class="vanilla-image-block" style="padding-top:105.78%;"><img id="tS7uPJrCr2u4jLJvdLM2WN" name="Wired Gaming Headset" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/tS7uPJrCr2u4jLJvdLM2WN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1418" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>I prefer wired headsets, and the Acer Wired Gaming Headset is pretty good, especially at $29. They're super light, flexible and have RGB lights for those who need colors.<a class="view-deal button" href="https://www.amazon.com/dp/B0GJBL1RMK" target="_blank" rel="nofollow" data-dimension112="674957cc-c0ea-11f1-86cc-93619281eb43" data-action="Deal Block" data-label="Wired Gaming Headset" data-dimension48="Wired Gaming Headset" data-dimension25="$29">View Deal</a></p></div><div class="product"><a data-dimension112="67495830-c0ea-11f1-a7a2-0522db107318" data-action="Deal Block" data-label="K673 Pro" data-dimension48="K673 Pro" data-dimension25="$49" href="https://www.amazon.com/Redragon-K673-Mechanical-Dedicated-Absorbing/dp/B0CDX5XGLK" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1382px;"><p class="vanilla-image-block" style="padding-top:42.76%;"><img id="zrFk2rQd6HZRGoKiNSagSi" name="Redragon K673 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/zrFk2rQd6HZRGoKiNSagSi-1920-80.jpg" mos="" align="middle" fullscreen="" width="1382" height="591" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>"Powerful dragon, small price" is how we summed up this board in our <a href="https://www.tomsguide.com/computing/peripherals/redragon-k673-pro-keyboard-review" data-dimension112="67495830-c0ea-11f1-a7a2-0522db107318" data-action="Deal Block" data-label="K673 Pro" data-dimension48="K673 Pro" data-dimension25="$49">Redragon K673 Pro review</a>. If you want a nice-typing and solid gaming keyboard on a tight budget, you can do a heck of a lot worse than this!<a class="view-deal button" href="https://www.amazon.com/Redragon-K673-Mechanical-Dedicated-Absorbing/dp/B0CDX5XGLK" target="_blank" rel="nofollow" data-dimension112="67495830-c0ea-11f1-a7a2-0522db107318" data-action="Deal Block" data-label="K673 Pro" data-dimension48="K673 Pro" data-dimension25="$49">View Deal</a></p></div><div class="product"><a data-dimension112="6749589e-c0ea-11f1-9c5e-3bdf9c2808af" data-action="Deal Block" data-label="Scimitar Elite Wireless SE Gaming Mouse" data-dimension48="Scimitar Elite Wireless SE Gaming Mouse" data-dimension25="$123" href="https://www.amazon.com/Corsair-Scimitar-Elite-Wireless-Gaming/dp/B0F6NGCDFN" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1100px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ciYCEeenYMWmheeSrHkqg6" name="SCIMITAR ELITE WIRELESS SE MMO Gaming Mous" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ciYCEeenYMWmheeSrHkqg6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1100" height="1100" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Corsair-Scimitar-Elite-Wireless-Gaming/dp/B0F6NGCDFN" target="_blank" rel="nofollow" data-dimension112="6749589e-c0ea-11f1-9c5e-3bdf9c2808af" data-action="Deal Block" data-label="Scimitar Elite Wireless SE Gaming Mouse" data-dimension48="Scimitar Elite Wireless SE Gaming Mouse" data-dimension25="$123">Scimitar Elite Wireless SE Gaming Mouse: was $139 now $123</a></strong><br />Corsair gaming mice are comfortable to use, and the Scimitar Elite is a high-performing take with 16 customizable buttons and an adjustable Key Slider. It also boasts a super-accurate MARKSMAN S 33K sensor and ultra-low latency — earning it a strong 4-star rating from shoppers on Amazon.<a class="view-deal button" href="https://www.amazon.com/Corsair-Scimitar-Elite-Wireless-Gaming/dp/B0F6NGCDFN" target="_blank" rel="nofollow" data-dimension112="6749589e-c0ea-11f1-9c5e-3bdf9c2808af" data-action="Deal Block" data-label="Scimitar Elite Wireless SE Gaming Mouse" data-dimension48="Scimitar Elite Wireless SE Gaming Mouse" data-dimension25="$123">View Deal</a></p></div><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-ps5"><span>PS5</span></h3><div class="product"><a data-dimension112="67495a38-c0ea-11f1-9e49-ef193bd4058e" data-action="Deal Block" data-label="God of War Ragnarök" data-dimension48="God of War Ragnarök" data-dimension25="$36" href="https://www.amazon.com/God-War-Ragnar%C3%B6k-PlayStation-5/dp/B0B61YDF5V" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:342px;"><p class="vanilla-image-block" style="padding-top:121.05%;"><img id="pLfkNWvA5iHK5Lz8sXQqaa" name="god-of-war-ragnarok-box-art.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/pLfkNWvA5iHK5Lz8sXQqaa-1920-80.jpg" mos="" align="middle" fullscreen="" width="342" height="414" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The sequel to one of the most acclaimed PlayStation games of all time, <a href="https://www.tomsguide.com/reviews/god-of-war-ragnarok" data-dimension112="67495a38-c0ea-11f1-9e49-ef193bd4058e" data-action="Deal Block" data-label="God of War Ragnarök" data-dimension48="God of War Ragnarök" data-dimension25="$36">God of War Ragnarök</a> sees father and son duo Kratos and Atreus embark on another epic journey as they travel across all Nine Realms of Norse mythology. Enjoy visceral combat against a multitude of foes, as well as rewarding exploration and a highly cinematic story that culminates in a stunning finale that you won't soon forget.<a class="view-deal button" href="https://www.amazon.com/God-War-Ragnar%C3%B6k-PlayStation-5/dp/B0B61YDF5V" target="_blank" rel="nofollow" data-dimension112="67495a38-c0ea-11f1-9e49-ef193bd4058e" data-action="Deal Block" data-label="God of War Ragnarök" data-dimension48="God of War Ragnarök" data-dimension25="$36">View Deal</a></p></div><div class="product"><a data-dimension112="67495a9c-c0ea-11f1-96bb-89e2e22068f3" data-action="Deal Block" data-label="The Last of Us Part I" data-dimension48="The Last of Us Part I" data-dimension25="$37" href="https://www.amazon.com/Last-Us-Part-PlayStation-5/dp/B0B3QWRQL8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:174px;"><p class="vanilla-image-block" style="padding-top:125.29%;"><img id="ngFxgdH4s4menkkabyvGfh" name="716wDmHJYLL._AC_UY218_.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ngFxgdH4s4menkkabyvGfh-1920-80.jpg" mos="" align="middle" fullscreen="" width="174" height="218" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Last-Us-Part-PlayStation-5/dp/B0B3QWRQL8" target="_blank" rel="nofollow" data-dimension112="67495a9c-c0ea-11f1-96bb-89e2e22068f3" data-action="Deal Block" data-label="The Last of Us Part I" data-dimension48="The Last of Us Part I" data-dimension25="$37">The Last of Us Part I: was $69 now $37</a></strong><br />If you somehow haven't played The Last of US Part 1 yet, or want a replay, now is the time to pick it up. Ellie and Joel's journey is simultaneously heartbreaking, beautiful and tense as they explore post-apocalyptic America. The remake boosts the visuals, adds new animations, and more tactical enemies that should be a treat for even veteran players.<a class="view-deal button" href="https://www.amazon.com/Last-Us-Part-PlayStation-5/dp/B0B3QWRQL8" target="_blank" rel="nofollow" data-dimension112="67495a9c-c0ea-11f1-96bb-89e2e22068f3" data-action="Deal Block" data-label="The Last of Us Part I" data-dimension48="The Last of Us Part I" data-dimension25="$37">View Deal</a></p></div><div class="product"><a data-dimension112="67495b00-c0ea-11f1-ba65-3bd6ea92d0cc" data-action="Deal Block" data-label="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension48="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension25="$264" href="https://www.amazon.com/Logitech-G29-Racing-Wheel-Pedals/dp/B00Z0UWWYC" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="BZ2PGFNptgo9YMzJSKuNmA" name="logitech-g29-driving-force-racing-wheel--b019993a-fc9a-4479-b76a-5525c2af290e.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/BZ2PGFNptgo9YMzJSKuNmA-1920-80.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-G29-Racing-Wheel-Pedals/dp/B00Z0UWWYC" target="_blank" rel="nofollow" data-dimension112="67495b00-c0ea-11f1-ba65-3bd6ea92d0cc" data-action="Deal Block" data-label="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension48="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension25="$264">G29 Driving Force Racing Wheel and Floor Pedals: was $299 now $264</a></strong><br />Get your heart racing with this Driving Force wheel from Logitech. Compatible with PS5, PS4 and PC gaming, this wheel will take your sim racing to the next level, thanks to its comfortable pedals and precision force feedback wheel action. <a class="view-deal button" href="https://www.amazon.com/Logitech-G29-Racing-Wheel-Pedals/dp/B00Z0UWWYC" target="_blank" rel="nofollow" data-dimension112="67495b00-c0ea-11f1-ba65-3bd6ea92d0cc" data-action="Deal Block" data-label="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension48="G29 Driving Force Racing Wheel and Floor Pedals" data-dimension25="$264">View Deal</a></p></div><div class="product"><a data-dimension112="67495b64-c0ea-11f1-815e-55a81eb0cb17" data-action="Deal Block" data-label="990 Pro (2TB)" data-dimension48="990 Pro (2TB)" data-dimension25="$389" href="https://www.amazon.com/SAMSUNG-Internal-Expansion-MZ-V9P2T0B-AM/dp/B0BHJJ9Y77" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:87.50%;"><img id="5fBHZckCTSEf7KiNq7m2Go" name="Samsung 2TB 990 PRO.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5fBHZckCTSEf7KiNq7m2Go-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="1400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/SAMSUNG-Internal-Expansion-MZ-V9P2T0B-AM/dp/B0BHJJ9Y77" target="_blank" rel="nofollow" data-dimension112="67495b64-c0ea-11f1-815e-55a81eb0cb17" data-action="Deal Block" data-label="990 Pro (2TB)" data-dimension48="990 Pro (2TB)" data-dimension25="$389">990 Pro (2TB): was $639 now $389</a></strong><br />Again, storage isn't going to get cheaper for years to come, and at nearly half-ff the Samsung 990 Pro is fast with plenty of space at 2TB. We think it's the best PS5 SSD available right now. Before the tariffs and RAMeggedon, we saw this hard drive as low as $119, but it likely won't get that low any time soon.<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Internal-Expansion-MZ-V9P2T0B-AM/dp/B0BHJJ9Y77" target="_blank" rel="nofollow" data-dimension112="67495b64-c0ea-11f1-815e-55a81eb0cb17" data-action="Deal Block" data-label="990 Pro (2TB)" data-dimension48="990 Pro (2TB)" data-dimension25="$389">View Deal</a></p></div><ul><li><a href="#main">Back to the top ⤴</a></li></ul><h3 class="article-body__section" id="section-xbox"><span>Xbox</span></h3><div class="product"><a data-dimension112="674959ca-c0ea-11f1-99d9-2f4f3ad0ec72" data-action="Deal Block" data-label="Razer BlackShark V2 X Gaming Headset" data-dimension48="Razer BlackShark V2 X Gaming Headset" data-dimension25="$31" href="https://www.amazon.com/Razer-BlackShark-Xbox-Gaming-Headset-Console/dp/B0CXH14PPD" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="3dobBXEPzpXjpMnfNYwSDo" name="Razer BlackShark V2 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3dobBXEPzpXjpMnfNYwSDo-1920-80.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Razer-BlackShark-Xbox-Gaming-Headset-Console/dp/B0CXH14PPD" target="_blank" rel="nofollow" data-dimension112="674959ca-c0ea-11f1-99d9-2f4f3ad0ec72" data-action="Deal Block" data-label="Razer BlackShark V2 X Gaming Headset" data-dimension48="Razer BlackShark V2 X Gaming Headset" data-dimension25="$31">Razer BlackShark V2 X Gaming Headset: was $49 now $31</a></strong><br />Razer BlackShark V2 X is an excellent headset with a comfortable design especially at its price, and now it's even lower. You can get it working with PS5, Xbox or PC and it comes in different colors. Notably the PS5 version is more expensive and only works with PC and PS5, not Xbox.<a class="view-deal button" href="https://www.amazon.com/Razer-BlackShark-Xbox-Gaming-Headset-Console/dp/B0CXH14PPD" target="_blank" rel="nofollow" data-dimension112="674959ca-c0ea-11f1-99d9-2f4f3ad0ec72" data-action="Deal Block" data-label="Razer BlackShark V2 X Gaming Headset" data-dimension48="Razer BlackShark V2 X Gaming Headset" data-dimension25="$31">View Deal</a></p></div><div class="product"><a data-dimension112="67495c9a-c0ea-11f1-b863-e3772b9a23b4" data-action="Deal Block" data-label="Play &amp; Charge Kit" data-dimension48="Play &amp; Charge Kit" data-dimension25="$14" href="https://www.amazon.com/PowerA-Play-Charge-Kit-Xbox/dp/B0BVKW546T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:57.53%;"><img id="t8E5qFNhoKdGnVJnHpMLqg" name="Play &amp; Charge Kit" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/t8E5qFNhoKdGnVJnHpMLqg-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="863" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/PowerA-Play-Charge-Kit-Xbox/dp/B0BVKW546T" target="_blank" rel="nofollow" data-dimension112="67495c9a-c0ea-11f1-b863-e3772b9a23b4" data-action="Deal Block" data-label="Play &amp; Charge Kit" data-dimension48="Play &amp; Charge Kit" data-dimension25="$14">Play &amp; Charge Kit: was $19 now $14</a></strong><br />This handy kit gives your Xbox controllers more functionality. Rather than using AA batteries, you can plug these in and use USB-C to charge your controllers while you play!<a class="view-deal button" href="https://www.amazon.com/PowerA-Play-Charge-Kit-Xbox/dp/B0BVKW546T" target="_blank" rel="nofollow" data-dimension112="67495c9a-c0ea-11f1-b863-e3772b9a23b4" data-action="Deal Block" data-label="Play &amp; Charge Kit" data-dimension48="Play &amp; Charge Kit" data-dimension25="$14">View Deal</a></p></div><div class="product"><a data-dimension112="67495d08-c0ea-11f1-8f3f-2700407c41c5" data-action="Deal Block" data-label="Wireless Controller" data-dimension48="Wireless Controller" data-dimension25="$54" href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Velocity-Console/dp/B0F1HDBJKH" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:724px;"><p class="vanilla-image-block" style="padding-top:68.37%;"><img id="kWwmbndGML6VqxiRTBtMPG" name="xbox-wireless-controller-robot-white.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/kWwmbndGML6VqxiRTBtMPG-1920-80.jpg" mos="" align="middle" fullscreen="" width="724" height="495" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>I always recommend waiting for sales for controllers since the full price is equal to a game. The Xbox Core Wireless Controller is a Tom's Guide favorite thanks to its versatile, comfortable and responsive build. It's also compatible with PC, Android and iOS devices. The Xbox Core comes with an ergonomic design, textured grips and a button to share screenshots. Even if you don't have an Xbox, you should get one of these controllers.<a class="view-deal button" href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Velocity-Console/dp/B0F1HDBJKH" target="_blank" rel="nofollow" data-dimension112="67495d08-c0ea-11f1-8f3f-2700407c41c5" data-action="Deal Block" data-label="Wireless Controller" data-dimension48="Wireless Controller" data-dimension25="$54">View Deal</a></p></div><div class="product"><a data-dimension112="67495d6c-c0ea-11f1-b349-fd1332ad2e6c" data-action="Deal Block" data-label="Assassin's Creed Black Flag Resynced" data-dimension48="Assassin's Creed Black Flag Resynced" data-dimension25="$54" href="https://www.amazon.com/Assassins-Creed-Black-Resynced-Xbox-X/dp/B0GY5M9P2W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="9jfEyuEiLuboxipgmjNWGF" name="Assassin's Creed Black Flag Resynced" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9jfEyuEiLuboxipgmjNWGF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.tomsguide.com/gaming/assassins-creed-black-flag-resynced-review" data-dimension112="67495d6c-c0ea-11f1-b349-fd1332ad2e6c" data-action="Deal Block" data-label="Assassin's Creed Black Flag Resynced" data-dimension48="Assassin's Creed Black Flag Resynced" data-dimension25="$54">Assassin's Creed Black Flag Resynced</a> is a complete remake of the 2013 original, featuring updated textures, smoother gameplay, and hours of extra content. This is a fantastic game for newcomers and veterans alike.<a class="view-deal button" href="https://www.amazon.com/Assassins-Creed-Black-Resynced-Xbox-X/dp/B0GY5M9P2W" target="_blank" rel="nofollow" data-dimension112="67495d6c-c0ea-11f1-b349-fd1332ad2e6c" data-action="Deal Block" data-label="Assassin's Creed Black Flag Resynced" data-dimension48="Assassin's Creed Black Flag Resynced" data-dimension25="$54">View Deal</a></p></div><div class="product"><a data-dimension112="67495dd0-c0ea-11f1-beb9-69376a0194c0" data-action="Deal Block" data-label="Arctis Nova 5" data-dimension48="Arctis Nova 5" data-dimension25="$129" href="https://www.amazon.com/dp/B0DFRX1Z35" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1944px;"><p class="vanilla-image-block" style="padding-top:71.19%;"><img id="mk94bcrNWQGJvUf3gxU8zB" name="SteelSeries Arctis Nova 5" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/mk94bcrNWQGJvUf3gxU8zB-1920-80.png" mos="" align="middle" fullscreen="" width="1944" height="1384" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The new undisputed ruler of gaming headsets. Designed specifically with Xbox in mind, the Arctis Nova 5 took the top overall spot in our <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets" data-dimension112="67495dd0-c0ea-11f1-beb9-69376a0194c0" data-action="Deal Block" data-label="Arctis Nova 5" data-dimension48="Arctis Nova 5" data-dimension25="$129">best gaming headset guide</a>, and for good reason. Sound quality is incredible, it looks super sleek and its easy-to-use companion software is a joy to use.<a class="view-deal button" href="https://www.amazon.com/dp/B0DFRX1Z35" target="_blank" rel="nofollow" data-dimension112="67495dd0-c0ea-11f1-beb9-69376a0194c0" data-action="Deal Block" data-label="Arctis Nova 5" data-dimension48="Arctis Nova 5" data-dimension25="$129">View Deal</a></p></div><h3 class="article-body__section" id="section-shop-more-deals"><span>Shop more deals</span></h3><ul><li><strong></strong><a href="https://www.amazon.com/primebigdealdays?" target="_blank" rel="nofollow"><strong>See all deals in the Prime Day sale</strong></a><strong></strong></li><li><a href="https://www.amazon.com/headphones-sale/s?k=headphones+on+sale" target="_blank" rel="nofollow"><strong>All headphones on sale at Amazon</strong></a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=tablets&amp;brands=Amazon&amp;min_discount_ratio=0.95&amp;widget_title=Top+Deals+Handpicked+by+Our+Editors&amp;widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&amp;bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="8">8 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const finalHref = cardLink.href || cardLink.getAttribute('href') || '';                let actualRevenueId = cardLink.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: this.decodeHTML(item.name || item.title || item.model_name || item.product_name || 'Unknown Product'),            brand: this.decodeHTML(item.brand || ''),            productName: this.decodeHTML(item.model_name || item.product_name || item.name || ''),            merchant: this.decodeHTML(item.merchant_name || item.merchant || item.retailer || 'Retailer'),            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const finalHref = btn.href || btn.getAttribute('href') || '';                let actualRevenueId = btn.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I spent 5 hours building the new Lego PlayStation — here are my 4 favorite features ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The PlayStation (or PS1) was the very first console I owned, or should I say <em>shared</em>, as it belonged to my brother and me. It’s a video game system steeped in nostalgia, and what better way to bring back all those fond memories than building a PlayStation made out of Lego?</p><p>Last week, Sony sent me a Lego PlayStation, and over the weekend, I spent five hours putting it together brick-by-brick. Assembling the 1,911-piece set was a surprisingly calming experience. Certainly more relaxing than my youthful experience trying to beat some of the best PS1 games. As a young kid, my gaming skills were pretty appalling.</p><p>Once the final piece was in place — I made one mistake, which forced me to backtrack and redo a section — I admired my work and spent several minutes trying to find the perfect place to display the finished Lego model. My partner point-blank refused to have it in the living room, and so it’s taken up a spot on my home office windowsill instead.</p><p>Available for $179 / £139, it’s a great pick-up for any long-term PlayStation fan, particularly those who discovered their love of gaming in the PS1 era. But best of all, it’s not just a boxy Lego model; there are a few nifty little surprise features hidden within its iconic grey exterior. </p><div class="product"><a data-dimension112="5520d778-c18a-11f1-b3bd-6b6e9d2d648b" data-action="Deal Block" data-label="PlayStation" data-dimension48="PlayStation" data-dimension25="$179" href="https://www.lego.com/en-us/product/playstation-72306" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:75.92%;"><img id="o7tiftA4hihWEgJZpBcmB6" name="PlayStation" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/o7tiftA4hihWEgJZpBcmB6-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="911" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Lego PlayStation is a 1,900+ piece model set designed for grown-up builders. It recreates Sony's iconic video game console that kickstarted one of gaming's biggest brands in brick form and comes complete with a controller and a few surprise extras (spoilers for those below).<a class="view-deal button" href="https://www.lego.com/en-us/product/playstation-72306" target="_blank" rel="nofollow" data-dimension112="5520d778-c18a-11f1-b3bd-6b6e9d2d648b" data-action="Deal Block" data-label="PlayStation" data-dimension48="PlayStation" data-dimension25="$179">View Deal</a></p></div><h2 id="press-to-open">Press to open</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tC9QZ9prBSdjcommru6MmG" name="lego-playstation-feature-04" alt="Lego PlayStation model on a table with the box in the background" src="https://cdn.mos.cms.futurecdn.net/tC9QZ9prBSdjcommru6MmG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Modeled after the original PS1 (rather than the 2000s slim redesign), the Lego PlayStation does an admirable job replicating the real thing. This includes the top buttons actually functioning (well, “Power” and “Open” do; “Reset” is just a static plastic piece). Click “Power” and a small green piece will lift, simulating the console’s power indicator. However, it’s “Open” that is most novel; press it down, and the Lego PlayStation’s lid will rise just like the real thing. The buttons have a clickiness that feels very close to the actual console as well. </p><h2 id="two-hidden-ps1-dioramas">Two hidden PS1 dioramas</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vTCzbbPGLPPneVQRFNQdUG" name="lego-playstation-feature-05" alt="Lego PlayStation model on a table with the box in the background" src="https://cdn.mos.cms.futurecdn.net/vTCzbbPGLPPneVQRFNQdUG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Obviously, the Lego PlayStation can’t play PS1 games; it’s just a plastic model. So underneath the lid you won’t find a disc tray. Instead, there are two dioramas depicting scenes from fan-favorite PlayStation games, Gran Turismo and Ape Escape. </p><p>GT was an obvious choice; it’s the best-selling PS1 game of all time, but Ape Escape is a strange one. I’m not questioning its storied place in the PS1 library, but it was released specifically for the DualShock controller, which added dual analog sticks. The PS1 console given a Lego makeover is the launch model, with a pad lacking sticks.</p><p>Still, these miniature dioramas are a nice touch and can be pulled out of the console to be admired or displayed separately, if you wish. </p><h2 id="remember-wired-controllers">Remember wired controllers?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="czEDCnnv4ve4F9qDxWGwmG" name="lego-playstation-feature-03" alt="Lego PlayStation model showing the controller being plugged in" src="https://cdn.mos.cms.futurecdn.net/czEDCnnv4ve4F9qDxWGwmG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Anybody who grew up in an HD console world doesn’t know how good they’ve had it. Back in the day, wireless controllers were the stuff of science fiction movies. </p><p>The Lego PlayStation displays this; it comes with an original PS1 controller model connected via a rubber wire. Fortunately, the cable is short, so it won't get tangled and twisted as all my controllers did back in the 2000s. </p><p>Even better, the controller can be detached from the main model; just like the real thing, you can even swap it between the two front-facing ports. This reminded me of the (in)famous Psycho Mantis boss battle in Metal Gear Solid, which required you to swap the controller from Port 1 to Port 2 to prevent the telepathic foe from reading your button inputs. </p><h2 id="an-astro-bot-extra">An Astro Bot extra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ggpft6EiUBqYxymZ3YS2Qf" name="lego-astro-bot-press-image" alt="Lego Astro Bot model on a table" src="https://cdn.mos.cms.futurecdn.net/ggpft6EiUBqYxymZ3YS2Qf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Lego)</span></figcaption></figure><p>As part of the Lego PlayStation’s launch, early buyers were able to get a small Astro Bot set for free, as part of Lego’s “gift with purchase” program. This model might be even cooler than the PlayStation console. The already-charming PlayStation mascot looks even more adorable in plastic brick form. </p><p>Sadly, as of now, the promotional period has ended, and the Lego Astro Bot is no longer available on Lego.com. However, your nearest physical Lego store might still have stock, and the Astro Bot set was made available for <a href="https://direct.playstation.com/en-us/buy-accessories/lego-astro-bot" target="_blank" rel="nofollow">purchase separately on PlayStation Direct for $24</a>.</p><p>It sold out super fast (no doubt scalpers are partially to blame), but I’m hoping Sony will restock, as I definitely want one of my own.</p><h2 id="should-you-buy-the-lego-playstation">Should you buy the Lego PlayStation?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QBGrCZ6Db57VK25Xg3jQqG" name="lego-playstation-feature-02" alt="Lego PlayStation model on a table with the box in the background" src="https://cdn.mos.cms.futurecdn.net/QBGrCZ6Db57VK25Xg3jQqG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>So, after spending most of my Sunday building a Lego PlayStation and a couple of days admiring it from my desk, is it a set worth picking up? </p><p>If you’re a dedicated PlayStation fan with heaps of nostalgia for the console that started it all, then <em>probably</em>. I should also note that the actual building process was intricate, but enjoyable throughout.</p><p>However, as a display piece, it’s perhaps not the most eye-catching model Lego has ever made. Remember, the PS1 was a console designed to sit underneath a television, so its grey box appearance is hardly striking. The Lego version faithfully recreates the machine’s iconic look, but to the uninformed eye, it just looks like a grey box. </p><p>Lego has definitely made some PlayStation-themed sets that are more aesthetically pleasing, like the awesome <a href="https://www.amazon.com/LEGO-Horizon-Forbidden-West-Accessories/dp/B09BNXXPPT/" target="_blank" rel="nofollow">Horizon Forbidden West: Tallneck set</a> (since retired, it's harder to find these days). But still, if you ever owned a PS1 console, this new set is a dose of pure nostalgia.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/lego-batman-legacy-of-the-dark-knight-review">Batman: Legacy of the Dark Knight is my new favorite Lego game</a></li><li><a href="https://www.tomsguide.com/entertainment/dont-believe-the-hate-legos-smart-brick-is-the-most-inventive-thing-the-company-has-done-in-years">I tried Lego's new Smart Brick — don't believe the hate</a></li><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026 — God of War, Spider-Man and more</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/playstation/i-spent-5-hours-building-the-new-lego-playstation-here-are-my-4-favorite-features</link>
                                                                            <description>
                            <![CDATA[ I spent my weekend wrapped in nostalgia as I built the new Lego PlayStation. But should you buy this 1,911-piece construction set? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2zcvEuT95J9gj5Jpv8Atxc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZUPDs9FfzxieQMHFMkUBaG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 06 Oct 2026 15:53:33 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Playstation]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZUPDs9FfzxieQMHFMkUBaG-1920-80.jpg">
                                                            <media:credit><![CDATA[Future / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Lego PlayStation model on a window stool]]></media:description>                                                            <media:text><![CDATA[Lego PlayStation model on a window stool]]></media:text>
                                <media:title type="plain"><![CDATA[Lego PlayStation model on a window stool]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZUPDs9FfzxieQMHFMkUBaG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The PlayStation (or PS1) was the very first console I owned, or should I say <em>shared</em>, as it belonged to my brother and me. It’s a video game system steeped in nostalgia, and what better way to bring back all those fond memories than building a PlayStation made out of Lego?</p><p>Last week, Sony sent me a Lego PlayStation, and over the weekend, I spent five hours putting it together brick-by-brick. Assembling the 1,911-piece set was a surprisingly calming experience. Certainly more relaxing than my youthful experience trying to beat some of the best PS1 games. As a young kid, my gaming skills were pretty appalling.</p><p>Once the final piece was in place — I made one mistake, which forced me to backtrack and redo a section — I admired my work and spent several minutes trying to find the perfect place to display the finished Lego model. My partner point-blank refused to have it in the living room, and so it’s taken up a spot on my home office windowsill instead.</p><p>Available for $179 / £139, it’s a great pick-up for any long-term PlayStation fan, particularly those who discovered their love of gaming in the PS1 era. But best of all, it’s not just a boxy Lego model; there are a few nifty little surprise features hidden within its iconic grey exterior. </p><div class="product"><a data-dimension112="5520d778-c18a-11f1-b3bd-6b6e9d2d648b" data-action="Deal Block" data-label="PlayStation" data-dimension48="PlayStation" data-dimension25="$179" href="https://www.lego.com/en-us/product/playstation-72306" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:75.92%;"><img id="o7tiftA4hihWEgJZpBcmB6" name="PlayStation" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/o7tiftA4hihWEgJZpBcmB6-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="911" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Lego PlayStation is a 1,900+ piece model set designed for grown-up builders. It recreates Sony's iconic video game console that kickstarted one of gaming's biggest brands in brick form and comes complete with a controller and a few surprise extras (spoilers for those below).<a class="view-deal button" href="https://www.lego.com/en-us/product/playstation-72306" target="_blank" rel="nofollow" data-dimension112="5520d778-c18a-11f1-b3bd-6b6e9d2d648b" data-action="Deal Block" data-label="PlayStation" data-dimension48="PlayStation" data-dimension25="$179">View Deal</a></p></div><h2 id="press-to-open">Press to open</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tC9QZ9prBSdjcommru6MmG" name="lego-playstation-feature-04" alt="Lego PlayStation model on a table with the box in the background" src="https://cdn.mos.cms.futurecdn.net/tC9QZ9prBSdjcommru6MmG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Modeled after the original PS1 (rather than the 2000s slim redesign), the Lego PlayStation does an admirable job replicating the real thing. This includes the top buttons actually functioning (well, “Power” and “Open” do; “Reset” is just a static plastic piece). Click “Power” and a small green piece will lift, simulating the console’s power indicator. However, it’s “Open” that is most novel; press it down, and the Lego PlayStation’s lid will rise just like the real thing. The buttons have a clickiness that feels very close to the actual console as well. </p><h2 id="two-hidden-ps1-dioramas">Two hidden PS1 dioramas</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vTCzbbPGLPPneVQRFNQdUG" name="lego-playstation-feature-05" alt="Lego PlayStation model on a table with the box in the background" src="https://cdn.mos.cms.futurecdn.net/vTCzbbPGLPPneVQRFNQdUG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Obviously, the Lego PlayStation can’t play PS1 games; it’s just a plastic model. So underneath the lid you won’t find a disc tray. Instead, there are two dioramas depicting scenes from fan-favorite PlayStation games, Gran Turismo and Ape Escape. </p><p>GT was an obvious choice; it’s the best-selling PS1 game of all time, but Ape Escape is a strange one. I’m not questioning its storied place in the PS1 library, but it was released specifically for the DualShock controller, which added dual analog sticks. The PS1 console given a Lego makeover is the launch model, with a pad lacking sticks.</p><p>Still, these miniature dioramas are a nice touch and can be pulled out of the console to be admired or displayed separately, if you wish. </p><h2 id="remember-wired-controllers">Remember wired controllers?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="czEDCnnv4ve4F9qDxWGwmG" name="lego-playstation-feature-03" alt="Lego PlayStation model showing the controller being plugged in" src="https://cdn.mos.cms.futurecdn.net/czEDCnnv4ve4F9qDxWGwmG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Anybody who grew up in an HD console world doesn’t know how good they’ve had it. Back in the day, wireless controllers were the stuff of science fiction movies. </p><p>The Lego PlayStation displays this; it comes with an original PS1 controller model connected via a rubber wire. Fortunately, the cable is short, so it won't get tangled and twisted as all my controllers did back in the 2000s. </p><p>Even better, the controller can be detached from the main model; just like the real thing, you can even swap it between the two front-facing ports. This reminded me of the (in)famous Psycho Mantis boss battle in Metal Gear Solid, which required you to swap the controller from Port 1 to Port 2 to prevent the telepathic foe from reading your button inputs. </p><h2 id="an-astro-bot-extra">An Astro Bot extra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ggpft6EiUBqYxymZ3YS2Qf" name="lego-astro-bot-press-image" alt="Lego Astro Bot model on a table" src="https://cdn.mos.cms.futurecdn.net/ggpft6EiUBqYxymZ3YS2Qf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Lego)</span></figcaption></figure><p>As part of the Lego PlayStation’s launch, early buyers were able to get a small Astro Bot set for free, as part of Lego’s “gift with purchase” program. This model might be even cooler than the PlayStation console. The already-charming PlayStation mascot looks even more adorable in plastic brick form. </p><p>Sadly, as of now, the promotional period has ended, and the Lego Astro Bot is no longer available on Lego.com. However, your nearest physical Lego store might still have stock, and the Astro Bot set was made available for <a href="https://direct.playstation.com/en-us/buy-accessories/lego-astro-bot" target="_blank" rel="nofollow">purchase separately on PlayStation Direct for $24</a>.</p><p>It sold out super fast (no doubt scalpers are partially to blame), but I’m hoping Sony will restock, as I definitely want one of my own.</p><h2 id="should-you-buy-the-lego-playstation">Should you buy the Lego PlayStation?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QBGrCZ6Db57VK25Xg3jQqG" name="lego-playstation-feature-02" alt="Lego PlayStation model on a table with the box in the background" src="https://cdn.mos.cms.futurecdn.net/QBGrCZ6Db57VK25Xg3jQqG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>So, after spending most of my Sunday building a Lego PlayStation and a couple of days admiring it from my desk, is it a set worth picking up? </p><p>If you’re a dedicated PlayStation fan with heaps of nostalgia for the console that started it all, then <em>probably</em>. I should also note that the actual building process was intricate, but enjoyable throughout.</p><p>However, as a display piece, it’s perhaps not the most eye-catching model Lego has ever made. Remember, the PS1 was a console designed to sit underneath a television, so its grey box appearance is hardly striking. The Lego version faithfully recreates the machine’s iconic look, but to the uninformed eye, it just looks like a grey box. </p><p>Lego has definitely made some PlayStation-themed sets that are more aesthetically pleasing, like the awesome <a href="https://www.amazon.com/LEGO-Horizon-Forbidden-West-Accessories/dp/B09BNXXPPT/" target="_blank" rel="nofollow">Horizon Forbidden West: Tallneck set</a> (since retired, it's harder to find these days). But still, if you ever owned a PS1 console, this new set is a dose of pure nostalgia.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/lego-batman-legacy-of-the-dark-knight-review">Batman: Legacy of the Dark Knight is my new favorite Lego game</a></li><li><a href="https://www.tomsguide.com/entertainment/dont-believe-the-hate-legos-smart-brick-is-the-most-inventive-thing-the-company-has-done-in-years">I tried Lego's new Smart Brick — don't believe the hate</a></li><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026 — God of War, Spider-Man and more</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve played every FIFA game since 2000 — here’s my verdict on EA Sports FC 27 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Another year, another installment in EA Sports' long-running FC series (a.k.a the franchise formerly known as FIFA). For football fans (or soccer supporters if you really must), diving into the latest version of the world’s best-selling sports simulator is an annual tradition.</p><p>EA Sports FC 27’s pre-launch marketing promised a series shake-up thanks to its new open-world mode, The Grounds (think NBA 2K’s The City but for football), alongside the usual tweaks, fresh features and upgrades to FC’s staple offerings like Career Mode and Ultimate Team. </p><p>I’ve been playing FC/FIFA annually for pretty much my entire life — as a long-suffering Newcastle United fan, it’s often been the only way to see my team actually win on the pitch — and after spending some time with EA Sports FC 27 on <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>, here’s my verdict on this year’s game.</p><div class="product"><a data-dimension112="e73f1e8e-be57-11f1-9c3f-b52900b423a2" data-action="Deal Block" data-label="FC 27 (Standard Edition)" data-dimension48="FC 27 (Standard Edition)" data-dimension25="$69" href="https://www.amazon.com/Standard-PlayStation5-Physical-VideoGame-PlayStation-5/dp/B0H9SYK5Q7/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:788px;"><p class="vanilla-image-block" style="padding-top:126.40%;"><img id="9Wm2Q9PvXqJ3gyjNRBs32a" name="ea-sports-fc-27-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9Wm2Q9PvXqJ3gyjNRBs32a-1920-80.jpg" mos="" align="middle" fullscreen="" width="788" height="996" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Standard-PlayStation5-Physical-VideoGame-PlayStation-5/dp/B0H9SYK5Q7/" target="_blank" rel="nofollow" data-dimension112="e73f1e8e-be57-11f1-9c3f-b52900b423a2" data-action="Deal Block" data-label="FC 27 (Standard Edition)" data-dimension48="FC 27 (Standard Edition)" data-dimension25="$69">FC 27 (Standard Edition): $69</a></strong><br />The latest installment in EA Sports' annual soccer simulation series, FC 27, adds the new The Grounds mode, alongside fan-requested upgrades to staple modes like Ultimate Team and Career Mode. While not every pain point has been fixed, it remains the most authentic recreation of the biggest sport on Earth you can play.<a class="view-deal button" href="https://www.amazon.com/Standard-PlayStation5-Physical-VideoGame-PlayStation-5/dp/B0H9SYK5Q7/" target="_blank" rel="nofollow" data-dimension112="e73f1e8e-be57-11f1-9c3f-b52900b423a2" data-action="Deal Block" data-label="FC 27 (Standard Edition)" data-dimension48="FC 27 (Standard Edition)" data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-the-good"><span>The good</span></h3><h2 id="the-grounds-is-the-closest-to-fifa-street-we-ll-get">The Grounds is the closest to FIFA Street we’ll get</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mYuREafHHqA8VdqUuBFMFP" name="ea-sports-fc-27-ps5-screenshot-05.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/mYuREafHHqA8VdqUuBFMFP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>Much to my disappointment, we may never get another full FIFA Street title. But at least we now have The Grounds. This open-world hub offers the chance to partake in small-sided games (1v1, 2v2 and 3v3) and mini-games, such as a soccer-themed spin on basketball. While not a mode anybody is likely to play for the whole season, it’s a great way to blow off some steam after a crushing UT defeat. However, the open-world aspects feel rather superfluous thanks to bland environments. I would even prefer its novel kickabout modes were accessed via a series of menus. Still, it’s a worthwhile inclusion, and the closest approximation of the retired FIFA Street subseries we’re likely to get anytime soon. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WVkLyO"></div>                            </div>                            <script src="https://kwizly.com/embed/WVkLyO.js" async=""></script><h2 id="career-mode-transfers-feel-more-authentic">Career mode transfers feel more authentic</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NoXnCBFHcFeBydQH8dxxCP" name="ea-sports-fc-27-ps5-screenshot-04.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/NoXnCBFHcFeBydQH8dxxCP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>The big upgrade to Career mode in FC 27 comes to the transfer market, and while it’s still not a perfect recreation of the real-life window, it’s definitely a step in the right direction. You now have a wealth of options to structure deals, including paying/receiving a percentage of the fee in installments, inserting a buy-back clause, or adding favorable bonus payments. It all serves to make transfers feel just a little more authentic. Granted, in my experience so far, other clubs seem reluctant to accept deals that aren’t just a single lump sum paid upfront.</p><h2 id="crossing-and-corners-have-been-reworked">Crossing and corners have been reworked</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HZA42p3Yecvu7CkcP3PHHP" name="ea-sports-fc-27-ps5-screenshot-01.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/HZA42p3Yecvu7CkcP3PHHP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>Last year, <a href="https://www.tomsguide.com/gaming/ea-sports-fc-26-review">EA Sports FC 26</a> introduced two gameplay presets: Competitive, designed for online play, and Authentic, for offline modes. This excellent upgrade has been retained, with FC 27 making smaller gameplay refinements. These are largely felt in the new corner mechanic — you set the corner taker’s aim/power and then control a player trying to meet the ball in the box — and crossing has also been altered, with less generous auto-targeting. You've got to earn those headers. These additions give you more control, which is appreciated.</p><h3 class="article-body__section" id="section-the-bad"><span>The bad</span></h3><h2 id="ultimate-team-still-wants-your-money">Ultimate Team (still) wants your money</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SwfN5VqTMDCYEy2axTfKGP" name="ea-sports-fc-27-ps5-screenshot-06.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/SwfN5VqTMDCYEy2axTfKGP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>In basically any FC write-up, it’s almost customary for the author to grumble a bit about Ultimate Team, the series most-played and most cash-hungry mode. FC 27’s new feature is The Gallery, letting you proudly display your virtual player cards and unlock new rewards. But the bones of UT are largely unchanged. It’s a mode ruled by pay-to-win systems that reward those willing to fork over additional cash on pricey microtransactions, and that seemingly won’t ever change.</p><h2 id="goalkeepers-have-forgotten-how-to-save">Goalkeepers have forgotten how to save</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j9fP8Ejkr9ZdDJBAHgxwEP" name="ea-sports-fc-27-ps5-screenshot-02.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/j9fP8Ejkr9ZdDJBAHgxwEP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>Blaming the goalkeeper when you concede is an age-old FIFA/FC tradition. After all, in a standard match, it’s the sole position you don’t control. But even with the caveat that many "goalkeeper blunders" are more the fault of poor defensive play, in FC 27, goalkeepers seem particularly susceptible to producing howlers. Keepers will often parry the ball rather than catch it, or tip it around the posts, leading to a simple tap-in for the on-rushing opposition. Of course, a keeper palming the ball back into danger isn’t exactly rare in real-life soccer, but the frequency of this occurrence in FC 27 has had me cursing out my keeper more than usual. </p><h3 class="article-body__section" id="section-the-ugly"><span>The ugly</span></h3><h2 id="menus-remain-an-eyesore">Menus remain an eyesore</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HTd7RSYV9fsNiaLMUbhH8P" name="ea-sports-fc-27-ps5-screenshot-03.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/HTd7RSYV9fsNiaLMUbhH8P-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>For years now, I’ve booted up each new FC with my fingers crossed that the UI and menus will be overhauled. Every year, I’m left disappointed. It’s no exaggeration to say the menu system is atrocious. Menus are sluggish, prone to glitching, a nightmare of negative space, and often demand multiple clicks to perform actions that should be done in one. In a sports game where tabbing through menus and submenus is something you do a lot, it’s ludicrous how the situation hasn’t been earmarked for major improvement. I can only hope that when EA Sports FC 28 rolls around, this is one compliment that is <em>finally</em> resolved. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/sports/watch-premier-league-2026-27-tv-guide">How to watch Premier League 2026-27</a></li><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port">Witcher 3 Remastered on Switch 2 is a huge upgrade</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/ive-played-every-fifa-game-since-2000-heres-my-verdict-on-ea-sports-fc-27</link>
                                                                            <description>
                            <![CDATA[ EA Sports FC 27 adds a major new mode, but while The Grounds is a great time, long-standing issues with the soccer sim remain. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">R6rFBCa9ErJiw4ikqn4BGW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rqS6R5s2TyLE7PtAURMVge-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 04 Oct 2026 11:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rqS6R5s2TyLE7PtAURMVge-1920-80.jpg">
                                                            <media:credit><![CDATA[EA Sports]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[EA Sports FC 27 screenshot showing Kylian Mbappé of Real Madrid]]></media:description>                                                            <media:text><![CDATA[EA Sports FC 27 screenshot showing Kylian Mbappé of Real Madrid]]></media:text>
                                <media:title type="plain"><![CDATA[EA Sports FC 27 screenshot showing Kylian Mbappé of Real Madrid]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rqS6R5s2TyLE7PtAURMVge-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Another year, another installment in EA Sports' long-running FC series (a.k.a the franchise formerly known as FIFA). For football fans (or soccer supporters if you really must), diving into the latest version of the world’s best-selling sports simulator is an annual tradition.</p><p>EA Sports FC 27’s pre-launch marketing promised a series shake-up thanks to its new open-world mode, The Grounds (think NBA 2K’s The City but for football), alongside the usual tweaks, fresh features and upgrades to FC’s staple offerings like Career Mode and Ultimate Team. </p><p>I’ve been playing FC/FIFA annually for pretty much my entire life — as a long-suffering Newcastle United fan, it’s often been the only way to see my team actually win on the pitch — and after spending some time with EA Sports FC 27 on <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>, here’s my verdict on this year’s game.</p><div class="product"><a data-dimension112="e73f1e8e-be57-11f1-9c3f-b52900b423a2" data-action="Deal Block" data-label="FC 27 (Standard Edition)" data-dimension48="FC 27 (Standard Edition)" data-dimension25="$69" href="https://www.amazon.com/Standard-PlayStation5-Physical-VideoGame-PlayStation-5/dp/B0H9SYK5Q7/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:788px;"><p class="vanilla-image-block" style="padding-top:126.40%;"><img id="9Wm2Q9PvXqJ3gyjNRBs32a" name="ea-sports-fc-27-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9Wm2Q9PvXqJ3gyjNRBs32a-1920-80.jpg" mos="" align="middle" fullscreen="" width="788" height="996" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Standard-PlayStation5-Physical-VideoGame-PlayStation-5/dp/B0H9SYK5Q7/" target="_blank" rel="nofollow" data-dimension112="e73f1e8e-be57-11f1-9c3f-b52900b423a2" data-action="Deal Block" data-label="FC 27 (Standard Edition)" data-dimension48="FC 27 (Standard Edition)" data-dimension25="$69">FC 27 (Standard Edition): $69</a></strong><br />The latest installment in EA Sports' annual soccer simulation series, FC 27, adds the new The Grounds mode, alongside fan-requested upgrades to staple modes like Ultimate Team and Career Mode. While not every pain point has been fixed, it remains the most authentic recreation of the biggest sport on Earth you can play.<a class="view-deal button" href="https://www.amazon.com/Standard-PlayStation5-Physical-VideoGame-PlayStation-5/dp/B0H9SYK5Q7/" target="_blank" rel="nofollow" data-dimension112="e73f1e8e-be57-11f1-9c3f-b52900b423a2" data-action="Deal Block" data-label="FC 27 (Standard Edition)" data-dimension48="FC 27 (Standard Edition)" data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-the-good"><span>The good</span></h3><h2 id="the-grounds-is-the-closest-to-fifa-street-we-ll-get">The Grounds is the closest to FIFA Street we’ll get</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mYuREafHHqA8VdqUuBFMFP" name="ea-sports-fc-27-ps5-screenshot-05.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/mYuREafHHqA8VdqUuBFMFP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>Much to my disappointment, we may never get another full FIFA Street title. But at least we now have The Grounds. This open-world hub offers the chance to partake in small-sided games (1v1, 2v2 and 3v3) and mini-games, such as a soccer-themed spin on basketball. While not a mode anybody is likely to play for the whole season, it’s a great way to blow off some steam after a crushing UT defeat. However, the open-world aspects feel rather superfluous thanks to bland environments. I would even prefer its novel kickabout modes were accessed via a series of menus. Still, it’s a worthwhile inclusion, and the closest approximation of the retired FIFA Street subseries we’re likely to get anytime soon. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WVkLyO"></div>                            </div>                            <script src="https://kwizly.com/embed/WVkLyO.js" async=""></script><h2 id="career-mode-transfers-feel-more-authentic">Career mode transfers feel more authentic</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NoXnCBFHcFeBydQH8dxxCP" name="ea-sports-fc-27-ps5-screenshot-04.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/NoXnCBFHcFeBydQH8dxxCP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>The big upgrade to Career mode in FC 27 comes to the transfer market, and while it’s still not a perfect recreation of the real-life window, it’s definitely a step in the right direction. You now have a wealth of options to structure deals, including paying/receiving a percentage of the fee in installments, inserting a buy-back clause, or adding favorable bonus payments. It all serves to make transfers feel just a little more authentic. Granted, in my experience so far, other clubs seem reluctant to accept deals that aren’t just a single lump sum paid upfront.</p><h2 id="crossing-and-corners-have-been-reworked">Crossing and corners have been reworked</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HZA42p3Yecvu7CkcP3PHHP" name="ea-sports-fc-27-ps5-screenshot-01.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/HZA42p3Yecvu7CkcP3PHHP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>Last year, <a href="https://www.tomsguide.com/gaming/ea-sports-fc-26-review">EA Sports FC 26</a> introduced two gameplay presets: Competitive, designed for online play, and Authentic, for offline modes. This excellent upgrade has been retained, with FC 27 making smaller gameplay refinements. These are largely felt in the new corner mechanic — you set the corner taker’s aim/power and then control a player trying to meet the ball in the box — and crossing has also been altered, with less generous auto-targeting. You've got to earn those headers. These additions give you more control, which is appreciated.</p><h3 class="article-body__section" id="section-the-bad"><span>The bad</span></h3><h2 id="ultimate-team-still-wants-your-money">Ultimate Team (still) wants your money</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SwfN5VqTMDCYEy2axTfKGP" name="ea-sports-fc-27-ps5-screenshot-06.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/SwfN5VqTMDCYEy2axTfKGP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>In basically any FC write-up, it’s almost customary for the author to grumble a bit about Ultimate Team, the series most-played and most cash-hungry mode. FC 27’s new feature is The Gallery, letting you proudly display your virtual player cards and unlock new rewards. But the bones of UT are largely unchanged. It’s a mode ruled by pay-to-win systems that reward those willing to fork over additional cash on pricey microtransactions, and that seemingly won’t ever change.</p><h2 id="goalkeepers-have-forgotten-how-to-save">Goalkeepers have forgotten how to save</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j9fP8Ejkr9ZdDJBAHgxwEP" name="ea-sports-fc-27-ps5-screenshot-02.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/j9fP8Ejkr9ZdDJBAHgxwEP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>Blaming the goalkeeper when you concede is an age-old FIFA/FC tradition. After all, in a standard match, it’s the sole position you don’t control. But even with the caveat that many "goalkeeper blunders" are more the fault of poor defensive play, in FC 27, goalkeepers seem particularly susceptible to producing howlers. Keepers will often parry the ball rather than catch it, or tip it around the posts, leading to a simple tap-in for the on-rushing opposition. Of course, a keeper palming the ball back into danger isn’t exactly rare in real-life soccer, but the frequency of this occurrence in FC 27 has had me cursing out my keeper more than usual. </p><h3 class="article-body__section" id="section-the-ugly"><span>The ugly</span></h3><h2 id="menus-remain-an-eyesore">Menus remain an eyesore</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HTd7RSYV9fsNiaLMUbhH8P" name="ea-sports-fc-27-ps5-screenshot-03.JPG" alt="EA Sports FC 27 screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/HTd7RSYV9fsNiaLMUbhH8P-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: EA Sports)</span></figcaption></figure><p>For years now, I’ve booted up each new FC with my fingers crossed that the UI and menus will be overhauled. Every year, I’m left disappointed. It’s no exaggeration to say the menu system is atrocious. Menus are sluggish, prone to glitching, a nightmare of negative space, and often demand multiple clicks to perform actions that should be done in one. In a sports game where tabbing through menus and submenus is something you do a lot, it’s ludicrous how the situation hasn’t been earmarked for major improvement. I can only hope that when EA Sports FC 28 rolls around, this is one compliment that is <em>finally</em> resolved. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/sports/watch-premier-league-2026-27-tv-guide">How to watch Premier League 2026-27</a></li><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port">Witcher 3 Remastered on Switch 2 is a huge upgrade</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Ace Combat 8 is high-flying aerial combat perfection that's more exhilarating than 'Top Gun' — despite its unavoidable contradictions ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Ace Combat series is a study in contradiction: it has some of the most meticulously rendered fighter jets you’ll see outside of actual flight simulators, but it tosses aside real-world geopolitics and loads its fighters with an impossible number of missiles. </p><p>You’ll take off and land from aircraft carriers and carefully consider your armaments before a mission, but those missions take more inspiration from "Star Wars" and "Godzilla" movies than real-world dogfights. And while I’ve never really had a problem with “gun violence” in a video game, it’s hard to avoid the cognitive dissonance of enjoying these billion-dollar weapons of war.</p><p>And yet, I cannot deny that Ace Combat 8: Wings of Theve is transcendent, not for the story or mechanical accuracy, but for how it feels. Though you can pair the game with a joystick and throttle, the game is made for a controller. Absolutely nothing is lost between your fingers, the controller, and the jet on screen. It’s perfect.</p><div class="product"><a data-dimension112="20b13e5a-be7a-11f1-93ee-b1ff6bead646" data-action="Deal Block" data-label="Wings of Theve" data-dimension48="Wings of Theve" data-dimension25="$69" href="https://www.amazon.com/ACE-COMBAT-WINGS-DELUXE-PlayStation-5/dp/B0GZ4Z6QWM/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="6KU7bBx8zVf6JjCgFs3NoY" name="ace-combat-8-wings-of-theve-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6KU7bBx8zVf6JjCgFs3NoY-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Step into the cockpit, take flight, and prepare for battle in Ace Combat 8: Wings of Theve, the latest installment in the popular aerial combat franchise. Boasting a full single-player campaign and the series largest suite of online modes to date, not to mention stunning visuals and sounds, it's the complete Ace Combat package. <br /><strong>Additional platforms:</strong> <a href="https://www.xbox.com/en-US/games/store/ace-combat-8-wings-of-theve/9nt1n9zvhxjk" target="_blank" rel="nofollow" data-dimension112="20b13e5a-be7a-11f1-93ee-b1ff6bead646" data-action="Deal Block" data-label="Wings of Theve" data-dimension48="Wings of Theve" data-dimension25="$69"><strong>$69 @ Xbox Store</strong></a><strong> | </strong><a href="https://store.steampowered.com/app/2288340/ACE_COMBAT_8_WINGS_OF_THEVE/" target="_blank" rel="nofollow"><strong>$69 @ Steam</strong></a><a class="view-deal button" href="https://www.amazon.com/ACE-COMBAT-WINGS-DELUXE-PlayStation-5/dp/B0GZ4Z6QWM/" target="_blank" rel="nofollow" data-dimension112="20b13e5a-be7a-11f1-93ee-b1ff6bead646" data-action="Deal Block" data-label="Wings of Theve" data-dimension48="Wings of Theve" data-dimension25="$69">View Deal</a></p></div><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/F54vGYxj0ts" allowfullscreen=""></iframe></div></div><h3 class="article-body__section" id="section-story-and-characters"><span>Story and characters</span></h3><p>Ace Combat 7 did a lot to make the series more approachable, and the same is true in Wings of Theve. While an over-the-top cutscene at the start of the game introduces you to the world and its characters, a well-designed tutorial gets you flying in no time. You can also choose a more story-focused difficulty, while Aces can still give themselves a challenge.</p><p>Speaking of story, don’t expect anything remotely based on real-world conflicts. Ace Combat 8’s world is fictional and filled with vaguely familiar countries like the Federation of Central Usea and the nation of Sotoa.  War here is straightforward, with good guys and bad guys. There are gestures towards a sinister corporation pulling the strings behind the scenes, and an even stranger digression about social media, but it doesn’t change how focused the story is on your team’s heroism.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LUnuiVTC5do2Qs6MrQ8WnA" name="ace-combat-8-wings-of-theve-screenshot-02" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/LUnuiVTC5do2Qs6MrQ8WnA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>No doubt taking a page from "Top Gun: Maverick," Ace Combat 8 delivers much of its story through cockpit cameras and radio chatter while your team is flying. Your desperate country is putting anyone they can in the pilot’s seat, including a plucky pink-haired teenager and a glasses-wearing semi-retired teacher. </p><p>You’ll encounter grizzled, circumspect pilots and monologuing villains, so even as the campaign spans a continent and more than 30 missions, the story feels grounded and intimate, if a little silly. If you’re looking for an introspective exploration of deadly but beautiful flying weapons of war, you’re not going to find it here: may I instead suggest The Wind Rises?</p><h3 class="article-body__section" id="section-gameplay-and-missions"><span>Gameplay and missions</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="W9wkXuaic8oSpBUhapLRfA" name="ace-combat-8-wings-of-theve-screenshot-04" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/W9wkXuaic8oSpBUhapLRfA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>Even while the countries are different, the game makes use of actual fighter jets, just completely disconnected from the real-world history that built them. And that’s not their only contradiction: you can take well over 100 missiles into combat, and the flight characteristics are more akin to flying a video game spaceship than a genuine flight simulator. It’s difficult to actually cause a stall, and you’ll be looping and barrel rolling in no time. This is what defines Ace Combat: less of a focus on realistic flying in favor of making it feel awesome.</p><p>And anyway, you can’t really afford to be thinking about much else while you play. Few games can completely demand your attention like Ace Combat 8. It requires that you lock in and focus lest you get blasted out of the sky. During each 15-30 minute mission, you’ll be juggling aerial dogfighting, strikes on ground objectives, escorting defenseless allies, and taking on mini-boss-style enemies.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NfBcg99rXveZBqivsQWfeA" name="ace-combat-8-wings-of-theve-screenshot-05" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/NfBcg99rXveZBqivsQWfeA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>There’s little time to slow down: your field of view is quickly consumed by enemy lock-ons and target objectives. Dodging a missile requires you to pull off a mid-air drift. It sounds tricky, but it’s not hard to pull off so long as you keep your air speed up. Slowing down isn’t an option. You’ll bank, weave and roll to avoid getting hit as you line up targets and release your payload: it’s simply a rush.</p><p>It helps that the missions feel less like they are modeled on real-world wars, and more on blockbuster films. You’ll take on a monstrous “land battleship” in a fight that reminded me of "Shin Godzilla’s" explosive finale, and another basically has you recreate the Death Star “trench run” with your fighter jet. Even the escort missions, where you’re tasked with defending landing ships or a plane full of refugees, are tuned to feel action-packed instead of an annoying chore. </p><h3 class="article-body__section" id="section-visuals-and-sound"><span>Visuals and sound</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="G3NPEPupF6GkS87uv7cncA" name="ace-combat-8-wings-of-theve-screenshot-06" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/G3NPEPupF6GkS87uv7cncA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>Of course, it wouldn’t be Ace Combat without a boisterous orchestral score. Returning composer Keiki Kobayashi delivers the goods with a rocking soundtrack that elevates the aerial combat to transcendent heights. Few moments in video games feel as good as weaving through enemy fire to land the final blow on a giant flying airbase just as the music crescendos. </p><p>The series has also never looked better, with photorealistic jets and expansive environments. Maps are larger than ever, and it feels as though the team is flexing when it comes to the number of enemies and allies that participate in battle simultaneously. Even the first-person cutscenes are impressive, though sometimes the characters can feel like they’re just on the other side of the uncanny valley.</p><p>The new volumetric cloud tech is also phenomenal, rendering distant puffy clouds, wispy mists, and imposing thunderheads with such impressive detail you’ll practically feel chills flying through them – in fact, if you’re not careful, your jet will ice up! You can also finally use an ultrawide monitor, though much of the UI still hangs out in the center of the screen.</p><h3 class="article-body__section" id="section-upgrades-and-unlockables"><span>Upgrades and unlockables</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SNzYPvJnp8fGPZQESUbffA" name="ace-combat-8-wings-of-theve-screenshot-01" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/SNzYPvJnp8fGPZQESUbffA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>As you make your way through the game, you’ll earn MRP, which you can spend to unlock new jets, weapons, and upgrades. You’ll even need to weigh purchasing extra jets for your teammates, giving you even more control over what they bring into a mission at the cost of your own upgrades.  </p><p>If the game wasn’t so fun to play, I might be more annoyed at how expensive the upgrades are and how large the tech tree is, but it’s actually just a great incentive to replay the campaign. What did slightly annoy me was a series of mid-game missions suddenly restricting me to aircraft carrier-only planes, so don’t make my mistake!</p><p>Ace Combat 8: Wings of Theve’s contradictions don’t weigh it down. If anything, they’re what make the series so uniquely fun to play. It skilfully balances realism, accessibility, and excitement to create the perfect aerial combat game.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/i-played-gears-of-war-e-day-on-pc-with-nvidias-rtx-mega-geometry-and-the-xbox-franchise-has-never-looked-better">I played Gears of War: E-Day with Nvidia's RTX Mega Geometry</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port">Witcher 3 Remastered on Switch 2 is a huge upgrade</a></li><li><a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">The best gaming PC of 2026: Powerful, prebuilt and fully tested</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/ace-combat-8-is-high-flying-aerial-combat-perfection-thats-more-exhilarating-than-top-gun-despite-its-unavoidable-contradictions</link>
                                                                            <description>
                            <![CDATA[ Ace Combat 8: Wings of Theve is the latest entry in the long-running aerial combat series, and it might be the best one yet. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vAUJs6ySBhu6bbnq4xw6fa</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YwFsWVxZbwNFSrWTuZSUnA-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 03 Oct 2026 10:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Clayton Ashley ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YwFsWVxZbwNFSrWTuZSUnA-1920-80.jpg">
                                                            <media:credit><![CDATA[Bandai Namco Entertainment / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Ace Combat 8: Wings of Theve screenshot captured on PC]]></media:description>                                                            <media:text><![CDATA[Ace Combat 8: Wings of Theve screenshot captured on PC]]></media:text>
                                <media:title type="plain"><![CDATA[Ace Combat 8: Wings of Theve screenshot captured on PC]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YwFsWVxZbwNFSrWTuZSUnA-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Ace Combat series is a study in contradiction: it has some of the most meticulously rendered fighter jets you’ll see outside of actual flight simulators, but it tosses aside real-world geopolitics and loads its fighters with an impossible number of missiles. </p><p>You’ll take off and land from aircraft carriers and carefully consider your armaments before a mission, but those missions take more inspiration from "Star Wars" and "Godzilla" movies than real-world dogfights. And while I’ve never really had a problem with “gun violence” in a video game, it’s hard to avoid the cognitive dissonance of enjoying these billion-dollar weapons of war.</p><p>And yet, I cannot deny that Ace Combat 8: Wings of Theve is transcendent, not for the story or mechanical accuracy, but for how it feels. Though you can pair the game with a joystick and throttle, the game is made for a controller. Absolutely nothing is lost between your fingers, the controller, and the jet on screen. It’s perfect.</p><div class="product"><a data-dimension112="20b13e5a-be7a-11f1-93ee-b1ff6bead646" data-action="Deal Block" data-label="Wings of Theve" data-dimension48="Wings of Theve" data-dimension25="$69" href="https://www.amazon.com/ACE-COMBAT-WINGS-DELUXE-PlayStation-5/dp/B0GZ4Z6QWM/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="6KU7bBx8zVf6JjCgFs3NoY" name="ace-combat-8-wings-of-theve-ps5-na-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6KU7bBx8zVf6JjCgFs3NoY-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>Step into the cockpit, take flight, and prepare for battle in Ace Combat 8: Wings of Theve, the latest installment in the popular aerial combat franchise. Boasting a full single-player campaign and the series largest suite of online modes to date, not to mention stunning visuals and sounds, it's the complete Ace Combat package. <br /><strong>Additional platforms:</strong> <a href="https://www.xbox.com/en-US/games/store/ace-combat-8-wings-of-theve/9nt1n9zvhxjk" target="_blank" rel="nofollow" data-dimension112="20b13e5a-be7a-11f1-93ee-b1ff6bead646" data-action="Deal Block" data-label="Wings of Theve" data-dimension48="Wings of Theve" data-dimension25="$69"><strong>$69 @ Xbox Store</strong></a><strong> | </strong><a href="https://store.steampowered.com/app/2288340/ACE_COMBAT_8_WINGS_OF_THEVE/" target="_blank" rel="nofollow"><strong>$69 @ Steam</strong></a><a class="view-deal button" href="https://www.amazon.com/ACE-COMBAT-WINGS-DELUXE-PlayStation-5/dp/B0GZ4Z6QWM/" target="_blank" rel="nofollow" data-dimension112="20b13e5a-be7a-11f1-93ee-b1ff6bead646" data-action="Deal Block" data-label="Wings of Theve" data-dimension48="Wings of Theve" data-dimension25="$69">View Deal</a></p></div><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/F54vGYxj0ts" allowfullscreen=""></iframe></div></div><h3 class="article-body__section" id="section-story-and-characters"><span>Story and characters</span></h3><p>Ace Combat 7 did a lot to make the series more approachable, and the same is true in Wings of Theve. While an over-the-top cutscene at the start of the game introduces you to the world and its characters, a well-designed tutorial gets you flying in no time. You can also choose a more story-focused difficulty, while Aces can still give themselves a challenge.</p><p>Speaking of story, don’t expect anything remotely based on real-world conflicts. Ace Combat 8’s world is fictional and filled with vaguely familiar countries like the Federation of Central Usea and the nation of Sotoa.  War here is straightforward, with good guys and bad guys. There are gestures towards a sinister corporation pulling the strings behind the scenes, and an even stranger digression about social media, but it doesn’t change how focused the story is on your team’s heroism.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LUnuiVTC5do2Qs6MrQ8WnA" name="ace-combat-8-wings-of-theve-screenshot-02" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/LUnuiVTC5do2Qs6MrQ8WnA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>No doubt taking a page from "Top Gun: Maverick," Ace Combat 8 delivers much of its story through cockpit cameras and radio chatter while your team is flying. Your desperate country is putting anyone they can in the pilot’s seat, including a plucky pink-haired teenager and a glasses-wearing semi-retired teacher. </p><p>You’ll encounter grizzled, circumspect pilots and monologuing villains, so even as the campaign spans a continent and more than 30 missions, the story feels grounded and intimate, if a little silly. If you’re looking for an introspective exploration of deadly but beautiful flying weapons of war, you’re not going to find it here: may I instead suggest The Wind Rises?</p><h3 class="article-body__section" id="section-gameplay-and-missions"><span>Gameplay and missions</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="W9wkXuaic8oSpBUhapLRfA" name="ace-combat-8-wings-of-theve-screenshot-04" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/W9wkXuaic8oSpBUhapLRfA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>Even while the countries are different, the game makes use of actual fighter jets, just completely disconnected from the real-world history that built them. And that’s not their only contradiction: you can take well over 100 missiles into combat, and the flight characteristics are more akin to flying a video game spaceship than a genuine flight simulator. It’s difficult to actually cause a stall, and you’ll be looping and barrel rolling in no time. This is what defines Ace Combat: less of a focus on realistic flying in favor of making it feel awesome.</p><p>And anyway, you can’t really afford to be thinking about much else while you play. Few games can completely demand your attention like Ace Combat 8. It requires that you lock in and focus lest you get blasted out of the sky. During each 15-30 minute mission, you’ll be juggling aerial dogfighting, strikes on ground objectives, escorting defenseless allies, and taking on mini-boss-style enemies.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NfBcg99rXveZBqivsQWfeA" name="ace-combat-8-wings-of-theve-screenshot-05" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/NfBcg99rXveZBqivsQWfeA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>There’s little time to slow down: your field of view is quickly consumed by enemy lock-ons and target objectives. Dodging a missile requires you to pull off a mid-air drift. It sounds tricky, but it’s not hard to pull off so long as you keep your air speed up. Slowing down isn’t an option. You’ll bank, weave and roll to avoid getting hit as you line up targets and release your payload: it’s simply a rush.</p><p>It helps that the missions feel less like they are modeled on real-world wars, and more on blockbuster films. You’ll take on a monstrous “land battleship” in a fight that reminded me of "Shin Godzilla’s" explosive finale, and another basically has you recreate the Death Star “trench run” with your fighter jet. Even the escort missions, where you’re tasked with defending landing ships or a plane full of refugees, are tuned to feel action-packed instead of an annoying chore. </p><h3 class="article-body__section" id="section-visuals-and-sound"><span>Visuals and sound</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="G3NPEPupF6GkS87uv7cncA" name="ace-combat-8-wings-of-theve-screenshot-06" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/G3NPEPupF6GkS87uv7cncA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>Of course, it wouldn’t be Ace Combat without a boisterous orchestral score. Returning composer Keiki Kobayashi delivers the goods with a rocking soundtrack that elevates the aerial combat to transcendent heights. Few moments in video games feel as good as weaving through enemy fire to land the final blow on a giant flying airbase just as the music crescendos. </p><p>The series has also never looked better, with photorealistic jets and expansive environments. Maps are larger than ever, and it feels as though the team is flexing when it comes to the number of enemies and allies that participate in battle simultaneously. Even the first-person cutscenes are impressive, though sometimes the characters can feel like they’re just on the other side of the uncanny valley.</p><p>The new volumetric cloud tech is also phenomenal, rendering distant puffy clouds, wispy mists, and imposing thunderheads with such impressive detail you’ll practically feel chills flying through them – in fact, if you’re not careful, your jet will ice up! You can also finally use an ultrawide monitor, though much of the UI still hangs out in the center of the screen.</p><h3 class="article-body__section" id="section-upgrades-and-unlockables"><span>Upgrades and unlockables</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SNzYPvJnp8fGPZQESUbffA" name="ace-combat-8-wings-of-theve-screenshot-01" alt="Ace Combat 8: Wings of Theve screenshot captured on PC" src="https://cdn.mos.cms.futurecdn.net/SNzYPvJnp8fGPZQESUbffA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Tom's Guide)</span></figcaption></figure><p>As you make your way through the game, you’ll earn MRP, which you can spend to unlock new jets, weapons, and upgrades. You’ll even need to weigh purchasing extra jets for your teammates, giving you even more control over what they bring into a mission at the cost of your own upgrades.  </p><p>If the game wasn’t so fun to play, I might be more annoyed at how expensive the upgrades are and how large the tech tree is, but it’s actually just a great incentive to replay the campaign. What did slightly annoy me was a series of mid-game missions suddenly restricting me to aircraft carrier-only planes, so don’t make my mistake!</p><p>Ace Combat 8: Wings of Theve’s contradictions don’t weigh it down. If anything, they’re what make the series so uniquely fun to play. It skilfully balances realism, accessibility, and excitement to create the perfect aerial combat game.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/i-played-gears-of-war-e-day-on-pc-with-nvidias-rtx-mega-geometry-and-the-xbox-franchise-has-never-looked-better">I played Gears of War: E-Day with Nvidia's RTX Mega Geometry</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port">Witcher 3 Remastered on Switch 2 is a huge upgrade</a></li><li><a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">The best gaming PC of 2026: Powerful, prebuilt and fully tested</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Today's Wordle is a 'devious' puzzle: why the October 3 word could ruin your streak ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Today's Wordle puzzle is so "devious" as our puzzle expert described it, that there's no shame in using a <a href="https://www.tomsguide.com/news/what-is-todays-wordle-answer">Wordle hint</a> to find the solution. Why? Because the October 3rd answer is one of the toughest this year.</p><p>According to the New York Times' <a href="https://www.nytimes.com/interactive/2022/upshot/wordle-bot.html" target="_blank">WordleBot</a>, the average player completes today's puzzle in 4.5 moves in easy mode, or 4.4 if playing by hard rules. It's not quite as brutal as this <a href="https://www.tomsguide.com/gaming/the-hardest-and-most-unfair-ive-done-in-all-my-years-why-july-15s-brutal-wordle-answer-could-be-your-streak-killer#viafoura-comments">Wordle from July</a>, but it's close.</p><p>Don't be afraid to grab a helping by reading our article on <a href="https://www.tomsguide.com/news/what-is-todays-wordle-answer">today's Wordle hint right here,</a> as well as some of the <a href="https://www.tomsguide.com/news/best-wordle-start-words">best start words</a> to try. Meanwhile, I'm going to explain why today's answer is an irritant below, plus a full answer reveal (with a spoiler warning). </p><p>If you haven't played yet, good luck and good spelling!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XpBk0W"></div>                            </div>                            <script src="https://kwizly.com/embed/XpBk0W.js" async=""></script><h3 class="article-body__section" id="section-what-makes-today-s-wordle-answer-difficult"><span>What makes today's Wordle answer difficult?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5111px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NPzTPqZfY4tCsCRPbVkgNG" name="GettyImages-1840974451" alt="A person holding a phone showing a game of Wordle on the screen" src="https://cdn.mos.cms.futurecdn.net/NPzTPqZfY4tCsCRPbVkgNG-1920-80.jpg" mos="" align="middle" fullscreen="" width="5111" height="2875" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Unlike other hard Wordles that are usually uncommon words, today's word is one you've likely used today, especially if you were quite annoyed. </p><p>However, what makes the puzzle tricky are the letters themselves. For one, two of the letters are, as our expert noted, some of the rarest in Wordle. One of them is the 5th rarest letter over the more than 1,900 Wordle puzzles to date. The usual trick of trying popular letters like R, N or T will not be helpful today</p><p>Second, today's answer contains only one vowel, but it's repeated three times! Double repeats are tricky enough, but a triple one feels especially devious. So if you use a vowel heavy starting word like ADIEU, you're only going to get a single yellow and perhaps not much of a clue which direction to go.</p><p>Ready to find out? Scroll past the spoiler warning below to see.</p><h3 class="article-body__section" id="section-october-3-s-wordle-answer"><span>October 3's Wordle answer</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:14.80%;"><img id="RwL3YyVckXDVdL49DSRXii" name="TG_Spoiler-Warning_2022.jpg" alt="An image indicating spoilers are ahead." src="https://cdn.mos.cms.futurecdn.net/RwL3YyVckXDVdL49DSRXii-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="296" attribution="" endorsement="" class="inline" /></p></div></div></figure><p>So, what's the answer to today's tricky Wordle #1,932?</p><p>Drumroll, please... today's Wordle is "<strong>Peeve</strong>."</p><p>Like I said, you might even be peeved by today's puzzle. According to <a href="https://www.merriam-webster.com/dictionary/peeve" target="_blank">Merriam-Webster</a>, peeve refers to a "particular grievance or source of annoyance" or a "feeling or mood of resentment."</p><p>Surprisingly, peeve is a somewhat younger word, having first been used in 1901 as a verb and 1909 as a noun.</p><p>If you've taken a look at our <a href="https://www.tomsguide.com/news/what-is-todays-wordle-answer">daily Wordle hints page</a>, you'll know how tough our seasoned player, Alan Martin, found today's answer:</p><p>"A devious one today, and not just because of the rare triple letter," he wrote. It's so tricky he reached out before New Zealand was even awake to let us know that today was going to be a tough one.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/i-analysed-every-wordle-answer-to-look-for-patterns-heres-what-i-found">I analyzed every Wordle answer to look for patterns</a></li><li><a href="https://www.tomsguide.com/opinion/this-wordle-trick-kept-my-streak-going-and-youll-probably-hate-it">This Wordle trick kept my streak going — and you'll probably hate it</a></li><li><a href="https://www.tomsguide.com/news/best-wordle-start-words">Best Wordle start words to help you keep your streak</a></li></ul><div data-model-name="Get Better At Wordle" data-widget-type="peacock" data-widget-title="Get better at Wordle!"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/todays-wordle-is-a-devious-puzzle-why-the-october-3-word-could-ruin-your-streak</link>
                                                                            <description>
                            <![CDATA[ The Worlde puzzle for October 3 is one of the hardest ones we've seen in a while. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jo3tzUXpY6mVJrZAwxd55i</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AjQJKSmP8NoQqcNkmbmQ6P-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 03 Oct 2026 05:00:00 +0000</pubDate>                                                                                                                                <updated>Sat, 03 Oct 2026 11:10:33 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AjQJKSmP8NoQqcNkmbmQ6P-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Wordle on a smartphone, held in a hand]]></media:description>                                                            <media:text><![CDATA[Wordle on a smartphone, held in a hand]]></media:text>
                                <media:title type="plain"><![CDATA[Wordle on a smartphone, held in a hand]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AjQJKSmP8NoQqcNkmbmQ6P-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Today's Wordle puzzle is so "devious" as our puzzle expert described it, that there's no shame in using a <a href="https://www.tomsguide.com/news/what-is-todays-wordle-answer">Wordle hint</a> to find the solution. Why? Because the October 3rd answer is one of the toughest this year.</p><p>According to the New York Times' <a href="https://www.nytimes.com/interactive/2022/upshot/wordle-bot.html" target="_blank">WordleBot</a>, the average player completes today's puzzle in 4.5 moves in easy mode, or 4.4 if playing by hard rules. It's not quite as brutal as this <a href="https://www.tomsguide.com/gaming/the-hardest-and-most-unfair-ive-done-in-all-my-years-why-july-15s-brutal-wordle-answer-could-be-your-streak-killer#viafoura-comments">Wordle from July</a>, but it's close.</p><p>Don't be afraid to grab a helping by reading our article on <a href="https://www.tomsguide.com/news/what-is-todays-wordle-answer">today's Wordle hint right here,</a> as well as some of the <a href="https://www.tomsguide.com/news/best-wordle-start-words">best start words</a> to try. Meanwhile, I'm going to explain why today's answer is an irritant below, plus a full answer reveal (with a spoiler warning). </p><p>If you haven't played yet, good luck and good spelling!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XpBk0W"></div>                            </div>                            <script src="https://kwizly.com/embed/XpBk0W.js" async=""></script><h3 class="article-body__section" id="section-what-makes-today-s-wordle-answer-difficult"><span>What makes today's Wordle answer difficult?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5111px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NPzTPqZfY4tCsCRPbVkgNG" name="GettyImages-1840974451" alt="A person holding a phone showing a game of Wordle on the screen" src="https://cdn.mos.cms.futurecdn.net/NPzTPqZfY4tCsCRPbVkgNG-1920-80.jpg" mos="" align="middle" fullscreen="" width="5111" height="2875" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Unlike other hard Wordles that are usually uncommon words, today's word is one you've likely used today, especially if you were quite annoyed. </p><p>However, what makes the puzzle tricky are the letters themselves. For one, two of the letters are, as our expert noted, some of the rarest in Wordle. One of them is the 5th rarest letter over the more than 1,900 Wordle puzzles to date. The usual trick of trying popular letters like R, N or T will not be helpful today</p><p>Second, today's answer contains only one vowel, but it's repeated three times! Double repeats are tricky enough, but a triple one feels especially devious. So if you use a vowel heavy starting word like ADIEU, you're only going to get a single yellow and perhaps not much of a clue which direction to go.</p><p>Ready to find out? Scroll past the spoiler warning below to see.</p><h3 class="article-body__section" id="section-october-3-s-wordle-answer"><span>October 3's Wordle answer</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:14.80%;"><img id="RwL3YyVckXDVdL49DSRXii" name="TG_Spoiler-Warning_2022.jpg" alt="An image indicating spoilers are ahead." src="https://cdn.mos.cms.futurecdn.net/RwL3YyVckXDVdL49DSRXii-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="296" attribution="" endorsement="" class="inline" /></p></div></div></figure><p>So, what's the answer to today's tricky Wordle #1,932?</p><p>Drumroll, please... today's Wordle is "<strong>Peeve</strong>."</p><p>Like I said, you might even be peeved by today's puzzle. According to <a href="https://www.merriam-webster.com/dictionary/peeve" target="_blank">Merriam-Webster</a>, peeve refers to a "particular grievance or source of annoyance" or a "feeling or mood of resentment."</p><p>Surprisingly, peeve is a somewhat younger word, having first been used in 1901 as a verb and 1909 as a noun.</p><p>If you've taken a look at our <a href="https://www.tomsguide.com/news/what-is-todays-wordle-answer">daily Wordle hints page</a>, you'll know how tough our seasoned player, Alan Martin, found today's answer:</p><p>"A devious one today, and not just because of the rare triple letter," he wrote. It's so tricky he reached out before New Zealand was even awake to let us know that today was going to be a tough one.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/i-analysed-every-wordle-answer-to-look-for-patterns-heres-what-i-found">I analyzed every Wordle answer to look for patterns</a></li><li><a href="https://www.tomsguide.com/opinion/this-wordle-trick-kept-my-streak-going-and-youll-probably-hate-it">This Wordle trick kept my streak going — and you'll probably hate it</a></li><li><a href="https://www.tomsguide.com/news/best-wordle-start-words">Best Wordle start words to help you keep your streak</a></li></ul><div data-model-name="Get Better At Wordle" data-widget-type="peacock" data-widget-title="Get better at Wordle!"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Gears of War: E-Day on PC with Nvidia's RTX Mega Geometry — and the Xbox franchise has never looked better ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It almost feels like blasphemy to play Gears of War: E-Day on PC — and to top it off, on Steam — rather than its natural home on Xbox. <em>Almost</em>.<em> </em>But after cranking up settings to Ultra, bumping up frame rates with <a href="https://www.tomsguide.com/computing/gpus/i-tested-nvidias-new-dlss-4-5-ray-reconstruction-it-finally-fixes-path-tracings-biggest-flaw-but-heres-the-reality-check">Nvidia's DLSS 4.5</a> trickery and basking in ray-traced lighting, it was easy to take Marcus Fenix and his merry band of absolutely ripped soldiers beyond its console roots. </p><p>Developers The Coalition and People Can Fly are bringing the iconic third-person shooter back to the beginning: Emergence Day. That's when the gruesome Locust Horde army first emerged from the ground to cause chaos for the humans above, and that perfectly sets the stage for beautifully rendered mayhem and destruction. </p><p>After flanking and sawing my way through Locust (scum) for over 12 hours, I can say Gears of War: E-Day is the best the franchise has ever looked, and it's excellently optimized for PC gaming. From its highly detailed gore and destruction to its accurate lighting and shadows with RTX Mega Geometry, it nails the visual horrors of war and the smooth performance of its brutal, cover-based combat. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OLYRgX"></div>                            </div>                            <script src="https://kwizly.com/embed/OLYRgX.js" async=""></script><p>Even better, there's a huge variety of graphics settings to tinker with to get the right performance for your PC setup. It even includes a "Ludicrous" preset for power-hungry gaming rigs! So, is Gears of War: E-Day worth playing on PC? Yes, and for the reasons why, I've got you covered below.</p><h2 id="gears-of-war-e-day-pc-requirements">Gears of War: E-Day PC Requirements</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tJhZhqSoMqAccUhoaNPDA4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/tJhZhqSoMqAccUhoaNPDA4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>Gears of War: E-Day can be a demanding title to run, but it can also be as performance-driven and as light on your system as you need it to be, thanks to the lengthy list of graphics options and upscaling methods you can adjust. </p><p>While the developers are sure to have E-Day optimized for Xbox Series X/S, they've made sure to give the PC port some extra care so it can run on a majority of systems. That includes the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best PC handhelds</a> like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X.</a> </p><p>While you won't need the <a href="https://www.tomsguide.com/computing/gpus/best-graphics-cards">best graphics cards</a> to run the latest Gears of War installment, know that you will need a "hardware ray tracing-capable GPU," as the <a href="https://store.steampowered.com/app/3010850/Gears_of_War_EDay/" target="_blank">developers note.</a> You'll also need <strong>a lot</strong> of space, so make sure you have enough storage. </p><p>Here are the official requirements, along with the PC specs I used. </p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Tested specs</strong></p></td><td  ><p><strong>Minimum specs</strong></p></td><td  ><p><strong>Recommended specs</strong></p></td><td  ><p><strong>Ultra specs</strong></p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen 7 9700X</p></td><td  ><p>AMD Ryzen 5 2600X / Intel i7‑6850K / i5‑10400</p></td><td  ><p>Intel Core i7-10700 / AMD Ryzen 7 3700X</p></td><td  ><p>AMD Ryzen 7 7800X3D / Intel i7-14700K</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Nvidia GeForce RTX 5070</p></td><td  ><p>Nvidia GeForce RTX 5050 / Nvidia GeForce RTX 2060 / AMD Radeon RX 6600 / Radeon RX 9060</p></td><td  ><p>Nvidia GeForce RTX 5060 / Nvidia GeForce RTX 3060ti / AMD Radeon RX 6700 XT / Radeon RX 9060 XT</p></td><td  ><p>Nvidia GeForce RTX 5070 Ti / AMD Radeon RX 7900 XT</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>32GB</p></td><td  ><p>12GB </p></td><td  ><p>16GB</p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>115GB</p></td><td  ><p>115GB</p></td><td  ><p>115GB</p></td><td  ><p>115GB</p></td></tr></tbody></table></div><h2 id="geared-up-for-pc">Geared up for PC</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7buX3vU8yeBJkAEujoaiM4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/7buX3vU8yeBJkAEujoaiM4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>Now, being made in Unreal Engine 5 (as many games have been recently) can be hit or miss, depending on the title. E-Day has been specifically rebuilt in Unreal Engine 5, but don't fret; it's a hit. </p><p>By taking Gears back to the devastating events of Emergence Day, the game has a lot of carnage to take advantage of. From massive locusts erupting from roads to the warm lights of a city at night disrupted by raging fires on exploded cars, E-Day knows how to showcase the atrocities of a sudden invasion by an unknown threat, and it's visually stunning. </p><p>That was all shown off in striking detail on a gaming PC that isn't exactly a beast of a rig, either. I played Gears of War: E-Day on the <a href="https://www.tomsguide.com/computing/gaming-desktops/this-prebuilt-rtx-5070-pc-showed-me-4k-gaming-performance-for-less-and-im-surprised-as-you-are">Quoted Tech Frontier</a> gaming PC, with an AMD Ryzen 7 9700X CPU, Nvidia GeForce RTX 5070 GPU and 32GB of RAM. I was able to play in 4K and get a respectable 50 FPS on High settings, and I was still bursting Locust heads with smooth gameplay despite it being taxing on my system (there was a warning sign to say 4K would be a little much). </p><p>But that was without the boost from Nvidia's DLSS 4.5 Dynamic Frame Generation or Dynamic Upscaling Quality. With these toggled on, and even bumping up ray-traced shadows, reflections and geometry to Ultra, I was seeing Marcus, Dom and the rest of the team charging their way through hordes in crisp detail at a smoother 115 FPS. That's a green flag for PC optimization. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yKqZVa2ZmiLcsWwJ7Z5F84" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/yKqZVa2ZmiLcsWwJ7Z5F84-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>Now, this was the case in the more linear sections of the game. During a semi-open area I encountered, I noticed a few minor sudden dips in frames, cutting down by 15 to 20 FPS. That, and some pop-in artifacts every now and again. A deal-breaker? Not in the slightest, and something I could remedy myself. </p><p>Scaling back to 1440p resolution and switching to Performance upscaling gave me far smoother gameplay, and with frame generation at 6x? I was going well past 200 FPS, and my aging gaming monitor doesn't even go that high. </p><p>Being able to tinker with an assortment of settings to get the right balance of image quality and performance is always welcome, and Gears of War: E-Day has it in spades. </p><h2 id="lighting-is-on-point">Lighting is on point</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rYrM66GcBxrjdCB8HJBTR4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/rYrM66GcBxrjdCB8HJBTR4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">What is RTX Mega Geometry?</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yroJh9tyRELq7JXeze3TG4" name="Gears of War: E-Day" caption="" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/yroJh9tyRELq7JXeze3TG4-1920-80.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p class="fancy-box__body-text">RTX Mega Geometry is a rendering technology used to enhance ray-traced shadows, reflections and global illumination in games. It can ray-trace Nanite geometry (Unreal Engine 5's virtualized geometry system) to achieve more realistic scenes with reflective surfaces, leading to more accurate, stable shadows even on small or complex objects. Nvidia notes that a GeForce RTX GPU with at least 12GB of VRAM is required to make RTX Mega Geometry work.</p></div></div><p>From the soft hum of street lamps lighting up a crumbling street in ruins to the tight, horror-like spaces in buildings being lit up with the glow from neon signs and TVs, E-Day shows that Gears of War has come <em>very</em> far from the gritty, desaturated browns that plagued late-2000s games. And it's only elevated further on PC with Nvidia's latest tools.</p><p>E-Day marks the first title to ray trace Nanite geometry, thanks to the added RTX Mega Geometry. Essentially, this means more realistic details in ray tracing, solving issues like missing or incorrect shadows, improved reflection quality, better stability for moving silhouettes and overall more geometry on objects to play with. </p><p>This isn't immediately noticeable, of course. Not when there's a mass of Locusts emerging from collapsing holes, charging at you with shotguns! But during the quieter moments exploring abandoned grocery stores, ravaged police stations and more, it's the ray-traced lighting and relfections that captures the atmosphere. </p><p>Switching RTX Mega Geometry on, the smaller details like the florescent lighting in the frozen section of a store bouncing off the floor, or the clear reflections of debris lying around on a blood-smeared window, are striking to look at. And having this on didn't appear to affect the performance of my gameplay, either. </p><p>This is subtle realism to make the surroundings of Marcus and his team feel more lived-in, which makes the war-torn city of Kalona far more engaging.</p><h2 id="optimized-for-destruction">Optimized for destruction</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LGkHt2A8xaWFrGGHRCBrN4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/LGkHt2A8xaWFrGGHRCBrN4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>As anyone playing games on the Xbox app, Steam or other clients will tell you, PC optimization is an important aspect of bringing any title to PC. Fortunately, we've seen many standout hits this year alone, and now this iconic Xbox franchise joins those ranks. Gears of War: E-Day is one of the best-looking PC games I've played in 2026, and that says a lot considering we've seen the likes of <a href="https://www.tomsguide.com/computing/i-played-control-resonant-on-pc-with-nvidias-dlss-ray-reconstruction-and-it-beats-ps5-pro-hands-down">Control Resonant</a>, <a href="https://www.tomsguide.com/computing/gpus/i-stress-tested-pragmatas-path-tracing-it-looks-like-a-dream-and-nvidias-dlss-4-makes-it-play-like-one-provided-you-use-it-right">Pragmata</a> and <a href="https://www.tomsguide.com/gaming/pc-gaming/resident-evil-requiem-with-path-tracing-is-horrifying-and-i-mean-that-as-a-compliment-to-nvidia-and-dlss-4">Resident Evil Requiem</a> arrive and impress. </p><p>While targeting 4K at 60 FPS on Xbox is already enough to show all the glorious, gory visuals E-Day has in store, playing the origins of the Gears of War saga on PC allows it to take advantage of the latest in graphics. I mean, cranking up the destructive details with 100+ FPS, along with scene-defining lighting and crisp reflections, is a treat for the eyes. </p><p>If this is the way AAA games are being treated on PC, I have high hopes for everything else to come (especially for the upcoming <a href="https://www.tomsguide.com/gaming/playstation/as-a-pc-snob-i-wanted-to-catch-gta-6-making-console-compromises-instead-im-in-awe-of-the-trickery">GTA VI</a>). </p><p>For a closer look at our thoughts, be sure to check out our full Gears of War: E-Day review.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-gave-the-steam-machine-3-stars-at-launch-but-a-game-changing-update-and-this-1tb-storage-hack-has-me-thinking-differently">I gave the Steam Machine 3 stars at launch — but a game-changing update and this 1TB storage hack has me thinking differently</a></li><li><a href="https://www.tomsguide.com/computing/i-played-control-resonant-on-pc-with-nvidias-dlss-ray-reconstruction-and-it-beats-ps5-pro-hands-down">I played Control Resonant on PC with Nvidia's DLSS Ray Reconstruction — and it beats PS5 Pro hands down</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-the-real-dlss-5-forget-the-leaked-mods-its-not-an-ai-filter-this-is-nvidias-photorealistic-game-changer">I wanted to hate Nvidia’s DLSS 5 ‘AI filter’ — but the real DLSS 5 is photorealistic black magic</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/i-played-gears-of-war-e-day-on-pc-with-nvidias-rtx-mega-geometry-and-the-xbox-franchise-has-never-looked-better</link>
                                                                            <description>
                            <![CDATA[ Gears of War: E-Day is a thrilling throwback and triumphant step forward in gory, destructive real-time graphics on PC, thanks to Nvidia's RTX Mega Geometry, DLSS 4.5 and ray tracing. Here's what I thought after playing for over 12 hours on a gaming desktop. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">T6J8hmTmVMQWPqtPzQWgbR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8YTiGxd3HguCwqsNa4VWs8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 02 Oct 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Buying Guide Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to expert buying advice on the latest laptops. Whether it&amp;#39;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always an interesting angle no matter the subject. &lt;/p&gt;&lt;p&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, tablets, smartwatches, VR headsets, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&amp;#39;s not checking out the latest devices and updating buying guides with expert advice, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8YTiGxd3HguCwqsNa4VWs8-1920-80.jpg">
                                                            <media:credit><![CDATA[Future / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[ Gears of War: E-Day on monitor with Xbox controller in hand]]></media:description>                                                            <media:text><![CDATA[ Gears of War: E-Day on monitor with Xbox controller in hand]]></media:text>
                                <media:title type="plain"><![CDATA[ Gears of War: E-Day on monitor with Xbox controller in hand]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8YTiGxd3HguCwqsNa4VWs8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It almost feels like blasphemy to play Gears of War: E-Day on PC — and to top it off, on Steam — rather than its natural home on Xbox. <em>Almost</em>.<em> </em>But after cranking up settings to Ultra, bumping up frame rates with <a href="https://www.tomsguide.com/computing/gpus/i-tested-nvidias-new-dlss-4-5-ray-reconstruction-it-finally-fixes-path-tracings-biggest-flaw-but-heres-the-reality-check">Nvidia's DLSS 4.5</a> trickery and basking in ray-traced lighting, it was easy to take Marcus Fenix and his merry band of absolutely ripped soldiers beyond its console roots. </p><p>Developers The Coalition and People Can Fly are bringing the iconic third-person shooter back to the beginning: Emergence Day. That's when the gruesome Locust Horde army first emerged from the ground to cause chaos for the humans above, and that perfectly sets the stage for beautifully rendered mayhem and destruction. </p><p>After flanking and sawing my way through Locust (scum) for over 12 hours, I can say Gears of War: E-Day is the best the franchise has ever looked, and it's excellently optimized for PC gaming. From its highly detailed gore and destruction to its accurate lighting and shadows with RTX Mega Geometry, it nails the visual horrors of war and the smooth performance of its brutal, cover-based combat. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OLYRgX"></div>                            </div>                            <script src="https://kwizly.com/embed/OLYRgX.js" async=""></script><p>Even better, there's a huge variety of graphics settings to tinker with to get the right performance for your PC setup. It even includes a "Ludicrous" preset for power-hungry gaming rigs! So, is Gears of War: E-Day worth playing on PC? Yes, and for the reasons why, I've got you covered below.</p><h2 id="gears-of-war-e-day-pc-requirements">Gears of War: E-Day PC Requirements</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tJhZhqSoMqAccUhoaNPDA4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/tJhZhqSoMqAccUhoaNPDA4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>Gears of War: E-Day can be a demanding title to run, but it can also be as performance-driven and as light on your system as you need it to be, thanks to the lengthy list of graphics options and upscaling methods you can adjust. </p><p>While the developers are sure to have E-Day optimized for Xbox Series X/S, they've made sure to give the PC port some extra care so it can run on a majority of systems. That includes the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best PC handhelds</a> like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X.</a> </p><p>While you won't need the <a href="https://www.tomsguide.com/computing/gpus/best-graphics-cards">best graphics cards</a> to run the latest Gears of War installment, know that you will need a "hardware ray tracing-capable GPU," as the <a href="https://store.steampowered.com/app/3010850/Gears_of_War_EDay/" target="_blank">developers note.</a> You'll also need <strong>a lot</strong> of space, so make sure you have enough storage. </p><p>Here are the official requirements, along with the PC specs I used. </p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Tested specs</strong></p></td><td  ><p><strong>Minimum specs</strong></p></td><td  ><p><strong>Recommended specs</strong></p></td><td  ><p><strong>Ultra specs</strong></p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen 7 9700X</p></td><td  ><p>AMD Ryzen 5 2600X / Intel i7‑6850K / i5‑10400</p></td><td  ><p>Intel Core i7-10700 / AMD Ryzen 7 3700X</p></td><td  ><p>AMD Ryzen 7 7800X3D / Intel i7-14700K</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Nvidia GeForce RTX 5070</p></td><td  ><p>Nvidia GeForce RTX 5050 / Nvidia GeForce RTX 2060 / AMD Radeon RX 6600 / Radeon RX 9060</p></td><td  ><p>Nvidia GeForce RTX 5060 / Nvidia GeForce RTX 3060ti / AMD Radeon RX 6700 XT / Radeon RX 9060 XT</p></td><td  ><p>Nvidia GeForce RTX 5070 Ti / AMD Radeon RX 7900 XT</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>32GB</p></td><td  ><p>12GB </p></td><td  ><p>16GB</p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>115GB</p></td><td  ><p>115GB</p></td><td  ><p>115GB</p></td><td  ><p>115GB</p></td></tr></tbody></table></div><h2 id="geared-up-for-pc">Geared up for PC</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7buX3vU8yeBJkAEujoaiM4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/7buX3vU8yeBJkAEujoaiM4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>Now, being made in Unreal Engine 5 (as many games have been recently) can be hit or miss, depending on the title. E-Day has been specifically rebuilt in Unreal Engine 5, but don't fret; it's a hit. </p><p>By taking Gears back to the devastating events of Emergence Day, the game has a lot of carnage to take advantage of. From massive locusts erupting from roads to the warm lights of a city at night disrupted by raging fires on exploded cars, E-Day knows how to showcase the atrocities of a sudden invasion by an unknown threat, and it's visually stunning. </p><p>That was all shown off in striking detail on a gaming PC that isn't exactly a beast of a rig, either. I played Gears of War: E-Day on the <a href="https://www.tomsguide.com/computing/gaming-desktops/this-prebuilt-rtx-5070-pc-showed-me-4k-gaming-performance-for-less-and-im-surprised-as-you-are">Quoted Tech Frontier</a> gaming PC, with an AMD Ryzen 7 9700X CPU, Nvidia GeForce RTX 5070 GPU and 32GB of RAM. I was able to play in 4K and get a respectable 50 FPS on High settings, and I was still bursting Locust heads with smooth gameplay despite it being taxing on my system (there was a warning sign to say 4K would be a little much). </p><p>But that was without the boost from Nvidia's DLSS 4.5 Dynamic Frame Generation or Dynamic Upscaling Quality. With these toggled on, and even bumping up ray-traced shadows, reflections and geometry to Ultra, I was seeing Marcus, Dom and the rest of the team charging their way through hordes in crisp detail at a smoother 115 FPS. That's a green flag for PC optimization. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yKqZVa2ZmiLcsWwJ7Z5F84" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/yKqZVa2ZmiLcsWwJ7Z5F84-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>Now, this was the case in the more linear sections of the game. During a semi-open area I encountered, I noticed a few minor sudden dips in frames, cutting down by 15 to 20 FPS. That, and some pop-in artifacts every now and again. A deal-breaker? Not in the slightest, and something I could remedy myself. </p><p>Scaling back to 1440p resolution and switching to Performance upscaling gave me far smoother gameplay, and with frame generation at 6x? I was going well past 200 FPS, and my aging gaming monitor doesn't even go that high. </p><p>Being able to tinker with an assortment of settings to get the right balance of image quality and performance is always welcome, and Gears of War: E-Day has it in spades. </p><h2 id="lighting-is-on-point">Lighting is on point</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rYrM66GcBxrjdCB8HJBTR4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/rYrM66GcBxrjdCB8HJBTR4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">What is RTX Mega Geometry?</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yroJh9tyRELq7JXeze3TG4" name="Gears of War: E-Day" caption="" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/yroJh9tyRELq7JXeze3TG4-1920-80.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p class="fancy-box__body-text">RTX Mega Geometry is a rendering technology used to enhance ray-traced shadows, reflections and global illumination in games. It can ray-trace Nanite geometry (Unreal Engine 5's virtualized geometry system) to achieve more realistic scenes with reflective surfaces, leading to more accurate, stable shadows even on small or complex objects. Nvidia notes that a GeForce RTX GPU with at least 12GB of VRAM is required to make RTX Mega Geometry work.</p></div></div><p>From the soft hum of street lamps lighting up a crumbling street in ruins to the tight, horror-like spaces in buildings being lit up with the glow from neon signs and TVs, E-Day shows that Gears of War has come <em>very</em> far from the gritty, desaturated browns that plagued late-2000s games. And it's only elevated further on PC with Nvidia's latest tools.</p><p>E-Day marks the first title to ray trace Nanite geometry, thanks to the added RTX Mega Geometry. Essentially, this means more realistic details in ray tracing, solving issues like missing or incorrect shadows, improved reflection quality, better stability for moving silhouettes and overall more geometry on objects to play with. </p><p>This isn't immediately noticeable, of course. Not when there's a mass of Locusts emerging from collapsing holes, charging at you with shotguns! But during the quieter moments exploring abandoned grocery stores, ravaged police stations and more, it's the ray-traced lighting and relfections that captures the atmosphere. </p><p>Switching RTX Mega Geometry on, the smaller details like the florescent lighting in the frozen section of a store bouncing off the floor, or the clear reflections of debris lying around on a blood-smeared window, are striking to look at. And having this on didn't appear to affect the performance of my gameplay, either. </p><p>This is subtle realism to make the surroundings of Marcus and his team feel more lived-in, which makes the war-torn city of Kalona far more engaging.</p><h2 id="optimized-for-destruction">Optimized for destruction</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LGkHt2A8xaWFrGGHRCBrN4" name="Gears of War: E-Day" alt="Screenshots of Gears of War: Eday" src="https://cdn.mos.cms.futurecdn.net/LGkHt2A8xaWFrGGHRCBrN4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Game Studios / The Coalition )</span></figcaption></figure><p>As anyone playing games on the Xbox app, Steam or other clients will tell you, PC optimization is an important aspect of bringing any title to PC. Fortunately, we've seen many standout hits this year alone, and now this iconic Xbox franchise joins those ranks. Gears of War: E-Day is one of the best-looking PC games I've played in 2026, and that says a lot considering we've seen the likes of <a href="https://www.tomsguide.com/computing/i-played-control-resonant-on-pc-with-nvidias-dlss-ray-reconstruction-and-it-beats-ps5-pro-hands-down">Control Resonant</a>, <a href="https://www.tomsguide.com/computing/gpus/i-stress-tested-pragmatas-path-tracing-it-looks-like-a-dream-and-nvidias-dlss-4-makes-it-play-like-one-provided-you-use-it-right">Pragmata</a> and <a href="https://www.tomsguide.com/gaming/pc-gaming/resident-evil-requiem-with-path-tracing-is-horrifying-and-i-mean-that-as-a-compliment-to-nvidia-and-dlss-4">Resident Evil Requiem</a> arrive and impress. </p><p>While targeting 4K at 60 FPS on Xbox is already enough to show all the glorious, gory visuals E-Day has in store, playing the origins of the Gears of War saga on PC allows it to take advantage of the latest in graphics. I mean, cranking up the destructive details with 100+ FPS, along with scene-defining lighting and crisp reflections, is a treat for the eyes. </p><p>If this is the way AAA games are being treated on PC, I have high hopes for everything else to come (especially for the upcoming <a href="https://www.tomsguide.com/gaming/playstation/as-a-pc-snob-i-wanted-to-catch-gta-6-making-console-compromises-instead-im-in-awe-of-the-trickery">GTA VI</a>). </p><p>For a closer look at our thoughts, be sure to check out our full Gears of War: E-Day review.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-gave-the-steam-machine-3-stars-at-launch-but-a-game-changing-update-and-this-1tb-storage-hack-has-me-thinking-differently">I gave the Steam Machine 3 stars at launch — but a game-changing update and this 1TB storage hack has me thinking differently</a></li><li><a href="https://www.tomsguide.com/computing/i-played-control-resonant-on-pc-with-nvidias-dlss-ray-reconstruction-and-it-beats-ps5-pro-hands-down">I played Control Resonant on PC with Nvidia's DLSS Ray Reconstruction — and it beats PS5 Pro hands down</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-the-real-dlss-5-forget-the-leaked-mods-its-not-an-ai-filter-this-is-nvidias-photorealistic-game-changer">I wanted to hate Nvidia’s DLSS 5 ‘AI filter’ — but the real DLSS 5 is photorealistic black magic</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Gears of War: E-Day is the return to form I’ve been waiting for — here’s why ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Gears of War: E-Day Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms:</strong> Xbox Series X/S, Steam PC (reviewed)<br /><strong>Price:</strong> $69 / £59 / AU$109<br /><strong>Release date:</strong> October 6, 2026<br /><strong>Genre:</strong> Third-person shooter</p></div></div><p>Gears of War: E-Day is the best game in the franchise since Gears of War 3. Developer The Coalition wisely went back to basics, bringing back the dynamic duo of Marcus Fenix and Dom Santiago in this thrilling prequel, placing us right at the start of the Locust invasion. It’s a fresh take on established lore that keeps you hooked through the climactic end.</p><p>The cover-based third-person shooting is as satisfying and brutal as ever, with the game expertly mixing things up to keep each battle engaging. While some areas are smaller and linear, most environments are expansive, keeping you constantly on the move during heavier combat segments. Unique weapon and equipment loadouts also let you tailor Marcus to your playstyle or to better handle specific encounters.</p><p>As a longtime Gears of War fan who was less than enthused by the last two mainline installments, it’s great to see this iconic franchise reclaim its glory days. If you’re also a fan, you’ll likely feel the same way. And if you’re brand-new to Gears, you have an excellent entry point that shows why this is such an iconic series. In short, Gears of War: E-Day is phenomenal. Find out why in my full review!</p><h2 id="gears-of-war-e-day-the-basics">Gears of War: E-Day: The basics</h2><ul><li><strong>What is it?</strong> Gears of War: E-Day is the latest installment of the long-running franchise and a prequel to the entire series.</li><li><strong>Who is it for?</strong> It's for fans of the series and the cover-based third-person shooters it inspired.</li><li><strong>What's the price?</strong> Gears of War: E-Day costs $69 and is available for the Xbox Series X/S and PC.</li><li><strong>What other games has the developer made?</strong> The Coalition has worked on other Gears of War games such as Gears of War 4, Gears of War 5, and Gears of War: Reloaded.</li><li><strong>What games is it similar to?</strong> Gears of War: E-Day is similar to games like Uncharted and The Division.</li></ul><h2 id="reliving-the-horror">Reliving the horror</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SGNFPtsPkrRyyMa8JcMYm5" name="GoW_EDAY_CentralSquare_4K" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/SGNFPtsPkrRyyMa8JcMYm5-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>As the title suggests, Gears of War: E-Day takes place on E-Day, or Emergence Day, when the Locust hordes burst from underground and begin decimating the world of Sera, where the protagonists live. Fresh off the just-concluded war against the Union of Independent Republics (UIR), the Coalition of Ordered Governments (COG) must do their best to fight the vicious monsters so that humanity isn’t wiped out.</p><p>The central story follows Marcus and Dom, who, along with Mags Carter and Lucas Reyes, form Bravo Squad, are tasked with a wide range of dangerous missions throughout the game. The squad dynamic feels natural, and we learn what motivates each of them. </p><p>The newer characters get most of the screen time because we’re already familiar with Marcus and Dom—though both get time to shine as well. The rest of the cast consists of the usual government and military types, doing their best (or worst) under the circumstances.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="w9kGEhzPgxveLZiTr5yb8T" name="GoW_EDAY_Immulsion" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/w9kGEhzPgxveLZiTr5yb8T-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios / Tom's Guide)</span></figcaption></figure><p>The world of Sera in previous games was already in ruins after years of constant war with the Locusts. Here, we see it systematically destroyed — which is even more terrifying because we witness the world’s former beauty and grandeur being lost forever. Speaking of terrifying, this game smartly resurrects some of the horror elements from the first game to amp up the terror and hopelessness Serans feel as they lose everything they once loved.</p><p>While the story has plenty of over-the-top action sequences that get the blood pumping, it is the most emotional and poignant yet for the series. Just because Gears is the video game equivalent of the Predator handshake scene doesn’t mean it can’t have heart!</p><h2 id="tools-of-war">Tools of war</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PoSfbVZUuDE9Zj3vcYu5vA" name="GoW_EDAY_Marcus_Lancer_Final" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/PoSfbVZUuDE9Zj3vcYu5vA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>Gears of War: E-Day is a great example of why this franchise is the king of cover-based third-person shooters, as the core loop of slamming shoulder-first into a wall and hunkering down to pick off the enemy hordes is as satisfying as ever. You’ll do a lot, and I mean a lot, of shooting, but none of it ever gets boring or repetitive thanks to some clever level design and escalating enemy variety.</p><p>There’s no shortage of expansive battlefields throughout the game that force you to constantly move from cover to cover — or climb higher to get a better shot at foes. Locust Drones will also shoot from behind cover, but some, like the Feral Wretches and Tickers, will rush at you, forcing you out of cover and making you easier pickings for Drones and other nastier Locust types.</p><p>As for Locust types, my favorites are the gigantic beasts that always seem to show up at the worst time. This includes series staples like the spider-like Corpsers and the gorilla-esque armored Brumaks, along with a host of other new horrors to contend with. Where previous games held back on giant enemy encounters, E-Day goes full tilt, making battles even more exciting.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KesZah3uaURM6LSj2mSB4Z" name="GoW_EDAY_Boomer_4K" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/KesZah3uaURM6LSj2mSB4Z-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>You wield a deadly arsenal, including the series’ signature Chainsaw Lancer, whose origin is told here. In addition, there’s the Gnasher shotgun, the Longshot sniper rifles, my beloved Frag grenades, and many more. </p><p>The Locusts have similar weapons, and you can pick them up and use them as you see fit. Though you can only wield two primary weapons, a sidearm, and a grenade type, you can always mix things up by picking up whatever you find or by stopping at a supply crate, which are generously strewn throughout the maps.</p><p>Supply crates not only let you select weapons and restock their ammo but also let you enhance them with various mods. For instance, some mods speed up reloading, while others add scopes and improve weapon stability. You can add up to four mods per weapon, and there are plenty of mods to find across the maps, so there’s no shortage of variety. Given how difficult certain encounters can be, it’s always good to try different mods to see what works best.</p><h2 id="bloody-beautiful">Bloody beautiful</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B9siDhboEHGnLkeRk9ELRG" name="GoW_EDAY_LocustTunnels_Final" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/B9siDhboEHGnLkeRk9ELRG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>Like previous games, Gears of War: E-Day looks absolutely stunning. It’s easily one of the best-looking Unreal Engine 5 games you’re likely to see, thanks to the sheer level of detail on display. The engine certainly had to work overtime here, with many sections featuring buildings collapsing or the street erupting with Locust hordes. The big stuff looks stunning, but smaller details, like blood smears on armor, look just as impressive.</p><p>The sound design matches the visuals, convincingly drawing you into the action and drama. The score is appropriately cinematic, making the game feel like a Hollywood blockbuster. Voice acting is also convincing, with everyone bringing their A-game to each scene — whether barking orders or lamenting the world they’ve lost.</p><p>My only gripe is with some of the repetitive lines during combat sequences. As much fun as it is to hear Marcus taunt the Locust with lines like “Where are you going? I thought you wanted some of this,” it gets old after a few hours. I wish there had been more lines recorded to keep the one-liners from growing stale.</p><h2 id="gears-of-war-e-day-review-verdict">Gears of War: E-Day review: Verdict</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qMBHffxs6eoGTGA9ticd5M" name="GoW_EDAY_MarcusCheers_4K" alt="Microsoft Game Studios" src="https://cdn.mos.cms.futurecdn.net/qMBHffxs6eoGTGA9ticd5M-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>The Gears of War franchise has lost some of its blood-stained luster over the past decade, but E-Day masterfully returns to form and delivers a series highlight. Right now, it’s easily the best Xbox Studios game of the year, and one folks shouldn’t miss.</p><p>Gears of War: E-Day also proves that the series only truly works when it has Marcus and Dom — which presents The Coalition with an interesting conundrum. With its open-ended conclusion, it’s clear the devs plan to make a follow-up. And as exciting as that is, does it now mean future games will be prequels that don’t push the current narrative forward?</p><p>We won’t know the answer to that, but for now I’m just happy to see the band reunited — even if it’s only for a series of prequels. There’s still plenty of story to tell, so I’m already locked and loaded for the next Gears of War installment. After playing this game, I’m sure you’ll agree!</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gears-of-war-e-day-review</link>
                                                                            <description>
                            <![CDATA[ Gears of War: E-Day is a phenomenal return to form, filled with the series' over-the-top action. If you're an Xbox owner, this is a game you don't want to miss. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">MPwEhcFDGWcQX8RmeoB6DR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8FfJUJa8Tp3KUrAwGDQJjh-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 01 Oct 2026 13:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8FfJUJa8Tp3KUrAwGDQJjh-1920-80.jpg">
                                                            <media:credit><![CDATA[Microsoft Game Studios]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gear of War: E-Day]]></media:description>                                                            <media:text><![CDATA[Gear of War: E-Day]]></media:text>
                                <media:title type="plain"><![CDATA[Gear of War: E-Day]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8FfJUJa8Tp3KUrAwGDQJjh-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Gears of War: E-Day Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms:</strong> Xbox Series X/S, Steam PC (reviewed)<br /><strong>Price:</strong> $69 / £59 / AU$109<br /><strong>Release date:</strong> October 6, 2026<br /><strong>Genre:</strong> Third-person shooter</p></div></div><p>Gears of War: E-Day is the best game in the franchise since Gears of War 3. Developer The Coalition wisely went back to basics, bringing back the dynamic duo of Marcus Fenix and Dom Santiago in this thrilling prequel, placing us right at the start of the Locust invasion. It’s a fresh take on established lore that keeps you hooked through the climactic end.</p><p>The cover-based third-person shooting is as satisfying and brutal as ever, with the game expertly mixing things up to keep each battle engaging. While some areas are smaller and linear, most environments are expansive, keeping you constantly on the move during heavier combat segments. Unique weapon and equipment loadouts also let you tailor Marcus to your playstyle or to better handle specific encounters.</p><p>As a longtime Gears of War fan who was less than enthused by the last two mainline installments, it’s great to see this iconic franchise reclaim its glory days. If you’re also a fan, you’ll likely feel the same way. And if you’re brand-new to Gears, you have an excellent entry point that shows why this is such an iconic series. In short, Gears of War: E-Day is phenomenal. Find out why in my full review!</p><h2 id="gears-of-war-e-day-the-basics">Gears of War: E-Day: The basics</h2><ul><li><strong>What is it?</strong> Gears of War: E-Day is the latest installment of the long-running franchise and a prequel to the entire series.</li><li><strong>Who is it for?</strong> It's for fans of the series and the cover-based third-person shooters it inspired.</li><li><strong>What's the price?</strong> Gears of War: E-Day costs $69 and is available for the Xbox Series X/S and PC.</li><li><strong>What other games has the developer made?</strong> The Coalition has worked on other Gears of War games such as Gears of War 4, Gears of War 5, and Gears of War: Reloaded.</li><li><strong>What games is it similar to?</strong> Gears of War: E-Day is similar to games like Uncharted and The Division.</li></ul><h2 id="reliving-the-horror">Reliving the horror</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SGNFPtsPkrRyyMa8JcMYm5" name="GoW_EDAY_CentralSquare_4K" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/SGNFPtsPkrRyyMa8JcMYm5-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>As the title suggests, Gears of War: E-Day takes place on E-Day, or Emergence Day, when the Locust hordes burst from underground and begin decimating the world of Sera, where the protagonists live. Fresh off the just-concluded war against the Union of Independent Republics (UIR), the Coalition of Ordered Governments (COG) must do their best to fight the vicious monsters so that humanity isn’t wiped out.</p><p>The central story follows Marcus and Dom, who, along with Mags Carter and Lucas Reyes, form Bravo Squad, are tasked with a wide range of dangerous missions throughout the game. The squad dynamic feels natural, and we learn what motivates each of them. </p><p>The newer characters get most of the screen time because we’re already familiar with Marcus and Dom—though both get time to shine as well. The rest of the cast consists of the usual government and military types, doing their best (or worst) under the circumstances.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="w9kGEhzPgxveLZiTr5yb8T" name="GoW_EDAY_Immulsion" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/w9kGEhzPgxveLZiTr5yb8T-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios / Tom's Guide)</span></figcaption></figure><p>The world of Sera in previous games was already in ruins after years of constant war with the Locusts. Here, we see it systematically destroyed — which is even more terrifying because we witness the world’s former beauty and grandeur being lost forever. Speaking of terrifying, this game smartly resurrects some of the horror elements from the first game to amp up the terror and hopelessness Serans feel as they lose everything they once loved.</p><p>While the story has plenty of over-the-top action sequences that get the blood pumping, it is the most emotional and poignant yet for the series. Just because Gears is the video game equivalent of the Predator handshake scene doesn’t mean it can’t have heart!</p><h2 id="tools-of-war">Tools of war</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PoSfbVZUuDE9Zj3vcYu5vA" name="GoW_EDAY_Marcus_Lancer_Final" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/PoSfbVZUuDE9Zj3vcYu5vA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>Gears of War: E-Day is a great example of why this franchise is the king of cover-based third-person shooters, as the core loop of slamming shoulder-first into a wall and hunkering down to pick off the enemy hordes is as satisfying as ever. You’ll do a lot, and I mean a lot, of shooting, but none of it ever gets boring or repetitive thanks to some clever level design and escalating enemy variety.</p><p>There’s no shortage of expansive battlefields throughout the game that force you to constantly move from cover to cover — or climb higher to get a better shot at foes. Locust Drones will also shoot from behind cover, but some, like the Feral Wretches and Tickers, will rush at you, forcing you out of cover and making you easier pickings for Drones and other nastier Locust types.</p><p>As for Locust types, my favorites are the gigantic beasts that always seem to show up at the worst time. This includes series staples like the spider-like Corpsers and the gorilla-esque armored Brumaks, along with a host of other new horrors to contend with. Where previous games held back on giant enemy encounters, E-Day goes full tilt, making battles even more exciting.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KesZah3uaURM6LSj2mSB4Z" name="GoW_EDAY_Boomer_4K" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/KesZah3uaURM6LSj2mSB4Z-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>You wield a deadly arsenal, including the series’ signature Chainsaw Lancer, whose origin is told here. In addition, there’s the Gnasher shotgun, the Longshot sniper rifles, my beloved Frag grenades, and many more. </p><p>The Locusts have similar weapons, and you can pick them up and use them as you see fit. Though you can only wield two primary weapons, a sidearm, and a grenade type, you can always mix things up by picking up whatever you find or by stopping at a supply crate, which are generously strewn throughout the maps.</p><p>Supply crates not only let you select weapons and restock their ammo but also let you enhance them with various mods. For instance, some mods speed up reloading, while others add scopes and improve weapon stability. You can add up to four mods per weapon, and there are plenty of mods to find across the maps, so there’s no shortage of variety. Given how difficult certain encounters can be, it’s always good to try different mods to see what works best.</p><h2 id="bloody-beautiful">Bloody beautiful</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B9siDhboEHGnLkeRk9ELRG" name="GoW_EDAY_LocustTunnels_Final" alt="Gears of War: E-Day" src="https://cdn.mos.cms.futurecdn.net/B9siDhboEHGnLkeRk9ELRG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>Like previous games, Gears of War: E-Day looks absolutely stunning. It’s easily one of the best-looking Unreal Engine 5 games you’re likely to see, thanks to the sheer level of detail on display. The engine certainly had to work overtime here, with many sections featuring buildings collapsing or the street erupting with Locust hordes. The big stuff looks stunning, but smaller details, like blood smears on armor, look just as impressive.</p><p>The sound design matches the visuals, convincingly drawing you into the action and drama. The score is appropriately cinematic, making the game feel like a Hollywood blockbuster. Voice acting is also convincing, with everyone bringing their A-game to each scene — whether barking orders or lamenting the world they’ve lost.</p><p>My only gripe is with some of the repetitive lines during combat sequences. As much fun as it is to hear Marcus taunt the Locust with lines like “Where are you going? I thought you wanted some of this,” it gets old after a few hours. I wish there had been more lines recorded to keep the one-liners from growing stale.</p><h2 id="gears-of-war-e-day-review-verdict">Gears of War: E-Day review: Verdict</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qMBHffxs6eoGTGA9ticd5M" name="GoW_EDAY_MarcusCheers_4K" alt="Microsoft Game Studios" src="https://cdn.mos.cms.futurecdn.net/qMBHffxs6eoGTGA9ticd5M-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft Game Studios)</span></figcaption></figure><p>The Gears of War franchise has lost some of its blood-stained luster over the past decade, but E-Day masterfully returns to form and delivers a series highlight. Right now, it’s easily the best Xbox Studios game of the year, and one folks shouldn’t miss.</p><p>Gears of War: E-Day also proves that the series only truly works when it has Marcus and Dom — which presents The Coalition with an interesting conundrum. With its open-ended conclusion, it’s clear the devs plan to make a follow-up. And as exciting as that is, does it now mean future games will be prequels that don’t push the current narrative forward?</p><p>We won’t know the answer to that, but for now I’m just happy to see the band reunited — even if it’s only for a series of prequels. There’s still plenty of story to tell, so I’m already locked and loaded for the next Gears of War installment. After playing this game, I’m sure you’ll agree!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ SteelSeries just re-entered the chat: I spent a month testing its new elite gaming mice ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The time has come for SteelSeries to get back into the elite mouse game. While the brand has been pumping out the odd mouse here or there, it knows it’s been falling a little behind its rivals when it comes to cutting edge competition mice. Enter the new SteelSeries Rival Pro and its symmetrical sibling, the Sensei Pro — the latter named, of course, after SteelSeries’ legendary Sensei mouse from 2011.</p><p>The Rival and Sensei pack some powerful specs and interesting features, including Ultra-wideband (UWB) connectivity through to 8K oversampled polling, 8K reporting and 42,000 DPI sensitivity. There’s also zero downtime battery life (SteelSeries’ favorite thing these days), plenty of customization via the GG app and, in a first for SteelSeries, web app support.</p><p>So could this be one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-mouse">best gaming mice</a> for esports and competitive players. Read my full SteelSeries Rival Pro review to find out.</p><p><em>Note, this mouse is available in either ergonomic (Rival) or symmetrical (Sensei) profiles, and in two sizes (Pro being larger, Mini smaller). I’ve covered the Rival Pro here because I spent the most time with it gaming at home (I prefer a larger ergo mouse). But I've also used the Sensei Pro for all test gaming at work. Internally, they're all the same.</em></p><h2 class="article-body__section" id="section-steelseries-rival-pro-review-cheat-sheet"><span>SteelSeries Rival Pro review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>A competition gaming mouse from SteelSeries</li><li><strong>Who is it for? </strong>Elite or highly competitive players</li><li><strong>What does it cost? </strong><a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">$179</a> / <a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">£169</a></li><li><strong>What do we like? </strong>The UWB connectivity, zero downtime battery, responsive performance, and high levels of customization</li><li><strong>What don’t we like? </strong>The black model is a fingerprint magnet, and its optical sensors feel a little featureless versus competition</li></ul><h2 class="article-body__section" id="section-steelseries-rival-pro-review-specs"><span>SteelSeries Rival Pro review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">$179</a> / <a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">£169</a></p></td></tr><tr><td class="firstcol " ><p><strong>Max DPI</strong></p></td><td  ><p>42,000</p></td></tr><tr><td class="firstcol " ><p><strong>Polling rate</strong></p></td><td  ><p>8,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Buttons</strong></p></td><td  ><p>6</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>Rival Pro: 4.9 x 2.6 x 1.6 inches</p><p>Rival Mini: 4.7 x 2.5 x 1.5 inches</p><p>Sensei Pro: 4.9 x 2.6 x 1.5 inches</p><p>Sensei Mini: 4.6 x 2.4 x 1.4 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>Rival Pro/Sensei Pro: 1.87 ounces / 53g</p><p>Rival Mini/Sensei Mini: 1.73 ounces / 49g</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black, White</p></td></tr><tr><td class="firstcol " ><p><strong>Body material</strong></p></td><td  ><p>Plastic</p></td></tr><tr><td class="firstcol " ><p><strong>Design</strong></p></td><td  ><p>Right-handed ergonomic; right-handed symmetrical</p></td></tr><tr><td class="firstcol " ><p><strong>Operating system</strong></p></td><td  ><p>Windows, macOS</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wired, 6GHz UWB dongle</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable, zero-downtime</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>60 hours (1,000Hz) | 16 hours (8,000Hz)</p></td></tr><tr><td class="firstcol " ><p><strong>Lighting</strong></p></td><td  ><p>No</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-steelseries-rival-pro-review-the-ups"><span>SteelSeries Rival Pro review: The ups</span></h2><p>The SteelSeries Rival Pro is an elite gaming mouse through-and-through. It offers bags of performance and stability, low weight, and plenty of customization.</p><h3 id="ultra-wide-band-connectivity">Ultra-wide band connectivity</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2400px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oN5LGbuqJxkL9DRqwHaKzb" name="Rival Pro 8K UWB_Extended" alt="A photo showing the difference in mouse cursor relay between 2.4Ghz and 6Ghz UWB" src="https://cdn.mos.cms.futurecdn.net/oN5LGbuqJxkL9DRqwHaKzb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2400" height="1350" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">This press image from SteelSeries demonstrates the 2.4GHz connection breaks solved by UWB. </span><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>Key to the Rival Pro’s performance is its connectivity. Instead of the usual 2.4GHz connectivity we typically see on mice, the Rival uses Ultra-wideband (UWB), which operates in the 6GHz band instead of 2.4GHz. Why? Because everything else you’re running over 2.4GHz can cause connection dropouts for the others. </p><p>As some of your devices hog 2.4GHz channels, there can be a momentary pause while other devices hunt for a free channel. On most tech, this doesn’t matter — that hunting takes milliseconds. But on a mouse, which has to track so quickly and accurately, and across so many pixels, those millisecond hunting dropouts can leave you with dead zones in cursor coverage. What happens if an enemy’s head is in that dead zone? No headshot, that’s what. And you’re probably dead as a result.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NUmTH8uC3BQMzwzfTuMBGR" name="Steelseries_rival_pro_ 7.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/NUmTH8uC3BQMzwzfTuMBGR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The UWB hub/charging dock </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>By using UWB, which has more bandwidth and less other stuff on it, the Rival Pro ensures no dead zones and better tracking accuracy. Your cursor should be wherever you actually put it, every time. All the main competition — the <a href="https://www.tomsguide.com/gaming/peripherals/logitech-g-pro-x-superlight-2-review">Logitech G Pro X Superlight 2</a> ($159) and Pro X3 SuperStrike ($199), the <a href="https://www.tomsguide.com/computing/mice/razer-viper-v4-pro-review">Razer Viper V4 Pro</a> ($159) and the <a href="https://www.tomsguide.com/computing/mice/corsair-sabre-v2-pro-review">Corsair Sabre V2 Pro</a> ($99) — use 2.4GHz.</p><p>The downside of UWB is its connectivity range, which is very short, but enough to cover a mousemat area on your desk. That short connectivity range also means other UWB tech likely isn’t going to interfere unless you have them right next to one another. And even then, it won’t be an issue. Let’s say you put an UWB AirTag on your desk within your Rival Pro’s connectivity bubble: UWB covers 6GHz to 9GHz, meaning there’s lots of space and bandwidth to avoid crossovers, and most UWB devices use a very narrow channel within that wider range anyway.</p><p>The main UWB hub and charging dock are obviously not ideal for carrying around. Thankfully, SteelSeries also makes a USB-C travel dongle, although it's a separate $24 purchase.</p><h3 id="lightweight-and-responsive">Lightweight and responsive</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JAtCjrYPNVtPtDBxG5jKrQ" name="Steelseries_rival_pro_ 8.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/JAtCjrYPNVtPtDBxG5jKrQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>As SteelSeries puts it: if you suck already, the UWB stuff and ultra high poll rates won’t magically turn you into a competitive FPS player. However, the Rival Pro’s inherent lightness and responsiveness will definitely help up your game regardless of existing skill.</p><p>While I’m no esports player at Counter-Strike 2, I don’t suck, and I definitely felt the benefit of the Rival Pro’s rapid sensor and streamlined design. With up to 42,000DPI and up to 70G of acceleration, you can zip your cursor across the screen with just a tiny flick. But you can also customize the acceleration profile in the GG app to get it just right for you. There are several behavior profiles (linear, etc) to get you started.</p><p>The Rival Pro is also super lightweight at 53g for the Rival and Sensei Pro, and 49g for the Mini variants. That makes it effortless to slide rapidly across your desk, feeling extremely snappy and responsive. I felt I was able to move and turn quicker and more accurately in Wardogs and Counter-Strike, helping me score kills when reacting to stuff going on behind me. I also played Hell Let Loose and Isonzo with much the same benefits. I had a lot of trouble going back to my heavy <a href="https://www.tomsguide.com/computing/mice/logitech-mx-master-4-review">Logitech MX Master 4</a> ($119) after using the Rival Pro.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iYZNTJ3iTAM7o8ksieyRJ3" name="SteelSeries Rival Pro x Logi MX Master 4" alt="The SteelSeries Rival Pro next to the Logitech MX Master 4" src="https://cdn.mos.cms.futurecdn.net/iYZNTJ3iTAM7o8ksieyRJ3-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">You can see here just how much of a fingerprint magnet the Rival Pro is compared to my usual daily driver, the Logitech MX Master 4. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The 53g Rival/Sensei are lighter than the Logitech G Pro X Superlight 2 at 60g (51g for the mini variant) and the <a href="https://www.tomsguide.com/computing/mice/logitech-g-pro-x2-superstrike-review">X2 SuperStrike</a> ($179) and X3 SuperStrike, each weighing 61g. The Razer Viper V4 Pro and <a href="https://www.tomsguide.com/computing/peripherals/fnatic-x-lamzu-maya-8k-maya-x-8k-mouse-review">Fnatic x Lamzu Maya 8K</a> ($119) weigh less, though, at 49g and 44g.</p><h3 id="oversampled-8k-polling">Oversampled 8K polling</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xyXC9qneyeAurZeCbx7rCQ" name="SteelSeries Rival Pro-5" alt="The SteelSeries Rival Pro being customized in the GG app" src="https://cdn.mos.cms.futurecdn.net/xyXC9qneyeAurZeCbx7rCQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2000" height="1125" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/xyXC9qneyeAurZeCbx7rCQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>Set at the highest poll and sensor report rates of 8K, movement feels incredibly smooth, too. Fun fact: the 8,000Hz polling is actually oversampled down from 9,000Hz — an extra ninth data package is sent after every eighth, providing extra redundancy against instability. Mostly theoretical, of course, as you’ll never actually notice this, but nice to know.</p><p>Not all games work well at 8K, though — Valorant, Apex Legends, Fortnite and Rust (among others) notably suffer frame rate drops. To help with this, you can adjust sensor report polling and click polling independently of one another. This way, you can keep ultra low latency clicks while keeping the sensor poll rate lower to maximize performance.</p><p>It’s easy to switch through customizable poll/report rate profiles using the UWB dongle. There are five presets which you can customize to your liking in GG, and all are color coded via an LED on the dongle, so it’s easy to quickly cycle through them on the fly.</p><h3 id="highly-customizable">Highly customizable</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pBKfgCxsDBjVJYAq4PuR5Q" name="SteelSeries Rival Pro-4" alt="The SteelSeries Rival Pro being customized in the GG app" src="https://cdn.mos.cms.futurecdn.net/pBKfgCxsDBjVJYAq4PuR5Q-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2000" height="1125" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/pBKfgCxsDBjVJYAq4PuR5Q-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>No surprises here — the Rival and Sensei are fully compatible with the SteelSeries GG app. I see a lot of companion apps in my job. Many are good, but plenty are not. GG is one of the good ones. It’s slick, reliable and packed full of useful features — so, yeah, essentially the opposite of Asus’ Armoury Crate bloatware. I also much prefer GG to Razer’s Synapse, Corsair’s iCue and Logi’s G Hub. Admittedly, they all tend to hog system resources.</p><p>GG is fundamental to the Rival/Sensei’s operation. You use GG to adjust poll and sensor report rates, set DPI levels, and tweak binds for every mouse button. It’s also where you can fine tune acceleration curves, set your angle snapping levels and use SteelSeries’ Aim Trainer — it’s essentially a set of mini games all focused on helping you hone your aim, which is genuinely really fun (although I’m not sure it’s improved my aim much).</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="omp5QcwiZEzBnbe7LTg7UQ" name="SteelSeries Rival Pro-8" alt="The SteelSeries Rival Pro being used in the SteelSeries Aim Trainer" src="https://cdn.mos.cms.futurecdn.net/omp5QcwiZEzBnbe7LTg7UQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2560" height="1440" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/omp5QcwiZEzBnbe7LTg7UQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The SteelSeries Aim Trainer is actually a pretty fun game in its own right. </span><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>I mostly use GG for tweaking poll and DPI rates, and setting different per-game configs for the side buttons — I like having crouch and prone set to them in FPS titles so I can quickly kit the deck when fired at, so it’s useful to have per-game configs as not all games use the same prone keybinding.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ygapnbaszApJsT3MQsUo9Q" name="SteelSeries Rival Pro-6" alt="The SteelSeries Rival Pro being customized in the GG app" src="https://cdn.mos.cms.futurecdn.net/ygapnbaszApJsT3MQsUo9Q-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2000" height="1125" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/ygapnbaszApJsT3MQsUo9Q-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>But there’s more! For the first time, SteelSeries has moved the GG app to an online interface (as well as the traditional GG standalone app). I love having the versatility of a web app, letting me tweak your mouse on any computer without installing the GG app. One of the main reasons I love using peripherals from Keychron, Wooting and NuPhy is that I can tweak them via web apps, so it’s great to see SteelSeries following suit here.</p><p>Unfortunately, pre-existing SteelSeries gear won’t be backwards compatible with the web app, although future products should be. That’s fair enough — there has to be a starting point somewhere and it’d be unreasonable to expect SteelSeries to retrofit its entire back catalog of products via firmware. Still, it would’ve been cool to see at least a few choice products get firmware updates and be supported. Bah humbug.</p><h3 id="zero-downtime-battery">Zero downtime battery</h3><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/cnSspWC4oHPQNSFbycpzKR-1920-80.jpg" alt="The SteelSeries Rival Pro mouse on a grey stone surface" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/deL97rjUEAiRGgxiRphKKR-1920-80.jpg" alt="The SteelSeries Rival Pro mouse on a grey stone surface" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>Zero downtime battery systems are fast becoming SteelSeries’ hallmark these days. The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">SteelSeries Arctis Nova Elite</a> ($599) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">Nova Pro Omni</a> ($399) headsets, plus the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-aeon-pro-review">SteelSeries Aeon Pro</a> ($259) controller, all come with spare batteries and charging slots in their USB hubs. It’s one of my favorite things about SteelSeries gear, so I’m happy to see the Rival Pro getting similar treatment. Atop the UWB dongle is a spare battery and charging port, meaning your downtime is only ever the few seconds it takes to swap out batteries.</p><p>Run the Rival/Sensei at full tilt at 9K-oversampled 8K polling, and single-battery life isn’t amazing at around 16 hours. Indeed, in testing a single battery lasted me around two days of gaming. Dropping back to lower poll rates in GG, however, nets you up to 60 hours (1K polling). </p><p>You can also customize the different poll rates with the profiles I mentioned above. When working or playing slower titles like Total War: Rome II or Cities: Skylines 2, I just switched the Rival Pro back to 1K polling. But there are five profiles, giving you lots of options to balance performance versus battery based on your per-game needs.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="F73ck9hMytNDgT4fboPnbQ" name="SteelSeries Rival Pro-3" alt="The SteelSeries Rival Pro USB hub showing green battery charge" src="https://cdn.mos.cms.futurecdn.net/F73ck9hMytNDgT4fboPnbQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The USB hub/battery dock LED light shows you the charge of the battery in the mouse. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you want the best outright battery from a single charge, check out the Razer Viper V4 Pro, which lasts a huge 180 hours at 1K and 45 hours at 8K. Honestly, though, with zero downtime, the single cell life figures don’t really matter unless you’re playing away from home.</p><p>Note that the batteries used in the Rival/Sensei are different to the shared battery used by SteelSeries headsets and the Aeon Pro controller. That battery is way too heavy for a competition mouse, so the Rival and Sensei use their own, lightweight power cell.</p><h2 class="article-body__section" id="section-steelseries-rival-pro-review-the-downs"><span>SteelSeries Rival Pro review: The downs</span></h2><p>The SteelSeries Rival Pro isn’t perfect, costing an objectively pretty penny, and proving a fingerprint magnet, although these flaws are very minor in my book. My only major qualm is that I’d have liked more in the way of click features.</p><h3 id="optical-switches-a-little-featureless">Optical switches a little featureless</h3><p>The Rival Pro uses optical switches in the click buttons, which for most people and use cases is a good thing. They’re excellent for click registry accuracy, reducing accidental inputs. Typically, though, the main benefit of optical switches has been longevity, thanks to contactless operation.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jsoA2z95LXvDfYqbHPtCMR" name="Steelseries_rival_pro_ 5.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/jsoA2z95LXvDfYqbHPtCMR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>These days, though, analog switches have gotten a lot more durable, especially with the advent of magnetic actuation reducing contact points. And there are some huge benefits to the analog magnetic switches you’ll find in the Logitech Pro X2 and X3 SuperStrike specifically.</p><p>Analog magnetic switches open up way more customization and advanced features that can give you an advantage. I’m talking about adjustable actuation to reduce the input needed, resulting in ultra-short actuation distances. Then there’s rapid trigger, which allows repeat continuous inputs without the need to fully recycle the switch back to its original position, or in other words, repeat inputs without releasing the mouse button fully — this opens up faster continuous clicking to provide an advantage when using semi-automatic weapons in shooters, for example. Admittedly, you probably won’t see much benefit until you can train your fingers to repeat click faster, but that <em>is</em> possible.</p><p>Like I said, it’s not like the SteelSeries optical switches are slow. They just feel a little featureless versus the SuperStrike, and for me, that’s a major selling point of the Logi. </p><h3 id="not-the-cheapest">Not the cheapest</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J9yVwkCs6GNs5irDPJaYcQ" name="Steelseries_rival_pro_ 4.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/J9yVwkCs6GNs5irDPJaYcQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Objectively, the Rival and Sensei’s MSRP of $179 / £169 is a lot of money. This is a competitive mouse, so it doesn’t pack all the premium bells and whistles of productivity or MMO mice — there’s no plethora of customizable buttons, no fancy scroll wheels. But it’s kinda like a Porsche 911 GT3 RS in that way: it’s a stripped back, speed-focused competition weapon. In other words… pay more, get less, but go faster.</p><p>However, in context, the Rival/Sensei are actually pretty fairly priced mice, which is why I’ve left this minor con out of my scoring. The Pro X3 SuperStrike costs $199 while the older Pro X2 SuperStrike costs $179. The Pro X Superlight 2 and Viper V4 Pro, meanwhile, are slightly cheaper at $159, but we’re not talking a huge delta here. And besides, the Rival and Sensei have a unique performance advantage thanks to UWB connectivity.</p><h3 id="utter-fingerprint-magnet">Utter fingerprint magnet</h3><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/VTiWiEpWLhMvEukqaLyTDQ-1920-80.jpg" alt="The SteelSeries Rival Pro on a wooden desk" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/WC7ra9mBAqhj4NYwwDGmzP-1920-80.jpg" alt="The SteelSeries Rival Pro on a wooden desk" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>The Rival and Sensei are available in black or white, but I chose the former. Unfortunately, the matte finished plastic combined with the black colorway has proved to be a total fingerprint magnet. </p><p>It’s not a huge problem, and obviously doesn’t affect the performance of the mouse. However, it looks kinda gross, giving serious ‘<em>Cheeto-fingered basement dweller</em>’ vibes, and results in my setup looking a little more shabby than it otherwise would. </p><p>And before you ask: I've been very careful to keep my hands clean (I've not been munching Cheetos while testing). Check out the comparison image earlier on, showing the Rival Pro next to my daily driver that has hundreds of hours of use, the Logitech MX Master 4 — there's barely a mark on the Logi!</p><h2 class="article-body__section" id="section-steelseries-rival-pro-review-verdict"><span>SteelSeries Rival Pro review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HK8Tz3Q9GSnUHpYjjwxsjQ" name="Steelseries_rival_pro_ 2.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/HK8Tz3Q9GSnUHpYjjwxsjQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>SteelSeries has re-entered the chat. The Rival and Sensei are as worthy competition mice as it’s possible to get: lightweight, ultra-responsive and highly customizable. Sure, the black model is a fingerprint magnet and I’d prefer to see analog magnetic switches as in the Logitech Pro X3 SuperStrike, but neither of those things ought to be a dealbreaker.</p><p>Besides, the Rival Pro has two major advantages over all of its competition. There’s the zero-downtime battery life, ensuring you’re never waiting for your mouse to charge. The star of the show, though, is UWB connectivity, which is unique in the market and offers more stable and reliable tracking than any other esports mouse on the market — if that’s not reason enough to buy the Rival Pro, I don’t know what is. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-rival-pro-sensei-pro-review</link>
                                                                            <description>
                            <![CDATA[ Could ultra-wideband be the future of gaming mice? I tested the SteelSeries Rival Pro to find out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">WzLqLmkyFAGzssS7Fe84C3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZkZZdUfVs8b7RnLqFzRTMR-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 29 Sep 2026 14:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ peter.wolinski@futurenet.com (Peter Wolinski) ]]></author>                    <dc:creator><![CDATA[ Peter Wolinski ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/stgPfXWY7ukw8J8rfC7vjg-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Peter is a Senior Editor at Tom&#039;s Guide, heading up the site&#039;s Reviews team and Cameras section. Having built gaming PCs since he was 10 (that&#039;s a while ago now) he&#039;s a bit of a nerd about components and hardware. He&#039;s also been an iPhone user since the classic iPhone 4, and a Mac user for well over a decade. Experienced in using and testing all kinds of technology — from phones through to tablets, computers, games consoles, cameras and smart home tech — helping people find the best tech for them (at the best prices) is what Peter does best. A photographer since he bought his first camera (a Fujifilm) in 2015, Peter was previously an Editor for Canon-Europe.com. He then edited the Cameras and How To sections of Tom&#039;s Guide. When he&#039;s not crafting helpful, in-depth reviews, Peter can usually be found out and about honing his architectural photography skills, riding his motorcycle around Welsh mountain roads, telling everyone about his two greyhounds, squeezing a few extra FPS out of PC games or perfecting his espresso shots.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZkZZdUfVs8b7RnLqFzRTMR-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The SteelSeries Rival Pro mouse on a grey stone surface]]></media:description>                                                            <media:text><![CDATA[The SteelSeries Rival Pro mouse on a grey stone surface]]></media:text>
                                <media:title type="plain"><![CDATA[The SteelSeries Rival Pro mouse on a grey stone surface]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZkZZdUfVs8b7RnLqFzRTMR-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The time has come for SteelSeries to get back into the elite mouse game. While the brand has been pumping out the odd mouse here or there, it knows it’s been falling a little behind its rivals when it comes to cutting edge competition mice. Enter the new SteelSeries Rival Pro and its symmetrical sibling, the Sensei Pro — the latter named, of course, after SteelSeries’ legendary Sensei mouse from 2011.</p><p>The Rival and Sensei pack some powerful specs and interesting features, including Ultra-wideband (UWB) connectivity through to 8K oversampled polling, 8K reporting and 42,000 DPI sensitivity. There’s also zero downtime battery life (SteelSeries’ favorite thing these days), plenty of customization via the GG app and, in a first for SteelSeries, web app support.</p><p>So could this be one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-mouse">best gaming mice</a> for esports and competitive players. Read my full SteelSeries Rival Pro review to find out.</p><p><em>Note, this mouse is available in either ergonomic (Rival) or symmetrical (Sensei) profiles, and in two sizes (Pro being larger, Mini smaller). I’ve covered the Rival Pro here because I spent the most time with it gaming at home (I prefer a larger ergo mouse). But I've also used the Sensei Pro for all test gaming at work. Internally, they're all the same.</em></p><h2 class="article-body__section" id="section-steelseries-rival-pro-review-cheat-sheet"><span>SteelSeries Rival Pro review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>A competition gaming mouse from SteelSeries</li><li><strong>Who is it for? </strong>Elite or highly competitive players</li><li><strong>What does it cost? </strong><a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">$179</a> / <a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">£169</a></li><li><strong>What do we like? </strong>The UWB connectivity, zero downtime battery, responsive performance, and high levels of customization</li><li><strong>What don’t we like? </strong>The black model is a fingerprint magnet, and its optical sensors feel a little featureless versus competition</li></ul><h2 class="article-body__section" id="section-steelseries-rival-pro-review-specs"><span>SteelSeries Rival Pro review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">$179</a> / <a href="https://steelseries.com/gaming-mice/sensei-rival-pro?mouseSize=fullSize&amp;mouse-shape=ergonomic&amp;color=black" target="_blank" rel="nofollow">£169</a></p></td></tr><tr><td class="firstcol " ><p><strong>Max DPI</strong></p></td><td  ><p>42,000</p></td></tr><tr><td class="firstcol " ><p><strong>Polling rate</strong></p></td><td  ><p>8,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Buttons</strong></p></td><td  ><p>6</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>Rival Pro: 4.9 x 2.6 x 1.6 inches</p><p>Rival Mini: 4.7 x 2.5 x 1.5 inches</p><p>Sensei Pro: 4.9 x 2.6 x 1.5 inches</p><p>Sensei Mini: 4.6 x 2.4 x 1.4 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>Rival Pro/Sensei Pro: 1.87 ounces / 53g</p><p>Rival Mini/Sensei Mini: 1.73 ounces / 49g</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black, White</p></td></tr><tr><td class="firstcol " ><p><strong>Body material</strong></p></td><td  ><p>Plastic</p></td></tr><tr><td class="firstcol " ><p><strong>Design</strong></p></td><td  ><p>Right-handed ergonomic; right-handed symmetrical</p></td></tr><tr><td class="firstcol " ><p><strong>Operating system</strong></p></td><td  ><p>Windows, macOS</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wired, 6GHz UWB dongle</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>Rechargeable, zero-downtime</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life (rated)</strong></p></td><td  ><p>60 hours (1,000Hz) | 16 hours (8,000Hz)</p></td></tr><tr><td class="firstcol " ><p><strong>Lighting</strong></p></td><td  ><p>No</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-steelseries-rival-pro-review-the-ups"><span>SteelSeries Rival Pro review: The ups</span></h2><p>The SteelSeries Rival Pro is an elite gaming mouse through-and-through. It offers bags of performance and stability, low weight, and plenty of customization.</p><h3 id="ultra-wide-band-connectivity">Ultra-wide band connectivity</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2400px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="oN5LGbuqJxkL9DRqwHaKzb" name="Rival Pro 8K UWB_Extended" alt="A photo showing the difference in mouse cursor relay between 2.4Ghz and 6Ghz UWB" src="https://cdn.mos.cms.futurecdn.net/oN5LGbuqJxkL9DRqwHaKzb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2400" height="1350" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">This press image from SteelSeries demonstrates the 2.4GHz connection breaks solved by UWB. </span><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>Key to the Rival Pro’s performance is its connectivity. Instead of the usual 2.4GHz connectivity we typically see on mice, the Rival uses Ultra-wideband (UWB), which operates in the 6GHz band instead of 2.4GHz. Why? Because everything else you’re running over 2.4GHz can cause connection dropouts for the others. </p><p>As some of your devices hog 2.4GHz channels, there can be a momentary pause while other devices hunt for a free channel. On most tech, this doesn’t matter — that hunting takes milliseconds. But on a mouse, which has to track so quickly and accurately, and across so many pixels, those millisecond hunting dropouts can leave you with dead zones in cursor coverage. What happens if an enemy’s head is in that dead zone? No headshot, that’s what. And you’re probably dead as a result.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NUmTH8uC3BQMzwzfTuMBGR" name="Steelseries_rival_pro_ 7.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/NUmTH8uC3BQMzwzfTuMBGR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The UWB hub/charging dock </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>By using UWB, which has more bandwidth and less other stuff on it, the Rival Pro ensures no dead zones and better tracking accuracy. Your cursor should be wherever you actually put it, every time. All the main competition — the <a href="https://www.tomsguide.com/gaming/peripherals/logitech-g-pro-x-superlight-2-review">Logitech G Pro X Superlight 2</a> ($159) and Pro X3 SuperStrike ($199), the <a href="https://www.tomsguide.com/computing/mice/razer-viper-v4-pro-review">Razer Viper V4 Pro</a> ($159) and the <a href="https://www.tomsguide.com/computing/mice/corsair-sabre-v2-pro-review">Corsair Sabre V2 Pro</a> ($99) — use 2.4GHz.</p><p>The downside of UWB is its connectivity range, which is very short, but enough to cover a mousemat area on your desk. That short connectivity range also means other UWB tech likely isn’t going to interfere unless you have them right next to one another. And even then, it won’t be an issue. Let’s say you put an UWB AirTag on your desk within your Rival Pro’s connectivity bubble: UWB covers 6GHz to 9GHz, meaning there’s lots of space and bandwidth to avoid crossovers, and most UWB devices use a very narrow channel within that wider range anyway.</p><p>The main UWB hub and charging dock are obviously not ideal for carrying around. Thankfully, SteelSeries also makes a USB-C travel dongle, although it's a separate $24 purchase.</p><h3 id="lightweight-and-responsive">Lightweight and responsive</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JAtCjrYPNVtPtDBxG5jKrQ" name="Steelseries_rival_pro_ 8.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/JAtCjrYPNVtPtDBxG5jKrQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>As SteelSeries puts it: if you suck already, the UWB stuff and ultra high poll rates won’t magically turn you into a competitive FPS player. However, the Rival Pro’s inherent lightness and responsiveness will definitely help up your game regardless of existing skill.</p><p>While I’m no esports player at Counter-Strike 2, I don’t suck, and I definitely felt the benefit of the Rival Pro’s rapid sensor and streamlined design. With up to 42,000DPI and up to 70G of acceleration, you can zip your cursor across the screen with just a tiny flick. But you can also customize the acceleration profile in the GG app to get it just right for you. There are several behavior profiles (linear, etc) to get you started.</p><p>The Rival Pro is also super lightweight at 53g for the Rival and Sensei Pro, and 49g for the Mini variants. That makes it effortless to slide rapidly across your desk, feeling extremely snappy and responsive. I felt I was able to move and turn quicker and more accurately in Wardogs and Counter-Strike, helping me score kills when reacting to stuff going on behind me. I also played Hell Let Loose and Isonzo with much the same benefits. I had a lot of trouble going back to my heavy <a href="https://www.tomsguide.com/computing/mice/logitech-mx-master-4-review">Logitech MX Master 4</a> ($119) after using the Rival Pro.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iYZNTJ3iTAM7o8ksieyRJ3" name="SteelSeries Rival Pro x Logi MX Master 4" alt="The SteelSeries Rival Pro next to the Logitech MX Master 4" src="https://cdn.mos.cms.futurecdn.net/iYZNTJ3iTAM7o8ksieyRJ3-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">You can see here just how much of a fingerprint magnet the Rival Pro is compared to my usual daily driver, the Logitech MX Master 4. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The 53g Rival/Sensei are lighter than the Logitech G Pro X Superlight 2 at 60g (51g for the mini variant) and the <a href="https://www.tomsguide.com/computing/mice/logitech-g-pro-x2-superstrike-review">X2 SuperStrike</a> ($179) and X3 SuperStrike, each weighing 61g. The Razer Viper V4 Pro and <a href="https://www.tomsguide.com/computing/peripherals/fnatic-x-lamzu-maya-8k-maya-x-8k-mouse-review">Fnatic x Lamzu Maya 8K</a> ($119) weigh less, though, at 49g and 44g.</p><h3 id="oversampled-8k-polling">Oversampled 8K polling</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xyXC9qneyeAurZeCbx7rCQ" name="SteelSeries Rival Pro-5" alt="The SteelSeries Rival Pro being customized in the GG app" src="https://cdn.mos.cms.futurecdn.net/xyXC9qneyeAurZeCbx7rCQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2000" height="1125" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/xyXC9qneyeAurZeCbx7rCQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>Set at the highest poll and sensor report rates of 8K, movement feels incredibly smooth, too. Fun fact: the 8,000Hz polling is actually oversampled down from 9,000Hz — an extra ninth data package is sent after every eighth, providing extra redundancy against instability. Mostly theoretical, of course, as you’ll never actually notice this, but nice to know.</p><p>Not all games work well at 8K, though — Valorant, Apex Legends, Fortnite and Rust (among others) notably suffer frame rate drops. To help with this, you can adjust sensor report polling and click polling independently of one another. This way, you can keep ultra low latency clicks while keeping the sensor poll rate lower to maximize performance.</p><p>It’s easy to switch through customizable poll/report rate profiles using the UWB dongle. There are five presets which you can customize to your liking in GG, and all are color coded via an LED on the dongle, so it’s easy to quickly cycle through them on the fly.</p><h3 id="highly-customizable">Highly customizable</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pBKfgCxsDBjVJYAq4PuR5Q" name="SteelSeries Rival Pro-4" alt="The SteelSeries Rival Pro being customized in the GG app" src="https://cdn.mos.cms.futurecdn.net/pBKfgCxsDBjVJYAq4PuR5Q-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2000" height="1125" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/pBKfgCxsDBjVJYAq4PuR5Q-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>No surprises here — the Rival and Sensei are fully compatible with the SteelSeries GG app. I see a lot of companion apps in my job. Many are good, but plenty are not. GG is one of the good ones. It’s slick, reliable and packed full of useful features — so, yeah, essentially the opposite of Asus’ Armoury Crate bloatware. I also much prefer GG to Razer’s Synapse, Corsair’s iCue and Logi’s G Hub. Admittedly, they all tend to hog system resources.</p><p>GG is fundamental to the Rival/Sensei’s operation. You use GG to adjust poll and sensor report rates, set DPI levels, and tweak binds for every mouse button. It’s also where you can fine tune acceleration curves, set your angle snapping levels and use SteelSeries’ Aim Trainer — it’s essentially a set of mini games all focused on helping you hone your aim, which is genuinely really fun (although I’m not sure it’s improved my aim much).</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="omp5QcwiZEzBnbe7LTg7UQ" name="SteelSeries Rival Pro-8" alt="The SteelSeries Rival Pro being used in the SteelSeries Aim Trainer" src="https://cdn.mos.cms.futurecdn.net/omp5QcwiZEzBnbe7LTg7UQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2560" height="1440" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/omp5QcwiZEzBnbe7LTg7UQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The SteelSeries Aim Trainer is actually a pretty fun game in its own right. </span><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>I mostly use GG for tweaking poll and DPI rates, and setting different per-game configs for the side buttons — I like having crouch and prone set to them in FPS titles so I can quickly kit the deck when fired at, so it’s useful to have per-game configs as not all games use the same prone keybinding.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ygapnbaszApJsT3MQsUo9Q" name="SteelSeries Rival Pro-6" alt="The SteelSeries Rival Pro being customized in the GG app" src="https://cdn.mos.cms.futurecdn.net/ygapnbaszApJsT3MQsUo9Q-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2000" height="1125" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/ygapnbaszApJsT3MQsUo9Q-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SteelSeries)</span></figcaption></figure><p>But there’s more! For the first time, SteelSeries has moved the GG app to an online interface (as well as the traditional GG standalone app). I love having the versatility of a web app, letting me tweak your mouse on any computer without installing the GG app. One of the main reasons I love using peripherals from Keychron, Wooting and NuPhy is that I can tweak them via web apps, so it’s great to see SteelSeries following suit here.</p><p>Unfortunately, pre-existing SteelSeries gear won’t be backwards compatible with the web app, although future products should be. That’s fair enough — there has to be a starting point somewhere and it’d be unreasonable to expect SteelSeries to retrofit its entire back catalog of products via firmware. Still, it would’ve been cool to see at least a few choice products get firmware updates and be supported. Bah humbug.</p><h3 id="zero-downtime-battery">Zero downtime battery</h3><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/cnSspWC4oHPQNSFbycpzKR-1920-80.jpg" alt="The SteelSeries Rival Pro mouse on a grey stone surface" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/deL97rjUEAiRGgxiRphKKR-1920-80.jpg" alt="The SteelSeries Rival Pro mouse on a grey stone surface" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>Zero downtime battery systems are fast becoming SteelSeries’ hallmark these days. The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">SteelSeries Arctis Nova Elite</a> ($599) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">Nova Pro Omni</a> ($399) headsets, plus the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-aeon-pro-review">SteelSeries Aeon Pro</a> ($259) controller, all come with spare batteries and charging slots in their USB hubs. It’s one of my favorite things about SteelSeries gear, so I’m happy to see the Rival Pro getting similar treatment. Atop the UWB dongle is a spare battery and charging port, meaning your downtime is only ever the few seconds it takes to swap out batteries.</p><p>Run the Rival/Sensei at full tilt at 9K-oversampled 8K polling, and single-battery life isn’t amazing at around 16 hours. Indeed, in testing a single battery lasted me around two days of gaming. Dropping back to lower poll rates in GG, however, nets you up to 60 hours (1K polling). </p><p>You can also customize the different poll rates with the profiles I mentioned above. When working or playing slower titles like Total War: Rome II or Cities: Skylines 2, I just switched the Rival Pro back to 1K polling. But there are five profiles, giving you lots of options to balance performance versus battery based on your per-game needs.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="F73ck9hMytNDgT4fboPnbQ" name="SteelSeries Rival Pro-3" alt="The SteelSeries Rival Pro USB hub showing green battery charge" src="https://cdn.mos.cms.futurecdn.net/F73ck9hMytNDgT4fboPnbQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The USB hub/battery dock LED light shows you the charge of the battery in the mouse. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you want the best outright battery from a single charge, check out the Razer Viper V4 Pro, which lasts a huge 180 hours at 1K and 45 hours at 8K. Honestly, though, with zero downtime, the single cell life figures don’t really matter unless you’re playing away from home.</p><p>Note that the batteries used in the Rival/Sensei are different to the shared battery used by SteelSeries headsets and the Aeon Pro controller. That battery is way too heavy for a competition mouse, so the Rival and Sensei use their own, lightweight power cell.</p><h2 class="article-body__section" id="section-steelseries-rival-pro-review-the-downs"><span>SteelSeries Rival Pro review: The downs</span></h2><p>The SteelSeries Rival Pro isn’t perfect, costing an objectively pretty penny, and proving a fingerprint magnet, although these flaws are very minor in my book. My only major qualm is that I’d have liked more in the way of click features.</p><h3 id="optical-switches-a-little-featureless">Optical switches a little featureless</h3><p>The Rival Pro uses optical switches in the click buttons, which for most people and use cases is a good thing. They’re excellent for click registry accuracy, reducing accidental inputs. Typically, though, the main benefit of optical switches has been longevity, thanks to contactless operation.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jsoA2z95LXvDfYqbHPtCMR" name="Steelseries_rival_pro_ 5.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/jsoA2z95LXvDfYqbHPtCMR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>These days, though, analog switches have gotten a lot more durable, especially with the advent of magnetic actuation reducing contact points. And there are some huge benefits to the analog magnetic switches you’ll find in the Logitech Pro X2 and X3 SuperStrike specifically.</p><p>Analog magnetic switches open up way more customization and advanced features that can give you an advantage. I’m talking about adjustable actuation to reduce the input needed, resulting in ultra-short actuation distances. Then there’s rapid trigger, which allows repeat continuous inputs without the need to fully recycle the switch back to its original position, or in other words, repeat inputs without releasing the mouse button fully — this opens up faster continuous clicking to provide an advantage when using semi-automatic weapons in shooters, for example. Admittedly, you probably won’t see much benefit until you can train your fingers to repeat click faster, but that <em>is</em> possible.</p><p>Like I said, it’s not like the SteelSeries optical switches are slow. They just feel a little featureless versus the SuperStrike, and for me, that’s a major selling point of the Logi. </p><h3 id="not-the-cheapest">Not the cheapest</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J9yVwkCs6GNs5irDPJaYcQ" name="Steelseries_rival_pro_ 4.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/J9yVwkCs6GNs5irDPJaYcQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Objectively, the Rival and Sensei’s MSRP of $179 / £169 is a lot of money. This is a competitive mouse, so it doesn’t pack all the premium bells and whistles of productivity or MMO mice — there’s no plethora of customizable buttons, no fancy scroll wheels. But it’s kinda like a Porsche 911 GT3 RS in that way: it’s a stripped back, speed-focused competition weapon. In other words… pay more, get less, but go faster.</p><p>However, in context, the Rival/Sensei are actually pretty fairly priced mice, which is why I’ve left this minor con out of my scoring. The Pro X3 SuperStrike costs $199 while the older Pro X2 SuperStrike costs $179. The Pro X Superlight 2 and Viper V4 Pro, meanwhile, are slightly cheaper at $159, but we’re not talking a huge delta here. And besides, the Rival and Sensei have a unique performance advantage thanks to UWB connectivity.</p><h3 id="utter-fingerprint-magnet">Utter fingerprint magnet</h3><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/VTiWiEpWLhMvEukqaLyTDQ-1920-80.jpg" alt="The SteelSeries Rival Pro on a wooden desk" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/WC7ra9mBAqhj4NYwwDGmzP-1920-80.jpg" alt="The SteelSeries Rival Pro on a wooden desk" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>The Rival and Sensei are available in black or white, but I chose the former. Unfortunately, the matte finished plastic combined with the black colorway has proved to be a total fingerprint magnet. </p><p>It’s not a huge problem, and obviously doesn’t affect the performance of the mouse. However, it looks kinda gross, giving serious ‘<em>Cheeto-fingered basement dweller</em>’ vibes, and results in my setup looking a little more shabby than it otherwise would. </p><p>And before you ask: I've been very careful to keep my hands clean (I've not been munching Cheetos while testing). Check out the comparison image earlier on, showing the Rival Pro next to my daily driver that has hundreds of hours of use, the Logitech MX Master 4 — there's barely a mark on the Logi!</p><h2 class="article-body__section" id="section-steelseries-rival-pro-review-verdict"><span>SteelSeries Rival Pro review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HK8Tz3Q9GSnUHpYjjwxsjQ" name="Steelseries_rival_pro_ 2.JPG" alt="The SteelSeries Rival Pro mouse on a grey stone surface" src="https://cdn.mos.cms.futurecdn.net/HK8Tz3Q9GSnUHpYjjwxsjQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>SteelSeries has re-entered the chat. The Rival and Sensei are as worthy competition mice as it’s possible to get: lightweight, ultra-responsive and highly customizable. Sure, the black model is a fingerprint magnet and I’d prefer to see analog magnetic switches as in the Logitech Pro X3 SuperStrike, but neither of those things ought to be a dealbreaker.</p><p>Besides, the Rival Pro has two major advantages over all of its competition. There’s the zero-downtime battery life, ensuring you’re never waiting for your mouse to charge. The star of the show, though, is UWB connectivity, which is unique in the market and offers more stable and reliable tracking than any other esports mouse on the market — if that’s not reason enough to buy the Rival Pro, I don’t know what is. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Witcher 3 Remastered on Switch 2 is the portable RPG experience Nintendo fans deserve — and a huge upgrade over the Switch 1’s compromised port ]]></title>
                                                                                                <dc:content><![CDATA[ <p>There’s an argument that <a href="https://www.tomsguide.com/opinion/witcher-3-next-gen-update-is-even-better-than-expected-im-shocked-its-free">The Witcher 3: Wild Hunt</a> didn’t need a remaster. The 2015 original holds up extremely well even more than a decade later, and the acclaimed RPG has already been refreshed once in the form of a "next-gen" upgrade for <a href="https://www.tomsguide.com/reviews/ps5">PS5</a> and <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> released in December 2022 (with these improvements also brought to PC). </p><p>The newly released The Witcher 3: Wild Hunt — Remastered is arguably more of an exercise in giving players an excuse to rewalk the path ahead of its surprising (but very welcome) third major expansion, Songs of the Past, which is due to launch next year before the next mainline entry in the Witcher saga, the aptly titled The Witcher IV, arrives in (a tentative) 2028. </p><p>Heck, looking at <a href="https://www.youtube.com/watch?v=_oEdB5S2d3U" target="_blank">visual comparisons</a> between the “next-gen” version and Remastered on PS5, Xbox Series X and PC, some online commentators have even questioned whether this new port actually looks better. But one platform where there is no debate is on the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>. The Witcher 3 Remastered on Switch 2 is a night-and-day difference compared to the <a href="https://www.tomsguide.com/hands-on/witcher-3-switch-pax-west">compromised port of the original</a> that released on <a href="https://www.tomsguide.com/reviews/nintendo-switch">Nintendo Switch</a> in 2019. </p><p>I’ve dived back into The Witcher 3 on my Switch 2, even picking up my progress from a previous PS5 playthrough thanks to cross-save, and have been particularly impressed with this remastering effort on Nintendo’s latest hybrid console. The good news is that Nintendo finally has a version of The Witcher 3 that I can wholeheartedly recommend you experience. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wl8dDW"></div>                            </div>                            <script src="https://kwizly.com/embed/Wl8dDW.js" async=""></script><h2 id="the-witcher-3-experience-nintendo-players-deserve">The Witcher 3 experience Nintendo players deserve</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VtnVuazMrGx9Bi4MpmNuCG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-06" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/VtnVuazMrGx9Bi4MpmNuCG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>The Witcher 3 on the original Nintendo Switch was an impressive demonstration of technical wizardry. The vast RPG already had some performance quirks on <a href="https://www.tomsguide.com/us/sony-ps4-review,review-1939.html">PS4</a> and <a href="https://www.tomsguide.com/us/xbox-one,review-1948.html">Xbox One</a>, so making it run on less powerful hardware was commendable. But frankly, I found The Witcher 3 on Switch 1 to be so compromised that I abandoned my playthrough before leaving White Orchard (the starting area). Too many sacrifices had been made. </p><div><blockquote><p>I found The Witcher 3 on Switch 1 to be so compromised that I abandoned my playthrough before leaving White Orchard (the starting area). Too many sacrifices had been made. </p></blockquote></div><p>Flash forward to the Switch 2 generation and The Witcher 3 Remastered, and Nintendo players now have a version of this RPG masterpiece that is not just technically impressive but a genuinely great way to experience Geralt of Rivia’s sprawling quest to locate his young ward, Ciri.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6scDqneMYYtwjGysHLF2PG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-05" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/6scDqneMYYtwjGysHLF2PG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>Naturally, The Witcher 3 Remastered on Switch 2 is not the premiere port; that’ll be found on PC. For starters, the framerate is capped at 30 fps (on PS5/Xbox Series X and PC, you have the option of 60 fps), and there is a noticeable blurriness in the distance, with background structures and objects lacking sharp definition. But these gripes really are nitpicks. </p><p>Actually, playing Witcher 3 on Switch 2 is as absorbing as it’s ever been, and I’ve been particularly impressed with the framerate, which largely hits the 30 fps target (at least, to my eyes). Even in the map’s dense city locations, Novigrad and Oxenfurt, drops are minimal. The Witcher 3 Remastered is the portable edition of this game that Nintendo fans deserve. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mFgkGLTNLz2KFhuezNPCUG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-04" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/mFgkGLTNLz2KFhuezNPCUG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>The Witcher 3 on Switch 1 was a version of the game I could only recommend if you could not play anywhere else, and had no plans to pick up a PlayStation/Xbox or gaming PC in the future. That's not the case with Remastered on Switch 2, which makes a compelling case for itself. </p><p>It might not be the most visually detailed, but having such a grand adventure available on a console that doubles as a handheld is enticing, and the visual/performance sacrifices aren’t so great this time around to effectively outweigh the portable advantage as they did on the Switch 1. </p><h2 id="witcher-3-has-been-refined-not-overhauled">Witcher 3 has been refined, not overhauled</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/OlmuIckOX0c" allowfullscreen=""></iframe></div></div><p>Developer CD Projekt Red has been eager to point out that The Witcher 3: Wild Hunt — Remastered isn’t<em> just</em> about enhancing visuals across platforms, but also brings a wealth of changes to the experience. These are detailed in a lengthy list on <a href="https://www.thewitcher.com/us/en/news/52041/see-whats-new-in-the-witcher-3-wild-hunt-remastered" target="_blank">CDPR’s official website</a>. </p><div><blockquote><p>Playing Witcher 3 on Switch 2 is as absorbing as it’s ever been, and I’ve been particularly impressed with the framerate, which largely hits the 30 fps target.</p></blockquote></div><p>In truth, this is not an overhaul of The Witcher 3. The changes merely refine the base game. It adds several nice-to-have features, such as “transmogging” (setting your outfit's appearance independent of stats) and the option to remove inventory weight restrictions. Combat has also been sharpened with new animations, and your horse, Roach, controls a little less like a tank. </p><p>Perhaps the single biggest change is an entirely reworked skill tree, though I can’t say much about how this “upgrade” affects Geralt's power curve. I’ll need to dive into a fresh playthrough to really see whether it’s an improvement over the previous skill system available in the base game. </p><p>Ultimately, this is still The Witcher 3 — Wild Hunt, a game released in 2015 at its core. It’s not a complete remake that reshapes the RPG in numerous ways. But I don’t think many players were asking for such radical alterations. The Witcher 3 remains one of the yardsticks modern RPGs are measured against, and Remastered buffs out a few minor blemishes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ut4TiTYJt25naGncF9kcTG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-01" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/ut4TiTYJt25naGncF9kcTG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>For anybody who still hasn’t played this masterpiece in the past 11 years, The Witcher 3 — Wild Hunt Remastered is a well-timed excuse to fill that gap in your gaming backlog. And this time around, playing on Nintendo hardware is a viable choice, rather than a last resort for those who didn’t have access to a more powerful console or a PC, as it was on Switch 1.</p><p>Best of all, returning to The Witcher 3 via Remastered on Switch 2 has reminded me just how special this fantasy RPG truly is. And now, in a fall season packed with new releases (not to mention the spectre of GTA 6 looming large), I’m trying to figure out if I have the time to squeeze in a full run over the next few weeks. At least on Switch 2, I can play it anywhere!</p><p><em><strong>The Witcher 3: Wild Hunt — Remastered is out now as a free upgrade for existing owners on PC, PS5, Xbox Series X/S and Nintendo Switch 2.</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-play-my-nintendo-switch-2-every-day-and-these-early-prime-day-switch-deals-are-must-haves">Early Prime Day Nintendo Switch deals</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/fortunes-weave-is-the-best-fire-emblem-yet-but-not-for-the-reasons-you-might-expect">Fortune's Weave is the best Fire Emblem yet</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/nintendo/witcher-3-remastered-on-switch-2-is-the-portable-rpg-experience-nintendo-fans-deserve-and-a-huge-upgrade-over-the-switch-1s-compromised-port</link>
                                                                            <description>
                            <![CDATA[ The Witcher 3 Remastered on Nintendo Switch 2 is the best way to experience Geralt of Rivia's acclaimed RPG adventure on a handheld. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hRJ5SRCocqmqFe3PEvTvei</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AHcX2Ah85pNJgEs3A42ZTG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 29 Sep 2026 12:08:51 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AHcX2Ah85pNJgEs3A42ZTG-1920-80.jpg">
                                                            <media:credit><![CDATA[CD Projekt Red / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2]]></media:description>                                                            <media:text><![CDATA[The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2]]></media:text>
                                <media:title type="plain"><![CDATA[The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AHcX2Ah85pNJgEs3A42ZTG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There’s an argument that <a href="https://www.tomsguide.com/opinion/witcher-3-next-gen-update-is-even-better-than-expected-im-shocked-its-free">The Witcher 3: Wild Hunt</a> didn’t need a remaster. The 2015 original holds up extremely well even more than a decade later, and the acclaimed RPG has already been refreshed once in the form of a "next-gen" upgrade for <a href="https://www.tomsguide.com/reviews/ps5">PS5</a> and <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> released in December 2022 (with these improvements also brought to PC). </p><p>The newly released The Witcher 3: Wild Hunt — Remastered is arguably more of an exercise in giving players an excuse to rewalk the path ahead of its surprising (but very welcome) third major expansion, Songs of the Past, which is due to launch next year before the next mainline entry in the Witcher saga, the aptly titled The Witcher IV, arrives in (a tentative) 2028. </p><p>Heck, looking at <a href="https://www.youtube.com/watch?v=_oEdB5S2d3U" target="_blank">visual comparisons</a> between the “next-gen” version and Remastered on PS5, Xbox Series X and PC, some online commentators have even questioned whether this new port actually looks better. But one platform where there is no debate is on the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>. The Witcher 3 Remastered on Switch 2 is a night-and-day difference compared to the <a href="https://www.tomsguide.com/hands-on/witcher-3-switch-pax-west">compromised port of the original</a> that released on <a href="https://www.tomsguide.com/reviews/nintendo-switch">Nintendo Switch</a> in 2019. </p><p>I’ve dived back into The Witcher 3 on my Switch 2, even picking up my progress from a previous PS5 playthrough thanks to cross-save, and have been particularly impressed with this remastering effort on Nintendo’s latest hybrid console. The good news is that Nintendo finally has a version of The Witcher 3 that I can wholeheartedly recommend you experience. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wl8dDW"></div>                            </div>                            <script src="https://kwizly.com/embed/Wl8dDW.js" async=""></script><h2 id="the-witcher-3-experience-nintendo-players-deserve">The Witcher 3 experience Nintendo players deserve</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VtnVuazMrGx9Bi4MpmNuCG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-06" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/VtnVuazMrGx9Bi4MpmNuCG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>The Witcher 3 on the original Nintendo Switch was an impressive demonstration of technical wizardry. The vast RPG already had some performance quirks on <a href="https://www.tomsguide.com/us/sony-ps4-review,review-1939.html">PS4</a> and <a href="https://www.tomsguide.com/us/xbox-one,review-1948.html">Xbox One</a>, so making it run on less powerful hardware was commendable. But frankly, I found The Witcher 3 on Switch 1 to be so compromised that I abandoned my playthrough before leaving White Orchard (the starting area). Too many sacrifices had been made. </p><div><blockquote><p>I found The Witcher 3 on Switch 1 to be so compromised that I abandoned my playthrough before leaving White Orchard (the starting area). Too many sacrifices had been made. </p></blockquote></div><p>Flash forward to the Switch 2 generation and The Witcher 3 Remastered, and Nintendo players now have a version of this RPG masterpiece that is not just technically impressive but a genuinely great way to experience Geralt of Rivia’s sprawling quest to locate his young ward, Ciri.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6scDqneMYYtwjGysHLF2PG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-05" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/6scDqneMYYtwjGysHLF2PG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>Naturally, The Witcher 3 Remastered on Switch 2 is not the premiere port; that’ll be found on PC. For starters, the framerate is capped at 30 fps (on PS5/Xbox Series X and PC, you have the option of 60 fps), and there is a noticeable blurriness in the distance, with background structures and objects lacking sharp definition. But these gripes really are nitpicks. </p><p>Actually, playing Witcher 3 on Switch 2 is as absorbing as it’s ever been, and I’ve been particularly impressed with the framerate, which largely hits the 30 fps target (at least, to my eyes). Even in the map’s dense city locations, Novigrad and Oxenfurt, drops are minimal. The Witcher 3 Remastered is the portable edition of this game that Nintendo fans deserve. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mFgkGLTNLz2KFhuezNPCUG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-04" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/mFgkGLTNLz2KFhuezNPCUG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>The Witcher 3 on Switch 1 was a version of the game I could only recommend if you could not play anywhere else, and had no plans to pick up a PlayStation/Xbox or gaming PC in the future. That's not the case with Remastered on Switch 2, which makes a compelling case for itself. </p><p>It might not be the most visually detailed, but having such a grand adventure available on a console that doubles as a handheld is enticing, and the visual/performance sacrifices aren’t so great this time around to effectively outweigh the portable advantage as they did on the Switch 1. </p><h2 id="witcher-3-has-been-refined-not-overhauled">Witcher 3 has been refined, not overhauled</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/OlmuIckOX0c" allowfullscreen=""></iframe></div></div><p>Developer CD Projekt Red has been eager to point out that The Witcher 3: Wild Hunt — Remastered isn’t<em> just</em> about enhancing visuals across platforms, but also brings a wealth of changes to the experience. These are detailed in a lengthy list on <a href="https://www.thewitcher.com/us/en/news/52041/see-whats-new-in-the-witcher-3-wild-hunt-remastered" target="_blank">CDPR’s official website</a>. </p><div><blockquote><p>Playing Witcher 3 on Switch 2 is as absorbing as it’s ever been, and I’ve been particularly impressed with the framerate, which largely hits the 30 fps target.</p></blockquote></div><p>In truth, this is not an overhaul of The Witcher 3. The changes merely refine the base game. It adds several nice-to-have features, such as “transmogging” (setting your outfit's appearance independent of stats) and the option to remove inventory weight restrictions. Combat has also been sharpened with new animations, and your horse, Roach, controls a little less like a tank. </p><p>Perhaps the single biggest change is an entirely reworked skill tree, though I can’t say much about how this “upgrade” affects Geralt's power curve. I’ll need to dive into a fresh playthrough to really see whether it’s an improvement over the previous skill system available in the base game. </p><p>Ultimately, this is still The Witcher 3 — Wild Hunt, a game released in 2015 at its core. It’s not a complete remake that reshapes the RPG in numerous ways. But I don’t think many players were asking for such radical alterations. The Witcher 3 remains one of the yardsticks modern RPGs are measured against, and Remastered buffs out a few minor blemishes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ut4TiTYJt25naGncF9kcTG" name="the-witcher-3-wild-hunt-remastered-switch-2-screenshot-01" alt="The Witcher 3: Wild Hunt – Remastered screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/ut4TiTYJt25naGncF9kcTG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red / Tom's Guide)</span></figcaption></figure><p>For anybody who still hasn’t played this masterpiece in the past 11 years, The Witcher 3 — Wild Hunt Remastered is a well-timed excuse to fill that gap in your gaming backlog. And this time around, playing on Nintendo hardware is a viable choice, rather than a last resort for those who didn’t have access to a more powerful console or a PC, as it was on Switch 1.</p><p>Best of all, returning to The Witcher 3 via Remastered on Switch 2 has reminded me just how special this fantasy RPG truly is. And now, in a fall season packed with new releases (not to mention the spectre of GTA 6 looming large), I’m trying to figure out if I have the time to squeeze in a full run over the next few weeks. At least on Switch 2, I can play it anywhere!</p><p><em><strong>The Witcher 3: Wild Hunt — Remastered is out now as a free upgrade for existing owners on PC, PS5, Xbox Series X/S and Nintendo Switch 2.</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-play-my-nintendo-switch-2-every-day-and-these-early-prime-day-switch-deals-are-must-haves">Early Prime Day Nintendo Switch deals</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/fortunes-weave-is-the-best-fire-emblem-yet-but-not-for-the-reasons-you-might-expect">Fortune's Weave is the best Fire Emblem yet</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just tested the first Wi-Fi 8 router and it’s a major upgrade — even if device support is still a year away ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Asus ROG Rapture GT-BN98 Pro: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Wi-Fi Spec:</strong> BN30000<br /><strong>Number of Antennas/Removable:</strong> 8/No<br /><strong>Ports:</strong> Input WAN – One 10 Gbps and one 2.5 Gbps; LAN – one 10 Gbps, three 2.5 Gbps and one 1 Gbps; USB 3.2 Gen 1 and USB 2.0<br /><strong>Processor/Memory/Storage: </strong>2.6 GHz quad-core/2GB DDR4/256MB<br /><strong>Wi-Fi chip:</strong> Broadcom BCM 6718<br /><strong>802.11bn performance: </strong>2.30 Gbps (at 15 feet)<br /><strong>Range:</strong> 135 feet<br /><strong>Size: </strong>13.8 x 13.8 x 2.7 inches<br /><strong>Estimated Annual Electricity Cost:</strong> $43</p></div></div><p>If you’re looking for a sneak peek at what the upcoming <a href="https://www.tomsguide.com/computing/routers/i-got-a-sneak-peek-at-tp-links-upcoming-wi-fi-8-routers-and-improved-range-and-reliability-are-their-biggest-upgrades">Wi-Fi 8</a> spec looks like and can do for your home network, you can do no better than Asus’s new ROG Rapture GT-BN98 Pro. </p><p>A high-performance gaming router, the ROG Rapture GT-BN98 Pro is the first, but certainly not the last, Wi-Fi 8 router. A welcome update that focuses on reliability and range, Wi-Fi 8 also can extend the router’s reach and provide a serious mid-range throughput boost to just about any home network. Unfortunately, it will remain an expensive tease until Wi-Fi 8 client hardware appears sometime next year and the spec’s full promise is within reach.</p><p>Still, the ROG Rapture GT-BN98 Pro excelled with Wi-Fi 7 clients, giving a taste of its potential to not only speed up the data flow but provide a window on the next generation of wireless networking. Read the review to see if this is the <a href="https://www.tomsguide.com/best-picks/best-gaming-routers">best gaming router</a> for your home network and whether or not its $900 price tag is worth the extra range, throughput and reliability.</p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-design"><span>Asus ROG Rapture GT-BN98 Pro: Design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2220px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="7VvziLEDMRDBDKJzsgBFpB" name="ASUS ROG Rapture GT-BN98 Pro-6" alt="The Asus ROG Rapture GT-BN98 Pro seen from the side on a bookshelf" src="https://cdn.mos.cms.futurecdn.net/7VvziLEDMRDBDKJzsgBFpB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2220" height="1249" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Top shelf all the way, the Asus ROG Rapture GT-BN98 Pro is the first Wi-Fi 8 router to hit the market. Based on the draft <a href="https://www.tomsguide.com/computing/routers/wi-fi-8-just-got-its-first-real-test-and-it-could-finally-fix-the-one-problem-every-home-network-has">IEEE 802.11bn</a> spec, it has “conditional approval” from the FCC for sales in the U.S. to enable next-generation performance and reliability. An amalgam of old and new, the ROG Rapture GT-BN98 Pro builds off the <a href="https://www.tomsguide.com/opinion/i-cant-wait-to-see-wi-fi-7-begin-to-become-a-reality-this-year-heres-why">ROG Rapture GT-BE98 Pro</a> and Asus will soon have a mesh networking set based on an existing ZenWiFi design.</p><p>There’s a major caveat, though: We’ll have to wait for Wi-Fi 8 client hardware to show up for phones, notebooks, tablets and USB upgrade kits. Give it six months before we see the true potential of Wi-Fi 8.</p><p>In the here and now, the quad-band GT-BN98 Pro pushes performance by transmitting 4X4 data across each band, starting with 2.4 GHz (for 1.376 Gbps), 5.0 GHz (5.674 Gbps) and two 6 GHz bands (23.058 Gbps). It adds up to a theoretical top speed of over 30 Gbps, making it one of the most powerful networking devices available. </p><p>To get there, the router uses all the tricks of <a href="https://www.tomsguide.com/reference/wi-fi-7-explained">Wi-Fi 7</a> – including 4K Quadrature Amplitude modulation, ultra-wide 320MHz data channels, and Multi-Link Operations – and adds several new Wi-Fi 8 ones – like a more efficient modulation and coding scheme, unequal modulation as well as enhanced distributed channel access. In other words, Wi-Fi 8 can fill in some of the gaps left by Wi-Fi 7.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1256px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="bb6ckcrwARqMUSQrnyHydE" name="ASUS ROG Rapture GT-BN98 Pro-3" alt="A close-up shot showing the internals and massive heatsinks of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/bb6ckcrwARqMUSQrnyHydE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1256" height="707" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Under the skin, Broadcom’s BCM 6718 Wi-Fi chips leverages the draft spec with a 2.6 GHz quad-core processor as well as 2GB of DDR4 RAM and 256MB of flash storage to hold its firmware and settings. Expect several updates as the spec is finalized and new features are added. </p><div class="looped-video"><video class="lazyload-in-view lazyloading" data-src="https://cdn.mos.cms.futurecdn.net/yKYkdEcKtRgRrHQRFwr68C/ASUS%20gtbn98%20LED%20A.mp4" autoplay="" loop="" muted="" playsinline="" src="https://cdn.mos.cms.futurecdn.net/yKYkdEcKtRgRrHQRFwr68C/ASUS%20gtbn98%20LED%20A.mp4"></video></div><p>It’s ready to go with a braided Cat 7 jumper cable, an external power supply and Republic of Gamers stickers. The black and silver GT-BN98 Pro looks impressive and intimidating, just what a gamer wants. On top of a see-through window to show some of the router’s internals and the longitude and latitude of the company’s <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-hands-on-review">Taipei headquarters</a>, the backlit ROG logo has seven lighting effects, although none are performance oriented. </p><p>The GT-BN98 Pro’s eight antennas can be swiveled and rotated but not easily removed. It’s big at 13.8 x 13.8 x 2.7 inches plus an extra 6.1 inches for the antennas when pointed straight up. Turn it over and the router looks more like a mechanical spider.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="5TjR7nmYa467SiEc5taqqP" name="ASUS ROG Rapture GT-BN98 Pro-10" alt="The rear ports of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/5TjR7nmYa467SiEc5taqqP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Its input and output ports are among the best available for multi-gig home networking. One of the two 10Gbps WAN input ports can be used as a high-speed downstream networking link, and both can be set for gaming priority. There are also four 2.5Gbps ports, one of which can be used for input or output data flow as well as a 1 Gbps downstream networking port.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:55.43%;"><img id="AaV3ZtNLypyvdsx8oe8EQS" name="ASUS ROG Rapture GT-BN98 Pro-9" alt="The side ports of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/AaV3ZtNLypyvdsx8oe8EQS-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1419" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The router’s old but reliable USB 2.0 spec (480 Mbps) is augmented by a high-speed USB 3.2 Gen 1 port (10 Gbps) link. They can connect a drive across the LAN or as an Internet backup with a mobile phone during a broadband blackout.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MHbCfNUdjizcmsLJxMBGDV" name="ASUS ROG Rapture GT-BN98 Thermals" alt="A screenshot showing a picture of the Asus ROG Rapture GT-BN98 Pro taken using a thermal imaging camera" src="https://cdn.mos.cms.futurecdn.net/MHbCfNUdjizcmsLJxMBGDV-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>During extensive use, it peaked at a warm 102.6 degrees Fahrenheit thanks to its massive heat sink that’s visible on top; there are four others under the skin to help cool the unit without resorting to a fan. In addition to LEDs for Power, WAN, LAN and action on each band, the router can run as a traditional router, mesh node, access point, repeater and media bridge.</p><p>The ROG Rapture GT-BN98 Pro puts an emphasis on gaming with access to GTNet’s AI-based gamer’s network, although it lacks a world ping map to show areas where connection speeds lag. The adaptive QoE (aka quality of experience), real-time traffic monitor and traffic analyzer help balance the flow. </p><p>It includes online protection for children, a capable firewall and can block ads, trackers and dangerous sites but lacks client level scanning software. One more thing, it can run as a Virtual Private Network (<a href="https://www.tomsguide.com/best-picks/best-vpn">VPN</a>) server or client using any of seven popular protocols. The service is included along with a year of <a href="https://www.tomsguide.com/reviews/nordvpn-review">NordVPN</a> protection. </p><p>The ROG Rapture GT-BN98 Pro’s three year warranty and a lifetime of support outclasses Netgear’s 1-year warranty and 90 days of support. Online, the manual appears basic but its extensive links to setup, security and performance make it a must read. </p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-performance"><span>Asus ROG Rapture GT-BN98 Pro: Performance</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4zRkDhkkG8RmqP7X2LoeqY" name="ASUS ROG Rapture GT-BN98 Pro-5" alt="The Asus ROG Rapture GT-BN98 Pro gaming router plugged in and turned on" src="https://cdn.mos.cms.futurecdn.net/4zRkDhkkG8RmqP7X2LoeqY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Based on three weeks of real-world use and throughput testing with <a href="https://www.keysight.com/us/en/products/ethernet-traffic-emulation/protocol-and-load-test-l4-7-emulation-software/ixchariot.html">Keysight’s IxChariot</a> networking benchmark and a Wi-Fi 7-based HP Envy X360 notebook, the ROG Rapture GT-BN98 Pro provides a sneak peek at Wi-Fi 8’s capabilities. Set to simulate 10 data hungry users, the ROG Rapture GT-BN98 Pro moved 2.407 Gbps over Wi-Fi with the two devices next to each other, just below the company’s <a href="https://www.tomsguide.com/computing/routers/asus-rog-rapture-gt-be19000ai-review">GT-BE19000Ai</a> at 2.867 Gbps. </p><p>Using 15 feet of Cat 7 cable, the router delivered 4.492 Gbps. This blasts past the GT-BE19000AI’s 3.519 Gbps with nearly a gigabit per second more data. </p><p>At a more reasonable 15-feet, the ROG Rapture GT-BN98 Pro delivered 2.300 Gbps of real-world Wi-Fi throughput. Between the <a href="https://www.tomsguide.com/computing/routers/tp-link-archer-ge650-review">TP-Link Archer GE650</a> at 2.019 Gbps and the GT-BE19000Ai’s 2.580 Gbps it’s plenty for 8K videos and high-performance gaming. </p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>15 feet</strong></p></td><td  ><p><strong>50 feet</strong></p></td><td  ><p><strong>75 feet</strong></p></td><td  ><p><strong>90 feet</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Rapture GT-BN98 Pro</strong></p></td><td  ><p>2.300 Gbps</p><p><br /><br /></p></td><td  ><p>950.6 Mbps</p><p><br /><br /></p></td><td  ><p>799.7 Mbps</p><p><br /><br /></p></td><td  ><p>63.4 Mbps</p><p><br /><br /></p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Rapture GT-BE19000Ai</strong></p></td><td  ><p>2.580 Gbps</p><p><br /><br /></p></td><td  ><p>1.006 Gbps</p><p><br /></p></td><td  ><p>528.3 Mbps</p><p><br /><br /></p></td><td  ><p>49.1 Mbps</p><p><br /><br /></p></td></tr><tr><td class="firstcol " ><p><strong>TP-Link Archer GE650</strong></p></td><td  ><p>2.019 Gbps</p><p><br /><br /></p></td><td  ><p>552.5 Mbps</p><p><br /><br /></p></td><td  ><p>238.2 Mbps</p><p><br /><br /></p></td><td  ><p>4.3 Mbps</p><p><br /><br /></p></td></tr><tr><td class="firstcol " ><p><strong>Netgear Nighthawk RS700S</strong></p></td><td  ><p>1.773 Gbps</p><p><br /><br /></p></td><td  ><p>691.8 Mbps</p><p><br /><br /></p></td><td  ><p>187.6 Mbps</p><p><br /><br /></p></td><td  ><p>40.6 Mbps</p><p><br /><br /></p></td></tr></tbody></table></div><p>The router’s 950.6 Mbps of throughput at 50 feet was a shade off the GT-BE19000Ai’s 1.006 Gbps pace but nearly double the 552.5 Mbps of bandwidth offered by the TP-Link Archer GE650. At 75 feet, the router showed the potential of Wi-Fi 8 to fill a house with data at 799.7 Mbps, four times the <a href="https://www.tomsguide.com/reviews/netgear-rs700s">Nighthawk RS700S</a> at 187.6 Mbps and 50 percent higher than the ROG Rapture GT-BE19000Ai’s 528.3 Mbps.</p><p>The router’s 135-foot range makes it perfect for filling large homes with data, and at 90 feet, it led the pack at 63.4Mbps compared to the GT-BE19000Ai’s 49.1 Mbps. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yLiebiotcbsb4j9X2PHDhb" name="ASUS ROG Rapture GT-BN98 traffic" alt="A screenshot showing the network performance of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/yLiebiotcbsb4j9X2PHDhb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As far as sending data across a 20-foot room and through a wall, the GT-BN98 Pro excelled at 2.122 Gbps of throughput. That’s more than double the Archer GE650’s 954.9 Mbps.</p><p>Still, it left a couple of <a href="https://www.tomsguide.com/opinion/when-and-when-not-to-use-a-wi-fi-extender-and-what-to-do-instead">dead zones</a> in the basement of my 3,500 square foot home, making me anxious to see what the first Wi-Fi 8 mesh sets are capable of. The router didn’t choke on anything and was good for everything from work emails and video calls to some gaming and streaming ultra-high resolution videos. </p><p>Its 28-watt peak power use and lack of idle mode add up to an annual power budget of $43, if it runs 24/7 and you pay the national average of 17.5 cents per kilowatt hour of electricity. That’s $20 more than the Archer GE650’s power estimate.</p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-setup"><span>Asus ROG Rapture GT-BN98 Pro: Setup</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xmgzQeEz7cSGoppqjcBUXf" name="ASUS ROG Rapture GT-BN98 Setup" alt="A series of screenshots showing the setup process of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/xmgzQeEz7cSGoppqjcBUXf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setting up as a ROG Rapture GT-BN98 Pro wireless network started with loading Asus’s Router app on my Samsung Galaxy S25 phone. I picked the router from a photo page, snapped the QR code underneath and added log in data. </p><p>In a little less than six minutes, I was done. </p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-configuration"><span>Asus ROG Rapture GT-BN98 Pro: Configuration</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pqm4QAqdJZjAaPVMQfSu6i" name="ASUS ROG Rapture GT-BN98 home screen" alt="The Asus ROG Rapture GT-BN98 Pro's home screen in Asus' Android app" src="https://cdn.mos.cms.futurecdn.net/pqm4QAqdJZjAaPVMQfSu6i-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The app’s Home screen has the current lighting effect and the host’s IP address. There’re links to who’s connected.</p><p>Its other four tabs include Devices (for online connections), Insight page (remotely operating the router and using Asus’s AiProtection) and Family (parental controls based on several broad age groups). Its Settings section allows redoing the setup and using it as a VPN server or client. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DABQLpvW9M2pYzRxBWaBcm" name="ASUS ROG Rapture GT-BN98 Browser Main" alt="A screenshot showing the browser-based menu for the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/DABQLpvW9M2pYzRxBWaBcm-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Based on Asus’s WRT6.0 interface, the browser-based connection looked great and its options mirror those of the app. </p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-gaming"><span>Asus ROG Rapture GT-BN98 Pro: Gaming</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2380px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="bfSwXvRt6JdQxkM6m4tFyJ" name="ASUS ROG Rapture GT-BN98 Pro-11" alt="The antennas on the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/bfSwXvRt6JdQxkM6m4tFyJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2380" height="1339" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The GT-BN98 Pro has lots of gaming potential, starting with an excellent Traffic Analyzer that can track bytes over each wireless band. The QoE section allows tuning for a variety of uses, including online gaming. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kJ7zCgfvfXQYQsaEFHCSJ4" name="ASUS ROG Rapture GT-BN98 quality of life" alt="A screenshot showing the ping and packet loss data of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/kJ7zCgfvfXQYQsaEFHCSJ4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I love the GTNet’s server acceleration network but spent more time with the app’s Ping and Packet Loss data – essential optimization steps before gaming.</p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-verdict"><span>Asus ROG Rapture GT-BN98 Pro: Verdict</span></h3><p>Being first counts for a lot in the Wi-Fi world and Asus leads the pack with its ROG Rapture GT-BN98 Pro, the first, but certainly not the last, Wi-Fi 8 router. Based on the draft spec, Wi-Fi 8 routers can make Wi-Fi 7 even better. That said, the Asus ROG Rapture GT-BN98 Pro delivers an excellent all-around home router with an emphasis on gaming. Able to send data over the 2.4, 5.0 and a pair of 6GHz portals it offers class-leading range and mid-range throughput. </p><p>It’s premature to crown a Wi-Fi 8 king, and the entirety of the spec’s abilities will become evident sometime next year when Wi-Fi 8’s details are finally ratified and client hardware comes out. At that point, Wi-Fi 8’s reliability, extended range and mid-range throughput will truly be put to the test. </p><p>I personally can’t wait. In the meantime, the ROG Rapture GT-BN98 Pro is the leader for a field that I expect to get crowded very quickly. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/routers/asus-rog-rapture-gt-bn98pro-review</link>
                                                                            <description>
                            <![CDATA[ The Asus ROG Rapture GT-BN98 Pro offers a thrilling glimpse into the future of Wi-Fi 8, combining extreme performance with rich ROG gaming features. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4jb9eZjGoftSbc7Twv26RC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Xiu9iqN9jNDRKMx2yiFLC8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 29 Sep 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Routers]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ Brian Nadel ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/qLSkrTG95GayrZcQmwLa2N-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Xiu9iqN9jNDRKMx2yiFLC8-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Asus ROG Rapture GT-BN98 Pro gaming router on a desk]]></media:description>                                                            <media:text><![CDATA[The Asus ROG Rapture GT-BN98 Pro gaming router on a desk]]></media:text>
                                <media:title type="plain"><![CDATA[The Asus ROG Rapture GT-BN98 Pro gaming router on a desk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Xiu9iqN9jNDRKMx2yiFLC8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Asus ROG Rapture GT-BN98 Pro: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Wi-Fi Spec:</strong> BN30000<br /><strong>Number of Antennas/Removable:</strong> 8/No<br /><strong>Ports:</strong> Input WAN – One 10 Gbps and one 2.5 Gbps; LAN – one 10 Gbps, three 2.5 Gbps and one 1 Gbps; USB 3.2 Gen 1 and USB 2.0<br /><strong>Processor/Memory/Storage: </strong>2.6 GHz quad-core/2GB DDR4/256MB<br /><strong>Wi-Fi chip:</strong> Broadcom BCM 6718<br /><strong>802.11bn performance: </strong>2.30 Gbps (at 15 feet)<br /><strong>Range:</strong> 135 feet<br /><strong>Size: </strong>13.8 x 13.8 x 2.7 inches<br /><strong>Estimated Annual Electricity Cost:</strong> $43</p></div></div><p>If you’re looking for a sneak peek at what the upcoming <a href="https://www.tomsguide.com/computing/routers/i-got-a-sneak-peek-at-tp-links-upcoming-wi-fi-8-routers-and-improved-range-and-reliability-are-their-biggest-upgrades">Wi-Fi 8</a> spec looks like and can do for your home network, you can do no better than Asus’s new ROG Rapture GT-BN98 Pro. </p><p>A high-performance gaming router, the ROG Rapture GT-BN98 Pro is the first, but certainly not the last, Wi-Fi 8 router. A welcome update that focuses on reliability and range, Wi-Fi 8 also can extend the router’s reach and provide a serious mid-range throughput boost to just about any home network. Unfortunately, it will remain an expensive tease until Wi-Fi 8 client hardware appears sometime next year and the spec’s full promise is within reach.</p><p>Still, the ROG Rapture GT-BN98 Pro excelled with Wi-Fi 7 clients, giving a taste of its potential to not only speed up the data flow but provide a window on the next generation of wireless networking. Read the review to see if this is the <a href="https://www.tomsguide.com/best-picks/best-gaming-routers">best gaming router</a> for your home network and whether or not its $900 price tag is worth the extra range, throughput and reliability.</p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-design"><span>Asus ROG Rapture GT-BN98 Pro: Design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2220px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="7VvziLEDMRDBDKJzsgBFpB" name="ASUS ROG Rapture GT-BN98 Pro-6" alt="The Asus ROG Rapture GT-BN98 Pro seen from the side on a bookshelf" src="https://cdn.mos.cms.futurecdn.net/7VvziLEDMRDBDKJzsgBFpB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2220" height="1249" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Top shelf all the way, the Asus ROG Rapture GT-BN98 Pro is the first Wi-Fi 8 router to hit the market. Based on the draft <a href="https://www.tomsguide.com/computing/routers/wi-fi-8-just-got-its-first-real-test-and-it-could-finally-fix-the-one-problem-every-home-network-has">IEEE 802.11bn</a> spec, it has “conditional approval” from the FCC for sales in the U.S. to enable next-generation performance and reliability. An amalgam of old and new, the ROG Rapture GT-BN98 Pro builds off the <a href="https://www.tomsguide.com/opinion/i-cant-wait-to-see-wi-fi-7-begin-to-become-a-reality-this-year-heres-why">ROG Rapture GT-BE98 Pro</a> and Asus will soon have a mesh networking set based on an existing ZenWiFi design.</p><p>There’s a major caveat, though: We’ll have to wait for Wi-Fi 8 client hardware to show up for phones, notebooks, tablets and USB upgrade kits. Give it six months before we see the true potential of Wi-Fi 8.</p><p>In the here and now, the quad-band GT-BN98 Pro pushes performance by transmitting 4X4 data across each band, starting with 2.4 GHz (for 1.376 Gbps), 5.0 GHz (5.674 Gbps) and two 6 GHz bands (23.058 Gbps). It adds up to a theoretical top speed of over 30 Gbps, making it one of the most powerful networking devices available. </p><p>To get there, the router uses all the tricks of <a href="https://www.tomsguide.com/reference/wi-fi-7-explained">Wi-Fi 7</a> – including 4K Quadrature Amplitude modulation, ultra-wide 320MHz data channels, and Multi-Link Operations – and adds several new Wi-Fi 8 ones – like a more efficient modulation and coding scheme, unequal modulation as well as enhanced distributed channel access. In other words, Wi-Fi 8 can fill in some of the gaps left by Wi-Fi 7.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1256px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="bb6ckcrwARqMUSQrnyHydE" name="ASUS ROG Rapture GT-BN98 Pro-3" alt="A close-up shot showing the internals and massive heatsinks of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/bb6ckcrwARqMUSQrnyHydE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1256" height="707" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Under the skin, Broadcom’s BCM 6718 Wi-Fi chips leverages the draft spec with a 2.6 GHz quad-core processor as well as 2GB of DDR4 RAM and 256MB of flash storage to hold its firmware and settings. Expect several updates as the spec is finalized and new features are added. </p><div class="looped-video"><video class="lazyload-in-view lazyloading" data-src="https://cdn.mos.cms.futurecdn.net/yKYkdEcKtRgRrHQRFwr68C/ASUS%20gtbn98%20LED%20A.mp4" autoplay="" loop="" muted="" playsinline="" src="https://cdn.mos.cms.futurecdn.net/yKYkdEcKtRgRrHQRFwr68C/ASUS%20gtbn98%20LED%20A.mp4"></video></div><p>It’s ready to go with a braided Cat 7 jumper cable, an external power supply and Republic of Gamers stickers. The black and silver GT-BN98 Pro looks impressive and intimidating, just what a gamer wants. On top of a see-through window to show some of the router’s internals and the longitude and latitude of the company’s <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-xbox-ally-x20-hands-on-review">Taipei headquarters</a>, the backlit ROG logo has seven lighting effects, although none are performance oriented. </p><p>The GT-BN98 Pro’s eight antennas can be swiveled and rotated but not easily removed. It’s big at 13.8 x 13.8 x 2.7 inches plus an extra 6.1 inches for the antennas when pointed straight up. Turn it over and the router looks more like a mechanical spider.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="5TjR7nmYa467SiEc5taqqP" name="ASUS ROG Rapture GT-BN98 Pro-10" alt="The rear ports of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/5TjR7nmYa467SiEc5taqqP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Its input and output ports are among the best available for multi-gig home networking. One of the two 10Gbps WAN input ports can be used as a high-speed downstream networking link, and both can be set for gaming priority. There are also four 2.5Gbps ports, one of which can be used for input or output data flow as well as a 1 Gbps downstream networking port.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:55.43%;"><img id="AaV3ZtNLypyvdsx8oe8EQS" name="ASUS ROG Rapture GT-BN98 Pro-9" alt="The side ports of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/AaV3ZtNLypyvdsx8oe8EQS-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1419" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The router’s old but reliable USB 2.0 spec (480 Mbps) is augmented by a high-speed USB 3.2 Gen 1 port (10 Gbps) link. They can connect a drive across the LAN or as an Internet backup with a mobile phone during a broadband blackout.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MHbCfNUdjizcmsLJxMBGDV" name="ASUS ROG Rapture GT-BN98 Thermals" alt="A screenshot showing a picture of the Asus ROG Rapture GT-BN98 Pro taken using a thermal imaging camera" src="https://cdn.mos.cms.futurecdn.net/MHbCfNUdjizcmsLJxMBGDV-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>During extensive use, it peaked at a warm 102.6 degrees Fahrenheit thanks to its massive heat sink that’s visible on top; there are four others under the skin to help cool the unit without resorting to a fan. In addition to LEDs for Power, WAN, LAN and action on each band, the router can run as a traditional router, mesh node, access point, repeater and media bridge.</p><p>The ROG Rapture GT-BN98 Pro puts an emphasis on gaming with access to GTNet’s AI-based gamer’s network, although it lacks a world ping map to show areas where connection speeds lag. The adaptive QoE (aka quality of experience), real-time traffic monitor and traffic analyzer help balance the flow. </p><p>It includes online protection for children, a capable firewall and can block ads, trackers and dangerous sites but lacks client level scanning software. One more thing, it can run as a Virtual Private Network (<a href="https://www.tomsguide.com/best-picks/best-vpn">VPN</a>) server or client using any of seven popular protocols. The service is included along with a year of <a href="https://www.tomsguide.com/reviews/nordvpn-review">NordVPN</a> protection. </p><p>The ROG Rapture GT-BN98 Pro’s three year warranty and a lifetime of support outclasses Netgear’s 1-year warranty and 90 days of support. Online, the manual appears basic but its extensive links to setup, security and performance make it a must read. </p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-performance"><span>Asus ROG Rapture GT-BN98 Pro: Performance</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4zRkDhkkG8RmqP7X2LoeqY" name="ASUS ROG Rapture GT-BN98 Pro-5" alt="The Asus ROG Rapture GT-BN98 Pro gaming router plugged in and turned on" src="https://cdn.mos.cms.futurecdn.net/4zRkDhkkG8RmqP7X2LoeqY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Based on three weeks of real-world use and throughput testing with <a href="https://www.keysight.com/us/en/products/ethernet-traffic-emulation/protocol-and-load-test-l4-7-emulation-software/ixchariot.html">Keysight’s IxChariot</a> networking benchmark and a Wi-Fi 7-based HP Envy X360 notebook, the ROG Rapture GT-BN98 Pro provides a sneak peek at Wi-Fi 8’s capabilities. Set to simulate 10 data hungry users, the ROG Rapture GT-BN98 Pro moved 2.407 Gbps over Wi-Fi with the two devices next to each other, just below the company’s <a href="https://www.tomsguide.com/computing/routers/asus-rog-rapture-gt-be19000ai-review">GT-BE19000Ai</a> at 2.867 Gbps. </p><p>Using 15 feet of Cat 7 cable, the router delivered 4.492 Gbps. This blasts past the GT-BE19000AI’s 3.519 Gbps with nearly a gigabit per second more data. </p><p>At a more reasonable 15-feet, the ROG Rapture GT-BN98 Pro delivered 2.300 Gbps of real-world Wi-Fi throughput. Between the <a href="https://www.tomsguide.com/computing/routers/tp-link-archer-ge650-review">TP-Link Archer GE650</a> at 2.019 Gbps and the GT-BE19000Ai’s 2.580 Gbps it’s plenty for 8K videos and high-performance gaming. </p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>15 feet</strong></p></td><td  ><p><strong>50 feet</strong></p></td><td  ><p><strong>75 feet</strong></p></td><td  ><p><strong>90 feet</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Rapture GT-BN98 Pro</strong></p></td><td  ><p>2.300 Gbps</p><p><br /><br /></p></td><td  ><p>950.6 Mbps</p><p><br /><br /></p></td><td  ><p>799.7 Mbps</p><p><br /><br /></p></td><td  ><p>63.4 Mbps</p><p><br /><br /></p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Rapture GT-BE19000Ai</strong></p></td><td  ><p>2.580 Gbps</p><p><br /><br /></p></td><td  ><p>1.006 Gbps</p><p><br /></p></td><td  ><p>528.3 Mbps</p><p><br /><br /></p></td><td  ><p>49.1 Mbps</p><p><br /><br /></p></td></tr><tr><td class="firstcol " ><p><strong>TP-Link Archer GE650</strong></p></td><td  ><p>2.019 Gbps</p><p><br /><br /></p></td><td  ><p>552.5 Mbps</p><p><br /><br /></p></td><td  ><p>238.2 Mbps</p><p><br /><br /></p></td><td  ><p>4.3 Mbps</p><p><br /><br /></p></td></tr><tr><td class="firstcol " ><p><strong>Netgear Nighthawk RS700S</strong></p></td><td  ><p>1.773 Gbps</p><p><br /><br /></p></td><td  ><p>691.8 Mbps</p><p><br /><br /></p></td><td  ><p>187.6 Mbps</p><p><br /><br /></p></td><td  ><p>40.6 Mbps</p><p><br /><br /></p></td></tr></tbody></table></div><p>The router’s 950.6 Mbps of throughput at 50 feet was a shade off the GT-BE19000Ai’s 1.006 Gbps pace but nearly double the 552.5 Mbps of bandwidth offered by the TP-Link Archer GE650. At 75 feet, the router showed the potential of Wi-Fi 8 to fill a house with data at 799.7 Mbps, four times the <a href="https://www.tomsguide.com/reviews/netgear-rs700s">Nighthawk RS700S</a> at 187.6 Mbps and 50 percent higher than the ROG Rapture GT-BE19000Ai’s 528.3 Mbps.</p><p>The router’s 135-foot range makes it perfect for filling large homes with data, and at 90 feet, it led the pack at 63.4Mbps compared to the GT-BE19000Ai’s 49.1 Mbps. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yLiebiotcbsb4j9X2PHDhb" name="ASUS ROG Rapture GT-BN98 traffic" alt="A screenshot showing the network performance of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/yLiebiotcbsb4j9X2PHDhb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As far as sending data across a 20-foot room and through a wall, the GT-BN98 Pro excelled at 2.122 Gbps of throughput. That’s more than double the Archer GE650’s 954.9 Mbps.</p><p>Still, it left a couple of <a href="https://www.tomsguide.com/opinion/when-and-when-not-to-use-a-wi-fi-extender-and-what-to-do-instead">dead zones</a> in the basement of my 3,500 square foot home, making me anxious to see what the first Wi-Fi 8 mesh sets are capable of. The router didn’t choke on anything and was good for everything from work emails and video calls to some gaming and streaming ultra-high resolution videos. </p><p>Its 28-watt peak power use and lack of idle mode add up to an annual power budget of $43, if it runs 24/7 and you pay the national average of 17.5 cents per kilowatt hour of electricity. That’s $20 more than the Archer GE650’s power estimate.</p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-setup"><span>Asus ROG Rapture GT-BN98 Pro: Setup</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xmgzQeEz7cSGoppqjcBUXf" name="ASUS ROG Rapture GT-BN98 Setup" alt="A series of screenshots showing the setup process of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/xmgzQeEz7cSGoppqjcBUXf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setting up as a ROG Rapture GT-BN98 Pro wireless network started with loading Asus’s Router app on my Samsung Galaxy S25 phone. I picked the router from a photo page, snapped the QR code underneath and added log in data. </p><p>In a little less than six minutes, I was done. </p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-configuration"><span>Asus ROG Rapture GT-BN98 Pro: Configuration</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pqm4QAqdJZjAaPVMQfSu6i" name="ASUS ROG Rapture GT-BN98 home screen" alt="The Asus ROG Rapture GT-BN98 Pro's home screen in Asus' Android app" src="https://cdn.mos.cms.futurecdn.net/pqm4QAqdJZjAaPVMQfSu6i-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The app’s Home screen has the current lighting effect and the host’s IP address. There’re links to who’s connected.</p><p>Its other four tabs include Devices (for online connections), Insight page (remotely operating the router and using Asus’s AiProtection) and Family (parental controls based on several broad age groups). Its Settings section allows redoing the setup and using it as a VPN server or client. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DABQLpvW9M2pYzRxBWaBcm" name="ASUS ROG Rapture GT-BN98 Browser Main" alt="A screenshot showing the browser-based menu for the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/DABQLpvW9M2pYzRxBWaBcm-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Based on Asus’s WRT6.0 interface, the browser-based connection looked great and its options mirror those of the app. </p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-gaming"><span>Asus ROG Rapture GT-BN98 Pro: Gaming</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2380px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="bfSwXvRt6JdQxkM6m4tFyJ" name="ASUS ROG Rapture GT-BN98 Pro-11" alt="The antennas on the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/bfSwXvRt6JdQxkM6m4tFyJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2380" height="1339" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The GT-BN98 Pro has lots of gaming potential, starting with an excellent Traffic Analyzer that can track bytes over each wireless band. The QoE section allows tuning for a variety of uses, including online gaming. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kJ7zCgfvfXQYQsaEFHCSJ4" name="ASUS ROG Rapture GT-BN98 quality of life" alt="A screenshot showing the ping and packet loss data of the Asus ROG Rapture GT-BN98 Pro gaming router" src="https://cdn.mos.cms.futurecdn.net/kJ7zCgfvfXQYQsaEFHCSJ4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I love the GTNet’s server acceleration network but spent more time with the app’s Ping and Packet Loss data – essential optimization steps before gaming.</p><h3 class="article-body__section" id="section-asus-rog-rapture-gt-bn98-pro-verdict"><span>Asus ROG Rapture GT-BN98 Pro: Verdict</span></h3><p>Being first counts for a lot in the Wi-Fi world and Asus leads the pack with its ROG Rapture GT-BN98 Pro, the first, but certainly not the last, Wi-Fi 8 router. Based on the draft spec, Wi-Fi 8 routers can make Wi-Fi 7 even better. That said, the Asus ROG Rapture GT-BN98 Pro delivers an excellent all-around home router with an emphasis on gaming. Able to send data over the 2.4, 5.0 and a pair of 6GHz portals it offers class-leading range and mid-range throughput. </p><p>It’s premature to crown a Wi-Fi 8 king, and the entirety of the spec’s abilities will become evident sometime next year when Wi-Fi 8’s details are finally ratified and client hardware comes out. At that point, Wi-Fi 8’s reliability, extended range and mid-range throughput will truly be put to the test. </p><p>I personally can’t wait. In the meantime, the ROG Rapture GT-BN98 Pro is the leader for a field that I expect to get crowded very quickly. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve been testing this budget Apple Studio Display alternative — and it’s actually better for work and gaming ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you’re on the hunt for a professional monitor, chances are you’ve considered Apple’s <a href="https://www.tomsguide.com/reviews/apple-studio-display">Studio Display</a> or even the new mini-LED <a href="https://www.tomsguide.com/computing/monitors/apple-studio-display-xdr-review">Studio Display XDR</a>. They’re both great options if you’re looking to give your home office a major upgrade.</p><p>At $1,599 for the standard Studio Display and $3,299 for the Studio Display XDR though, neither of these premium monitors comes cheap. Then when you factor in useful add-ons from Apple like glare-free, nano-texture glass or a <a href="https://www.tomsguide.com/home/home-office/i-added-this-underrated-accessory-to-my-desk-setup-and-its-a-game-changer-for-ergonomics">tilt-and-height-adjustable stand</a>, you’re looking at a very serious investment.</p><p>This is why at Tom’s Guide, we’ve been testing out different Studio Display alternatives. From the <a href="https://www.tomsguide.com/computing/monitors/benq-ma270s-review">BenQ MA270S</a> to the <a href="https://www.tomsguide.com/computing/monitors/msi-pro-max-271upxw12g-review">MSI Pro Max 271UPXW12G</a>, there’s a growing number of creative and professional monitors that give you a similar experience at a fraction of the price. However, while these two options are more affordable, they have the same 27-inch display size as Apple’s Studio Display.</p><p>While 27 inches is the sweet spot for many, once you <a href="https://www.tomsguide.com/computing/monitors/i-just-tested-this-budget-32-inch-4k-gaming-monitor-and-its-the-perfect-upgrade-for-your-ps5-and-xbox-series-x">go up to a 32-inch monitor</a>, it’s hard to go back. That’s why I’ve spent the past month trying out the Innocn CB32U1. Not only is it larger, but it also sports a faster 160Hz refresh rate along with dual HDMI 2.1 ports, which makes it a more work-friendly option than one of the <a href="https://www.tomshardware.com/reviews/best-gaming-monitors,4533.html">best gaming monitors</a>.</p><p>Here’s what it’s been like using this budget-friendly Studio Display alternative as my daily driver — and why I might not be going back to my Apple monitor anytime soon.</p><div class="product"><a data-dimension112="a6497006-ba4b-11f1-9f2e-53fe59121e06" data-action="Deal Block" data-label="CB32U1 32-inch 4K monitor" data-dimension48="CB32U1 32-inch 4K monitor" data-dimension25="$522" href="https://www.amazon.com/INNOCN-32-120Hz-Monitor-DisplayPort/dp/B0G6Y762L5" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:76.67%;"><img id="9D3t4FL5sNLFxnuz9FJJ84" name="CB32U1 32-inch 4K monitor" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9D3t4FL5sNLFxnuz9FJJ84-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1150" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/INNOCN-32-120Hz-Monitor-DisplayPort/dp/B0G6Y762L5" target="_blank" rel="nofollow" data-dimension112="a6497006-ba4b-11f1-9f2e-53fe59121e06" data-action="Deal Block" data-label="CB32U1 32-inch 4K monitor" data-dimension48="CB32U1 32-inch 4K monitor" data-dimension25="$522">CB32U1 32-inch 4K monitor: was $549 now $522</a></strong><br />This 32-inch, 4K IPS monitor runs up to 120Hz and comes with an adjustable stand alongside a VESA mounting plate right in the box. Around back, you get a full array of ports including two HDMI 2.1 ports, DisplayPort 1.4, a USB-C port with 90W Power Delivery for single-cable MacBook charging, and an included external USB hub with extra ports and a 3.5mm audio jack. While it lacks built-in speakers, it pairs seamlessly with Mac and console setups alike.</p><p><strong>Price Check: </strong><a href="https://innocn.com/en-us/products/innocn-32-4k-160hz-ips-usb-c-90w-gaming-monitor-cb32u1" target="_blank" rel="nofollow"><strong>$549 @ Innocn</strong></a><a class="view-deal button" href="https://www.amazon.com/INNOCN-32-120Hz-Monitor-DisplayPort/dp/B0G6Y762L5" target="_blank" rel="nofollow" data-dimension112="a6497006-ba4b-11f1-9f2e-53fe59121e06" data-action="Deal Block" data-label="CB32U1 32-inch 4K monitor" data-dimension48="CB32U1 32-inch 4K monitor" data-dimension25="$522">View Deal</a></p></div><h2 id="part-art-part-gaming-monitor">Part art, part gaming monitor</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WYa2HkjJpDTpP4XiphXW3n" name="Innocn CB321U--6" alt="The Innocn CB32U1 monitor unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/WYa2HkjJpDTpP4XiphXW3n-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is the third Innocn monitor I’ve checked out and one thing that continues to impress me is the sheer amount of cables and accessories in the box. If there’s a port on the monitor, you get a cable for it so you don’t have to scrounge through your <a href="https://www.tomsguide.com/opinion/i-used-this-simple-hack-to-tame-my-tangled-box-of-cables">box of cables</a> while trying to set up your new display. One surprising addition with the CB32U1 was a USB hub with a USB-C connector on one end and a USB-A one on the other, but more on that in a bit.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SpR99aPMDGjHmyUyti6Fz" name="Innocn CB321U--5" alt="The rear ports on the back of the Innocn CB32U1 monitor" src="https://cdn.mos.cms.futurecdn.net/SpR99aPMDGjHmyUyti6Fz-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to ports, there’s a nice selection of them around back. You get two HDMI 2.1 connections, DisplayPort 1.4, USB-C with 90W of power delivery, and a power port. </p><p>While the previous two Innocn monitors I tested used a standard PC power plug, this one uses a barrel connector and an external power brick. Normally, this would be a downside, but here it works because instead of being tucked on the underside of the display, all of this monitor's ports are located flat on the back — just like on Apple’s Studio Display. </p><p>With its clean white look with silver trim, you wouldn't think you’re dealing with a display capable of handling high refresh rate gaming just as well as photo or video editing.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vgCUTJuUtTf9Up6hjWepA6" name="Innocn CB321U--4" alt="The back of the Innocn CB32U1 monitor and the included VESA mount adapter" src="https://cdn.mos.cms.futurecdn.net/vgCUTJuUtTf9Up6hjWepA6-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Given I often prefer using one of the <a href="https://www.tomsguide.com/best-picks/best-monitor-arms">best monitor arms</a> with my desk setups, I always look for standard VESA mounting options when shopping for a new display. While the CB32U1 uses a quick-release mount for its included stand, Innocn does include a VESA adapter plate right in the box if you want to go that route.</p><p>Speaking of the stand, it has a metal base and metal post which makes it feel quite sturdy on your desk. There isn’t a cable cutout on the post, but to be honest, I kind of prefer it that way. With a cutout, you're forced into routing cables a specific way, but here, I was able to cleanly strap all my cables behind the post without any of them peeking out from the front.</p><p>With the Innocn CB32U1 unboxed and set up, it was time to start putting the display through its paces.</p><h2 id="macbook-ready-but-built-for-more">MacBook-ready but built for more</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tGCxTj9BGYKgzuwPBgCiN9" name="Innocn CB321U--3" alt="Testing the Innocn CB32U1 monitor with a MacBook Pro" src="https://cdn.mos.cms.futurecdn.net/tGCxTj9BGYKgzuwPBgCiN9-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As I usually do when trying out a new monitor, the first thing I did was connect my <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-m5-review">16-inch MacBook Pro M5</a> to the CB32U1. I was immediately impressed with the display’s color reproduction and just how close it was to my MacBook’s screen — even without switching to its dedicated Mac Mode. With 90W of Power Delivery over USB-C, I was able to use and charge the laptop with a single cable too.</p><p>From there, I decided to build a full desk setup around the CB32U1, utilizing the rest of its ports to connect one of the <a href="https://www.tomsguide.com/us/best-mini-pc.html">best mini PCs</a> and my Nintendo Switch 2. With its ports flat on the back instead of tucked on the underside, I didn’t have to worry about cables poking out underneath the display, which made cable management an absolute breeze. However, I was curious about that included USB hub I mentioned earlier, so I decided to set it up too.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vMy5gZp9XYRnRKUZS56AeC" name="Innocn CB321U--2" alt="Cable management behind the Innocn CB32U1 monitor showing of the included USB hub" src="https://cdn.mos.cms.futurecdn.net/vMy5gZp9XYRnRKUZS56AeC-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even though the CB32U1 doesn’t have a built-in KVM switch like the 5K2K Innocn ultrawide I previously tried out, this USB hub does a great job of making up for it. You plug the primary end into the USB-C port on the back of the monitor and plug the upstream USB-A end into your computer. Once that's done, you get three extra USB ports and a 3.5mm audio jack you can use with a pair of the <a href="https://www.tomsguide.com/us/best-computer-speakers,review-6355.html">best computer speakers</a>.</p><p>Although a built-in KVM switch would have let me switch seamlessly between devices while using the same peripherals, this USB hub — and the way that I installed it — did let me hotswap computers on a whim. For instance, I first used the CB32U1 with the <a href="https://www.reddit.com/r/MiniPCs/comments/1s35f2c/minisforum_atomman_g1_pro_review/">Minisforum G1 Pro</a> as I wanted to put its gaming capabilities to the test but then I ended up swapping that PC out for Apple’s new <a href="https://www.tomsguide.com/computing/apple-desktops/mac-mini-m6-review">Mac mini M6</a> while working on my review. Thanks to having the 2.4 GHz USB dongles for my mechanical keyboard and trackball mouse installed behind the monitor, I didn’t have to unplug or pair anything. Instead, I just used a USB-A to USB-C adapter on the back of the new Mac mini and voila, I was instantly typing away on Apple’s upgraded Mac desktop.</p><p>Editing photos and doing other creative work on the CB32U1 was an absolute joy. While it wasn’t quite as impressive as back when I reviewed the Studio Display XDR, its IPS panel was clear, sharp and most importantly, glare-free. Even though it’s not as advanced as Apple’s etched nano-texture glass, the matte anti-glare coating Innocn used on this display definitely does the trick.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="mSbKyxnTP48EhMZtDiyzX6" name="Herman Miller Coyl Gaming Desk-3" alt="A person sitting in the Herman Miller Vantum gaming chair playing games at a desk setup built on top of the Herman Miller Coyl Gaming Desk" src="https://cdn.mos.cms.futurecdn.net/mSbKyxnTP48EhMZtDiyzX6-1920-80.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As for gaming on the CB32U1, that was a surprisingly good experience as well. Even though it doesn’t have a 240Hz or 360Hz refresh rate like you often see on high-end gaming monitors, this display has a 144Hz one out of the box, though you can overclock that all the way up to 160Hz. This is more than enough for non-competitive players and it also has AMD FreeSync on board for tear-free variable refresh rate (VRR) gaming.</p><p>One thing that stands out here too is the inclusion of not one but two HDMI 2.1 ports. While most PC players chasing maximum frame rates and performance go with DisplayPort, to play above 60Hz on either the PS5 or Xbox Series X, you need HDMI 2.1. </p><p>I could easily see someone using the CB32U1 for work during the day and then having a console next to it to get in a play session at night. You really do get the best of both worlds here for a lot less than you’d typically spend on a professional monitor from brands like MSI or BenQ and of course, Apple.</p><h2 id="not-quite-an-all-in-one-display">Not quite an all-in-one display</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="C645sXNpPgYyqmbVs6jbPB" name="Herman Miller Coyl Gaming Desk-6" alt="A desk setup built around the Herman Miller Coyl Gaming Desk" src="https://cdn.mos.cms.futurecdn.net/C645sXNpPgYyqmbVs6jbPB-1920-80.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now what do you lose out on when going with a more affordable Studio Display alternative like the Innocn CB32U1? For starters, you don’t get an integrated webcam and will need to bring your own. At the same time, unlike with the previous two Innocn monitors I tried out, this one doesn’t have built-in speakers. Now I know monitor speakers leave a lot to be desired, but I still like having them as they can be quite useful in a pinch.</p><p>With this desk setup, I went with the <a href="https://www.tomsguide.com/audio/soundbars/i-tried-this-under-monitor-soundbar-and-its-perfect-for-cramped-desks">BlueAnt Soundblade</a> for audio as this under-monitor soundbar helped me free up valuable desk space. However, it also gave me a place to put Flipper’s BUSY Bar – yes, the same Flipper behind the <a href="https://www.tomsguide.com/opinion/the-flipper-zero-has-gotten-a-bad-rap-why-i-love-this-little-hacking-tool">Flipper Zero</a> — which I’m currently testing out. I initially went without one of the <a href="https://www.tomsguide.com/computing/peripherals/best-webcams">best webcams</a> as I mainly used the CB32U1 for more focused work sessions and some gaming at night. However, I eventually put Logitech’s <a href="https://www.tomsguide.com/computing/i-went-all-in-on-logitechs-mx-master-series-for-my-new-desk-setup-and-this-accessory-was-the-real-game-changer">MX Brio webcam</a> on top of my <a href="https://www.tomsguide.com/computing/i-added-this-dollar50-monitor-light-bar-to-my-desk-setup-and-its-a-game-changer-for-how-i-work">monitor light bar</a> to join a few meetings out here in my game room.</p><p>Adding a pair of speakers — or a soundbar in my case — and a webcam to the CB32U1 is still a whole lot cheaper than what you’d pay for the base model of the Studio Display. While this monitor doesn’t have the same first-party integrations you get with Apple’s premium display, you do get a lot more flexibility when it comes to how you want to set it up. While I would have preferred having a built-in power supply over an external power brick, it’s still better than the hardwired power cable on the Studio Display. Likewise, you’re not just limited to Thunderbolt and can plug whatever you want into this monitor, from your Mac to your consoles to your gaming PC.</p><p>At $549, the CB32U1 is on the expensive side when compared to your standard 32-inch monitor. However, this is a professional monitor for creatives that need a wider and more accurate range of color profiles. You also get high-refresh rate gaming built-in as a nice extra.</p><p>Having used the Innocn CB32U1 for a month now, I haven’t once felt the need to swap it out for my Studio Display or my gaming monitor. If you’re looking for a monitor that’s suitable for both work and play and want one in white without spending a fortune, it could earn a spot on your desk too.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/monitors/i-ditched-my-dual-monitor-setup-for-a-single-40-inch-ultrawide-and-two-screens-arent-better-than-one"><strong>I ditched my dual-monitor setup for a single 40-inch ultrawide and two screens aren’t better than one</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/peripherals/i-tried-benqs-new-monitor-light-bar-and-its-ultrasonic-motion-sensor-made-my-desk-feel-like-the-future-heres-how"><strong>I tried this futuristic monitor light bar and now my desk lights itself every time I sit down</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years"><strong>I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/monitors/ive-been-testing-a-budget-studio-display-alternative-and-its-actually-better-for-work-and-gaming</link>
                                                                            <description>
                            <![CDATA[ The Innocn CB32U1 delivers Studio Display-like color accuracy and Mac integration, but its faster refresh rate makes it a great stealth gaming monitor. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ucton6RNSmYMnJQjLaFTkd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bsP2hyVxrpjuQCoZ4ZHEKj-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 27 Sep 2026 11:00:00 +0000</pubDate>                                                                                                                                <updated>Sun, 27 Sep 2026 14:54:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Monitors]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/bsP2hyVxrpjuQCoZ4ZHEKj-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A desk setup built around the Innocn CB32U1 monitor]]></media:description>                                                            <media:text><![CDATA[A desk setup built around the Innocn CB32U1 monitor]]></media:text>
                                <media:title type="plain"><![CDATA[A desk setup built around the Innocn CB32U1 monitor]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bsP2hyVxrpjuQCoZ4ZHEKj-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you’re on the hunt for a professional monitor, chances are you’ve considered Apple’s <a href="https://www.tomsguide.com/reviews/apple-studio-display">Studio Display</a> or even the new mini-LED <a href="https://www.tomsguide.com/computing/monitors/apple-studio-display-xdr-review">Studio Display XDR</a>. They’re both great options if you’re looking to give your home office a major upgrade.</p><p>At $1,599 for the standard Studio Display and $3,299 for the Studio Display XDR though, neither of these premium monitors comes cheap. Then when you factor in useful add-ons from Apple like glare-free, nano-texture glass or a <a href="https://www.tomsguide.com/home/home-office/i-added-this-underrated-accessory-to-my-desk-setup-and-its-a-game-changer-for-ergonomics">tilt-and-height-adjustable stand</a>, you’re looking at a very serious investment.</p><p>This is why at Tom’s Guide, we’ve been testing out different Studio Display alternatives. From the <a href="https://www.tomsguide.com/computing/monitors/benq-ma270s-review">BenQ MA270S</a> to the <a href="https://www.tomsguide.com/computing/monitors/msi-pro-max-271upxw12g-review">MSI Pro Max 271UPXW12G</a>, there’s a growing number of creative and professional monitors that give you a similar experience at a fraction of the price. However, while these two options are more affordable, they have the same 27-inch display size as Apple’s Studio Display.</p><p>While 27 inches is the sweet spot for many, once you <a href="https://www.tomsguide.com/computing/monitors/i-just-tested-this-budget-32-inch-4k-gaming-monitor-and-its-the-perfect-upgrade-for-your-ps5-and-xbox-series-x">go up to a 32-inch monitor</a>, it’s hard to go back. That’s why I’ve spent the past month trying out the Innocn CB32U1. Not only is it larger, but it also sports a faster 160Hz refresh rate along with dual HDMI 2.1 ports, which makes it a more work-friendly option than one of the <a href="https://www.tomshardware.com/reviews/best-gaming-monitors,4533.html">best gaming monitors</a>.</p><p>Here’s what it’s been like using this budget-friendly Studio Display alternative as my daily driver — and why I might not be going back to my Apple monitor anytime soon.</p><div class="product"><a data-dimension112="a6497006-ba4b-11f1-9f2e-53fe59121e06" data-action="Deal Block" data-label="CB32U1 32-inch 4K monitor" data-dimension48="CB32U1 32-inch 4K monitor" data-dimension25="$522" href="https://www.amazon.com/INNOCN-32-120Hz-Monitor-DisplayPort/dp/B0G6Y762L5" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:76.67%;"><img id="9D3t4FL5sNLFxnuz9FJJ84" name="CB32U1 32-inch 4K monitor" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9D3t4FL5sNLFxnuz9FJJ84-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1150" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/INNOCN-32-120Hz-Monitor-DisplayPort/dp/B0G6Y762L5" target="_blank" rel="nofollow" data-dimension112="a6497006-ba4b-11f1-9f2e-53fe59121e06" data-action="Deal Block" data-label="CB32U1 32-inch 4K monitor" data-dimension48="CB32U1 32-inch 4K monitor" data-dimension25="$522">CB32U1 32-inch 4K monitor: was $549 now $522</a></strong><br />This 32-inch, 4K IPS monitor runs up to 120Hz and comes with an adjustable stand alongside a VESA mounting plate right in the box. Around back, you get a full array of ports including two HDMI 2.1 ports, DisplayPort 1.4, a USB-C port with 90W Power Delivery for single-cable MacBook charging, and an included external USB hub with extra ports and a 3.5mm audio jack. While it lacks built-in speakers, it pairs seamlessly with Mac and console setups alike.</p><p><strong>Price Check: </strong><a href="https://innocn.com/en-us/products/innocn-32-4k-160hz-ips-usb-c-90w-gaming-monitor-cb32u1" target="_blank" rel="nofollow"><strong>$549 @ Innocn</strong></a><a class="view-deal button" href="https://www.amazon.com/INNOCN-32-120Hz-Monitor-DisplayPort/dp/B0G6Y762L5" target="_blank" rel="nofollow" data-dimension112="a6497006-ba4b-11f1-9f2e-53fe59121e06" data-action="Deal Block" data-label="CB32U1 32-inch 4K monitor" data-dimension48="CB32U1 32-inch 4K monitor" data-dimension25="$522">View Deal</a></p></div><h2 id="part-art-part-gaming-monitor">Part art, part gaming monitor</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WYa2HkjJpDTpP4XiphXW3n" name="Innocn CB321U--6" alt="The Innocn CB32U1 monitor unboxed on a desk" src="https://cdn.mos.cms.futurecdn.net/WYa2HkjJpDTpP4XiphXW3n-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is the third Innocn monitor I’ve checked out and one thing that continues to impress me is the sheer amount of cables and accessories in the box. If there’s a port on the monitor, you get a cable for it so you don’t have to scrounge through your <a href="https://www.tomsguide.com/opinion/i-used-this-simple-hack-to-tame-my-tangled-box-of-cables">box of cables</a> while trying to set up your new display. One surprising addition with the CB32U1 was a USB hub with a USB-C connector on one end and a USB-A one on the other, but more on that in a bit.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SpR99aPMDGjHmyUyti6Fz" name="Innocn CB321U--5" alt="The rear ports on the back of the Innocn CB32U1 monitor" src="https://cdn.mos.cms.futurecdn.net/SpR99aPMDGjHmyUyti6Fz-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When it comes to ports, there’s a nice selection of them around back. You get two HDMI 2.1 connections, DisplayPort 1.4, USB-C with 90W of power delivery, and a power port. </p><p>While the previous two Innocn monitors I tested used a standard PC power plug, this one uses a barrel connector and an external power brick. Normally, this would be a downside, but here it works because instead of being tucked on the underside of the display, all of this monitor's ports are located flat on the back — just like on Apple’s Studio Display. </p><p>With its clean white look with silver trim, you wouldn't think you’re dealing with a display capable of handling high refresh rate gaming just as well as photo or video editing.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vgCUTJuUtTf9Up6hjWepA6" name="Innocn CB321U--4" alt="The back of the Innocn CB32U1 monitor and the included VESA mount adapter" src="https://cdn.mos.cms.futurecdn.net/vgCUTJuUtTf9Up6hjWepA6-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Given I often prefer using one of the <a href="https://www.tomsguide.com/best-picks/best-monitor-arms">best monitor arms</a> with my desk setups, I always look for standard VESA mounting options when shopping for a new display. While the CB32U1 uses a quick-release mount for its included stand, Innocn does include a VESA adapter plate right in the box if you want to go that route.</p><p>Speaking of the stand, it has a metal base and metal post which makes it feel quite sturdy on your desk. There isn’t a cable cutout on the post, but to be honest, I kind of prefer it that way. With a cutout, you're forced into routing cables a specific way, but here, I was able to cleanly strap all my cables behind the post without any of them peeking out from the front.</p><p>With the Innocn CB32U1 unboxed and set up, it was time to start putting the display through its paces.</p><h2 id="macbook-ready-but-built-for-more">MacBook-ready but built for more</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tGCxTj9BGYKgzuwPBgCiN9" name="Innocn CB321U--3" alt="Testing the Innocn CB32U1 monitor with a MacBook Pro" src="https://cdn.mos.cms.futurecdn.net/tGCxTj9BGYKgzuwPBgCiN9-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As I usually do when trying out a new monitor, the first thing I did was connect my <a href="https://www.tomsguide.com/computing/macbooks/macbook-pro-m5-review">16-inch MacBook Pro M5</a> to the CB32U1. I was immediately impressed with the display’s color reproduction and just how close it was to my MacBook’s screen — even without switching to its dedicated Mac Mode. With 90W of Power Delivery over USB-C, I was able to use and charge the laptop with a single cable too.</p><p>From there, I decided to build a full desk setup around the CB32U1, utilizing the rest of its ports to connect one of the <a href="https://www.tomsguide.com/us/best-mini-pc.html">best mini PCs</a> and my Nintendo Switch 2. With its ports flat on the back instead of tucked on the underside, I didn’t have to worry about cables poking out underneath the display, which made cable management an absolute breeze. However, I was curious about that included USB hub I mentioned earlier, so I decided to set it up too.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vMy5gZp9XYRnRKUZS56AeC" name="Innocn CB321U--2" alt="Cable management behind the Innocn CB32U1 monitor showing of the included USB hub" src="https://cdn.mos.cms.futurecdn.net/vMy5gZp9XYRnRKUZS56AeC-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even though the CB32U1 doesn’t have a built-in KVM switch like the 5K2K Innocn ultrawide I previously tried out, this USB hub does a great job of making up for it. You plug the primary end into the USB-C port on the back of the monitor and plug the upstream USB-A end into your computer. Once that's done, you get three extra USB ports and a 3.5mm audio jack you can use with a pair of the <a href="https://www.tomsguide.com/us/best-computer-speakers,review-6355.html">best computer speakers</a>.</p><p>Although a built-in KVM switch would have let me switch seamlessly between devices while using the same peripherals, this USB hub — and the way that I installed it — did let me hotswap computers on a whim. For instance, I first used the CB32U1 with the <a href="https://www.reddit.com/r/MiniPCs/comments/1s35f2c/minisforum_atomman_g1_pro_review/">Minisforum G1 Pro</a> as I wanted to put its gaming capabilities to the test but then I ended up swapping that PC out for Apple’s new <a href="https://www.tomsguide.com/computing/apple-desktops/mac-mini-m6-review">Mac mini M6</a> while working on my review. Thanks to having the 2.4 GHz USB dongles for my mechanical keyboard and trackball mouse installed behind the monitor, I didn’t have to unplug or pair anything. Instead, I just used a USB-A to USB-C adapter on the back of the new Mac mini and voila, I was instantly typing away on Apple’s upgraded Mac desktop.</p><p>Editing photos and doing other creative work on the CB32U1 was an absolute joy. While it wasn’t quite as impressive as back when I reviewed the Studio Display XDR, its IPS panel was clear, sharp and most importantly, glare-free. Even though it’s not as advanced as Apple’s etched nano-texture glass, the matte anti-glare coating Innocn used on this display definitely does the trick.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="mSbKyxnTP48EhMZtDiyzX6" name="Herman Miller Coyl Gaming Desk-3" alt="A person sitting in the Herman Miller Vantum gaming chair playing games at a desk setup built on top of the Herman Miller Coyl Gaming Desk" src="https://cdn.mos.cms.futurecdn.net/mSbKyxnTP48EhMZtDiyzX6-1920-80.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As for gaming on the CB32U1, that was a surprisingly good experience as well. Even though it doesn’t have a 240Hz or 360Hz refresh rate like you often see on high-end gaming monitors, this display has a 144Hz one out of the box, though you can overclock that all the way up to 160Hz. This is more than enough for non-competitive players and it also has AMD FreeSync on board for tear-free variable refresh rate (VRR) gaming.</p><p>One thing that stands out here too is the inclusion of not one but two HDMI 2.1 ports. While most PC players chasing maximum frame rates and performance go with DisplayPort, to play above 60Hz on either the PS5 or Xbox Series X, you need HDMI 2.1. </p><p>I could easily see someone using the CB32U1 for work during the day and then having a console next to it to get in a play session at night. You really do get the best of both worlds here for a lot less than you’d typically spend on a professional monitor from brands like MSI or BenQ and of course, Apple.</p><h2 id="not-quite-an-all-in-one-display">Not quite an all-in-one display</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="C645sXNpPgYyqmbVs6jbPB" name="Herman Miller Coyl Gaming Desk-6" alt="A desk setup built around the Herman Miller Coyl Gaming Desk" src="https://cdn.mos.cms.futurecdn.net/C645sXNpPgYyqmbVs6jbPB-1920-80.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now what do you lose out on when going with a more affordable Studio Display alternative like the Innocn CB32U1? For starters, you don’t get an integrated webcam and will need to bring your own. At the same time, unlike with the previous two Innocn monitors I tried out, this one doesn’t have built-in speakers. Now I know monitor speakers leave a lot to be desired, but I still like having them as they can be quite useful in a pinch.</p><p>With this desk setup, I went with the <a href="https://www.tomsguide.com/audio/soundbars/i-tried-this-under-monitor-soundbar-and-its-perfect-for-cramped-desks">BlueAnt Soundblade</a> for audio as this under-monitor soundbar helped me free up valuable desk space. However, it also gave me a place to put Flipper’s BUSY Bar – yes, the same Flipper behind the <a href="https://www.tomsguide.com/opinion/the-flipper-zero-has-gotten-a-bad-rap-why-i-love-this-little-hacking-tool">Flipper Zero</a> — which I’m currently testing out. I initially went without one of the <a href="https://www.tomsguide.com/computing/peripherals/best-webcams">best webcams</a> as I mainly used the CB32U1 for more focused work sessions and some gaming at night. However, I eventually put Logitech’s <a href="https://www.tomsguide.com/computing/i-went-all-in-on-logitechs-mx-master-series-for-my-new-desk-setup-and-this-accessory-was-the-real-game-changer">MX Brio webcam</a> on top of my <a href="https://www.tomsguide.com/computing/i-added-this-dollar50-monitor-light-bar-to-my-desk-setup-and-its-a-game-changer-for-how-i-work">monitor light bar</a> to join a few meetings out here in my game room.</p><p>Adding a pair of speakers — or a soundbar in my case — and a webcam to the CB32U1 is still a whole lot cheaper than what you’d pay for the base model of the Studio Display. While this monitor doesn’t have the same first-party integrations you get with Apple’s premium display, you do get a lot more flexibility when it comes to how you want to set it up. While I would have preferred having a built-in power supply over an external power brick, it’s still better than the hardwired power cable on the Studio Display. Likewise, you’re not just limited to Thunderbolt and can plug whatever you want into this monitor, from your Mac to your consoles to your gaming PC.</p><p>At $549, the CB32U1 is on the expensive side when compared to your standard 32-inch monitor. However, this is a professional monitor for creatives that need a wider and more accurate range of color profiles. You also get high-refresh rate gaming built-in as a nice extra.</p><p>Having used the Innocn CB32U1 for a month now, I haven’t once felt the need to swap it out for my Studio Display or my gaming monitor. If you’re looking for a monitor that’s suitable for both work and play and want one in white without spending a fortune, it could earn a spot on your desk too.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/monitors/i-ditched-my-dual-monitor-setup-for-a-single-40-inch-ultrawide-and-two-screens-arent-better-than-one"><strong>I ditched my dual-monitor setup for a single 40-inch ultrawide and two screens aren’t better than one</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/peripherals/i-tried-benqs-new-monitor-light-bar-and-its-ultrasonic-motion-sensor-made-my-desk-feel-like-the-future-heres-how"><strong>I tried this futuristic monitor light bar and now my desk lights itself every time I sit down</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/monitors/i-spent-a-week-with-dual-apple-studio-displays-and-realized-ive-been-lying-to-myself-about-glossy-screens-for-years"><strong>I spent a week with dual Apple Studio Displays and realized I’ve been lying to myself about glossy screens for years</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fortune's Weave is the best Fire Emblem yet — but not for the reasons you might expect ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I’ve been playing Fire Emblem since I was about 12 — a terrifying 19 years ago. Over that time, I’ve gone back to play the old games alongside the new releases (I daren’t think about how many hours I’ve spent staring at grids). I was a loud voice of request during the series dry spell, and I’ve eaten <em>very </em>well as it has found a new audience in the 3DS, Switch and Switch 2 generations.</p><p>So you can imagine how excited I was to get my mittens on Fire Emblem: Fortune's Weave, the latest <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> title in the series. The extra power of the system would give Nintendo more space to innovate in a series that’s rarely seen any new features, I thought. The reveal trailer looked promising. The character reveals were tempting. </p><p>And then it arrived in my hands. I’ve now played more hours than I care to admit, and I’ve got an idea of how the game fares compared to its older siblings. </p><p>In a few words — very well. In a few more, Fire Emblem Fortune’s Weave does a great job of bringing loads of cool new stuff to the table. But the best parts are the solidification and perfection of features we’ve been playing for a long time. And that’s pretty cool.</p><div class="product"><a data-dimension112="75c367b4-b83b-11f1-ac58-4b4572b74266" data-action="Deal Block" data-label="Fortune's Weave (Switch 2)" data-dimension48="Fortune's Weave (Switch 2)" data-dimension25="$79" href="https://www.amazon.com/Fire-EmblemTM-Fortunes-Weave-Nintendo-Switch/dp/B0H4NV2MVN/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="3F8jgKTXSCXaM5v9KoSH4o" name="fire-emblem-fortunes-weave-switchj-2-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3F8jgKTXSCXaM5v9KoSH4o-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Fire-EmblemTM-Fortunes-Weave-Nintendo-Switch/dp/B0H4NV2MVN/" target="_blank" rel="nofollow" data-dimension112="75c367b4-b83b-11f1-ac58-4b4572b74266" data-action="Deal Block" data-label="Fortune's Weave (Switch 2)" data-dimension48="Fortune's Weave (Switch 2)" data-dimension25="$79">Fortune's Weave (Switch 2): $79</a></strong><br />Fortune's Weave is the latest game in the Fire Emblem series. You play four heroes competing in the Heroic Games, with the fate of the world hanging in the balance. Train your heroes, recruit allies, build bonds, and battle in strategic skirmishes. It's the biggest Fire Emblem yet.<a class="view-deal button" href="https://www.amazon.com/Fire-EmblemTM-Fortunes-Weave-Nintendo-Switch/dp/B0H4NV2MVN/" target="_blank" rel="nofollow" data-dimension112="75c367b4-b83b-11f1-ac58-4b4572b74266" data-action="Deal Block" data-label="Fortune's Weave (Switch 2)" data-dimension48="Fortune's Weave (Switch 2)" data-dimension25="$79">View Deal</a></p></div><h2 id="the-biggest-world-map-so-far">The biggest world map so far</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/L1gvaBYKFy8" allowfullscreen=""></iframe></div></div><p>Fire Emblem has had some form of map for a long time, and each title has treated it slightly differently, for better or worse. Some have made the map a path your party automatically follows, never allowing you to strengthen your forces beyond the main story missions. Some have given you too much in the world map, allowing you to make your army as overpowered as possible, trivialising the main battles. I’d argue that no game has ever gotten the balance <em>perfect.</em></p><p>Fortune's Weave gets closer than ever. The refresh to the turn system means you need to make more decisions about how far to go around the map, adding an extra layer of thought to proceedings. The time you don’t spend in battles is now more tactical as a result. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NUk6WZkuwHExZRuNbgVNJf" name="fire-emblem-fortunes-weave-switch-2-01" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/NUk6WZkuwHExZRuNbgVNJf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Rather than the free battles seen in <a href="https://www.tomsguide.com/opinion/fire-emblem-three-houses-dialogue-choices">Fire Emblem: Three Houses</a> and Engage, you have to think about how to strengthen your forces. Do you do battle, or use the new “auto free time” feature to gain those precious levels? After all, you could be using those turns for vital exploration, or finding items that might be useful down the line.</p><p>But that takes turns — and turns are money. Watching that timer go down before the next mission, knowing you’ve side quests to do and stuff to find for your soldiers, makes it a whole lot more engaging than it has been before.</p><p>It’s not perfect. Sometimes you feel like you want more turns, and sometimes you want fewer. And remembering to go to the spot where your next mission takes place is irritating — especially when letting those turns run out before the mission time means you have to start a section all over again. But it's the best world map I've experienced in a Fire Emblem game for some time.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-exgM4X"></div>                            </div>                            <script src="https://kwizly.com/embed/exgM4X.js" async=""></script><h2 id="the-best-those-battles-have-looked">The best those battles have looked</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XfpfFAvJnXtWPuQX3RnYFf" name="fire-emblem-fortunes-weave-switch-2-02" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/XfpfFAvJnXtWPuQX3RnYFf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Everything feels better balanced this time around. While enemy unit placement still isn’t perfect (no Fire Emblem ever is), which can make for comical conical feeding of sword-based opponents coming up against a one-shot from your perfectly placed armored spearman (called a “guardian” this time around), the battles are more engaging than ever.</p><p>Everything looks slicker and smoother than previous titles. The information you’re given is not only easier to read than in the smaller boxes from old games, but also useful in working out how your tactics are going to play out. </p><p>There’s only so much you can do with a grid, but this is the best that Fire Emblem has ever played or looked. Small things, like improved unit movement prediction, make playing the game more fun than frustrating.</p><h2 id="the-routes-work-better-than-ever">The routes work better than ever</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3ddiwXHwLSfsXYNKSMCz9f" name="fire-emblem-fortunes-weave-switch-2-03" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/3ddiwXHwLSfsXYNKSMCz9f-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Fire Emblem has long flirted with routes that tell different stories with the same characters. There were the Fates games, which let you play different routes depending on the version of the game you bought. It was fine — but it wasn’t perfect. Then Three Houses launched, a fan favorite. As much as I adore that game, the routes system still wasn’t the best; character arcs felt rushed at times, and playing through all of them took <em>ages. </em></p><p>Fortune's Weave trims down the length of each route by quite a margin, and then brings everything together towards the end of the game. There are four routes this time, each with their own main characters and story beats, even though they occur in the same place. You can even recruit characters from one route while you play another — it’s pretty cool.</p><p>It’s also well worth playing through each one. Their unique stories are engaging and interesting, and watching everything fit together as you play feels great. </p><h2 id="it-s-not-all-good-news">It’s not all good news</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ULktZ5tNHLEDcGtQ5icAze" name="fire-emblem-fortunes-weave-switch-2-04" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/ULktZ5tNHLEDcGtQ5icAze-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Some things are missing here. As much as the new dungeon-crawling sections are fun, they are extremely simple and a bit of a drag after a while. There are far fewer support conversations between characters, meaning fewer combat bonuses and less story content. </p><p>The graphics are good, but I don’t feel like I’m playing the Fire Emblem game of the future. The system feels like it's got more to give. The different classes your characters can be feel more restrictive than before, which is annoying.</p><p>But those are minor frustrations in what is otherwise a great game. I’ve already put too many hours in — I can’t wait to add even more.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-just-played-elden-ring-on-nintendo-switch-2-and-ill-never-touch-the-steam-deck-oled-version-again">I just played Elden Ring on Nintendo Switch 2 — it was worth the wait</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/zelda-ocarina-of-time-remake-is-usd10-off-at-amazon-and-walmart-score-a-rare-pre-order-discount-on-the-biggest-switch-2-game-of-2026">Zelda: Ocarina of Time remake is $10 off at Amazon and Walmart</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/nintendo/fortunes-weave-is-the-best-fire-emblem-yet-but-not-for-the-reasons-you-might-expect</link>
                                                                            <description>
                            <![CDATA[ Fire Emblem: Fortune's Weaves' greatest strength isn't what's new — it's how it improves on mechanics we’ve played for nearly 30 years. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yw39HMU5S8gz67V2Pw9AZX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jNkcGwF5LqtDe7JT3XsVef-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 26 Sep 2026 14:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Tammy Rogers ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/n8MswK9ZvXC9mSb5incU44-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Tammy&#039;s reviews and buying guide expertise have more focus than ever on Tom&#039;s Guide, helping buyers find the audio gear that works best for them. Tammy has worked with some of the most desirable audio brands on the planet in her time writing about headphones, speakers, and more, bringing a consumer focussed approach to critique and buying advice. Away from her desk, you&#039;ll probably find her in the countryside writing (extremely bad) poetry, or putting her screenwriting Masters to good use creating screenplays that&#039;ll never see the light of day.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jNkcGwF5LqtDe7JT3XsVef-1920-80.jpg">
                                                            <media:credit><![CDATA[Nintendo]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fire Emblem: Fortune&#039;s Weave screenshot on Switch 2]]></media:description>                                                            <media:text><![CDATA[Fire Emblem: Fortune&#039;s Weave screenshot on Switch 2]]></media:text>
                                <media:title type="plain"><![CDATA[Fire Emblem: Fortune&#039;s Weave screenshot on Switch 2]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jNkcGwF5LqtDe7JT3XsVef-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’ve been playing Fire Emblem since I was about 12 — a terrifying 19 years ago. Over that time, I’ve gone back to play the old games alongside the new releases (I daren’t think about how many hours I’ve spent staring at grids). I was a loud voice of request during the series dry spell, and I’ve eaten <em>very </em>well as it has found a new audience in the 3DS, Switch and Switch 2 generations.</p><p>So you can imagine how excited I was to get my mittens on Fire Emblem: Fortune's Weave, the latest <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> title in the series. The extra power of the system would give Nintendo more space to innovate in a series that’s rarely seen any new features, I thought. The reveal trailer looked promising. The character reveals were tempting. </p><p>And then it arrived in my hands. I’ve now played more hours than I care to admit, and I’ve got an idea of how the game fares compared to its older siblings. </p><p>In a few words — very well. In a few more, Fire Emblem Fortune’s Weave does a great job of bringing loads of cool new stuff to the table. But the best parts are the solidification and perfection of features we’ve been playing for a long time. And that’s pretty cool.</p><div class="product"><a data-dimension112="75c367b4-b83b-11f1-ac58-4b4572b74266" data-action="Deal Block" data-label="Fortune's Weave (Switch 2)" data-dimension48="Fortune's Weave (Switch 2)" data-dimension25="$79" href="https://www.amazon.com/Fire-EmblemTM-Fortunes-Weave-Nintendo-Switch/dp/B0H4NV2MVN/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="3F8jgKTXSCXaM5v9KoSH4o" name="fire-emblem-fortunes-weave-switchj-2-box" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3F8jgKTXSCXaM5v9KoSH4o-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Fire-EmblemTM-Fortunes-Weave-Nintendo-Switch/dp/B0H4NV2MVN/" target="_blank" rel="nofollow" data-dimension112="75c367b4-b83b-11f1-ac58-4b4572b74266" data-action="Deal Block" data-label="Fortune's Weave (Switch 2)" data-dimension48="Fortune's Weave (Switch 2)" data-dimension25="$79">Fortune's Weave (Switch 2): $79</a></strong><br />Fortune's Weave is the latest game in the Fire Emblem series. You play four heroes competing in the Heroic Games, with the fate of the world hanging in the balance. Train your heroes, recruit allies, build bonds, and battle in strategic skirmishes. It's the biggest Fire Emblem yet.<a class="view-deal button" href="https://www.amazon.com/Fire-EmblemTM-Fortunes-Weave-Nintendo-Switch/dp/B0H4NV2MVN/" target="_blank" rel="nofollow" data-dimension112="75c367b4-b83b-11f1-ac58-4b4572b74266" data-action="Deal Block" data-label="Fortune's Weave (Switch 2)" data-dimension48="Fortune's Weave (Switch 2)" data-dimension25="$79">View Deal</a></p></div><h2 id="the-biggest-world-map-so-far">The biggest world map so far</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/L1gvaBYKFy8" allowfullscreen=""></iframe></div></div><p>Fire Emblem has had some form of map for a long time, and each title has treated it slightly differently, for better or worse. Some have made the map a path your party automatically follows, never allowing you to strengthen your forces beyond the main story missions. Some have given you too much in the world map, allowing you to make your army as overpowered as possible, trivialising the main battles. I’d argue that no game has ever gotten the balance <em>perfect.</em></p><p>Fortune's Weave gets closer than ever. The refresh to the turn system means you need to make more decisions about how far to go around the map, adding an extra layer of thought to proceedings. The time you don’t spend in battles is now more tactical as a result. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NUk6WZkuwHExZRuNbgVNJf" name="fire-emblem-fortunes-weave-switch-2-01" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/NUk6WZkuwHExZRuNbgVNJf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Rather than the free battles seen in <a href="https://www.tomsguide.com/opinion/fire-emblem-three-houses-dialogue-choices">Fire Emblem: Three Houses</a> and Engage, you have to think about how to strengthen your forces. Do you do battle, or use the new “auto free time” feature to gain those precious levels? After all, you could be using those turns for vital exploration, or finding items that might be useful down the line.</p><p>But that takes turns — and turns are money. Watching that timer go down before the next mission, knowing you’ve side quests to do and stuff to find for your soldiers, makes it a whole lot more engaging than it has been before.</p><p>It’s not perfect. Sometimes you feel like you want more turns, and sometimes you want fewer. And remembering to go to the spot where your next mission takes place is irritating — especially when letting those turns run out before the mission time means you have to start a section all over again. But it's the best world map I've experienced in a Fire Emblem game for some time.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-exgM4X"></div>                            </div>                            <script src="https://kwizly.com/embed/exgM4X.js" async=""></script><h2 id="the-best-those-battles-have-looked">The best those battles have looked</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XfpfFAvJnXtWPuQX3RnYFf" name="fire-emblem-fortunes-weave-switch-2-02" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/XfpfFAvJnXtWPuQX3RnYFf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Everything feels better balanced this time around. While enemy unit placement still isn’t perfect (no Fire Emblem ever is), which can make for comical conical feeding of sword-based opponents coming up against a one-shot from your perfectly placed armored spearman (called a “guardian” this time around), the battles are more engaging than ever.</p><p>Everything looks slicker and smoother than previous titles. The information you’re given is not only easier to read than in the smaller boxes from old games, but also useful in working out how your tactics are going to play out. </p><p>There’s only so much you can do with a grid, but this is the best that Fire Emblem has ever played or looked. Small things, like improved unit movement prediction, make playing the game more fun than frustrating.</p><h2 id="the-routes-work-better-than-ever">The routes work better than ever</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3ddiwXHwLSfsXYNKSMCz9f" name="fire-emblem-fortunes-weave-switch-2-03" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/3ddiwXHwLSfsXYNKSMCz9f-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Fire Emblem has long flirted with routes that tell different stories with the same characters. There were the Fates games, which let you play different routes depending on the version of the game you bought. It was fine — but it wasn’t perfect. Then Three Houses launched, a fan favorite. As much as I adore that game, the routes system still wasn’t the best; character arcs felt rushed at times, and playing through all of them took <em>ages. </em></p><p>Fortune's Weave trims down the length of each route by quite a margin, and then brings everything together towards the end of the game. There are four routes this time, each with their own main characters and story beats, even though they occur in the same place. You can even recruit characters from one route while you play another — it’s pretty cool.</p><p>It’s also well worth playing through each one. Their unique stories are engaging and interesting, and watching everything fit together as you play feels great. </p><h2 id="it-s-not-all-good-news">It’s not all good news</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ULktZ5tNHLEDcGtQ5icAze" name="fire-emblem-fortunes-weave-switch-2-04" alt="Fire Emblem: Fortune's Weave screenshot taken on Nintendo Switch 2" src="https://cdn.mos.cms.futurecdn.net/ULktZ5tNHLEDcGtQ5icAze-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Some things are missing here. As much as the new dungeon-crawling sections are fun, they are extremely simple and a bit of a drag after a while. There are far fewer support conversations between characters, meaning fewer combat bonuses and less story content. </p><p>The graphics are good, but I don’t feel like I’m playing the Fire Emblem game of the future. The system feels like it's got more to give. The different classes your characters can be feel more restrictive than before, which is annoying.</p><p>But those are minor frustrations in what is otherwise a great game. I’ve already put too many hours in — I can’t wait to add even more.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/i-just-played-elden-ring-on-nintendo-switch-2-and-ill-never-touch-the-steam-deck-oled-version-again">I just played Elden Ring on Nintendo Switch 2 — it was worth the wait</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/zelda-ocarina-of-time-remake-is-usd10-off-at-amazon-and-walmart-score-a-rare-pre-order-discount-on-the-biggest-switch-2-game-of-2026">Zelda: Ocarina of Time remake is $10 off at Amazon and Walmart</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tested an Android tablet that rivals the iPad mini — and its OLED display won me over ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The RedMagic Astra 2 could easily be mistaken for an iPad mini thanks to its compact 9-inch design and rounded corners. However, under the hood, it’s powered by one of Snapdragon’s fastest mobile processors and paired with more RAM than in many other laptops. All of that makes for an excellent and very portable gaming tablet.</p><p>With dual USB-C ports, you can charge the Astra 2 with a mobile game controller attached or even connect the tablet to a monitor or TV for a big-screen gaming experience. Speaking of gaming, there’s a physical switch on the side that activates RedMagic’s dedicated Game Space launcher. Oh, and if that wasn’t enough, you can also run full PC games from Steam right on the tablet using the company’s optional Game Hub app.</p><p>Then there’s the screen. With a 185Hz OLED panel, the Astra 2 isn’t just fast, but it delivers stunning visuals with deep blacks and excellent picture quality overall.</p><p>I’ve been using the Astra 2 as my daily driver for the past two months — both at home and while traveling — and this compact but almost overpowered gaming tablet hasn’t let me down yet, even if it can be a little rough around the edges at times. My RedMagic Astra 2 review will help you decide if this is the <a href="https://www.tomsguide.com/best-picks/best-tablet">best tablet</a> for your needs or if it’s worth sacrificing raw performance for a more budget-friendly alternative.</p><h3 class="article-body__section" id="section-redmagic-astra-2-cheat-sheet"><span>RedMagic Astra 2: Cheat Sheet</span></h3><ul><li><strong>What is it? </strong>A compact Android tablet with high-end specs for gaming.</li><li><strong>Who is it for? </strong>For people who want the best mobile gaming experience on a tablet, as well as for Android users who want a small tablet like the iPad mini.</li><li><strong>What does it cost? </strong>The RedMagic Astra 2 <a href="https://global.redmagic.gg/products/redmagic-astra-2-gaming-tablet?variant=55811529474121" target="_blank" rel="nofollow">starts at $699</a>, or you can get an upgraded version with more memory and storage <a href="https://global.redmagic.gg/products/redmagic-astra-2-gaming-tablet?variant=55811529506889" target="_blank" rel="nofollow">for $799</a>.</li><li><strong>What do we like? </strong>Its compact size and premium design, the integrated fingerprint scanner in the power button, the gorgeous 185Hz OLED screen, and that it has dual USB-C ports and the performance of its Snapdragon 8 Elite Gen 5 processor.</li><li><strong>What don’t we like? </strong>The tablet’s premium price, that it doesn’t come with any extra accessories, how RedMagic OS feels clunky and that the main, full-featured USB-C port isn’t centered.</li></ul><h3 class="article-body__section" id="section-redmagic-astra-2-specs"><span>RedMagic Astra 2: Specs</span></h3><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$699 (12GB+256GB), $799 (16GB+512GB) (as tested)</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>9.06-inch OLED (2,400 x 1504), 185Hz</p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>Qualcomm Snapdragon 8 Elite Gen 5</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>12GB-16GB LPDDR5X</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>256GB-512GB</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>8,300 mAh</p></td></tr><tr><td class="firstcol " ><p><strong>Cameras</strong></p></td><td  ><p>9MP (front), 13MP (rear)</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wi-Fi 7, Bluetooth 6.0</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1 x USB 3.2 Gen 2 with DisplayPort, 1 x USB-C 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Silver, Black</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>8.15 x 5.28 x 0.27 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>0.8 pounds (363 grams)</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-redmagic-astra-2-the-ups"><span>RedMagic Astra 2: The Ups</span></h3><p>From its premium build and powerful components to its stunning OLED display, the Astra 2 isn’t just another budget Android tablet. Instead, it feels even better than Apple’s iPad mini in hand while delivering a console-like experience if you want it.</p><h2 id="the-anti-ipad-mini">The anti-iPad mini</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B2A3PRvZuDM87Aw7bsAmWL" name="Red Magic Astra 2--2" alt="A person holding the RedMagic Astra 2 gamign tablet in portrait mode outside" src="https://cdn.mos.cms.futurecdn.net/B2A3PRvZuDM87Aw7bsAmWL-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At 8.15 x 5.28 x 0.27 inches, the Astra 2 is slightly larger than the <a href="https://www.tomsguide.com/tablets/i-spent-two-weeks-with-the-ipad-mini-7-and-it-reignited-my-love-for-smaller-tablets">iPad mini</a> to account for its 9.06-inch display versus the latter’s 8.3-inch panel. With an anodized aluminum frame, rounded corners, and a glossy screen, this Android tablet instantly feels premium.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tCEBYeeWyDe9KTTTVHLRbQ" name="Red Magic Astra 2--10" alt="The RedMagic Astra 2's power button with integrated fingerprint scanner" src="https://cdn.mos.cms.futurecdn.net/tCEBYeeWyDe9KTTTVHLRbQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>On the left side — assuming you’re holding the tablet in landscape mode — there’s a power button with an integrated fingerprint scanner next to a set of speaker grilles. When holding the Astra 2 this way, I really like how my index finger rests right on the top edge, which makes securely logging in via my fingerprint a breeze.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j7yFDywFGzGdJAx4JvHuTT" name="Red Magic Astra 2--12" alt="The RedMagic Astra 2's main, full-featured USB-C port" src="https://cdn.mos.cms.futurecdn.net/j7yFDywFGzGdJAx4JvHuTT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Then on the right side, there’s a full-featured USB-C port next to the other set of speaker grilles. One thing that sets the Astra 2 apart from other tablets is the red toggle switch across from its volume rocker. Called the Competitive Key, switching it on lets you jump from your Android home screen right into RedMagic’s GameSpace launcher, but more on that later. There’s also a second USB-C port for charging the device or connecting accessories centered along the bottom edge.</p><div ><table><caption>Battery life results </caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Time (hours:mins)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>RedMagic Astra 2</strong></p></td><td  ><p>11:28 (60Hz) | 11:10 (185Hz) </p></td></tr><tr><td class="firstcol " ><p><strong>iPad mini 7</strong></p></td><td  ><p>10:34 (60Hz)</p></td></tr><tr><td class="firstcol " ><p><strong>Lenovo Tab Gen 2</strong></p></td><td  ><p>16:00 (60Hz) | 13:39 (120Hz) </p></td></tr></tbody></table></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8vkAXBNo9k2oKJCpDdnsGY" name="Red Magic Astra 2--11" alt="The RedMagic Astra 2's vapor chamber with RGB lighting and its rear camera" src="https://cdn.mos.cms.futurecdn.net/8vkAXBNo9k2oKJCpDdnsGY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>It’s only when you flip the Astra 2 over that you realize this isn’t an iPad mini or even your standard, compact Android tablet. At the top of the device, there’s a 3D vapor chamber for cooling, complete with customizable RGB lighting and a glass strip on top so you can see everything. Then on the right edge, there’s a 13MP camera.</p><p>While this design choice might not be for everyone, I really like it. You get just a touch of gamer flair while knowing that, yes, this tablet is powered by Qualcomm’s Snapdragon 8 Elite Gen 5 chip. If this chipset sounds familiar, that’s because it powers many of the <a href="https://www.tomsguide.com/best-picks/best-phones">best phones</a>, including the <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-ultra-review">Samsung Galaxy S26 Ultra</a>, the <a href="https://www.tomsguide.com/phones/oneplus-phones/oneplus-15-review">OnePlus 15</a>, and even the <a href="https://www.tomsguide.com/phones/samsung-phones/ive-been-living-with-the-galaxy-z-fold-8-for-3-weeks-and-i-was-wrong">Samsung Galaxy Z Fold 8</a>.</p><h2 id="deep-blacks-and-faster-frames">Deep blacks and faster frames</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="z8UrFnFR3NoqKfi2W6eEXb" name="Red Magic Astra 2--9" alt="A person holding the RedMagic Astra 2 gaming tablet in portrait mode at a dark restaurant" src="https://cdn.mos.cms.futurecdn.net/z8UrFnFR3NoqKfi2W6eEXb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite all that power under the hood, the Astra 2’s display immediately steals the show when the tablet is powered on. With symmetrical 4.9mm bezels on all sides, you see more of the screen than on the <a href="https://www.tomsguide.com/tablets/ipads/ipad-mini-7-review">iPad mini 7</a>, which has thicker 8.5–9mm bezels and a 3:2 aspect ratio. At a resolution of 2400 x 1504, you also get a bit more screen real estate to work with, though Apple just barely wins on pixel density at 326 vs 316 pixels per inch.</p><p>The Astra 2 also features a 16:10 aspect ratio, which results in less letterboxing when watching TV shows and movies. Although I don’t normally watch movies on a tablet, I made an exception while testing the Astra 2 thanks to its stunning OLED display.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>RedMagic Astra 2</p></th><th  ><p>iPad mini 7</p></th><th  ><p>Lenovo Tab Plus Gen 2</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Nits (brightness)</strong></p></td><td  ><p>659 (SDR) | 1030 (HDR)</p></td><td  ><p>470 (SDR) | 475 (HDR)</p></td><td  ><p>597 (SDR) | 776 (HDR) </p></td></tr><tr><td class="firstcol " ><p><strong>sRGB</strong></p></td><td  ><p>198.8%</p></td><td  ><p>107.7%</p></td><td  ><p>157.5%</p></td></tr><tr><td class="firstcol " ><p><strong>DCI-P3</strong></p></td><td  ><p>141.5%</p></td><td  ><p>76.3%</p></td><td  ><p>111.5%</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E</strong></p></td><td  ><p>0.31</p></td><td  ><p>0.21</p></td><td  ><p>0.25</p></td></tr></tbody></table></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VHtyzDnzLcHtCBbhnZqWvf" name="Red Magic Astra 2--8" alt="A person watching Shang Chi and the Legend of the Ten Rings on the RedMagic Astra 2 gaming tablet" src="https://cdn.mos.cms.futurecdn.net/VHtyzDnzLcHtCBbhnZqWvf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While watching Marvel’s Shang-Chi and the Legend of the Ten Rings to get ready for Avengers: Doomsday, the darker, nighttime fight scenes in Macau stood out for their rich, deep blacks, while the lush greenery of Ta Lo in the latter half of the film really popped.</p><p>Thanks to the Astra 2’s full-featured USB-C port, I also connected a pair of the <a href="https://www.tomsguide.com/computing/vr-ar/best-smart-glasses">best smart glasses</a>, the <a href="https://www.tomsguide.com/computing/smart-glasses/viture-pro-2-xr-glasses-review">Viture Pro 2</a>, and watched several films on the tablet during a flight home from Berlin. As with Samsung’s DeX, RedMagic lets you use the tablet’s display as a trackpad while wearing display glasses, though it lacks some of the polish of Samsung’s implementation, with written directions hardcoded across the screen.</p><p>You can’t crank up movies and TV shows past 60Hz, but with games it’s a different story. There are quite a few of the <a href="https://www.tomsguide.com/round-up/best-android-games">best Android games</a> that let you play at a higher 120Hz or 144Hz, or on the Astra 2, which has an 185Hz refresh rate. Given I’m more of a PC gamer, though, RedMagic’s Astra 2 has another really cool trick up its sleeve.</p><h2 id="a-tablet-sized-console">A tablet-sized console</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uuHGGDFpnjRVf5yFp8bEDk" name="Red Magic Astra 2--6" alt="The RedMagic Astra 2 gaming tablet connected to a monitor over USB-C" src="https://cdn.mos.cms.futurecdn.net/uuHGGDFpnjRVf5yFp8bEDk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Astra 2 is nothing if not a highly versatile gaming tablet. Sure, you can play all the most demanding Android games, from Zenless Zone Zero and Wuthering Waves to Genshin Impact and Fortnite, with ease and all the settings turned up. However, that’s far from your only way to play.</p><p>Just like how you can dock the Nintendo Switch 2, if you have one of the <a href="https://www.tomsguide.com/best-picks/best-monitors">best monitors</a> with USB-C in, you can get a one-cable, big-screen gaming experience with the Astra 2. Likewise, with a device like the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">Genki Covert Dock 3</a>, you can connect the tablet to a TV.</p><div ><table><caption>Performance benchmarks</caption><tbody><tr><td class="firstcol empty" ></td><td  ><p>RedMagic Astra 2</p></td><td  ><p>iPad mini 7</p></td><td  ><p>Lenovo Tab Gen 2</p></td></tr><tr><td class="firstcol " ><p><strong>Geekbench 6 score (single-core / multi-core)</strong></p></td><td  ><p>3771 / 11979</p></td><td  ><p>2888 / 7113</p></td><td  ><p>1125 / 3417 </p></td></tr><tr><td class="firstcol " ><p><strong>3DMark Wild Life Extreme Unlimited (score/fps)</strong></p></td><td  ><p>7993 / 47.87</p></td><td  ><p>2863 / 17.1</p></td><td  ><p>1063 / 6.37</p></td></tr></tbody></table></div><p>With the Astra 2 connected to my Innova CB32U1 monitor, I toggled the Astra 2’s Competitive Key and got a full-fledged game launcher on my display, and I could also use the tablet simultaneously. All of the games you have installed appear in RedMagic’s Game Space, and you can also stream games from your PC or consoles using their respective remote play apps.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aK7JJU4VwExS9eAXgyCGf3" name="Red Magic Astra 2--4" alt="A person holding the RedMagic Astra 2 showing off all of the compatible PC games via emulation in RedMagic's GameHub app" src="https://cdn.mos.cms.futurecdn.net/aK7JJU4VwExS9eAXgyCGf3-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although it didn’t come pre-installed on my review unit, I was able to get the full AAA experience locally after downloading RedMagic’s GameHub app. That’s right, with GameHub installed and your Steam or Epic Games account linked, you can play many of the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a> via emulation directly on your Android tablet.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DfcMbyjPuSvLuKEBro62R8" name="Red Magic Astra 2--5" alt="A person holding a controller in front of the RedMagic Astra 2 gaming tablet running the PC version of Portal 2 using emulation" src="https://cdn.mos.cms.futurecdn.net/DfcMbyjPuSvLuKEBro62R8-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I loaded up a few and played my go-to game, the skateboarding sim Session, along with Valve’s Portal 2 at 50–60 fps without having to turn down their settings too much. The experience wasn’t perfect, and getting to the main menu in Metro Exodus took much longer than I expected. Still, being able to play the PC games you already own on your Android tablet is much better than being limited to mobile games, especially when big ports like Resident Evil 4 or Death Stranding are only available on Apple’s iPadOS.</p><h3 class="article-body__section" id="section-redmagic-astra-2-the-downs"><span>RedMagic Astra 2: The Downs</span></h3><p>The Astra 2 is an impressive Android tablet that easily rivals Apple’s iPad mini, but it’s not without its downsides. From a very premium price for a smaller tablet to a USB-C port that isn’t quite in the right place, there are certainly some kinks RedMagic needs to iron out before a potential follow-up. </p><h2 id="full-featured-but-off-center">Full-featured but off-center</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iExr2zxN6EQVx698CfVU7C" name="Red Magic Astra 2--13" alt="The centered, secondary USB-C port on the RedMagic Astra 2 gaming tablet" src="https://cdn.mos.cms.futurecdn.net/iExr2zxN6EQVx698CfVU7C-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Two is always better than one, and that’s especially true for USB-C ports on a device like the Astra 2. That way, you can play and charge at the same time or even use a wired keyboard and mouse while emulating PC games in the GameHub app. However, there’s just one problem: these dual USB-C ports aren’t identical.</p><p>While the USB-C port on the right side of the Astra 2 is a 3.2 Gen 2 port with DisplayPort out, the one on the underside of the tablet is a slower, less capable USB 2.0 port. Normally, this wouldn’t be a problem, and on my <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Lenovo Legion Tab Gen 3</a> with an identical dual-port setup, it isn’t. However, the Astra 2’s more powerful USB-C port is located in a very awkward place.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JSH9rKKEuZdbZvcmQumT2G" name="Red Magic Astra 2--7" alt="The RedMagic Astra 2 gaming tablet with the Razer Kishi Ultra telescoping controller attached on either side" src="https://cdn.mos.cms.futurecdn.net/JSH9rKKEuZdbZvcmQumT2G-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now that many of the <a href="https://www.tomsguide.com/best-picks/best-mobile-game-controllers">best mobile game controllers</a> support smaller tablets like the Astra 2 or iPad mini, my first instinct was to attach one on either side of RedMagic’s tablet. </p><p>Unfortunately, instead of being centered, the more powerful USB-C port is located above the speaker grille on the right side. With my <a href="https://www.tomsguide.com/gaming/i-built-the-ultimate-remote-play-setup-with-wi-fi-7-to-say-goodbye-to-stuttery-gameplay-for-good-heres-how">Razer Kishi Ultra</a> connected, a good portion of the Astra 2 hangs below the controller, similar to the screen lip on the <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a>. However, while that handheld gaming PC’s screen extends slightly, almost half of the Astra 2’s display was positioned below my telescopic controller.</p><p>You see similar setups when people try to put a telescopic game controller on one of the <a href="https://www.tomsguide.com/best-picks/best-foldable-phones">best foldable phones</a>. I just never expected to have to deal with something like this on a tablet specifically made for gaming — and mobile gaming at that.</p><h2 id="a-steep-investment-without-the-extras">A steep investment without the extras</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ng6tAYcSK8XVA7CSu7SSYL" name="Red Magic Astra 2--3" alt="A person reading the Tom's Guide homepage on the RedMagic Astra 2 gaming tablet" src="https://cdn.mos.cms.futurecdn.net/Ng6tAYcSK8XVA7CSu7SSYL-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At $699 for the base model or $799 for the version with 16GB of RAM and 512GB of storage, the Astra 2 is certainly a premium Android tablet. If mobile gaming is your thing and you want to play on a larger screen, or if you want a very future-proof tablet, the Astra 2 could be worth it.</p><p>After paying $549 for the Legion Tab Gen 3 back in 2025, before <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> hit, it makes sense that RedMagic had to raise the price of the Astra 2. With components getting more expensive, launching it at $499 for the base model, as the company did with the Astra 1, no longer makes sense.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jkEFTroXhZSacLbJaPfLSP" name="Red Magic Astra 2--14" alt="The RedMagic Astra 2 gaming tablet unboxed on a table" src="https://cdn.mos.cms.futurecdn.net/jkEFTroXhZSacLbJaPfLSP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>What surprised me, though, was how little was in the box. Of course, I got the tablet itself and a charging cable, but I was disappointed I didn’t find any other extras beyond a few stickers. For comparison, the Legion Tab Gen 3 included a folio case with a removable magnetic front cover and a glass screen protector.</p><p>Apparently, Lenovo has also become a bit more stringent with included freebies in the Tab Gen 5, likely to keep costs down. Still, I would have loved to see a case with a built-in stand included with the Astra 2, especially since you can’t comfortably use a mobile game controller with it because of that off-center USB-C port.</p><h3 class="article-body__section" id="section-redmagic-astra-2-verdict"><span>RedMagic Astra 2: Verdict</span></h3><p>The RedMagic Astra 2 is certainly an outlier among Android tablets. For starters, it has a compact, portable 9-inch design with true flagship power under the hood. Its 185Hz OLED display makes whatever content you’re watching or playing stand out in the best way. You also get dual USB-C ports and a fingerprint scanner integrated directly into its power button for secure, seamless logins.</p><p>While the off-center, full-featured USB-C port is a bit of a bummer, along with the Astra 2’s higher price, the device still feels exceptionally premium in hand. Still, I would have loved to have a case in the box and for RedMagic to work out a few of the kinks in its proprietary Android launcher.</p><p>If you want the versatility of a tablet that’s also highly portable and a gaming experience that’s almost on par with one of the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best PC handhelds</a>, the Astra 2 can’t be beat. It’s one of the <a href="https://www.tomsguide.com/best-picks/best-android-tablets">best Android tablets</a> I’ve tried yet, and while using it, I didn’t miss my iPad mini at all.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/tablets/redmagic-astra-2-review</link>
                                                                            <description>
                            <![CDATA[ The RedMagic Astra 2 is a sleek and powerful Android gaming tablet in a very portable form factor that feels like the anti-iPad mini. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bGYYVw7vTZ3HJv8eTMntwb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DsA3pAzM7tpZAtLgxzQGXF-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 26 Sep 2026 10:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Tablets]]></category>
                                                    <category><![CDATA[Android Tablets]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DsA3pAzM7tpZAtLgxzQGXF-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The RedMagic Astra 2 gaming tablet in landscape mode up against a wall]]></media:description>                                                            <media:text><![CDATA[The RedMagic Astra 2 gaming tablet in landscape mode up against a wall]]></media:text>
                                <media:title type="plain"><![CDATA[The RedMagic Astra 2 gaming tablet in landscape mode up against a wall]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DsA3pAzM7tpZAtLgxzQGXF-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The RedMagic Astra 2 could easily be mistaken for an iPad mini thanks to its compact 9-inch design and rounded corners. However, under the hood, it’s powered by one of Snapdragon’s fastest mobile processors and paired with more RAM than in many other laptops. All of that makes for an excellent and very portable gaming tablet.</p><p>With dual USB-C ports, you can charge the Astra 2 with a mobile game controller attached or even connect the tablet to a monitor or TV for a big-screen gaming experience. Speaking of gaming, there’s a physical switch on the side that activates RedMagic’s dedicated Game Space launcher. Oh, and if that wasn’t enough, you can also run full PC games from Steam right on the tablet using the company’s optional Game Hub app.</p><p>Then there’s the screen. With a 185Hz OLED panel, the Astra 2 isn’t just fast, but it delivers stunning visuals with deep blacks and excellent picture quality overall.</p><p>I’ve been using the Astra 2 as my daily driver for the past two months — both at home and while traveling — and this compact but almost overpowered gaming tablet hasn’t let me down yet, even if it can be a little rough around the edges at times. My RedMagic Astra 2 review will help you decide if this is the <a href="https://www.tomsguide.com/best-picks/best-tablet">best tablet</a> for your needs or if it’s worth sacrificing raw performance for a more budget-friendly alternative.</p><h3 class="article-body__section" id="section-redmagic-astra-2-cheat-sheet"><span>RedMagic Astra 2: Cheat Sheet</span></h3><ul><li><strong>What is it? </strong>A compact Android tablet with high-end specs for gaming.</li><li><strong>Who is it for? </strong>For people who want the best mobile gaming experience on a tablet, as well as for Android users who want a small tablet like the iPad mini.</li><li><strong>What does it cost? </strong>The RedMagic Astra 2 <a href="https://global.redmagic.gg/products/redmagic-astra-2-gaming-tablet?variant=55811529474121" target="_blank" rel="nofollow">starts at $699</a>, or you can get an upgraded version with more memory and storage <a href="https://global.redmagic.gg/products/redmagic-astra-2-gaming-tablet?variant=55811529506889" target="_blank" rel="nofollow">for $799</a>.</li><li><strong>What do we like? </strong>Its compact size and premium design, the integrated fingerprint scanner in the power button, the gorgeous 185Hz OLED screen, and that it has dual USB-C ports and the performance of its Snapdragon 8 Elite Gen 5 processor.</li><li><strong>What don’t we like? </strong>The tablet’s premium price, that it doesn’t come with any extra accessories, how RedMagic OS feels clunky and that the main, full-featured USB-C port isn’t centered.</li></ul><h3 class="article-body__section" id="section-redmagic-astra-2-specs"><span>RedMagic Astra 2: Specs</span></h3><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$699 (12GB+256GB), $799 (16GB+512GB) (as tested)</p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>9.06-inch OLED (2,400 x 1504), 185Hz</p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>Qualcomm Snapdragon 8 Elite Gen 5</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>12GB-16GB LPDDR5X</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>256GB-512GB</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>8,300 mAh</p></td></tr><tr><td class="firstcol " ><p><strong>Cameras</strong></p></td><td  ><p>9MP (front), 13MP (rear)</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wi-Fi 7, Bluetooth 6.0</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>1 x USB 3.2 Gen 2 with DisplayPort, 1 x USB-C 2.0</p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Silver, Black</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>8.15 x 5.28 x 0.27 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>0.8 pounds (363 grams)</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-redmagic-astra-2-the-ups"><span>RedMagic Astra 2: The Ups</span></h3><p>From its premium build and powerful components to its stunning OLED display, the Astra 2 isn’t just another budget Android tablet. Instead, it feels even better than Apple’s iPad mini in hand while delivering a console-like experience if you want it.</p><h2 id="the-anti-ipad-mini">The anti-iPad mini</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="B2A3PRvZuDM87Aw7bsAmWL" name="Red Magic Astra 2--2" alt="A person holding the RedMagic Astra 2 gamign tablet in portrait mode outside" src="https://cdn.mos.cms.futurecdn.net/B2A3PRvZuDM87Aw7bsAmWL-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At 8.15 x 5.28 x 0.27 inches, the Astra 2 is slightly larger than the <a href="https://www.tomsguide.com/tablets/i-spent-two-weeks-with-the-ipad-mini-7-and-it-reignited-my-love-for-smaller-tablets">iPad mini</a> to account for its 9.06-inch display versus the latter’s 8.3-inch panel. With an anodized aluminum frame, rounded corners, and a glossy screen, this Android tablet instantly feels premium.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tCEBYeeWyDe9KTTTVHLRbQ" name="Red Magic Astra 2--10" alt="The RedMagic Astra 2's power button with integrated fingerprint scanner" src="https://cdn.mos.cms.futurecdn.net/tCEBYeeWyDe9KTTTVHLRbQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>On the left side — assuming you’re holding the tablet in landscape mode — there’s a power button with an integrated fingerprint scanner next to a set of speaker grilles. When holding the Astra 2 this way, I really like how my index finger rests right on the top edge, which makes securely logging in via my fingerprint a breeze.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j7yFDywFGzGdJAx4JvHuTT" name="Red Magic Astra 2--12" alt="The RedMagic Astra 2's main, full-featured USB-C port" src="https://cdn.mos.cms.futurecdn.net/j7yFDywFGzGdJAx4JvHuTT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Then on the right side, there’s a full-featured USB-C port next to the other set of speaker grilles. One thing that sets the Astra 2 apart from other tablets is the red toggle switch across from its volume rocker. Called the Competitive Key, switching it on lets you jump from your Android home screen right into RedMagic’s GameSpace launcher, but more on that later. There’s also a second USB-C port for charging the device or connecting accessories centered along the bottom edge.</p><div ><table><caption>Battery life results </caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Time (hours:mins)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>RedMagic Astra 2</strong></p></td><td  ><p>11:28 (60Hz) | 11:10 (185Hz) </p></td></tr><tr><td class="firstcol " ><p><strong>iPad mini 7</strong></p></td><td  ><p>10:34 (60Hz)</p></td></tr><tr><td class="firstcol " ><p><strong>Lenovo Tab Gen 2</strong></p></td><td  ><p>16:00 (60Hz) | 13:39 (120Hz) </p></td></tr></tbody></table></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8vkAXBNo9k2oKJCpDdnsGY" name="Red Magic Astra 2--11" alt="The RedMagic Astra 2's vapor chamber with RGB lighting and its rear camera" src="https://cdn.mos.cms.futurecdn.net/8vkAXBNo9k2oKJCpDdnsGY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>It’s only when you flip the Astra 2 over that you realize this isn’t an iPad mini or even your standard, compact Android tablet. At the top of the device, there’s a 3D vapor chamber for cooling, complete with customizable RGB lighting and a glass strip on top so you can see everything. Then on the right edge, there’s a 13MP camera.</p><p>While this design choice might not be for everyone, I really like it. You get just a touch of gamer flair while knowing that, yes, this tablet is powered by Qualcomm’s Snapdragon 8 Elite Gen 5 chip. If this chipset sounds familiar, that’s because it powers many of the <a href="https://www.tomsguide.com/best-picks/best-phones">best phones</a>, including the <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-ultra-review">Samsung Galaxy S26 Ultra</a>, the <a href="https://www.tomsguide.com/phones/oneplus-phones/oneplus-15-review">OnePlus 15</a>, and even the <a href="https://www.tomsguide.com/phones/samsung-phones/ive-been-living-with-the-galaxy-z-fold-8-for-3-weeks-and-i-was-wrong">Samsung Galaxy Z Fold 8</a>.</p><h2 id="deep-blacks-and-faster-frames">Deep blacks and faster frames</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="z8UrFnFR3NoqKfi2W6eEXb" name="Red Magic Astra 2--9" alt="A person holding the RedMagic Astra 2 gaming tablet in portrait mode at a dark restaurant" src="https://cdn.mos.cms.futurecdn.net/z8UrFnFR3NoqKfi2W6eEXb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Despite all that power under the hood, the Astra 2’s display immediately steals the show when the tablet is powered on. With symmetrical 4.9mm bezels on all sides, you see more of the screen than on the <a href="https://www.tomsguide.com/tablets/ipads/ipad-mini-7-review">iPad mini 7</a>, which has thicker 8.5–9mm bezels and a 3:2 aspect ratio. At a resolution of 2400 x 1504, you also get a bit more screen real estate to work with, though Apple just barely wins on pixel density at 326 vs 316 pixels per inch.</p><p>The Astra 2 also features a 16:10 aspect ratio, which results in less letterboxing when watching TV shows and movies. Although I don’t normally watch movies on a tablet, I made an exception while testing the Astra 2 thanks to its stunning OLED display.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>RedMagic Astra 2</p></th><th  ><p>iPad mini 7</p></th><th  ><p>Lenovo Tab Plus Gen 2</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Nits (brightness)</strong></p></td><td  ><p>659 (SDR) | 1030 (HDR)</p></td><td  ><p>470 (SDR) | 475 (HDR)</p></td><td  ><p>597 (SDR) | 776 (HDR) </p></td></tr><tr><td class="firstcol " ><p><strong>sRGB</strong></p></td><td  ><p>198.8%</p></td><td  ><p>107.7%</p></td><td  ><p>157.5%</p></td></tr><tr><td class="firstcol " ><p><strong>DCI-P3</strong></p></td><td  ><p>141.5%</p></td><td  ><p>76.3%</p></td><td  ><p>111.5%</p></td></tr><tr><td class="firstcol " ><p><strong>Delta-E</strong></p></td><td  ><p>0.31</p></td><td  ><p>0.21</p></td><td  ><p>0.25</p></td></tr></tbody></table></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VHtyzDnzLcHtCBbhnZqWvf" name="Red Magic Astra 2--8" alt="A person watching Shang Chi and the Legend of the Ten Rings on the RedMagic Astra 2 gaming tablet" src="https://cdn.mos.cms.futurecdn.net/VHtyzDnzLcHtCBbhnZqWvf-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While watching Marvel’s Shang-Chi and the Legend of the Ten Rings to get ready for Avengers: Doomsday, the darker, nighttime fight scenes in Macau stood out for their rich, deep blacks, while the lush greenery of Ta Lo in the latter half of the film really popped.</p><p>Thanks to the Astra 2’s full-featured USB-C port, I also connected a pair of the <a href="https://www.tomsguide.com/computing/vr-ar/best-smart-glasses">best smart glasses</a>, the <a href="https://www.tomsguide.com/computing/smart-glasses/viture-pro-2-xr-glasses-review">Viture Pro 2</a>, and watched several films on the tablet during a flight home from Berlin. As with Samsung’s DeX, RedMagic lets you use the tablet’s display as a trackpad while wearing display glasses, though it lacks some of the polish of Samsung’s implementation, with written directions hardcoded across the screen.</p><p>You can’t crank up movies and TV shows past 60Hz, but with games it’s a different story. There are quite a few of the <a href="https://www.tomsguide.com/round-up/best-android-games">best Android games</a> that let you play at a higher 120Hz or 144Hz, or on the Astra 2, which has an 185Hz refresh rate. Given I’m more of a PC gamer, though, RedMagic’s Astra 2 has another really cool trick up its sleeve.</p><h2 id="a-tablet-sized-console">A tablet-sized console</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uuHGGDFpnjRVf5yFp8bEDk" name="Red Magic Astra 2--6" alt="The RedMagic Astra 2 gaming tablet connected to a monitor over USB-C" src="https://cdn.mos.cms.futurecdn.net/uuHGGDFpnjRVf5yFp8bEDk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Astra 2 is nothing if not a highly versatile gaming tablet. Sure, you can play all the most demanding Android games, from Zenless Zone Zero and Wuthering Waves to Genshin Impact and Fortnite, with ease and all the settings turned up. However, that’s far from your only way to play.</p><p>Just like how you can dock the Nintendo Switch 2, if you have one of the <a href="https://www.tomsguide.com/best-picks/best-monitors">best monitors</a> with USB-C in, you can get a one-cable, big-screen gaming experience with the Astra 2. Likewise, with a device like the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-tried-genkis-covert-dock-3-with-the-nintendo-switch-2-and-it-beats-the-official-dock-for-one-key-reason">Genki Covert Dock 3</a>, you can connect the tablet to a TV.</p><div ><table><caption>Performance benchmarks</caption><tbody><tr><td class="firstcol empty" ></td><td  ><p>RedMagic Astra 2</p></td><td  ><p>iPad mini 7</p></td><td  ><p>Lenovo Tab Gen 2</p></td></tr><tr><td class="firstcol " ><p><strong>Geekbench 6 score (single-core / multi-core)</strong></p></td><td  ><p>3771 / 11979</p></td><td  ><p>2888 / 7113</p></td><td  ><p>1125 / 3417 </p></td></tr><tr><td class="firstcol " ><p><strong>3DMark Wild Life Extreme Unlimited (score/fps)</strong></p></td><td  ><p>7993 / 47.87</p></td><td  ><p>2863 / 17.1</p></td><td  ><p>1063 / 6.37</p></td></tr></tbody></table></div><p>With the Astra 2 connected to my Innova CB32U1 monitor, I toggled the Astra 2’s Competitive Key and got a full-fledged game launcher on my display, and I could also use the tablet simultaneously. All of the games you have installed appear in RedMagic’s Game Space, and you can also stream games from your PC or consoles using their respective remote play apps.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aK7JJU4VwExS9eAXgyCGf3" name="Red Magic Astra 2--4" alt="A person holding the RedMagic Astra 2 showing off all of the compatible PC games via emulation in RedMagic's GameHub app" src="https://cdn.mos.cms.futurecdn.net/aK7JJU4VwExS9eAXgyCGf3-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Although it didn’t come pre-installed on my review unit, I was able to get the full AAA experience locally after downloading RedMagic’s GameHub app. That’s right, with GameHub installed and your Steam or Epic Games account linked, you can play many of the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a> via emulation directly on your Android tablet.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DfcMbyjPuSvLuKEBro62R8" name="Red Magic Astra 2--5" alt="A person holding a controller in front of the RedMagic Astra 2 gaming tablet running the PC version of Portal 2 using emulation" src="https://cdn.mos.cms.futurecdn.net/DfcMbyjPuSvLuKEBro62R8-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I loaded up a few and played my go-to game, the skateboarding sim Session, along with Valve’s Portal 2 at 50–60 fps without having to turn down their settings too much. The experience wasn’t perfect, and getting to the main menu in Metro Exodus took much longer than I expected. Still, being able to play the PC games you already own on your Android tablet is much better than being limited to mobile games, especially when big ports like Resident Evil 4 or Death Stranding are only available on Apple’s iPadOS.</p><h3 class="article-body__section" id="section-redmagic-astra-2-the-downs"><span>RedMagic Astra 2: The Downs</span></h3><p>The Astra 2 is an impressive Android tablet that easily rivals Apple’s iPad mini, but it’s not without its downsides. From a very premium price for a smaller tablet to a USB-C port that isn’t quite in the right place, there are certainly some kinks RedMagic needs to iron out before a potential follow-up. </p><h2 id="full-featured-but-off-center">Full-featured but off-center</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iExr2zxN6EQVx698CfVU7C" name="Red Magic Astra 2--13" alt="The centered, secondary USB-C port on the RedMagic Astra 2 gaming tablet" src="https://cdn.mos.cms.futurecdn.net/iExr2zxN6EQVx698CfVU7C-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Two is always better than one, and that’s especially true for USB-C ports on a device like the Astra 2. That way, you can play and charge at the same time or even use a wired keyboard and mouse while emulating PC games in the GameHub app. However, there’s just one problem: these dual USB-C ports aren’t identical.</p><p>While the USB-C port on the right side of the Astra 2 is a 3.2 Gen 2 port with DisplayPort out, the one on the underside of the tablet is a slower, less capable USB 2.0 port. Normally, this wouldn’t be a problem, and on my <a href="https://www.tomsguide.com/computing/tablets/i-thought-the-ipad-mini-was-the-perfect-small-tablet-until-i-tried-the-lenovo-legion-tab-3-heres-why">Lenovo Legion Tab Gen 3</a> with an identical dual-port setup, it isn’t. However, the Astra 2’s more powerful USB-C port is located in a very awkward place.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JSH9rKKEuZdbZvcmQumT2G" name="Red Magic Astra 2--7" alt="The RedMagic Astra 2 gaming tablet with the Razer Kishi Ultra telescoping controller attached on either side" src="https://cdn.mos.cms.futurecdn.net/JSH9rKKEuZdbZvcmQumT2G-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Now that many of the <a href="https://www.tomsguide.com/best-picks/best-mobile-game-controllers">best mobile game controllers</a> support smaller tablets like the Astra 2 or iPad mini, my first instinct was to attach one on either side of RedMagic’s tablet. </p><p>Unfortunately, instead of being centered, the more powerful USB-C port is located above the speaker grille on the right side. With my <a href="https://www.tomsguide.com/gaming/i-built-the-ultimate-remote-play-setup-with-wi-fi-7-to-say-goodbye-to-stuttery-gameplay-for-good-heres-how">Razer Kishi Ultra</a> connected, a good portion of the Astra 2 hangs below the controller, similar to the screen lip on the <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI+</a>. However, while that handheld gaming PC’s screen extends slightly, almost half of the Astra 2’s display was positioned below my telescopic controller.</p><p>You see similar setups when people try to put a telescopic game controller on one of the <a href="https://www.tomsguide.com/best-picks/best-foldable-phones">best foldable phones</a>. I just never expected to have to deal with something like this on a tablet specifically made for gaming — and mobile gaming at that.</p><h2 id="a-steep-investment-without-the-extras">A steep investment without the extras</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ng6tAYcSK8XVA7CSu7SSYL" name="Red Magic Astra 2--3" alt="A person reading the Tom's Guide homepage on the RedMagic Astra 2 gaming tablet" src="https://cdn.mos.cms.futurecdn.net/Ng6tAYcSK8XVA7CSu7SSYL-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At $699 for the base model or $799 for the version with 16GB of RAM and 512GB of storage, the Astra 2 is certainly a premium Android tablet. If mobile gaming is your thing and you want to play on a larger screen, or if you want a very future-proof tablet, the Astra 2 could be worth it.</p><p>After paying $549 for the Legion Tab Gen 3 back in 2025, before <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> hit, it makes sense that RedMagic had to raise the price of the Astra 2. With components getting more expensive, launching it at $499 for the base model, as the company did with the Astra 1, no longer makes sense.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jkEFTroXhZSacLbJaPfLSP" name="Red Magic Astra 2--14" alt="The RedMagic Astra 2 gaming tablet unboxed on a table" src="https://cdn.mos.cms.futurecdn.net/jkEFTroXhZSacLbJaPfLSP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>What surprised me, though, was how little was in the box. Of course, I got the tablet itself and a charging cable, but I was disappointed I didn’t find any other extras beyond a few stickers. For comparison, the Legion Tab Gen 3 included a folio case with a removable magnetic front cover and a glass screen protector.</p><p>Apparently, Lenovo has also become a bit more stringent with included freebies in the Tab Gen 5, likely to keep costs down. Still, I would have loved to see a case with a built-in stand included with the Astra 2, especially since you can’t comfortably use a mobile game controller with it because of that off-center USB-C port.</p><h3 class="article-body__section" id="section-redmagic-astra-2-verdict"><span>RedMagic Astra 2: Verdict</span></h3><p>The RedMagic Astra 2 is certainly an outlier among Android tablets. For starters, it has a compact, portable 9-inch design with true flagship power under the hood. Its 185Hz OLED display makes whatever content you’re watching or playing stand out in the best way. You also get dual USB-C ports and a fingerprint scanner integrated directly into its power button for secure, seamless logins.</p><p>While the off-center, full-featured USB-C port is a bit of a bummer, along with the Astra 2’s higher price, the device still feels exceptionally premium in hand. Still, I would have loved to have a case in the box and for RedMagic to work out a few of the kinks in its proprietary Android launcher.</p><p>If you want the versatility of a tablet that’s also highly portable and a gaming experience that’s almost on par with one of the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best PC handhelds</a>, the Astra 2 can’t be beat. It’s one of the <a href="https://www.tomsguide.com/best-picks/best-android-tablets">best Android tablets</a> I’ve tried yet, and while using it, I didn’t miss my iPad mini at all.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Control Resonant on PC with Nvidia's DLSS Ray Reconstruction — and it beats PS5 Pro hands down ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Some games are made for PC gaming. There are classics like Half-Life, Crysis, Counter-Strike and Diablo, but also ones that push graphics to the limit, like <a href="https://www.tomsguide.com/gaming/playstation/black-myth-wukong-is-another-must-play-ps5-game-and-xbox-is-missing-out">Black Myth: Wukong</a>, <a href="https://www.tomsguide.com/reviews/cyberpunk-2077">Cyberpunk 2077</a>, or <a href="https://www.tomsguide.com/news/baldurs-gate-iii-demo">Baldur's Gate III</a>. One I'd gladly add to that list? Control Resonant.</p><p><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-control-resonant-on-an-rtx-5090-and-im-now-preparing-for-a-new-benchmark-for-pc-gaming">I got to preview</a> Remedy Entertainment's latest action-heavy sequel, Control Resonant, over the summer on PC, and I was already impressed with the striking visuals and performance it showed off. And that was still when it was a work in progress; as in, lighting and framerate were still being worked on, and I didn't even see the full extent of <a href="https://www.tomsguide.com/computing/gpus/i-tested-dlss-4-5-dynamic-multi-frame-generation-its-not-just-ai-trickery-its-nvidias-cheat-code-for-4k-240hz-and-a-true-console-killer">Nvidia's DLSS 4.5</a> or its ray reconstruction. </p><p>Now, after spending over 30 hours leaping between rooftops, pummeling an assortment of warped creatures and generally defying gravity in a distorted Manhattan, I've seen what Control Resonant has to show off.</p><p>Aside from its tremendously satisfying combat and engaging story, this has some truly outstanding visuals, from its detailed particle effects to its range of lighting and scenery — especially for its semi-open world setting. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5xZ0e"></div>                            </div>                            <script src="https://kwizly.com/embed/W5xZ0e.js" async=""></script><p>Control Resonant is an excellently optimized title for PC, only made better by its wide variety of graphics settings to tinker with. So, if you're wondering where to play this action-packed RPG, I'd point you towards PC. And you can find out more below. </p><h2 id="control-resonant-pc-requirements">Control Resonant: PC Requirements</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6YKBu8oqsXE2STz3Y8ja6R" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/6YKBu8oqsXE2STz3Y8ja6R-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Developers Remedy Entertainment wanted their next adventure optimized on all platforms, including PlayStation 5, Xbox Series X/S, Nvidia GeForce Now and even macOS down the line. And, of course, PC.</p><p>Now that it's ready for launch, Remedy has updated its minimum and recommended PC requirements. Fortunately, you don't need the latest <a href="https://www.tomsguide.com/computing/gpus/best-graphics-cards">graphics cards</a> or parts to get Control Resonant up and running. Just be sure to have a lot of storage space available. </p><p>Check out the requirements below, along with the PC specs I used. </p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Tested specs</strong></p></td><td  ><p><strong>Minimum specs</strong></p></td><td  ><p><strong>Recommended specs</strong></p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen 7 9700X</p></td><td  ><p>Intel i5-8500 / AMD Ryzen 5 3500</p></td><td  ><p>Intel Core i7-10700 / AMD Ryzen 7 3700X</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Nvidia GeForce RTX 5070</p></td><td  ><p>Nvidia Geforce GTX 1070 / Radeon RX 5600 XT / Intel Arc A580</p></td><td  ><p>Nvidia Geforce RTX 3060 Ti / Radeon RX 6700 XT / Intel Arc B580</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>32GB</p></td><td  ><p>16GB</p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>120GB</p></td><td  ><p>120GB</p></td><td  ><p>120GB</p></td></tr></tbody></table></div><h2 id="optimization-is-key">Optimization is key</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rXV28jj6TH8zYZHLurLUYS" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/rXV28jj6TH8zYZHLurLUYS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>When speaking with Tony Polanco, who wrote the <a href="https://www.tomsguide.com/gaming/control-resonant-review">Control Resonant review</a> (give it a read), he said playing on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> was limiting. Sticking with "Balanced" mode, it delivered ray tracing and around 40 frames per second. Not bad, but <em>nothing </em>compared to what I got on PC.</p><p>I played Control Resonant on my <a href="https://www.tomsguide.com/computing/gaming-desktops/this-prebuilt-rtx-5070-pc-showed-me-4k-gaming-performance-for-less-and-im-surprised-as-you-are">Quoted Tech Frontier</a> gaming PC, equipped with an AMD Ryzen 7 9700X CPU, Nvidia GeForce RTX 5070 GPU and 32GB of RAM. Not a monster of a rig, but more than enough to achieve 4K gameplay with a stable 140 fps. Now that is a visual treat for any Control fan.</p><p>Even without Nvidia's tools, Control Resonant is a visually stunning game with mind-bending environments and standout set pieces. However, with Nvidia's DLSS 4.5 Dynamic Frame Generation, Ray Tracing for direct and indirect lighting, and DLSS Ray Reconstruction to make each detail even more realistic, it heightens the gameplay experience.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Un3YbVTK7XaaP3fRFBTj5S" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/Un3YbVTK7XaaP3fRFBTj5S-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Being able to reach a stable 140 fps (my 4K monitor has a max 144Hz refresh rate) at 4K resolution at High settings, with ray tracing set to Ultra, while still delivering exceptional ray tracing detail, not to mention Nvidia's AI-based Ray Reconstruction for high-quality lighting effects throughout the environment, is impressive. Even better knowing this is how well it will run at launch — not completely common for many PC ports these days.</p><p>From the sparks flying off Dylan Faden's Aberrant weapon as he beats and slices his way through enemies that explode in a miasma of multi-colored gas, to the quieter moments racing through an upside-down city block with soft red lights reflecting on windows and foggy street lighting, the quality of graphics on PC delivers a strong sense of atmosphere. One I was happy to explore for hours on end.</p><h2 id="39-control-39-your-visuals">'Control' your visuals</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="i7KufTGNoKhuJHZ3vbszpS" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/i7KufTGNoKhuJHZ3vbszpS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>I appreciate when a game gives you a host of settings to tinker with, beyond the simple "Quality" or "Performance" mode. Control Resonant offers graphics settings that let you control (pun intended) visuals to your liking, from shadow resolution to the quality of fog rendering.</p><p>What I love even more is when there's an explanation for what each option is and what it does. There are simple options like "Texture Resolution" to manage the sharpness of textures on surfaces, but there's also "Volumetric Spotlight," which I wouldn't have known controls the effects of flashlights, stage lights and more for more realistic light cones throughout the environment.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="znUapbXHYR8iPxg2fWZ445" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/znUapbXHYR8iPxg2fWZ445-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>In a game where light sources come from multiple angles, both from realistic city street lamps and supernatural beings, these types of settings play a huge role in making Control Resonant look striking.</p><p>Even if you aren't a fan of fine-tuning your settings for picture-perfect results at the right frame rates, you can easily select the graphics preset that your system will run with ease. For example, I chose High, as it best suited my gaming PC to reach consistent frame rates over 120 FPS (with frame generation, of course). </p><p>The cherry on top is that Remedy Entertainment also wants Control Resonant to be optimized for the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best gaming handhelds</a>. By selecting Handheld in the graphics preset option, you're getting the right options suited for lower-powered systems without needing to fiddle with settings. </p><h2 id="a-pc-triumph">A PC triumph</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="axeug6JEdAPrcoMSK8UVDS" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/axeug6JEdAPrcoMSK8UVDS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>As with the previous <a href="https://www.tomsguide.com/reviews/control">Control</a> becoming a benchmark for testing the performance of PCs, Control Resonant raises the stakes by taking full advantage of the latest tools, from DLSS 4.5 to ray tracing, and delivering a game perfectly optimized for PC gaming. </p><p>While the game has clearly been optimized to run well on all the platforms it's available on, it can be pushed to its limits when playing on PC. It will be interesting to see how Remedy handles its macOS port, but only time will tell once it arrives later this year. Who knows, we may even see it running on phones soon (as with <a href="https://www.tiktok.com/@tomsguide/video/7635330240482479391" target="_blank">Control: Ultimate Edition on iPhone!</a>).</p><p>If you have a gaming PC (laptop, desktop, or handheld) and want to see all the mind-bending visuals and splendor this has to offer, I'd recommend giving Control Resonant a go on PC. </p><p>For an in-depth look at our thoughts, check out our <a href="https://www.tomsguide.com/gaming/control-resonant-review">Control Resonant review</a>. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-the-real-dlss-5-forget-the-leaked-mods-its-not-an-ai-filter-this-is-nvidias-photorealistic-game-changer">I wanted to hate Nvidia’s DLSS 5 ‘AI filter’ — but the real DLSS 5 is photorealistic black magic</a></li><li><a href="https://www.tomsguide.com/computing/gpus/i-tested-nvidias-new-dlss-4-5-ray-reconstruction-it-finally-fixes-path-tracings-biggest-flaw-but-heres-the-reality-check">I tested Nvidia’s new DLSS 4.5 Ray Reconstruction — it finally fixes path tracing’s biggest flaw, but here’s the reality check</a></li><li><a href="https://www.tomsguide.com/gaming/marvels-wolverine-is-a-playable-summer-blockbuster-but-fades-from-memory-fast">Marvel’s Wolverine is a playable summer blockbuster — but fades from memory fast</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/i-played-control-resonant-on-pc-with-nvidias-dlss-ray-reconstruction-and-it-beats-ps5-pro-hands-down</link>
                                                                            <description>
                            <![CDATA[ Control Resonant looks stunning on PC thanks to Nvidia's Ray Reconstruction, DLSS 4.5 Dynamic Multi Frame Generation and more. Here are my thoughts after 30 hours of playing on a gaming PC. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wjiTQMVfuRCJfK7NcPqMpE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KUip7z48eCcDL6ZfGDTAES-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Fri, 25 Sep 2026 05:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Buying Guide Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to expert buying advice on the latest laptops. Whether it&amp;#39;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always an interesting angle no matter the subject. &lt;/p&gt;&lt;p&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, tablets, smartwatches, VR headsets, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&amp;#39;s not checking out the latest devices and updating buying guides with expert advice, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/KUip7z48eCcDL6ZfGDTAES-1920-80.png">
                                                            <media:credit><![CDATA[Remedy Entertainment]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Control Resonant]]></media:description>                                                            <media:text><![CDATA[Control Resonant]]></media:text>
                                <media:title type="plain"><![CDATA[Control Resonant]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KUip7z48eCcDL6ZfGDTAES-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Some games are made for PC gaming. There are classics like Half-Life, Crysis, Counter-Strike and Diablo, but also ones that push graphics to the limit, like <a href="https://www.tomsguide.com/gaming/playstation/black-myth-wukong-is-another-must-play-ps5-game-and-xbox-is-missing-out">Black Myth: Wukong</a>, <a href="https://www.tomsguide.com/reviews/cyberpunk-2077">Cyberpunk 2077</a>, or <a href="https://www.tomsguide.com/news/baldurs-gate-iii-demo">Baldur's Gate III</a>. One I'd gladly add to that list? Control Resonant.</p><p><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-control-resonant-on-an-rtx-5090-and-im-now-preparing-for-a-new-benchmark-for-pc-gaming">I got to preview</a> Remedy Entertainment's latest action-heavy sequel, Control Resonant, over the summer on PC, and I was already impressed with the striking visuals and performance it showed off. And that was still when it was a work in progress; as in, lighting and framerate were still being worked on, and I didn't even see the full extent of <a href="https://www.tomsguide.com/computing/gpus/i-tested-dlss-4-5-dynamic-multi-frame-generation-its-not-just-ai-trickery-its-nvidias-cheat-code-for-4k-240hz-and-a-true-console-killer">Nvidia's DLSS 4.5</a> or its ray reconstruction. </p><p>Now, after spending over 30 hours leaping between rooftops, pummeling an assortment of warped creatures and generally defying gravity in a distorted Manhattan, I've seen what Control Resonant has to show off.</p><p>Aside from its tremendously satisfying combat and engaging story, this has some truly outstanding visuals, from its detailed particle effects to its range of lighting and scenery — especially for its semi-open world setting. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5xZ0e"></div>                            </div>                            <script src="https://kwizly.com/embed/W5xZ0e.js" async=""></script><p>Control Resonant is an excellently optimized title for PC, only made better by its wide variety of graphics settings to tinker with. So, if you're wondering where to play this action-packed RPG, I'd point you towards PC. And you can find out more below. </p><h2 id="control-resonant-pc-requirements">Control Resonant: PC Requirements</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6YKBu8oqsXE2STz3Y8ja6R" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/6YKBu8oqsXE2STz3Y8ja6R-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Developers Remedy Entertainment wanted their next adventure optimized on all platforms, including PlayStation 5, Xbox Series X/S, Nvidia GeForce Now and even macOS down the line. And, of course, PC.</p><p>Now that it's ready for launch, Remedy has updated its minimum and recommended PC requirements. Fortunately, you don't need the latest <a href="https://www.tomsguide.com/computing/gpus/best-graphics-cards">graphics cards</a> or parts to get Control Resonant up and running. Just be sure to have a lot of storage space available. </p><p>Check out the requirements below, along with the PC specs I used. </p><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Tested specs</strong></p></td><td  ><p><strong>Minimum specs</strong></p></td><td  ><p><strong>Recommended specs</strong></p></td></tr><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD Ryzen 7 9700X</p></td><td  ><p>Intel i5-8500 / AMD Ryzen 5 3500</p></td><td  ><p>Intel Core i7-10700 / AMD Ryzen 7 3700X</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Nvidia GeForce RTX 5070</p></td><td  ><p>Nvidia Geforce GTX 1070 / Radeon RX 5600 XT / Intel Arc A580</p></td><td  ><p>Nvidia Geforce RTX 3060 Ti / Radeon RX 6700 XT / Intel Arc B580</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>32GB</p></td><td  ><p>16GB</p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>120GB</p></td><td  ><p>120GB</p></td><td  ><p>120GB</p></td></tr></tbody></table></div><h2 id="optimization-is-key">Optimization is key</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rXV28jj6TH8zYZHLurLUYS" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/rXV28jj6TH8zYZHLurLUYS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>When speaking with Tony Polanco, who wrote the <a href="https://www.tomsguide.com/gaming/control-resonant-review">Control Resonant review</a> (give it a read), he said playing on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> was limiting. Sticking with "Balanced" mode, it delivered ray tracing and around 40 frames per second. Not bad, but <em>nothing </em>compared to what I got on PC.</p><p>I played Control Resonant on my <a href="https://www.tomsguide.com/computing/gaming-desktops/this-prebuilt-rtx-5070-pc-showed-me-4k-gaming-performance-for-less-and-im-surprised-as-you-are">Quoted Tech Frontier</a> gaming PC, equipped with an AMD Ryzen 7 9700X CPU, Nvidia GeForce RTX 5070 GPU and 32GB of RAM. Not a monster of a rig, but more than enough to achieve 4K gameplay with a stable 140 fps. Now that is a visual treat for any Control fan.</p><p>Even without Nvidia's tools, Control Resonant is a visually stunning game with mind-bending environments and standout set pieces. However, with Nvidia's DLSS 4.5 Dynamic Frame Generation, Ray Tracing for direct and indirect lighting, and DLSS Ray Reconstruction to make each detail even more realistic, it heightens the gameplay experience.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Un3YbVTK7XaaP3fRFBTj5S" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/Un3YbVTK7XaaP3fRFBTj5S-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Being able to reach a stable 140 fps (my 4K monitor has a max 144Hz refresh rate) at 4K resolution at High settings, with ray tracing set to Ultra, while still delivering exceptional ray tracing detail, not to mention Nvidia's AI-based Ray Reconstruction for high-quality lighting effects throughout the environment, is impressive. Even better knowing this is how well it will run at launch — not completely common for many PC ports these days.</p><p>From the sparks flying off Dylan Faden's Aberrant weapon as he beats and slices his way through enemies that explode in a miasma of multi-colored gas, to the quieter moments racing through an upside-down city block with soft red lights reflecting on windows and foggy street lighting, the quality of graphics on PC delivers a strong sense of atmosphere. One I was happy to explore for hours on end.</p><h2 id="39-control-39-your-visuals">'Control' your visuals</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="i7KufTGNoKhuJHZ3vbszpS" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/i7KufTGNoKhuJHZ3vbszpS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>I appreciate when a game gives you a host of settings to tinker with, beyond the simple "Quality" or "Performance" mode. Control Resonant offers graphics settings that let you control (pun intended) visuals to your liking, from shadow resolution to the quality of fog rendering.</p><p>What I love even more is when there's an explanation for what each option is and what it does. There are simple options like "Texture Resolution" to manage the sharpness of textures on surfaces, but there's also "Volumetric Spotlight," which I wouldn't have known controls the effects of flashlights, stage lights and more for more realistic light cones throughout the environment.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="znUapbXHYR8iPxg2fWZ445" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/znUapbXHYR8iPxg2fWZ445-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>In a game where light sources come from multiple angles, both from realistic city street lamps and supernatural beings, these types of settings play a huge role in making Control Resonant look striking.</p><p>Even if you aren't a fan of fine-tuning your settings for picture-perfect results at the right frame rates, you can easily select the graphics preset that your system will run with ease. For example, I chose High, as it best suited my gaming PC to reach consistent frame rates over 120 FPS (with frame generation, of course). </p><p>The cherry on top is that Remedy Entertainment also wants Control Resonant to be optimized for the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best gaming handhelds</a>. By selecting Handheld in the graphics preset option, you're getting the right options suited for lower-powered systems without needing to fiddle with settings. </p><h2 id="a-pc-triumph">A PC triumph</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="axeug6JEdAPrcoMSK8UVDS" name="Control Resonant" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/axeug6JEdAPrcoMSK8UVDS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>As with the previous <a href="https://www.tomsguide.com/reviews/control">Control</a> becoming a benchmark for testing the performance of PCs, Control Resonant raises the stakes by taking full advantage of the latest tools, from DLSS 4.5 to ray tracing, and delivering a game perfectly optimized for PC gaming. </p><p>While the game has clearly been optimized to run well on all the platforms it's available on, it can be pushed to its limits when playing on PC. It will be interesting to see how Remedy handles its macOS port, but only time will tell once it arrives later this year. Who knows, we may even see it running on phones soon (as with <a href="https://www.tiktok.com/@tomsguide/video/7635330240482479391" target="_blank">Control: Ultimate Edition on iPhone!</a>).</p><p>If you have a gaming PC (laptop, desktop, or handheld) and want to see all the mind-bending visuals and splendor this has to offer, I'd recommend giving Control Resonant a go on PC. </p><p>For an in-depth look at our thoughts, check out our <a href="https://www.tomsguide.com/gaming/control-resonant-review">Control Resonant review</a>. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tested-the-real-dlss-5-forget-the-leaked-mods-its-not-an-ai-filter-this-is-nvidias-photorealistic-game-changer">I wanted to hate Nvidia’s DLSS 5 ‘AI filter’ — but the real DLSS 5 is photorealistic black magic</a></li><li><a href="https://www.tomsguide.com/computing/gpus/i-tested-nvidias-new-dlss-4-5-ray-reconstruction-it-finally-fixes-path-tracings-biggest-flaw-but-heres-the-reality-check">I tested Nvidia’s new DLSS 4.5 Ray Reconstruction — it finally fixes path tracing’s biggest flaw, but here’s the reality check</a></li><li><a href="https://www.tomsguide.com/gaming/marvels-wolverine-is-a-playable-summer-blockbuster-but-fades-from-memory-fast">Marvel’s Wolverine is a playable summer blockbuster — but fades from memory fast</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Silent Hill: Townfall is one of the most intense games I’ve ever played — and I loved (nearly) every moment ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Silent Hill: Townfall review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms: </strong>PC, PS5 (reviewed)<br /><strong>Price: </strong>$49 / £44 / AU$69<br /><strong>Release Date: </strong>September 24, 2026<br /><strong>Genre:</strong> Survival horror</p></div></div><p>Silent Hill: Townfall achieves what only the very best horror games can. It slowly worked its way into my psyche. Even when I wasn’t playing, part of my subconscious remained trapped in the game’s remote town setting. Like its protagonist, I felt haunted by my experience.</p><p>It’s one of the most intense and unsettling play experiences I’ve had this generation, and I say that as a huge compliment. Last year’s <a href="https://www.tomsguide.com/gaming/silent-hill-f-review">Silent Hill: f</a> opened up the franchise with a new setting (‘60s rural Japan) and refreshed gameplay. It signaled that Silent Hill was expanding. Silent Hill: Townfall fully lives up to that potential. It delivers a survival horror that is unmistakably Silent Hill but unlike anything in the series before.</p><p>Townfall is the best new Silent Hill game since 2001’s legendary Silent Hill 2 — assuming you don’t count the acclaimed <a href="https://www.tomsguide.com/gaming/silent-hill-2-review">2024 remake</a> as a wholly “new” game. Its story and setting are masterfully crafted, its first-person perspective is vital to the experience, its puzzles are (mostly) excellent, and the enemy encounters had my fingers trembling on my controller.</p><p>I loved nearly every moment of my time with Silent Hill: Townfall, and whether you’re a long-time fan or taking your first steps into the series, you <em>must</em> play it. Want to know more about what chilling moments await? Read on for my full Silent Hill: Townfall review…</p><h2 id="silent-hill-townfall-the-basics">Silent Hill: Townfall: The Basics</h2><ul><li><strong>What is it? </strong>Silent Hill Townfall is a first-person survival horror. You play a man named Simon exploring a remote Scottish town in 1996. Your mission is to survive long enough to unearth its spooky mysteries.</li><li><strong>Who is it for? </strong>Anybody looking for a genuinely nerve-wracking horror experience, as well as players who enjoy a game with a strong story and a best-in-class sense of atmosphere.</li><li><strong>What’s the price? </strong><a href="https://www.amazon.com/SILENT-HILL-townfall-DAY-ONE-PlayStation/dp/B0GMPN17CC/" target="_blank" rel="nofollow">Silent Hill: Townfall costs $49 at Amazon</a>. Or you can get the <a href="https://store.playstation.com/en-us/product/JP0101-PPSA33286_00-SHTOWNFALLDELUXE" target="_blank" rel="nofollow">Digital Deluxe Edition for $59</a> with a bonus outfit for Simon and access to a digital artbook and soundtrack application.</li><li><strong>What other games has the developer made? </strong>Silent Hill: Townfall is a collaboration between Konami, Annapurna Interactive and developer Screen Burn; the latter made the indie adventure game Observation.</li><li><strong>What games is it similar to? </strong>Silent Hill: Townfall takes inspiration from the franchise’s past, mixed with modern horror favorites like Alien: Isolation and elements of the modern Resident Evil titles.</li></ul><h2 id="new-town-same-terror">New town, same terror</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LskpwQAvucwPGoCVBKnT2m" name="silent-hill-townfall-image-02.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/LskpwQAvucwPGoCVBKnT2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Much like Silent Hill 2, Silent Hill: Townfall opens with a disembodied voice playing over a scene-setting introductory cutscene. It was effective in 2001, and it’s no less potent in 2026. By the time I was given control, my interest was piqued, and I wanted to unravel the story. </p><p>In Townfall, you play Simon Ordell, an American who washes up on the dock of the remote (fictional) Scottish town of St. Amelia. The isolated location is blanketed in a thick fog and seemingly deserted. While Simon believes he’s never been to St. Amelia before, he’s unnerved when he finds clues suggesting he has a forgotten connection to the place.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ac75jhHjU4cUKizADvH8sk" name="silent-hill-townfall-image-06.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/Ac75jhHjU4cUKizADvH8sk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>On the surface, it’s a safe but strong setup for a horror game. Simon acts initially as a player surrogate. Much like the player, Simon is a foreigner in the setting, and so together, you’re attempting to unravel its mysteries. The story definitely leans heavily on the cryptic clues in its first act, but towards the end the full picture becomes clear, and answers are dished out. </p><p>One of the most intriguing story elements is how Simon’s past is intertwined with two residents, Zoe and Simon. Both appear to know Simon, yet he doesn’t remember them at all. How these three perspectives come together in the game’s final portion is deeply satisfying. </p><p>I greatly appreciated how Townfall sets up a raft of questions in its early hours, and then delivers firm resolution towards the end. It doesn’t leave players frustrated with too many unresolved threads, but still leaves tantalizing morsels open for your own interpretation. </p><h2 id="danger-around-every-corner">Danger around every corner</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EToCnYGwhevU46jCKyTUsk" name="silent-hill-townfall-image-04.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/EToCnYGwhevU46jCKyTUsk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Before long, Simon discovers that St. Amelia is very much not a ghost town, and has instead been infested with all manner of horrific human-like monsters. Unfortunately, these creatures are usually standing in his way, so navigating around these enemies is a key gameplay pillar. </p><p>"Fight or flight" is a critical tenet of enemy encounters in Silent Hill: Townfall. You have access to a few improvised melee weapons — a wooden plank and metal pipe — and eventually you unlock firearms. But as an on-screen prompt advises, stealth is typically the best option.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="atqZp3fJPsrzRFxDjSwJZk" name="silent-hill-townfall-image-07.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/atqZp3fJPsrzRFxDjSwJZk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>To make slowly creeping around your foes easier, you’re given a CRT handheld device, which is key to every single element of the gameplay. This portable television can be tuned to mark enemies on its low-fi display and can also pick up signals that unlock ambiguous story details. It’s also required to solve some of the game’s more obscure puzzles.</p><p>Playing Silent Hill: Townfall feels highly reminiscent of Alien: Isolation since you’re always using your CRT to check for a creature coming your way. There’s even an especially deformed monster that appears at specific moments who can’t be killed, so when they appear, you'd best hide and hope you’re not spotted. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5TSjVvWx7BMx3iZSnLWRHk" name="silent-hill-townfall-image-11" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/5TSjVvWx7BMx3iZSnLWRHk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Played on the normal difficulty setting, Silent Hill: Townfall is extremely intense. Enemies have sharp powers of detection, so if you’re not careful and moving very slowly, you will be spotted, and Simon can’t take many hits before he succumbs to his injuries. Thankfully, safe zones and save stations are very generously placed, so failure never sets you back very far.</p><p>When you are spotted, you can run or stand your ground. Here the game’s clunky melee combat comes into focus, making fighting a little irritating. Things do get easier once you have access to a pistol, which can down enemies fast, but its trade-off is that it makes a lot of noise, so it’s more of a last resort. I often opt to reload a save when spotted rather than fight.</p><h2 id="pay-close-attention">Pay close attention</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TXMbSMsR2rb8QbgdbY5f2m" name="silent-hill-townfall-image-05.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/TXMbSMsR2rb8QbgdbY5f2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Like previous Silent Hill entries and the best Resident Evil games, Townfall regularly drops you into open areas that you slowly unlock as you find items, keys, and new equipment. </p><p>It’s a classic formula for a reason, and while having to explore, say, a street block to find three parts of a contraption that will open a large gate is a little illogical, it’s hugely rewarding to start with a map covered in locked door icons and then slowly open them via exploration. </p><p>Naturally, environmental puzzles are thrown into the mix at a steady clip, and for the most part they’re excellent. Some really challenge you to look closely at your surroundings. You might be momentarily stumped, but eventually puzzles culminate in an exciting moment where everything clicks together, which is always worth the time spent figuring them out. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AYCpvAb4mvB8XGLwoYyc2m" name="silent-hill-townfall-image-08.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/AYCpvAb4mvB8XGLwoYyc2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>The best puzzles mix problem-solving with exploration and combat, like one where you need to locate a series of blood bags and arrange them in the correct order to bypass a locked door, or a creepy hospital sequence, which may just be the game’s single best section. </p><p>Unfortunately, I can’t say all of the puzzles are winners. There was one in the game’s final stretch which is so convoluted and poorly explained that I feared I might never solve it. Turns out my game had glitched, making it impossible. But even when a reload corrected this problem, I still found the puzzle to be a rare moment where Townfall comes up short.</p><h2 id="spooky-but-utterly-stunning">Spooky but utterly stunning</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ixZjW2cY7hcZvQYtxUmEok" name="silent-hill-townfall-image-01.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/ixZjW2cY7hcZvQYtxUmEok-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>For a game so crammed with unsettling sights, Silent Hill: Townfall is still utterly stunning. </p><p>As a U.K. native, I got a real kick out of Screen Burn’s commitment to crafting a believable slice of 1990s Great Britain. I suspect I’ll be a rare player who spent a solid few minutes just marveling at how perfectly the developer’s replicated a U.K. ATM and our old-school ugly phone boxes.</p><p>Graphically, the game looks almost photorealistic at times, which only brings the horror into sharper focus, and the sound design is remarkable. Playing with headphones to hear every wail or chilling shriek in the distance is a must. It all comes together to create a deeply oppressive atmosphere. At multiple points, a part of me was so creeped out that I considered pausing for a moment to let the fear fade before pressing on.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ntDAhLmZ2kpbcagN5F8i2m" name="silent-hill-townfall-image-03.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/ntDAhLmZ2kpbcagN5F8i2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Townfall also marks the first full Silent Hill game played from a first-person perspective, and while the decision has been controversial with some fans, it’s very vital to the game’s overall feel. Seeing the game through Simon’s eyes draws you in and makes St. Amelia feel even more ominous. Townfall would be a weaker horror experience if played in third-person. </p><p>The only thing that vaguely blights the otherwise stunning presentation is a few pesky technical hiccups. These include framerate drops during the more hectic combat moments and, during a key cutscene, a black screen. Not to mention the aforementioned bug that made a puzzle unsolvable. I wanted to mention that again, as that particular puzzle can go to hell!</p><h2 id="silent-hill-townfall-review-verdict">Silent Hill: Townfall review: Verdict</h2><p>Silent Hill: Townfall offers everything I want from a survival horror game. Its story and setting blend beautifully, enemy encounters always get your heart racing, and it’s a visual treat — even when it’s rendering disturbing images in stunning detail. Plus, it offers five different endings, two only unlockable in New Game+, giving you reason to return to St. Amelia.</p><p>Silent Hill was once considered the premier video game horror series, and while it lost its way in subsequent releases and even looked abandoned at one point, Silent Hill: Townfall puts it back on the horror map. Watch out, Resident Evil, your old rival has truly returned. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/silent-hill-townfall-review</link>
                                                                            <description>
                            <![CDATA[ Silent Hill: Townfall brings the series to a new setting in a new first-person perspective. But while much has changed, the intense scares and haunting atmosphere haven’t. Townfall is one of the best horror games, not just of 2026, but of this generation. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UKBcyQLD7oMNsjgoEV3mLh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/fPXJ9xbfP93EyLswxKke4f-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 21 Sep 2026 07:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/fPXJ9xbfP93EyLswxKke4f-1920-80.jpg">
                                                            <media:credit><![CDATA[Konami / Screen Burn / Annapurna Interactive]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Silent Hill: Townfall screenshot captured on PS5 Pro]]></media:description>                                                            <media:text><![CDATA[Silent Hill: Townfall screenshot captured on PS5 Pro]]></media:text>
                                <media:title type="plain"><![CDATA[Silent Hill: Townfall screenshot captured on PS5 Pro]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/fPXJ9xbfP93EyLswxKke4f-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Silent Hill: Townfall review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms: </strong>PC, PS5 (reviewed)<br /><strong>Price: </strong>$49 / £44 / AU$69<br /><strong>Release Date: </strong>September 24, 2026<br /><strong>Genre:</strong> Survival horror</p></div></div><p>Silent Hill: Townfall achieves what only the very best horror games can. It slowly worked its way into my psyche. Even when I wasn’t playing, part of my subconscious remained trapped in the game’s remote town setting. Like its protagonist, I felt haunted by my experience.</p><p>It’s one of the most intense and unsettling play experiences I’ve had this generation, and I say that as a huge compliment. Last year’s <a href="https://www.tomsguide.com/gaming/silent-hill-f-review">Silent Hill: f</a> opened up the franchise with a new setting (‘60s rural Japan) and refreshed gameplay. It signaled that Silent Hill was expanding. Silent Hill: Townfall fully lives up to that potential. It delivers a survival horror that is unmistakably Silent Hill but unlike anything in the series before.</p><p>Townfall is the best new Silent Hill game since 2001’s legendary Silent Hill 2 — assuming you don’t count the acclaimed <a href="https://www.tomsguide.com/gaming/silent-hill-2-review">2024 remake</a> as a wholly “new” game. Its story and setting are masterfully crafted, its first-person perspective is vital to the experience, its puzzles are (mostly) excellent, and the enemy encounters had my fingers trembling on my controller.</p><p>I loved nearly every moment of my time with Silent Hill: Townfall, and whether you’re a long-time fan or taking your first steps into the series, you <em>must</em> play it. Want to know more about what chilling moments await? Read on for my full Silent Hill: Townfall review…</p><h2 id="silent-hill-townfall-the-basics">Silent Hill: Townfall: The Basics</h2><ul><li><strong>What is it? </strong>Silent Hill Townfall is a first-person survival horror. You play a man named Simon exploring a remote Scottish town in 1996. Your mission is to survive long enough to unearth its spooky mysteries.</li><li><strong>Who is it for? </strong>Anybody looking for a genuinely nerve-wracking horror experience, as well as players who enjoy a game with a strong story and a best-in-class sense of atmosphere.</li><li><strong>What’s the price? </strong><a href="https://www.amazon.com/SILENT-HILL-townfall-DAY-ONE-PlayStation/dp/B0GMPN17CC/" target="_blank" rel="nofollow">Silent Hill: Townfall costs $49 at Amazon</a>. Or you can get the <a href="https://store.playstation.com/en-us/product/JP0101-PPSA33286_00-SHTOWNFALLDELUXE" target="_blank" rel="nofollow">Digital Deluxe Edition for $59</a> with a bonus outfit for Simon and access to a digital artbook and soundtrack application.</li><li><strong>What other games has the developer made? </strong>Silent Hill: Townfall is a collaboration between Konami, Annapurna Interactive and developer Screen Burn; the latter made the indie adventure game Observation.</li><li><strong>What games is it similar to? </strong>Silent Hill: Townfall takes inspiration from the franchise’s past, mixed with modern horror favorites like Alien: Isolation and elements of the modern Resident Evil titles.</li></ul><h2 id="new-town-same-terror">New town, same terror</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LskpwQAvucwPGoCVBKnT2m" name="silent-hill-townfall-image-02.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/LskpwQAvucwPGoCVBKnT2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Much like Silent Hill 2, Silent Hill: Townfall opens with a disembodied voice playing over a scene-setting introductory cutscene. It was effective in 2001, and it’s no less potent in 2026. By the time I was given control, my interest was piqued, and I wanted to unravel the story. </p><p>In Townfall, you play Simon Ordell, an American who washes up on the dock of the remote (fictional) Scottish town of St. Amelia. The isolated location is blanketed in a thick fog and seemingly deserted. While Simon believes he’s never been to St. Amelia before, he’s unnerved when he finds clues suggesting he has a forgotten connection to the place.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Ac75jhHjU4cUKizADvH8sk" name="silent-hill-townfall-image-06.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/Ac75jhHjU4cUKizADvH8sk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>On the surface, it’s a safe but strong setup for a horror game. Simon acts initially as a player surrogate. Much like the player, Simon is a foreigner in the setting, and so together, you’re attempting to unravel its mysteries. The story definitely leans heavily on the cryptic clues in its first act, but towards the end the full picture becomes clear, and answers are dished out. </p><p>One of the most intriguing story elements is how Simon’s past is intertwined with two residents, Zoe and Simon. Both appear to know Simon, yet he doesn’t remember them at all. How these three perspectives come together in the game’s final portion is deeply satisfying. </p><p>I greatly appreciated how Townfall sets up a raft of questions in its early hours, and then delivers firm resolution towards the end. It doesn’t leave players frustrated with too many unresolved threads, but still leaves tantalizing morsels open for your own interpretation. </p><h2 id="danger-around-every-corner">Danger around every corner</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EToCnYGwhevU46jCKyTUsk" name="silent-hill-townfall-image-04.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/EToCnYGwhevU46jCKyTUsk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Before long, Simon discovers that St. Amelia is very much not a ghost town, and has instead been infested with all manner of horrific human-like monsters. Unfortunately, these creatures are usually standing in his way, so navigating around these enemies is a key gameplay pillar. </p><p>"Fight or flight" is a critical tenet of enemy encounters in Silent Hill: Townfall. You have access to a few improvised melee weapons — a wooden plank and metal pipe — and eventually you unlock firearms. But as an on-screen prompt advises, stealth is typically the best option.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="atqZp3fJPsrzRFxDjSwJZk" name="silent-hill-townfall-image-07.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/atqZp3fJPsrzRFxDjSwJZk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>To make slowly creeping around your foes easier, you’re given a CRT handheld device, which is key to every single element of the gameplay. This portable television can be tuned to mark enemies on its low-fi display and can also pick up signals that unlock ambiguous story details. It’s also required to solve some of the game’s more obscure puzzles.</p><p>Playing Silent Hill: Townfall feels highly reminiscent of Alien: Isolation since you’re always using your CRT to check for a creature coming your way. There’s even an especially deformed monster that appears at specific moments who can’t be killed, so when they appear, you'd best hide and hope you’re not spotted. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5TSjVvWx7BMx3iZSnLWRHk" name="silent-hill-townfall-image-11" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/5TSjVvWx7BMx3iZSnLWRHk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Played on the normal difficulty setting, Silent Hill: Townfall is extremely intense. Enemies have sharp powers of detection, so if you’re not careful and moving very slowly, you will be spotted, and Simon can’t take many hits before he succumbs to his injuries. Thankfully, safe zones and save stations are very generously placed, so failure never sets you back very far.</p><p>When you are spotted, you can run or stand your ground. Here the game’s clunky melee combat comes into focus, making fighting a little irritating. Things do get easier once you have access to a pistol, which can down enemies fast, but its trade-off is that it makes a lot of noise, so it’s more of a last resort. I often opt to reload a save when spotted rather than fight.</p><h2 id="pay-close-attention">Pay close attention</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TXMbSMsR2rb8QbgdbY5f2m" name="silent-hill-townfall-image-05.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/TXMbSMsR2rb8QbgdbY5f2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Like previous Silent Hill entries and the best Resident Evil games, Townfall regularly drops you into open areas that you slowly unlock as you find items, keys, and new equipment. </p><p>It’s a classic formula for a reason, and while having to explore, say, a street block to find three parts of a contraption that will open a large gate is a little illogical, it’s hugely rewarding to start with a map covered in locked door icons and then slowly open them via exploration. </p><p>Naturally, environmental puzzles are thrown into the mix at a steady clip, and for the most part they’re excellent. Some really challenge you to look closely at your surroundings. You might be momentarily stumped, but eventually puzzles culminate in an exciting moment where everything clicks together, which is always worth the time spent figuring them out. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AYCpvAb4mvB8XGLwoYyc2m" name="silent-hill-townfall-image-08.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/AYCpvAb4mvB8XGLwoYyc2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>The best puzzles mix problem-solving with exploration and combat, like one where you need to locate a series of blood bags and arrange them in the correct order to bypass a locked door, or a creepy hospital sequence, which may just be the game’s single best section. </p><p>Unfortunately, I can’t say all of the puzzles are winners. There was one in the game’s final stretch which is so convoluted and poorly explained that I feared I might never solve it. Turns out my game had glitched, making it impossible. But even when a reload corrected this problem, I still found the puzzle to be a rare moment where Townfall comes up short.</p><h2 id="spooky-but-utterly-stunning">Spooky but utterly stunning</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ixZjW2cY7hcZvQYtxUmEok" name="silent-hill-townfall-image-01.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/ixZjW2cY7hcZvQYtxUmEok-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>For a game so crammed with unsettling sights, Silent Hill: Townfall is still utterly stunning. </p><p>As a U.K. native, I got a real kick out of Screen Burn’s commitment to crafting a believable slice of 1990s Great Britain. I suspect I’ll be a rare player who spent a solid few minutes just marveling at how perfectly the developer’s replicated a U.K. ATM and our old-school ugly phone boxes.</p><p>Graphically, the game looks almost photorealistic at times, which only brings the horror into sharper focus, and the sound design is remarkable. Playing with headphones to hear every wail or chilling shriek in the distance is a must. It all comes together to create a deeply oppressive atmosphere. At multiple points, a part of me was so creeped out that I considered pausing for a moment to let the fear fade before pressing on.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ntDAhLmZ2kpbcagN5F8i2m" name="silent-hill-townfall-image-03.JPG" alt="Silent Hill: Townfall screenshot captured on PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/ntDAhLmZ2kpbcagN5F8i2m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Konami / Screen Burn / Annapurna Interactive)</span></figcaption></figure><p>Townfall also marks the first full Silent Hill game played from a first-person perspective, and while the decision has been controversial with some fans, it’s very vital to the game’s overall feel. Seeing the game through Simon’s eyes draws you in and makes St. Amelia feel even more ominous. Townfall would be a weaker horror experience if played in third-person. </p><p>The only thing that vaguely blights the otherwise stunning presentation is a few pesky technical hiccups. These include framerate drops during the more hectic combat moments and, during a key cutscene, a black screen. Not to mention the aforementioned bug that made a puzzle unsolvable. I wanted to mention that again, as that particular puzzle can go to hell!</p><h2 id="silent-hill-townfall-review-verdict">Silent Hill: Townfall review: Verdict</h2><p>Silent Hill: Townfall offers everything I want from a survival horror game. Its story and setting blend beautifully, enemy encounters always get your heart racing, and it’s a visual treat — even when it’s rendering disturbing images in stunning detail. Plus, it offers five different endings, two only unlockable in New Game+, giving you reason to return to St. Amelia.</p><p>Silent Hill was once considered the premier video game horror series, and while it lost its way in subsequent releases and even looked abandoned at one point, Silent Hill: Townfall puts it back on the horror map. Watch out, Resident Evil, your old rival has truly returned. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I was hyped for Control Resonant — and it still surpassed my high expectations ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Control Resonant review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms</strong>: PC, PS5 (reviewed), Xbox Series X/S<br /><strong>Price</strong>: $59 / £49 / AU$99<br /><strong>Release date</strong>: September 24, 2026<br /><strong>Genre</strong>: Action RPG / hack-and-slash</p></div></div><p>Control Resonant is exactly what I want from a sequel. While Remedy Entertainment could have just made a “Control 2” that was more of the same, it instead replaced the awesome shooting mechanics with brutal melee combat and swapped protagonists. Despite that, the game retains all of the trippy, supernatural elements that made the original Control stand out.</p><p>Everything is bigger this time around, with expansive, interconnected maps, deep skill trees, multiple weapon forms, and a more involved plot full of surprises. Though Control Resonant takes roughly twice as long to complete, even if you mostly avoid the numerous side quests, it doesn’t overstay its welcome thanks to its compelling world and engaging gameplay. The team clearly wanted every mission to feel meaningful.</p><p>Despite some confusing map layouts in certain areas, Control Resonant excels at almost everything it tries to accomplish. It’s easily the most unique AAA experience I’ve had in 2026, and a title that — like <a href="https://www.tomsguide.com/reviews/control">Control</a> — will likely build a strong audience over time. It’s truly that good! Find out more in my full review of Control Resonant.</p><h2 id="control-resonant-the-basics">Control Resonant: The Basics</h2><ul><li><strong>What is it?</strong> Control Resonant is the direct sequel to 2019’s Control.</li><li><strong>Who is it for?</strong> For fans of the original Control and of hack-and-slash or action RPGs.</li><li><strong>What's the price?</strong> Control Resonant retails for $59 at retailers like <a href="https://www.amazon.com/CONTROL-Resonant-PlayStation-5/dp/B0H3WQP7C6?th=1" target="_blank" rel="nofollow">Amazon</a>. You can get the steelbook edition for $69 at <a href="https://www.gamestop.com/video-games/playstation-5/products/control-resonant-steelbook---playstation-5/20030957-a50e2673.html" target="_blank" rel="nofollow">GameStop</a>.</li><li><strong>What other games has the developer made?</strong> Remedy Entertainment is known for titles like Alan Wake, Quantum Break, and the first Control.</li><li><strong>What games is it similar to?</strong> Control Resonant is similar to games like Devil May Cry and Bayonetta, which are also hack-and-slash titles with supernatural/horror elements.</li></ul><h2 id="a-different-perspective">A different perspective</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ciQGBvEengUXenvfrE6dve" name="Control Resonant-3" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/ciQGBvEengUXenvfrE6dve-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Control Resonant takes place shortly after the original game. Don’t worry about feeling lost, since there’s a handy recap you can watch to acquaint or reacquaint yourself with the original game’s story. The narrative of Control Resonant also does a good job of bringing you up to speed. That said, this is very much a self-contained story that’s easy for anyone to jump into.</p><p>Whereas you previously played as Jesse Fayden, you now take on the role of her brother, Dylan. The extra-dimensional horrors contained in “The Oldest House” from the first game have spilled out and begun engulfing large parts of lower Manhattan — turning it into an Inception-inspired nightmare of twisted architecture, distorted physics, and horrific monsters that were once citizens. As Dylan, it’s your job to help the Federal Bureau of Control (FBC) drive back the “Hiss” monsters and prevent the entire planet from being swallowed by the other dimension.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mNwVELbdfHC8bM7Smfe4Za" name="Control Resonant 2" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/mNwVELbdfHC8bM7Smfe4Za-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Aside from all the supernatural shenanigans, the story of Dylan’s struggle to reunite with his sister while grappling with the monster within him and the guilt he feels for committing horrific acts seven years earlier is equally engaging. Dylan isn’t your usual “heroic” type, and his prolonged isolation from others leaves him acting naive or unsure. But as the story progresses, we see him evolve in a satisfying and thoughtful manner.</p><p>As before, the story unfolds through cutscenes and real-life footage that blend seamlessly. Notes and NPC dialogue also do a good job of making this strange world feel alive and believable. The excellent voice acting and tight script further support this. All of this makes Control Resonant feel appropriately cinematic, though you’re almost always in control (no pun intended) rather than just passively watching events unfold.</p><p>There’s more I could say about the narrative, but I don’t want to spoil anything. I’ll just say that Remedy’s knack for telling a compelling yarn hasn’t diminished over the years — it’s only gotten stronger, and Control Resonant proves it.</p><h2 id="powers-from-beyond">Powers from beyond</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iA9kP9j5dFBswh6etyVt5H" name="CTRL_R_Launch_4K_Public_PS5_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/iA9kP9j5dFBswh6etyVt5H-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>If you’re into fast-paced melee games like <a href="https://www.tomsguide.com/us/devil-may-cry-5,review-6248.html">Devil May Cry 5</a> and <a href="https://www.tomsguide.com/reviews/bayonetta-3">Bayonetta 3</a>, you’re in for a treat with Control Resonant. While the combat isn’t as challenging as in those titles, it can still be pretty tough. In fact, this is Remedy’s hardest game yet — which is great if you don’t want to sleepwalk through it. That said, you can adjust the difficulty to suit your preference if you mainly want to enjoy the story, or if you want an even steeper challenge.</p><p>Melee combat is superb, feeling both smooth and visceral. Dylan’s weapon, the Abberant, can take on various forms, such as a sword, club, or whip. You can choose a primary form, a secondary form, and a finisher — and each has multiple variants. Mixing and matching these attacks keeps combat feeling fresh, and certain loadouts are better suited to specific encounters, such as the titanic boss battles.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WNi4PHhEkkQCzAfoQecq3V" name="CTRL_R_Launch_4K_Public_PS5_03" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/WNi4PHhEkkQCzAfoQecq3V-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>In addition to pure melee combat, Dylan has other abilities, such as coating his weapons in fire that literally burns through enemy defenses or generating a spectral being that shoots projectiles at foes. You gain most of these abilities from bosses called “Resonants,” so it’s in your best interest to find and take them out — not to mention that the boss battles are very inventive and help fill out the game’s world.</p><p>And like Jesse before him, Dylan can hover in the air and perform a quick dash to cover long distances, which not only helps you traverse the world more easily but also helps tremendously during heated combat sections.</p><p>Killing Hiss, completing missions, discovering new locations, and progressing through the story all earn you experience points you can use to power up your weapons and abilities. By the time I reached the end of the game, I felt like a powerhouse with all the skills I had acquired. The game is very generous with experience points, so it doesn’t take long for Dylan to become a true threat to the Hiss.</p><h2 id="a-twisted-world">A twisted world</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NhWa562CALqP638kG2MY38" name="CTRL_R_Launch_4K_Media_PC_XBOX_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/NhWa562CALqP638kG2MY38-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Instead of claustrophobic, enclosed environments like the original game, Control Resonant drops you into a sprawling, distorted version of lower Manhattan. Few things are as they seem, and you certainly won’t find recognizable landmarks thanks to the dimensional encroachment. This makes for one of the most unique gaming worlds, blending the familiar with the strange and unsettling.</p><p>Though all of the game’s environments are linked (usually via underground tunnels that are basically hidden load screens), this isn’t exactly a traditional open-world game like <a href="https://www.tomsguide.com/news/gta-6">Grand Theft Auto 6</a> or <a href="https://www.tomsguide.com/opinion/witcher-3-next-gen-update-is-even-better-than-expected-im-shocked-its-free">The Witcher 3</a>. Each area has its own signature flavor — such as hazy-blue sections covered in supernatural mold or areas where it’s impossible to discern what’s up or what’s down.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XkPtpwG74EoAJxBeaNp6AG" name="CTRL_R_Launch_4K_Media_PS5_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/XkPtpwG74EoAJxBeaNp6AG-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You’ll find various quests throughout the areas. Some involve helping citizens or FBC agents, while others are random events that usually involve taking out the Hiss or dealing with other extradimensional phenomena. I especially like the NPC missions, as they provide a nice diversion from the main plot while still helping flesh out the world of Control. And given how you gain experience points and other rewards, it’s always in your best interest to complete as many side quests as possible. It’s a great way to beef up Dylan to better handle the nastier enemies and bosses near the back half of the game.</p><p>The only drawback is that navigating the maps can be confusing, as the map doesn’t always clearly indicate where you can or can’t go. Most of the time, you can’t reach an area until you’ve unlocked a specific ability to surmount it. Other times, you’re left scratching your head about how to get to a place that seems close enough but might require a circuitous route. This isn’t a deal-breaker, but it’s something to keep in mind.</p><p>Other than that, the levels (such as they are) are all imaginatively realized and are engaging to explore. You never know what’s hidden in that side alley or subway tunnel!</p><h2 id="supernatural-sights-and-sounds">Supernatural sights and sounds</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j5FQhrbVUfst2nFprhAjLR" name="CTRL_R_Launch_4K_Public_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/j5FQhrbVUfst2nFprhAjLR-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Simply put, Control Resonant is one of the most impressive-looking games of 2026. That shouldn’t be a surprise, given Remedy’s penchant for delivering cutting-edge graphics, but this game takes it to the next level in both technical prowess and artistic vision. If you’ll pardon the pun, Control Resonant is a feast for the eyes.</p><p>Character models generally look good, but they’re (graphically) outclassed by the lush, detailed environments. The numerous enemies and bosses also come to life in stunning detail. What makes it all come together is the color palette, which generally favors black and red. Of course, other zones deliver a completely different visual experience (that I won’t spoil here!). Suffice it to say that my words can’t do this game’s visuals justice.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hy6eZjjLAkTuYqo5bLNLeR" name="Control PS5 Pro" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/hy6eZjjLAkTuYqo5bLNLeR-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment / Tom's Guide)</span></figcaption></figure><p>I played the game on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> using the “balanced” graphical setting, which runs the game at 40 frames per second with full ray tracing enabled. This is a nice middle ground between performance (60 fps without graphical bumps) and quality (30 fps with full visual fidelity). That said, I do eventually want to play this game on one of the <a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">best gaming PCs</a> so I can run it with everything at max settings.</p><h2 id="control-resonant-review-verdict">Control Resonant review: Verdict</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vCPF5Q9JPG9mH2gmb3B3Jk" name="CTRL_R_Launch_4K_Media_07" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/vCPF5Q9JPG9mH2gmb3B3Jk-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Control: Resonant is another triumph for Remedy Entertainment and is arguably their finest game yet. The team put everything into delivering a worthwhile sequel for fans of the original that still stands on its own. Thanks to its superb combat, sharp graphics, and unique tone, it is easily one of the best games of 2026 — a year stacked with winners.</p><p>To that end, be sure not to miss out on Control Resonant. It’s a reminder that there’s still true innovation and imagination in AAA gaming. Yes, there are a lot of games coming our way this season, but this is one you’ll kick yourself for missing. Trust me on that!</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/control-resonant-review</link>
                                                                            <description>
                            <![CDATA[ Control Resonant is a triumphant sequel featuring intense melee combat, inventive environments, and deep customization. It’s a worthy sequel to the original and a title folks seriously need to check out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">h5Yp6PfYyKDMMPvBjGnd87</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/uipHDzDw9KiDqATMPRr5oF-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 18 Sep 2026 13:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/uipHDzDw9KiDqATMPRr5oF-1920-80.jpg">
                                                            <media:credit><![CDATA[Remedy Entertainment]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Control Resonant]]></media:description>                                                            <media:text><![CDATA[Control Resonant]]></media:text>
                                <media:title type="plain"><![CDATA[Control Resonant]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/uipHDzDw9KiDqATMPRr5oF-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Control Resonant review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms</strong>: PC, PS5 (reviewed), Xbox Series X/S<br /><strong>Price</strong>: $59 / £49 / AU$99<br /><strong>Release date</strong>: September 24, 2026<br /><strong>Genre</strong>: Action RPG / hack-and-slash</p></div></div><p>Control Resonant is exactly what I want from a sequel. While Remedy Entertainment could have just made a “Control 2” that was more of the same, it instead replaced the awesome shooting mechanics with brutal melee combat and swapped protagonists. Despite that, the game retains all of the trippy, supernatural elements that made the original Control stand out.</p><p>Everything is bigger this time around, with expansive, interconnected maps, deep skill trees, multiple weapon forms, and a more involved plot full of surprises. Though Control Resonant takes roughly twice as long to complete, even if you mostly avoid the numerous side quests, it doesn’t overstay its welcome thanks to its compelling world and engaging gameplay. The team clearly wanted every mission to feel meaningful.</p><p>Despite some confusing map layouts in certain areas, Control Resonant excels at almost everything it tries to accomplish. It’s easily the most unique AAA experience I’ve had in 2026, and a title that — like <a href="https://www.tomsguide.com/reviews/control">Control</a> — will likely build a strong audience over time. It’s truly that good! Find out more in my full review of Control Resonant.</p><h2 id="control-resonant-the-basics">Control Resonant: The Basics</h2><ul><li><strong>What is it?</strong> Control Resonant is the direct sequel to 2019’s Control.</li><li><strong>Who is it for?</strong> For fans of the original Control and of hack-and-slash or action RPGs.</li><li><strong>What's the price?</strong> Control Resonant retails for $59 at retailers like <a href="https://www.amazon.com/CONTROL-Resonant-PlayStation-5/dp/B0H3WQP7C6?th=1" target="_blank" rel="nofollow">Amazon</a>. You can get the steelbook edition for $69 at <a href="https://www.gamestop.com/video-games/playstation-5/products/control-resonant-steelbook---playstation-5/20030957-a50e2673.html" target="_blank" rel="nofollow">GameStop</a>.</li><li><strong>What other games has the developer made?</strong> Remedy Entertainment is known for titles like Alan Wake, Quantum Break, and the first Control.</li><li><strong>What games is it similar to?</strong> Control Resonant is similar to games like Devil May Cry and Bayonetta, which are also hack-and-slash titles with supernatural/horror elements.</li></ul><h2 id="a-different-perspective">A different perspective</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ciQGBvEengUXenvfrE6dve" name="Control Resonant-3" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/ciQGBvEengUXenvfrE6dve-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Control Resonant takes place shortly after the original game. Don’t worry about feeling lost, since there’s a handy recap you can watch to acquaint or reacquaint yourself with the original game’s story. The narrative of Control Resonant also does a good job of bringing you up to speed. That said, this is very much a self-contained story that’s easy for anyone to jump into.</p><p>Whereas you previously played as Jesse Fayden, you now take on the role of her brother, Dylan. The extra-dimensional horrors contained in “The Oldest House” from the first game have spilled out and begun engulfing large parts of lower Manhattan — turning it into an Inception-inspired nightmare of twisted architecture, distorted physics, and horrific monsters that were once citizens. As Dylan, it’s your job to help the Federal Bureau of Control (FBC) drive back the “Hiss” monsters and prevent the entire planet from being swallowed by the other dimension.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mNwVELbdfHC8bM7Smfe4Za" name="Control Resonant 2" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/mNwVELbdfHC8bM7Smfe4Za-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Aside from all the supernatural shenanigans, the story of Dylan’s struggle to reunite with his sister while grappling with the monster within him and the guilt he feels for committing horrific acts seven years earlier is equally engaging. Dylan isn’t your usual “heroic” type, and his prolonged isolation from others leaves him acting naive or unsure. But as the story progresses, we see him evolve in a satisfying and thoughtful manner.</p><p>As before, the story unfolds through cutscenes and real-life footage that blend seamlessly. Notes and NPC dialogue also do a good job of making this strange world feel alive and believable. The excellent voice acting and tight script further support this. All of this makes Control Resonant feel appropriately cinematic, though you’re almost always in control (no pun intended) rather than just passively watching events unfold.</p><p>There’s more I could say about the narrative, but I don’t want to spoil anything. I’ll just say that Remedy’s knack for telling a compelling yarn hasn’t diminished over the years — it’s only gotten stronger, and Control Resonant proves it.</p><h2 id="powers-from-beyond">Powers from beyond</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="iA9kP9j5dFBswh6etyVt5H" name="CTRL_R_Launch_4K_Public_PS5_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/iA9kP9j5dFBswh6etyVt5H-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>If you’re into fast-paced melee games like <a href="https://www.tomsguide.com/us/devil-may-cry-5,review-6248.html">Devil May Cry 5</a> and <a href="https://www.tomsguide.com/reviews/bayonetta-3">Bayonetta 3</a>, you’re in for a treat with Control Resonant. While the combat isn’t as challenging as in those titles, it can still be pretty tough. In fact, this is Remedy’s hardest game yet — which is great if you don’t want to sleepwalk through it. That said, you can adjust the difficulty to suit your preference if you mainly want to enjoy the story, or if you want an even steeper challenge.</p><p>Melee combat is superb, feeling both smooth and visceral. Dylan’s weapon, the Abberant, can take on various forms, such as a sword, club, or whip. You can choose a primary form, a secondary form, and a finisher — and each has multiple variants. Mixing and matching these attacks keeps combat feeling fresh, and certain loadouts are better suited to specific encounters, such as the titanic boss battles.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WNi4PHhEkkQCzAfoQecq3V" name="CTRL_R_Launch_4K_Public_PS5_03" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/WNi4PHhEkkQCzAfoQecq3V-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>In addition to pure melee combat, Dylan has other abilities, such as coating his weapons in fire that literally burns through enemy defenses or generating a spectral being that shoots projectiles at foes. You gain most of these abilities from bosses called “Resonants,” so it’s in your best interest to find and take them out — not to mention that the boss battles are very inventive and help fill out the game’s world.</p><p>And like Jesse before him, Dylan can hover in the air and perform a quick dash to cover long distances, which not only helps you traverse the world more easily but also helps tremendously during heated combat sections.</p><p>Killing Hiss, completing missions, discovering new locations, and progressing through the story all earn you experience points you can use to power up your weapons and abilities. By the time I reached the end of the game, I felt like a powerhouse with all the skills I had acquired. The game is very generous with experience points, so it doesn’t take long for Dylan to become a true threat to the Hiss.</p><h2 id="a-twisted-world">A twisted world</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NhWa562CALqP638kG2MY38" name="CTRL_R_Launch_4K_Media_PC_XBOX_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/NhWa562CALqP638kG2MY38-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Instead of claustrophobic, enclosed environments like the original game, Control Resonant drops you into a sprawling, distorted version of lower Manhattan. Few things are as they seem, and you certainly won’t find recognizable landmarks thanks to the dimensional encroachment. This makes for one of the most unique gaming worlds, blending the familiar with the strange and unsettling.</p><p>Though all of the game’s environments are linked (usually via underground tunnels that are basically hidden load screens), this isn’t exactly a traditional open-world game like <a href="https://www.tomsguide.com/news/gta-6">Grand Theft Auto 6</a> or <a href="https://www.tomsguide.com/opinion/witcher-3-next-gen-update-is-even-better-than-expected-im-shocked-its-free">The Witcher 3</a>. Each area has its own signature flavor — such as hazy-blue sections covered in supernatural mold or areas where it’s impossible to discern what’s up or what’s down.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XkPtpwG74EoAJxBeaNp6AG" name="CTRL_R_Launch_4K_Media_PS5_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/XkPtpwG74EoAJxBeaNp6AG-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You’ll find various quests throughout the areas. Some involve helping citizens or FBC agents, while others are random events that usually involve taking out the Hiss or dealing with other extradimensional phenomena. I especially like the NPC missions, as they provide a nice diversion from the main plot while still helping flesh out the world of Control. And given how you gain experience points and other rewards, it’s always in your best interest to complete as many side quests as possible. It’s a great way to beef up Dylan to better handle the nastier enemies and bosses near the back half of the game.</p><p>The only drawback is that navigating the maps can be confusing, as the map doesn’t always clearly indicate where you can or can’t go. Most of the time, you can’t reach an area until you’ve unlocked a specific ability to surmount it. Other times, you’re left scratching your head about how to get to a place that seems close enough but might require a circuitous route. This isn’t a deal-breaker, but it’s something to keep in mind.</p><p>Other than that, the levels (such as they are) are all imaginatively realized and are engaging to explore. You never know what’s hidden in that side alley or subway tunnel!</p><h2 id="supernatural-sights-and-sounds">Supernatural sights and sounds</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j5FQhrbVUfst2nFprhAjLR" name="CTRL_R_Launch_4K_Public_01" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/j5FQhrbVUfst2nFprhAjLR-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Simply put, Control Resonant is one of the most impressive-looking games of 2026. That shouldn’t be a surprise, given Remedy’s penchant for delivering cutting-edge graphics, but this game takes it to the next level in both technical prowess and artistic vision. If you’ll pardon the pun, Control Resonant is a feast for the eyes.</p><p>Character models generally look good, but they’re (graphically) outclassed by the lush, detailed environments. The numerous enemies and bosses also come to life in stunning detail. What makes it all come together is the color palette, which generally favors black and red. Of course, other zones deliver a completely different visual experience (that I won’t spoil here!). Suffice it to say that my words can’t do this game’s visuals justice.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hy6eZjjLAkTuYqo5bLNLeR" name="Control PS5 Pro" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/hy6eZjjLAkTuYqo5bLNLeR-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment / Tom's Guide)</span></figcaption></figure><p>I played the game on the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> using the “balanced” graphical setting, which runs the game at 40 frames per second with full ray tracing enabled. This is a nice middle ground between performance (60 fps without graphical bumps) and quality (30 fps with full visual fidelity). That said, I do eventually want to play this game on one of the <a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">best gaming PCs</a> so I can run it with everything at max settings.</p><h2 id="control-resonant-review-verdict">Control Resonant review: Verdict</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vCPF5Q9JPG9mH2gmb3B3Jk" name="CTRL_R_Launch_4K_Media_07" alt="Control Resonant" src="https://cdn.mos.cms.futurecdn.net/vCPF5Q9JPG9mH2gmb3B3Jk-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Remedy Entertainment)</span></figcaption></figure><p>Control: Resonant is another triumph for Remedy Entertainment and is arguably their finest game yet. The team put everything into delivering a worthwhile sequel for fans of the original that still stands on its own. Thanks to its superb combat, sharp graphics, and unique tone, it is easily one of the best games of 2026 — a year stacked with winners.</p><p>To that end, be sure not to miss out on Control Resonant. It’s a reminder that there’s still true innovation and imagination in AAA gaming. Yes, there are a lot of games coming our way this season, but this is one you’ll kick yourself for missing. Trust me on that!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Dune: Awakening console hands-on: At its best in solo mode, where playing alone amplifies the hostile beauty of Arrakis ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I am not, by nature, a survival-game person. Chop the wood, mine the rock, watch the hunger bar, die, repeat — the genre's core loop has always struck me as a chore. So let me be upfront: I didn't come to Dune: Awakening as a fan of what it is. I came as a fan of where it's set.</p><p>This new console release feels built for someone like me. It includes a full single-player mode, adjustable difficulty, and multiplayer is now entirely optional. Developer Funcom has spent the year since its PC launch insisting that it was never really an MMO. Either way, you can now play it alone, at your own pace, the only way I ever wanted to set foot on Arrakis.</p><div class="product"><a data-dimension112="87459168-b2bb-11f1-91a5-85408ee9ce80" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$49" href="https://www.amazon.com/Dune-Awakening-PlayStation-5/dp/B0H7CQ6PHY/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="5igKy84BkdXGNAe7Zfr8cA" name="dune-awakening-ps5-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5igKy84BkdXGNAe7Zfr8cA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Dune-Awakening-PlayStation-5/dp/B0H7CQ6PHY/" target="_blank" rel="nofollow" data-dimension112="87459168-b2bb-11f1-91a5-85408ee9ce80" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$49">(PS5): $49</a></strong><br />Dune: Awakening is an online survival game set in the world of Frank Herbert's classic sci-fi novels. Playable solo or online, you can create your character and then explore the deserts of Arrakis, taking on quests, crafting bases, and building your own spice empire.<a class="view-deal button" href="https://www.amazon.com/Dune-Awakening-PlayStation-5/dp/B0H7CQ6PHY/" target="_blank" rel="nofollow" data-dimension112="87459168-b2bb-11f1-91a5-85408ee9ce80" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$49">View Deal</a></p></div><h2 id="a-gom-jabbar-for-the-character-select">A Gom Jabbar for the character select</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/pn7OQJ9EbR0" allowfullscreen=""></iframe></div></div><p>The fandom is rewarded immediately. Awakening opens not with a menu but with a memory: you're seated across from a Reverend Mother, and if you know Dune, your stomach drops. The Gom Jabbar. Pain as the price of proving you're human and not an animal. </p><p>Except the questions aren't Paul's because in Awakening there is no Paul. This is an alternate timeline where Jessica bore Duke Leto a daughter, Leto lives, Atreides and Harkonnen grind through a war of assassins, and the Fremen have vanished. Your answers become your character — the series' most iconic scene, repurposed as a character creator.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DbitgTsXiUHbzxfBhEPfnj" name="Dune: Awakening Reverend Mother" alt="Dune: Awakening Reverend Mother" src="https://cdn.mos.cms.futurecdn.net/DbitgTsXiUHbzxfBhEPfnj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The homeworld is mostly flavor, giving you an emote and a few dialogue traits. I chose the music planet. Your caste carries real weight, though: it's your rung on the imperial ladder. You can choose a Bondsman from the educated citizen class that serves the Great Houses, a noble of some Na-familia, or a Pyon from the labor force the whole edifice rests on. </p><p>Then comes the choice that actually sets your trajectory, picking your Mentor. It defines your starting ability and initial skill tree, and roots your character in the universe from the first minute. And then it drops you onto Arrakis, and Arrakis does what it does. It tries to kill you.</p><h2 id="the-desert-is-your-teacher">The desert is your teacher </h2><p>My first lesson came while I scrounged for the materials to build basic clothing. Unarmed, I was ambushed immediately: no grace period, no gentle tutorial bubble, no enemy waiting for me to gear up. I just died, with nothing to fight back with. </p><p>It was frustrating, and players seeking a gentle curve will bounce off hard. Awakening does not hold your hand, and it does not care that you're new.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="noGqVqRRCPuQMrDYnAZARm" name="Dune: Awakening game play" alt="Dune: Awakening game play" src="https://cdn.mos.cms.futurecdn.net/noGqVqRRCPuQMrDYnAZARm-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But that frustration, that challenge, is the most faithful thing in the game. Arrakis isn't supposed to be fair — spice is worth killing over, and the planet breaks empires, because it is structurally hostile to human life. A Dune adaptation where the desert is a manageable nuisance would be a betrayal of the fantasy. </p><p>Playing alone only sharpens it. I thought solitude might shrink the game, but it did the opposite. With no one to lean on, every weakness was mine, making the game and landscape feel much vaster. </p><h2 id="no-spice-without-the-heat">No spice without the heat </h2><p>This game won't be for everyone, though. Without the lore in your bones, much of what thrilled me could read as tedium or punishment. And, for me, the combat doesn't quite sing. Ranged combat is fine, but I found the melee combat a little clunky at times. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SPRhULzbjbBHoDRn8P6T48" name="Dune: Awakening game play" alt="Dune: Awakening game play" src="https://cdn.mos.cms.futurecdn.net/SPRhULzbjbBHoDRn8P6T48-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You can also turn the difficulty down and make the desert kinder to yourself any time you like. Which, if you're new to survival games, is quite the kindness, as it'll save you from rage quitting. </p><p>If you're a Dune fan, this one's definitely for you. Awakening understands that Arrakis is a character, and that its defining trait is that it would very much like you to die. Surviving it, badly, slowly, and with a fair amount of swearing, is exactly the point.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/the-first-dune-part-3-trailer-just-dropped-and-timothee-chalamets-epic-war-cry-has-me-beyond-hyped-for-the-epic-conclusion">The first 'Dune: Part 3' trailer has me hyped for the epic conclusion</a></li><li><a href="https://www.tomsguide.com/gaming/the-blood-of-dawnwalker-review">The Blood of Dawnwalker review</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/aliens-fireteam-elite-2-is-basically-more-of-the-first-game-but-this-alien-nerd-cant-resist">Aliens: Fireteam Elite 2 is more of the same, but this ‘Alien’ nerd can’t resist</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/i-found-dune-awakening-at-its-best-in-solo-mode-where-playing-alone-amplified-the-hostile-beauty-of-arrakis</link>
                                                                            <description>
                            <![CDATA[ Funcom's Dune: Awakening arrives on console rebuilt for solo play, with none of the mercy sanded off. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">URtr2ZmNCKQsaZEJN2Z7FA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nAZgqpiavxSydqXrL5xWr9-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 18 Sep 2026 08:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xHn6RmpEqg87cvtLwrBu9G-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nAZgqpiavxSydqXrL5xWr9-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide ]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Dune: Awakening game play]]></media:description>                                                            <media:text><![CDATA[Dune: Awakening game play]]></media:text>
                                <media:title type="plain"><![CDATA[Dune: Awakening game play]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nAZgqpiavxSydqXrL5xWr9-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I am not, by nature, a survival-game person. Chop the wood, mine the rock, watch the hunger bar, die, repeat — the genre's core loop has always struck me as a chore. So let me be upfront: I didn't come to Dune: Awakening as a fan of what it is. I came as a fan of where it's set.</p><p>This new console release feels built for someone like me. It includes a full single-player mode, adjustable difficulty, and multiplayer is now entirely optional. Developer Funcom has spent the year since its PC launch insisting that it was never really an MMO. Either way, you can now play it alone, at your own pace, the only way I ever wanted to set foot on Arrakis.</p><div class="product"><a data-dimension112="87459168-b2bb-11f1-91a5-85408ee9ce80" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$49" href="https://www.amazon.com/Dune-Awakening-PlayStation-5/dp/B0H7CQ6PHY/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="5igKy84BkdXGNAe7Zfr8cA" name="dune-awakening-ps5-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5igKy84BkdXGNAe7Zfr8cA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Dune-Awakening-PlayStation-5/dp/B0H7CQ6PHY/" target="_blank" rel="nofollow" data-dimension112="87459168-b2bb-11f1-91a5-85408ee9ce80" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$49">(PS5): $49</a></strong><br />Dune: Awakening is an online survival game set in the world of Frank Herbert's classic sci-fi novels. Playable solo or online, you can create your character and then explore the deserts of Arrakis, taking on quests, crafting bases, and building your own spice empire.<a class="view-deal button" href="https://www.amazon.com/Dune-Awakening-PlayStation-5/dp/B0H7CQ6PHY/" target="_blank" rel="nofollow" data-dimension112="87459168-b2bb-11f1-91a5-85408ee9ce80" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$49">View Deal</a></p></div><h2 id="a-gom-jabbar-for-the-character-select">A Gom Jabbar for the character select</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/pn7OQJ9EbR0" allowfullscreen=""></iframe></div></div><p>The fandom is rewarded immediately. Awakening opens not with a menu but with a memory: you're seated across from a Reverend Mother, and if you know Dune, your stomach drops. The Gom Jabbar. Pain as the price of proving you're human and not an animal. </p><p>Except the questions aren't Paul's because in Awakening there is no Paul. This is an alternate timeline where Jessica bore Duke Leto a daughter, Leto lives, Atreides and Harkonnen grind through a war of assassins, and the Fremen have vanished. Your answers become your character — the series' most iconic scene, repurposed as a character creator.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DbitgTsXiUHbzxfBhEPfnj" name="Dune: Awakening Reverend Mother" alt="Dune: Awakening Reverend Mother" src="https://cdn.mos.cms.futurecdn.net/DbitgTsXiUHbzxfBhEPfnj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The homeworld is mostly flavor, giving you an emote and a few dialogue traits. I chose the music planet. Your caste carries real weight, though: it's your rung on the imperial ladder. You can choose a Bondsman from the educated citizen class that serves the Great Houses, a noble of some Na-familia, or a Pyon from the labor force the whole edifice rests on. </p><p>Then comes the choice that actually sets your trajectory, picking your Mentor. It defines your starting ability and initial skill tree, and roots your character in the universe from the first minute. And then it drops you onto Arrakis, and Arrakis does what it does. It tries to kill you.</p><h2 id="the-desert-is-your-teacher">The desert is your teacher </h2><p>My first lesson came while I scrounged for the materials to build basic clothing. Unarmed, I was ambushed immediately: no grace period, no gentle tutorial bubble, no enemy waiting for me to gear up. I just died, with nothing to fight back with. </p><p>It was frustrating, and players seeking a gentle curve will bounce off hard. Awakening does not hold your hand, and it does not care that you're new.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="noGqVqRRCPuQMrDYnAZARm" name="Dune: Awakening game play" alt="Dune: Awakening game play" src="https://cdn.mos.cms.futurecdn.net/noGqVqRRCPuQMrDYnAZARm-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>But that frustration, that challenge, is the most faithful thing in the game. Arrakis isn't supposed to be fair — spice is worth killing over, and the planet breaks empires, because it is structurally hostile to human life. A Dune adaptation where the desert is a manageable nuisance would be a betrayal of the fantasy. </p><p>Playing alone only sharpens it. I thought solitude might shrink the game, but it did the opposite. With no one to lean on, every weakness was mine, making the game and landscape feel much vaster. </p><h2 id="no-spice-without-the-heat">No spice without the heat </h2><p>This game won't be for everyone, though. Without the lore in your bones, much of what thrilled me could read as tedium or punishment. And, for me, the combat doesn't quite sing. Ranged combat is fine, but I found the melee combat a little clunky at times. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SPRhULzbjbBHoDRn8P6T48" name="Dune: Awakening game play" alt="Dune: Awakening game play" src="https://cdn.mos.cms.futurecdn.net/SPRhULzbjbBHoDRn8P6T48-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You can also turn the difficulty down and make the desert kinder to yourself any time you like. Which, if you're new to survival games, is quite the kindness, as it'll save you from rage quitting. </p><p>If you're a Dune fan, this one's definitely for you. Awakening understands that Arrakis is a character, and that its defining trait is that it would very much like you to die. Surviving it, badly, slowly, and with a fair amount of swearing, is exactly the point.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><a href="https://www.tomsguide.com/entertainment/the-first-dune-part-3-trailer-just-dropped-and-timothee-chalamets-epic-war-cry-has-me-beyond-hyped-for-the-epic-conclusion">The first 'Dune: Part 3' trailer has me hyped for the epic conclusion</a></li><li><a href="https://www.tomsguide.com/gaming/the-blood-of-dawnwalker-review">The Blood of Dawnwalker review</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/aliens-fireteam-elite-2-is-basically-more-of-the-first-game-but-this-alien-nerd-cant-resist">Aliens: Fireteam Elite 2 is more of the same, but this ‘Alien’ nerd can’t resist</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Tom's Guide Awards 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Welcome to the 2026 Tom's Guide Awards! Our annual awards celebrate the best tech, tools, gear, and services we've used over the past year, culminating with our Hero awards, which celebrate the very best innovation, company, and product design, among others.</p><p>Without further ado, here are all the winners of this year's Tom's Guide Awards.</p><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/tech-events/toms-guide-hero-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/cDMdRfidYEwszGb7xdjmLE.jpg" alt="Tom's Guide Awards 2026" /></p></div><div class="card__content"><h3 class="card__title">TG Hero Awards</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>The brands, innovations and products that excite us most</strong></p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/phones/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/tRjsMHd8hKNf5Se3YPveFg.jpg" alt="Tom's Guide Awards 2026 Phones" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Phones</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite phones of the year </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/tvs/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/PKDeUngVQpQwehWohuZnJL.jpg" alt="Tom's Guide Awards 2026 TVs" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: TVs</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite OLED, Mini-LED, RGB TVs and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/wellness/fitness/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/DsS3VdzYDMuYEU9QcvW6pi.jpg" alt="Tom's Guide Awards 2026 Active Life" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Active Life</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite fitness trackers, workout headphones, recovery tools and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/computing/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/gwuJB7VbT78fdzR6ELkpCe.jpg" alt="Tom's Guide Awards 2026 Computing" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Computing</h3><div class="card__description-wrapper"><div class="card__description"><p>All our favorite laptops, tablets, AR glasses and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/audio/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/whkD8Gh5uHn8bPNnG2rM2M.jpg" alt="Tom's Guide Awards 2026 Audio" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Audio</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite headphones, earbuds, speakers and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/ai/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/k6rknMfVrBs6eK8KtzQFRE.jpg" alt="Tom's Guide Awards 2026 AI" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: AI</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite AI tools, devices and features </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/gaming/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/8fBXAu3nU9FhPKZsswNDDa.jpg" alt="Tom's Guide Awards 2026 Gaming" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Gaming</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite gaming accessories, consoles, controllers and more</p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/home/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/zGZFHNMWutFoAVjdYGosXF.jpg" alt="Tom's Guide Awards 2026 logo and winning products for the Homes category" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Homes</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite robot vacuums, coffee machines, air fryers and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/wellness/sleep/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/KTLabKKQnNuTnmmfTBtfX5.jpg" alt="TG Awards 2026 Sleep" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Sleep</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite mattresses, toppers, pillows and more for getting a good night's sleep </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/vehicle-tech/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/9g6QHtxVQVmYLGPvEXiLPT.jpg" alt="Tom's Guide Awards 2026 Automotive" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Autos</h3><div class="card__description-wrapper"><div class="card__description"><p>All our favorite cars of the year from EVs to hybrids and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/cameras-photography/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/BaG3gmjXLA8coeFauDjmd5.jpg" alt="Tom's Guide Awards 2026 Photography" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Photography</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite action cameras, film cameras, drones and more </p></div></div></div></a> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tech-events/the-toms-guide-awards-2026</link>
                                                                            <description>
                            <![CDATA[ The Tom's Guide Awards are back and here you'll find all the winners across 12 categories from phones and TVs to sleep and cars. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ksVD8heDw8UVHxoshvrqWo</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/keLgtGYJF7E4DVX8PcRWZV-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 15 Sep 2026 21:02:31 +0000</pubDate>                                                                                                                                <updated>Thu, 17 Sep 2026 14:22:58 +0000</updated>
                                                                                                                                            <category><![CDATA[Tech Events]]></category>
                                                                                                                    <dc:creator><![CDATA[ Tom&#039;s Guide ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/keLgtGYJF7E4DVX8PcRWZV-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Tom&#039;s Guide Awards 2026 logo on a glowing blue background]]></media:description>                                                            <media:text><![CDATA[Tom&#039;s Guide Awards 2026 logo on a glowing blue background]]></media:text>
                                <media:title type="plain"><![CDATA[Tom&#039;s Guide Awards 2026 logo on a glowing blue background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/keLgtGYJF7E4DVX8PcRWZV-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Welcome to the 2026 Tom's Guide Awards! Our annual awards celebrate the best tech, tools, gear, and services we've used over the past year, culminating with our Hero awards, which celebrate the very best innovation, company, and product design, among others.</p><p>Without further ado, here are all the winners of this year's Tom's Guide Awards.</p><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/tech-events/toms-guide-hero-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/cDMdRfidYEwszGb7xdjmLE.jpg" alt="Tom's Guide Awards 2026" /></p></div><div class="card__content"><h3 class="card__title">TG Hero Awards</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>The brands, innovations and products that excite us most</strong></p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/phones/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/tRjsMHd8hKNf5Se3YPveFg.jpg" alt="Tom's Guide Awards 2026 Phones" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Phones</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite phones of the year </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/tvs/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/PKDeUngVQpQwehWohuZnJL.jpg" alt="Tom's Guide Awards 2026 TVs" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: TVs</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite OLED, Mini-LED, RGB TVs and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/wellness/fitness/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/DsS3VdzYDMuYEU9QcvW6pi.jpg" alt="Tom's Guide Awards 2026 Active Life" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Active Life</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite fitness trackers, workout headphones, recovery tools and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/computing/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/gwuJB7VbT78fdzR6ELkpCe.jpg" alt="Tom's Guide Awards 2026 Computing" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Computing</h3><div class="card__description-wrapper"><div class="card__description"><p>All our favorite laptops, tablets, AR glasses and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/audio/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/whkD8Gh5uHn8bPNnG2rM2M.jpg" alt="Tom's Guide Awards 2026 Audio" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Audio</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite headphones, earbuds, speakers and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/ai/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/k6rknMfVrBs6eK8KtzQFRE.jpg" alt="Tom's Guide Awards 2026 AI" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: AI</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite AI tools, devices and features </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/gaming/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/8fBXAu3nU9FhPKZsswNDDa.jpg" alt="Tom's Guide Awards 2026 Gaming" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Gaming</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite gaming accessories, consoles, controllers and more</p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/home/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/zGZFHNMWutFoAVjdYGosXF.jpg" alt="Tom's Guide Awards 2026 logo and winning products for the Homes category" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Homes</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite robot vacuums, coffee machines, air fryers and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/wellness/sleep/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/KTLabKKQnNuTnmmfTBtfX5.jpg" alt="TG Awards 2026 Sleep" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Sleep</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite mattresses, toppers, pillows and more for getting a good night's sleep </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/vehicle-tech/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/9g6QHtxVQVmYLGPvEXiLPT.jpg" alt="Tom's Guide Awards 2026 Automotive" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Autos</h3><div class="card__description-wrapper"><div class="card__description"><p>All our favorite cars of the year from EVs to hybrids and more </p></div></div></div></a><a class="card card--standard card--rows-3 card--align-inline" href="https://www.tomsguide.com/cameras-photography/toms-guide-awards-2026"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/BaG3gmjXLA8coeFauDjmd5.jpg" alt="Tom's Guide Awards 2026 Photography" /></p></div><div class="card__content"><h3 class="card__title">TG Awards 2026: Photography</h3><div class="card__description-wrapper"><div class="card__description"><p>Our favorite action cameras, film cameras, drones and more </p></div></div></div></a>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ SteelSeries Aeon Pro review: Taking the fight to Razer ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The SteelSeries Aeon Pro is aptly named. See, I’ve been waiting for what seems like aeons for the Danish manufacturer to bring out a proper <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">gaming controller</a> for PC and consoles (well, one console anyway). Up until now, SteelSeries’ gamepad offerings have been confined essentially to mobile gaming. The Aeon Pro is where things get serious.</p><p>The Aeon Pro features Hall Effect sticks and triggers for longevity and customizability. There are four rear paddles and an OLED display which, among other things, facilitates quick switching between Xbox, PC and Bluetooth. There’s a charging dock and interchangeable batteries with SteelSeries headsets, plus GG app compatibility — as a SteelSeries user already, that makes it a very compelling offer for me.</p><p>So, can the Aeon Pro do enough to coax me away from my hitherto ride-or-die, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-wolverine-v3-pro-review">Razer Wolverine V3 Pro</a>? And should you buy it? Find out in my full SteelSeries Aeon Pro review.</p><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-cheat-sheet"><span>SteelSeries Aeon Pro review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>A premium gaming controller from SteelSeries</li><li><strong>Who is it for? </strong>Xbox and PC players</li><li><strong>What does it cost? </strong>Rather a lot, now you ask: <a href="https://steelseries.com/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">$259</a> / <a href="https://steelseries.com/en-gb/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">£229</a></li><li><strong>What do I like? </strong>The triggers, sticks and paddles, the customization, and the battery system</li><li><strong>What don’t I like? </strong>The price, the grips and no PS5 variant (although that’s not surprising)</li></ul><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-specs"><span>SteelSeries Aeon Pro review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://steelseries.com/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">$259</a> / <a href="https://steelseries.com/en-gb/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">£229</a> </p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Bluetooth, 2.4GHz (PC &amp; Xbox), wired (PC &amp; Xbox)</p></td></tr><tr><td class="firstcol " ><p><strong>Compatibility</strong></p></td><td  ><p>Xbox, PC, Steam Deck, Steam Machine, PC handheld, iOS, Android</p></td></tr><tr><td class="firstcol " ><p><strong>Layout</strong></p></td><td  ><p>ABXY</p></td></tr><tr><td class="firstcol " ><p><strong>Triggers</strong></p></td><td  ><p>Hall Effect</p></td></tr><tr><td class="firstcol " ><p><strong>Thumbsticks</strong></p></td><td  ><p>Hall Effect</p></td></tr><tr><td class="firstcol " ><p><strong>Face buttons</strong></p></td><td  ><p>Mechanical</p></td></tr><tr><td class="firstcol " ><p><strong>Polling rate</strong></p></td><td  ><p>1,000Hz (PC); 250Hz (Xbox)</p></td></tr><tr><td class="firstcol " ><p><strong>Back buttons</strong></p></td><td  ><p>4x</p></td></tr><tr><td class="firstcol " ><p><strong>Rumble</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>4.41 x 2.17 x 6.10 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>10.9oz</p></td></tr><tr><td class="firstcol " ><p><strong>Color</strong></p></td><td  ><p>White, Black</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>2x 12 hours</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-the-ups"><span>SteelSeries Aeon Pro review: The ups</span></h2><p>The SteelSeries Aeon Pro packs plenty of awesome gaming features, including Hall Effect sticks and triggers, easy multi-platform connectivity, onboard controls and a zero-downtime battery system.</p><h3 id="responsive-hall-effect-sticks">Responsive Hall Effect sticks</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uLGVyLHsoS3i6g7xeDDgeR" name="Steelseries_Aeon_pro_ 6.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/uLGVyLHsoS3i6g7xeDDgeR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Interestingly, SteelSeries has decided to fit the Aeon with Hall Effect sticks. I say “interestingly” because at $259 and with technically unlimited battery life, I kinda expected to see the more accurate (and power hungry) TMR technology, but I’ll get onto that later. The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-raikiri-ii-review">Asus ROG Raikiri II</a> ($189) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/gamesir-g7-pro-review">Gamesir G7 Pro</a> ($79) both feature TMR sticks, for context.</p><p>Nevertheless, the sticks aren’t analog, unlike the ageing <a href="https://www.tomsguide.com/reviews/xbox-elite-wireless-controller-series-2">Xbox Elite Series 2</a> ($179, although a lot cheaper these days), which means no stick drift over time, better accuracy and more customization. They’re also fantastic to use, proving responsive and accurate in the FPS games I played — Hell Let Loose and Isonzo.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SqLTJ8oUiQwDRRxUaKErYQ" name="SteelSeries Aeron Pro_GG-3" alt="A screenshot of the SteelSeries GG app showing the Aeon Pro joysticks being adjusted" src="https://cdn.mos.cms.futurecdn.net/SqLTJ8oUiQwDRRxUaKErYQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/SqLTJ8oUiQwDRRxUaKErYQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>You can tweak the sensitivity response and deadzones of each stick in the GG app, which I appreciate. I usually use a mouse in FPS games, so I like my sticks super sensitive to replicate the rapid, accurate movement of mice. I say sensitivity “response” as you can only switch between different behaviors including linear (1:1 input to movement), dynamic (moves faster the further out from center you go), and exponential (very slow in the center and fast at the peripheries). </p><p>I like dynamic the most for FPS gaming, as I’m a run-and-gun kinda player. However, if you’re a sniper, exponential will be awesome for switching rapidly between fine control in the center when ADS, to faster movements when changing position or responding to a nearby enemy.</p><p>Included in the box are replacement sticks. You get one longer and one domed stick if you prefer those for fine control.</p><h3 id="snappy-paddles-and-triggers">Snappy paddles and triggers</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2oRCK5f55bbmoDXMMM6GyQ" name="Steelseries_Aeon_pro_ 2.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/2oRCK5f55bbmoDXMMM6GyQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The Aeon Pro packs Hall Effect triggers, as well as mechanical hair triggers, just like the Wolverine V3 Pro ($199). In full range mode, they’re completely smooth, but with a decent amount of tension and lots of travel — more so than the Wolverine. I found this gave me slightly more control of and precision with throttling in Forza Horizon 5. You can also set deadzones in GG for each trigger as per your needs, and set custom configs for switching between games (but I’ll cover this later).</p><p>Of course, when you need ultra fast action in FPS games, simply flick the switches on the controller’s rear to swap into hair trigger mode, whereby the pad uses mechanical switches with super short travel distance. That means rapid ADS and firing. I really like the feel of the Aeon Pro’s hair trigger switches — I’m a fan of tactile switches in general, and the Aeon’s give a more textured, satisfying and affirmative feel than the linear ones in my Wolverine V3 Pro.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uakypPiyxGSCtiFZQpUMhQ" name="SteelSeries Aeron Pro_GG-4" alt="A screenshot of the SteelSeries GG app showing the Aeon Pro triggers being adjusted" src="https://cdn.mos.cms.futurecdn.net/uakypPiyxGSCtiFZQpUMhQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/uakypPiyxGSCtiFZQpUMhQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The face buttons are mechanical and have a really nice, clicky feel with no mushiness whatsoever. At the back you’ll find four paddles, also using snappy short-travel mechanical switches. I’m not a huge fan of their placement, but I’ll discuss this more in 'The downs' section below.</p><h3 id="loads-of-onboard-control">Loads of onboard control</h3><p>SteelSeries loves a USB hub these days, having implemented them on its upper-tier Arctis Nova headsets for a while now. The Aeon Pro features a charging dock with dual USB-C ports at the rear, which means you can be hooked up to your Xbox and PC over 2.4G simultaneously. When you want to switch, it takes a few seconds via the OLED display on the controller itself.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A3nNLMhpXckQf8xAgPvwMR" name="Steelseries_Aeon_pro_ 5.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/A3nNLMhpXckQf8xAgPvwMR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Yes, that does mean you need to have your PC and Xbox in the same place, which undermines the usefulness a little. Your Xbox is probably in your lounge, while your PC probably isn’t. It would’ve been cool to have a secondary 2.4G dongle, keeping one plugged into your PC and one your Xbox. </p><p>That OLED display also allows you to customize the controller on the fly — something you can’t do on the Wolverine V3 Pro or Xbox Elite Series 2, although you can on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/turtle-beach-stealth-ultra-review">Turtle Beach Stealth Ultra</a> ($200), which also has a screen. On the Aeon Pro, the OLED lets you switch between onboard configs (loaded via GG), plus adjust mapping, haptics and stick circularity. It also gives you a readout of your battery, as well as the battery charging in the dock. And that brings me onto my favorite feature… </p><h3 id="handy-battery-system">Handy battery system</h3><p>Another thing SteelSeries loves these days is a zero downtime battery system. I’m a huge fan of the Aeon Pro’s, and any existing users of the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">SteelSeries Arctis Nova Pro Omni</a> ($399), Nova Pro or Nova Elite headsets will be too. That’s because the Aeon Pro uses the same battery as those headsets, meaning you can swap between them.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/4vmJq6U6k2jbSnncBbworQ-1920-80.jpg" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" /><figcaption>The spare battery charges in the Aeon Pro's dock (which also charges the battery inside the controller when docked).<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bLueqBGPhdretpiCmi6peR-1920-80.jpg" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>While the Aeon and my Nova Pro headset each ship with two batteries, meaning I had four on my desk, I realistically now only need three. One in the controller, one in the headset, and one spare on charge in either the Nova USB hub or the Aeon base station. The controller and headset each consume power at different rates meaning one spare is always enough. It’s just super handy for swapping out when the need arises and means zero downtime. </p><p>Now, admittedly there are some downsides to the battery dock — indirectly anyway. The Aeon and Nova use separate USB hubs, so Nova Pro/Elite users will now have two base stations on their desk. At the Aeon pre-launch briefing, another journalist asked SteelSeries whether there’d be a universal docking station at some point soon. The answer was no, as that kind of thing rarely sells well as a standalone product, making it financially unviable for SteelSeries. Shame.</p><p>Anyway, while the battery nets around 30 hours in a Nova headset, it’ll achieve around 12 hours in the controller. The whole ‘zero downtime’ thing renders per-battery longevity a moot point at your desk, but it’s nice to know you’ve got a healthy amount of playtime if taking the pad to game at a friend’s house. And you can always pack a spare battery if needed.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tSbzJjYzmb9M5yDAQJaXeQ" name="SteelSeries Aeon Pro Battery System" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/tSbzJjYzmb9M5yDAQJaXeQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Personally, I think the replaceable batteries are a big deal, and they’re what sways me towards using the Aeon Pro as my primary pad. Obviously there’s the fact that I use the Arctis Nova Pro Omni as my main headset, so I now have double the batteries and control everything through GG. But that’s not all: although my Wolverine V3 Pro has better per-battery life (20 hours), its cell is built in and takes a while to charge back fully. I’ve had numerous instances of downtime after it’s run out of charge. With the Aeon Pro, that’s no more.</p><h2 id="gg-compatibility-obviously">GG compatibility (obviously)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DLtU8a45ad2T8icp8nVhZQ" name="SteelSeries Aeron Pro_GG-2" alt="A screenshot of the SteelSeries GG app showing the Aeon Pro being remapped" src="https://cdn.mos.cms.futurecdn.net/DLtU8a45ad2T8icp8nVhZQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/DLtU8a45ad2T8icp8nVhZQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I deal with <em>a lot</em> of companion software in my job. Some terrible (hey Armoury Crate!); some middling (yo Synapse!); and some really good (hiya GG!). Obviously, GG compatibility is a given with all SteelSeries gear these days, but it’s still a major bonus for all users, whether you’ve got one or many compatible products.</p><p>I use several SteelSeries products daily, so I’m always on GG. It’s slick, reliable and (most importantly) useful. You can customize virtually every necessary aspect of the Aeon Pro, and I especially love the configs. The controller can store eight configs onboard so you can switch between them via the OLED screen. I ran custom configs for Isonzo and Hell Let Loose, as I needed the rear paddles to behave differently, and could just flick between the two when changing game.</p><p>There are eight presets (which are customizable), but you can replace these with whatever custom configs you like. While eight can be stored onboard, you won’t lose the others, and moving them back onboard is simply a case of dragging and dropping.</p><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-the-downs"><span>SteelSeries Aeon Pro review: The downs</span></h2><p>My main beef with the Aeon Pro is its price. I also experienced a few issues with the ergonomics, but mileage will vary. Oh, and while this isn’t surprising or that big of a deal, SteelSeries hasn’t announced any PS5 variant. </p><h3 id="fairly-unpalatable-price">Fairly unpalatable price</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FDYLeuygLqnTUvbrjcZZsR" name="Steelseries_Aeon_pro_ 8.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/FDYLeuygLqnTUvbrjcZZsR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>SteelSeries is no stranger to steep pricing these days, with its Arctis Nova Pro Omni headset costing $399 and its <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">Arctis Nova Elite</a> headset costing a whopping $599. Admittedly, while expensive at <a href="https://steelseries.com/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">$259</a> / <a href="https://steelseries.com/en-gb/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">£229</a>, the Aeon Pro isn’t wholly beyond the pale. The Razer Wolverine V3 Pro retails at $199, as does the Turtle Beach Stealth Ultra, while the ROG Raikiri II costs $189. At MSRP, then, the Aeon Pro is only $60 pricier than the Wolverine and Stealth Ultra — that’s not a ridiculous delta.</p><p>The thing is, for all its pros, I’m still not sure this pad justifies $259. The OLED screen, while handy, is kinda blocky and pixelated. TMR thumbsticks have been foregone in favor of cheaper Hall Effect sensors. And there’s not much you can do in the way of hardware customization either, save swapping the sticks — the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/turtle-beach-victrix-pro-bfg-reloaded-review">Turtle Beach Victrix Pro BFG Reloaded</a> costs $209 and is highly modular, so you can customize the layout to your needs. The Xbox Elite Series 2 also comes with a wide array of spares, and you can remove its back paddles.</p><p>Really, the unique selling point of the Aeon Pro is its battery and docking system. And I’m not sure that’s enough to warrant such a premium over rivals.</p><h3 id="ergos-a-little-tiring">Ergos a little tiring</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1018px;"><p class="vanilla-image-block" style="padding-top:56.19%;"><img id="2oRCK5f55bbmoDXMMM6GyQ" name="Steelseries_Aeon_pro_ 2.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:437,l:902,cw:1018,ch:572,q:80/2oRCK5f55bbmoDXMMM6GyQ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ll caveat this point by first saying that your mileage will probably vary here. I have large hands, so I didn’t get on too well with the Aeon Pro’s grips. They’re very grippy and covered in a comfortable material, but it’s the shaping I’m not keen on.</p><p>My issue is that the grips are quite thin. The large, low-slung paddles forced my middle fingers down more than usual, which meant I had to wrap my pinky more around the grips for support. With the grips being thin, my pinky had to wrap further, putting my hand into a slightly unnatural position that ached a little after a couple of hours. Nothing major, but enough to be annoying.</p><p>While stubbier, the grips on my Wolverine V3 Pro are fatter, which puts my pinky in a more comfortable position. The paddles are also much smaller and less invasive on the Razer pad, and you can kinda forget about them. I’d have liked the option to remove the Aeon Pro’s paddles, but no such luck.</p><h3 id="no-ps5-variant-just-fyi">No PS5 variant, just FYI</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8hvHcarumqgofnckeffBmR" name="Steelseries_Aeon_pro_ 4.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/8hvHcarumqgofnckeffBmR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>SteelSeries is primarily a PC peripheral manufacturer, so it isn’t surprising that the Aeon Pro is a PC/Xbox exclusive, at least for now. There’s no word on whether that will change for the future. </p><p>The brand is no stranger to making PlayStation-compatible gear, having launched PS variants of most of its headsets. The recent Nova Pro Omni headset has all-device compatibility baked into its very ethos, too. So it wouldn’t surprise me if a PS5 Aeon Pro variant came along at some point.</p><p>For now, though, nada. So I’d advise checking out the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-raiju-v3-pro-review">Razer Raiju V3 Pro</a> ($219) or Turtle Beach Victrix Pro BFG Reloaded if you need a PlayStation pad.</p><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-verdict"><span>SteelSeries Aeon Pro review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J8hULvG8nhBe4WuFGzqvMR" name="Steelseries_Aeon_pro_.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/J8hULvG8nhBe4WuFGzqvMR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If price is your main concern, the Aeon Pro might not be it. It’s a fantastic controller, but the Wolverine V3 Pro and Turtle Beach Stealth Ultra are cheaper and offer just as much performance (although the Razer lacks a screen). Heck, you can pick up a Gamesir G7 Pro for like a third of the price and probably have no complaints.</p><p>If price isn’t your concern, and especially if you’re an existing SteelSeries headset user, the Aeon Pro is an excellent choice. Being able to integrate the Aeon into my existing gear’s ecosystem is a big win. And remember, the Aeon Pro is no slouch: it offers bags of performance and lots of software customization. Sometimes it’s the quality of life features that decide a choice, so for me, it’s going to be the Aeon Pro.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-aeon-pro-review</link>
                                                                            <description>
                            <![CDATA[ The SteelSeries Aeon Pro is the ultimate controller for existing SteelSeries users, packing Hall-Effect sticks, lots of customization and zero downtime battery. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FuYaWqCwjhHG5UHoKXuDVB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/UCorNcBBdWqAcptNC3kXuR-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 15 Sep 2026 14:53:12 +0000</pubDate>                                                                                                                                <updated>Tue, 29 Sep 2026 07:41:20 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ peter.wolinski@futurenet.com (Peter Wolinski) ]]></author>                    <dc:creator><![CDATA[ Peter Wolinski ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/stgPfXWY7ukw8J8rfC7vjg-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Peter is a Senior Editor at Tom&#039;s Guide, heading up the site&#039;s Reviews team and Cameras section. Having built gaming PCs since he was 10 (that&#039;s a while ago now) he&#039;s a bit of a nerd about components and hardware. He&#039;s also been an iPhone user since the classic iPhone 4, and a Mac user for well over a decade. Experienced in using and testing all kinds of technology — from phones through to tablets, computers, games consoles, cameras and smart home tech — helping people find the best tech for them (at the best prices) is what Peter does best. A photographer since he bought his first camera (a Fujifilm) in 2015, Peter was previously an Editor for Canon-Europe.com. He then edited the Cameras and How To sections of Tom&#039;s Guide. When he&#039;s not crafting helpful, in-depth reviews, Peter can usually be found out and about honing his architectural photography skills, riding his motorcycle around Welsh mountain roads, telling everyone about his two greyhounds, squeezing a few extra FPS out of PC games or perfecting his espresso shots.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/UCorNcBBdWqAcptNC3kXuR-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The SteelSeries Aeon Pro on a stone surface against a blue background]]></media:description>                                                            <media:text><![CDATA[The SteelSeries Aeon Pro on a stone surface against a blue background]]></media:text>
                                <media:title type="plain"><![CDATA[The SteelSeries Aeon Pro on a stone surface against a blue background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/UCorNcBBdWqAcptNC3kXuR-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The SteelSeries Aeon Pro is aptly named. See, I’ve been waiting for what seems like aeons for the Danish manufacturer to bring out a proper <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">gaming controller</a> for PC and consoles (well, one console anyway). Up until now, SteelSeries’ gamepad offerings have been confined essentially to mobile gaming. The Aeon Pro is where things get serious.</p><p>The Aeon Pro features Hall Effect sticks and triggers for longevity and customizability. There are four rear paddles and an OLED display which, among other things, facilitates quick switching between Xbox, PC and Bluetooth. There’s a charging dock and interchangeable batteries with SteelSeries headsets, plus GG app compatibility — as a SteelSeries user already, that makes it a very compelling offer for me.</p><p>So, can the Aeon Pro do enough to coax me away from my hitherto ride-or-die, the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-wolverine-v3-pro-review">Razer Wolverine V3 Pro</a>? And should you buy it? Find out in my full SteelSeries Aeon Pro review.</p><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-cheat-sheet"><span>SteelSeries Aeon Pro review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>A premium gaming controller from SteelSeries</li><li><strong>Who is it for? </strong>Xbox and PC players</li><li><strong>What does it cost? </strong>Rather a lot, now you ask: <a href="https://steelseries.com/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">$259</a> / <a href="https://steelseries.com/en-gb/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">£229</a></li><li><strong>What do I like? </strong>The triggers, sticks and paddles, the customization, and the battery system</li><li><strong>What don’t I like? </strong>The price, the grips and no PS5 variant (although that’s not surprising)</li></ul><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-specs"><span>SteelSeries Aeon Pro review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://steelseries.com/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">$259</a> / <a href="https://steelseries.com/en-gb/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">£229</a> </p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Bluetooth, 2.4GHz (PC &amp; Xbox), wired (PC &amp; Xbox)</p></td></tr><tr><td class="firstcol " ><p><strong>Compatibility</strong></p></td><td  ><p>Xbox, PC, Steam Deck, Steam Machine, PC handheld, iOS, Android</p></td></tr><tr><td class="firstcol " ><p><strong>Layout</strong></p></td><td  ><p>ABXY</p></td></tr><tr><td class="firstcol " ><p><strong>Triggers</strong></p></td><td  ><p>Hall Effect</p></td></tr><tr><td class="firstcol " ><p><strong>Thumbsticks</strong></p></td><td  ><p>Hall Effect</p></td></tr><tr><td class="firstcol " ><p><strong>Face buttons</strong></p></td><td  ><p>Mechanical</p></td></tr><tr><td class="firstcol " ><p><strong>Polling rate</strong></p></td><td  ><p>1,000Hz (PC); 250Hz (Xbox)</p></td></tr><tr><td class="firstcol " ><p><strong>Back buttons</strong></p></td><td  ><p>4x</p></td></tr><tr><td class="firstcol " ><p><strong>Rumble</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>4.41 x 2.17 x 6.10 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>10.9oz</p></td></tr><tr><td class="firstcol " ><p><strong>Color</strong></p></td><td  ><p>White, Black</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>2x 12 hours</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-the-ups"><span>SteelSeries Aeon Pro review: The ups</span></h2><p>The SteelSeries Aeon Pro packs plenty of awesome gaming features, including Hall Effect sticks and triggers, easy multi-platform connectivity, onboard controls and a zero-downtime battery system.</p><h3 id="responsive-hall-effect-sticks">Responsive Hall Effect sticks</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uLGVyLHsoS3i6g7xeDDgeR" name="Steelseries_Aeon_pro_ 6.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/uLGVyLHsoS3i6g7xeDDgeR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Interestingly, SteelSeries has decided to fit the Aeon with Hall Effect sticks. I say “interestingly” because at $259 and with technically unlimited battery life, I kinda expected to see the more accurate (and power hungry) TMR technology, but I’ll get onto that later. The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-raikiri-ii-review">Asus ROG Raikiri II</a> ($189) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/gamesir-g7-pro-review">Gamesir G7 Pro</a> ($79) both feature TMR sticks, for context.</p><p>Nevertheless, the sticks aren’t analog, unlike the ageing <a href="https://www.tomsguide.com/reviews/xbox-elite-wireless-controller-series-2">Xbox Elite Series 2</a> ($179, although a lot cheaper these days), which means no stick drift over time, better accuracy and more customization. They’re also fantastic to use, proving responsive and accurate in the FPS games I played — Hell Let Loose and Isonzo.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SqLTJ8oUiQwDRRxUaKErYQ" name="SteelSeries Aeron Pro_GG-3" alt="A screenshot of the SteelSeries GG app showing the Aeon Pro joysticks being adjusted" src="https://cdn.mos.cms.futurecdn.net/SqLTJ8oUiQwDRRxUaKErYQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/SqLTJ8oUiQwDRRxUaKErYQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>You can tweak the sensitivity response and deadzones of each stick in the GG app, which I appreciate. I usually use a mouse in FPS games, so I like my sticks super sensitive to replicate the rapid, accurate movement of mice. I say sensitivity “response” as you can only switch between different behaviors including linear (1:1 input to movement), dynamic (moves faster the further out from center you go), and exponential (very slow in the center and fast at the peripheries). </p><p>I like dynamic the most for FPS gaming, as I’m a run-and-gun kinda player. However, if you’re a sniper, exponential will be awesome for switching rapidly between fine control in the center when ADS, to faster movements when changing position or responding to a nearby enemy.</p><p>Included in the box are replacement sticks. You get one longer and one domed stick if you prefer those for fine control.</p><h3 id="snappy-paddles-and-triggers">Snappy paddles and triggers</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2oRCK5f55bbmoDXMMM6GyQ" name="Steelseries_Aeon_pro_ 2.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/2oRCK5f55bbmoDXMMM6GyQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The Aeon Pro packs Hall Effect triggers, as well as mechanical hair triggers, just like the Wolverine V3 Pro ($199). In full range mode, they’re completely smooth, but with a decent amount of tension and lots of travel — more so than the Wolverine. I found this gave me slightly more control of and precision with throttling in Forza Horizon 5. You can also set deadzones in GG for each trigger as per your needs, and set custom configs for switching between games (but I’ll cover this later).</p><p>Of course, when you need ultra fast action in FPS games, simply flick the switches on the controller’s rear to swap into hair trigger mode, whereby the pad uses mechanical switches with super short travel distance. That means rapid ADS and firing. I really like the feel of the Aeon Pro’s hair trigger switches — I’m a fan of tactile switches in general, and the Aeon’s give a more textured, satisfying and affirmative feel than the linear ones in my Wolverine V3 Pro.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uakypPiyxGSCtiFZQpUMhQ" name="SteelSeries Aeron Pro_GG-4" alt="A screenshot of the SteelSeries GG app showing the Aeon Pro triggers being adjusted" src="https://cdn.mos.cms.futurecdn.net/uakypPiyxGSCtiFZQpUMhQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/uakypPiyxGSCtiFZQpUMhQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The face buttons are mechanical and have a really nice, clicky feel with no mushiness whatsoever. At the back you’ll find four paddles, also using snappy short-travel mechanical switches. I’m not a huge fan of their placement, but I’ll discuss this more in 'The downs' section below.</p><h3 id="loads-of-onboard-control">Loads of onboard control</h3><p>SteelSeries loves a USB hub these days, having implemented them on its upper-tier Arctis Nova headsets for a while now. The Aeon Pro features a charging dock with dual USB-C ports at the rear, which means you can be hooked up to your Xbox and PC over 2.4G simultaneously. When you want to switch, it takes a few seconds via the OLED display on the controller itself.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="A3nNLMhpXckQf8xAgPvwMR" name="Steelseries_Aeon_pro_ 5.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/A3nNLMhpXckQf8xAgPvwMR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Yes, that does mean you need to have your PC and Xbox in the same place, which undermines the usefulness a little. Your Xbox is probably in your lounge, while your PC probably isn’t. It would’ve been cool to have a secondary 2.4G dongle, keeping one plugged into your PC and one your Xbox. </p><p>That OLED display also allows you to customize the controller on the fly — something you can’t do on the Wolverine V3 Pro or Xbox Elite Series 2, although you can on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/turtle-beach-stealth-ultra-review">Turtle Beach Stealth Ultra</a> ($200), which also has a screen. On the Aeon Pro, the OLED lets you switch between onboard configs (loaded via GG), plus adjust mapping, haptics and stick circularity. It also gives you a readout of your battery, as well as the battery charging in the dock. And that brings me onto my favorite feature… </p><h3 id="handy-battery-system">Handy battery system</h3><p>Another thing SteelSeries loves these days is a zero downtime battery system. I’m a huge fan of the Aeon Pro’s, and any existing users of the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">SteelSeries Arctis Nova Pro Omni</a> ($399), Nova Pro or Nova Elite headsets will be too. That’s because the Aeon Pro uses the same battery as those headsets, meaning you can swap between them.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/4vmJq6U6k2jbSnncBbworQ-1920-80.jpg" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" /><figcaption>The spare battery charges in the Aeon Pro's dock (which also charges the battery inside the controller when docked).<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bLueqBGPhdretpiCmi6peR-1920-80.jpg" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>While the Aeon and my Nova Pro headset each ship with two batteries, meaning I had four on my desk, I realistically now only need three. One in the controller, one in the headset, and one spare on charge in either the Nova USB hub or the Aeon base station. The controller and headset each consume power at different rates meaning one spare is always enough. It’s just super handy for swapping out when the need arises and means zero downtime. </p><p>Now, admittedly there are some downsides to the battery dock — indirectly anyway. The Aeon and Nova use separate USB hubs, so Nova Pro/Elite users will now have two base stations on their desk. At the Aeon pre-launch briefing, another journalist asked SteelSeries whether there’d be a universal docking station at some point soon. The answer was no, as that kind of thing rarely sells well as a standalone product, making it financially unviable for SteelSeries. Shame.</p><p>Anyway, while the battery nets around 30 hours in a Nova headset, it’ll achieve around 12 hours in the controller. The whole ‘zero downtime’ thing renders per-battery longevity a moot point at your desk, but it’s nice to know you’ve got a healthy amount of playtime if taking the pad to game at a friend’s house. And you can always pack a spare battery if needed.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tSbzJjYzmb9M5yDAQJaXeQ" name="SteelSeries Aeon Pro Battery System" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/tSbzJjYzmb9M5yDAQJaXeQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Personally, I think the replaceable batteries are a big deal, and they’re what sways me towards using the Aeon Pro as my primary pad. Obviously there’s the fact that I use the Arctis Nova Pro Omni as my main headset, so I now have double the batteries and control everything through GG. But that’s not all: although my Wolverine V3 Pro has better per-battery life (20 hours), its cell is built in and takes a while to charge back fully. I’ve had numerous instances of downtime after it’s run out of charge. With the Aeon Pro, that’s no more.</p><h2 id="gg-compatibility-obviously">GG compatibility (obviously)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DLtU8a45ad2T8icp8nVhZQ" name="SteelSeries Aeron Pro_GG-2" alt="A screenshot of the SteelSeries GG app showing the Aeon Pro being remapped" src="https://cdn.mos.cms.futurecdn.net/DLtU8a45ad2T8icp8nVhZQ-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/DLtU8a45ad2T8icp8nVhZQ-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I deal with <em>a lot</em> of companion software in my job. Some terrible (hey Armoury Crate!); some middling (yo Synapse!); and some really good (hiya GG!). Obviously, GG compatibility is a given with all SteelSeries gear these days, but it’s still a major bonus for all users, whether you’ve got one or many compatible products.</p><p>I use several SteelSeries products daily, so I’m always on GG. It’s slick, reliable and (most importantly) useful. You can customize virtually every necessary aspect of the Aeon Pro, and I especially love the configs. The controller can store eight configs onboard so you can switch between them via the OLED screen. I ran custom configs for Isonzo and Hell Let Loose, as I needed the rear paddles to behave differently, and could just flick between the two when changing game.</p><p>There are eight presets (which are customizable), but you can replace these with whatever custom configs you like. While eight can be stored onboard, you won’t lose the others, and moving them back onboard is simply a case of dragging and dropping.</p><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-the-downs"><span>SteelSeries Aeon Pro review: The downs</span></h2><p>My main beef with the Aeon Pro is its price. I also experienced a few issues with the ergonomics, but mileage will vary. Oh, and while this isn’t surprising or that big of a deal, SteelSeries hasn’t announced any PS5 variant. </p><h3 id="fairly-unpalatable-price">Fairly unpalatable price</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FDYLeuygLqnTUvbrjcZZsR" name="Steelseries_Aeon_pro_ 8.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/FDYLeuygLqnTUvbrjcZZsR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>SteelSeries is no stranger to steep pricing these days, with its Arctis Nova Pro Omni headset costing $399 and its <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">Arctis Nova Elite</a> headset costing a whopping $599. Admittedly, while expensive at <a href="https://steelseries.com/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">$259</a> / <a href="https://steelseries.com/en-gb/gaming-controllers/aeon-pro" target="_blank" rel="nofollow">£229</a>, the Aeon Pro isn’t wholly beyond the pale. The Razer Wolverine V3 Pro retails at $199, as does the Turtle Beach Stealth Ultra, while the ROG Raikiri II costs $189. At MSRP, then, the Aeon Pro is only $60 pricier than the Wolverine and Stealth Ultra — that’s not a ridiculous delta.</p><p>The thing is, for all its pros, I’m still not sure this pad justifies $259. The OLED screen, while handy, is kinda blocky and pixelated. TMR thumbsticks have been foregone in favor of cheaper Hall Effect sensors. And there’s not much you can do in the way of hardware customization either, save swapping the sticks — the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/turtle-beach-victrix-pro-bfg-reloaded-review">Turtle Beach Victrix Pro BFG Reloaded</a> costs $209 and is highly modular, so you can customize the layout to your needs. The Xbox Elite Series 2 also comes with a wide array of spares, and you can remove its back paddles.</p><p>Really, the unique selling point of the Aeon Pro is its battery and docking system. And I’m not sure that’s enough to warrant such a premium over rivals.</p><h3 id="ergos-a-little-tiring">Ergos a little tiring</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1018px;"><p class="vanilla-image-block" style="padding-top:56.19%;"><img id="2oRCK5f55bbmoDXMMM6GyQ" name="Steelseries_Aeon_pro_ 2.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:437,l:902,cw:1018,ch:572,q:80/2oRCK5f55bbmoDXMMM6GyQ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ll caveat this point by first saying that your mileage will probably vary here. I have large hands, so I didn’t get on too well with the Aeon Pro’s grips. They’re very grippy and covered in a comfortable material, but it’s the shaping I’m not keen on.</p><p>My issue is that the grips are quite thin. The large, low-slung paddles forced my middle fingers down more than usual, which meant I had to wrap my pinky more around the grips for support. With the grips being thin, my pinky had to wrap further, putting my hand into a slightly unnatural position that ached a little after a couple of hours. Nothing major, but enough to be annoying.</p><p>While stubbier, the grips on my Wolverine V3 Pro are fatter, which puts my pinky in a more comfortable position. The paddles are also much smaller and less invasive on the Razer pad, and you can kinda forget about them. I’d have liked the option to remove the Aeon Pro’s paddles, but no such luck.</p><h3 id="no-ps5-variant-just-fyi">No PS5 variant, just FYI</h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8hvHcarumqgofnckeffBmR" name="Steelseries_Aeon_pro_ 4.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/8hvHcarumqgofnckeffBmR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>SteelSeries is primarily a PC peripheral manufacturer, so it isn’t surprising that the Aeon Pro is a PC/Xbox exclusive, at least for now. There’s no word on whether that will change for the future. </p><p>The brand is no stranger to making PlayStation-compatible gear, having launched PS variants of most of its headsets. The recent Nova Pro Omni headset has all-device compatibility baked into its very ethos, too. So it wouldn’t surprise me if a PS5 Aeon Pro variant came along at some point.</p><p>For now, though, nada. So I’d advise checking out the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-raiju-v3-pro-review">Razer Raiju V3 Pro</a> ($219) or Turtle Beach Victrix Pro BFG Reloaded if you need a PlayStation pad.</p><h2 class="article-body__section" id="section-steelseries-aeon-pro-review-verdict"><span>SteelSeries Aeon Pro review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J8hULvG8nhBe4WuFGzqvMR" name="Steelseries_Aeon_pro_.JPG" alt="The SteelSeries Aeon Pro on a stone surface against a blue background" src="https://cdn.mos.cms.futurecdn.net/J8hULvG8nhBe4WuFGzqvMR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If price is your main concern, the Aeon Pro might not be it. It’s a fantastic controller, but the Wolverine V3 Pro and Turtle Beach Stealth Ultra are cheaper and offer just as much performance (although the Razer lacks a screen). Heck, you can pick up a Gamesir G7 Pro for like a third of the price and probably have no complaints.</p><p>If price isn’t your concern, and especially if you’re an existing SteelSeries headset user, the Aeon Pro is an excellent choice. Being able to integrate the Aeon into my existing gear’s ecosystem is a big win. And remember, the Aeon Pro is no slouch: it offers bags of performance and lots of software customization. Sometimes it’s the quality of life features that decide a choice, so for me, it’s going to be the Aeon Pro.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Tom's Guide Awards 2026: Our favorite gaming accessories, consoles, controllers and more ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Whether you’re playing on PC, a console, or a handheld, there’s never been a better time to be a gamer. You have more ways to play than ever before, alongside accessories built for every playstyle that make it easy to upgrade and personalize your setup.</p><p>From handhelds that bring full PC gaming on the go to highly customizable controllers with drift-free sticks and ultrawide OLED monitors with deep blacks, the right gear makes all the difference when diving into the latest releases.</p><p>For the Tom’s Guide Awards 2026, our team of experts spent the past 12 months testing and reviewing the latest consoles, handhelds, and peripherals. Below, we highlight the standouts that took our play sessions to the next level and made our favorite games even more fun to play.</p><h3 class="article-body__section" id="section-best-console"><span>Best console</span></h3><h2 id="nintendo-switch-2">Nintendo Switch 2</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rvTYwkupg9UPCS52kSS9zg" name="nintendo switch 2" alt="The Nintendo Switch 2 with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/rvTYwkupg9UPCS52kSS9zg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As the PS5 and Xbox Series X enter the final stage of their lifecycles (Xbox Project Helix is confirmed, PS6 heavily rumored), it’s the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> that is picking up momentum. </p><p>More than 12 months after its 2025 debut, Nintendo’s second-generation “Editor’s Choice” hybrid console remains an excellent choice, ideal for both gaming at home and on the go. Its magnetic Joy-Cons are a huge upgrade over its predecessor (which used a plastic railing system), and its 7.9-inch LCD is eye-catching, even if it’s unfortunately not an OLED.</p><p>More importantly, the Switch 2’s library is now taking shape. There are excellent exclusives like <a href="https://www.tomsguide.com/gaming/nintendo/donkey-kong-bananza-review">Donkey Kong: Bananza</a>, <a href="https://www.tomsguide.com/gaming/nintendo/splatoon-raiders-review">Splatoon Raiders</a> and <a href="https://www.tomsguide.com/gaming/pokemon-pokopia-review">Pokémon: Pokopia</a>, with more on the way, and support from third-party developers has also been strong, <a href="https://www.tomsguide.com/gaming/nintendo/forget-nintendo-its-capcom-keeping-the-switch-2-alive-right-now">particularly from Capcom</a>, who has released more than half a dozen games on the Nintendo Switch 2 already.</p><p><em>— Rory Mellon, Senior Entertainment Editor</em></p><h3 class="article-body__section" id="section-best-handheld-gaming-console"><span>Best handheld gaming console</span></h3><h2 id="msi-claw-8-ex-ai">MSI Claw 8 EX AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AFkyAMR2bW6StMWETBo2Fm" name="MSI Claw 8 EX AI" alt="The MSI Claw 8 EX AI with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/AFkyAMR2bW6StMWETBo2Fm-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI</a> is a testament to how much MSI has continued to improve and refine its handheld gaming PCs. From its larger screen to its more comfortable and textured grips, this is easily MSI’s best handheld yet. However, it’s the power and improved sustained performance from Intel’s new <a href="https://www.tomsguide.com/gaming/handheld-gaming/intel-arc-g3-is-here-to-shake-up-handheld-gaming-and-amd-should-be-terrified-acer-predator-atlas-8-is-the-first-out-the-gate">Arc G3 Extreme</a> chip inside that truly sets it apart.</p><p>While demanding PC games used to struggle on previous handhelds, the Claw 8 EX AI handles the latest titles with ease. It can also play them for even longer thanks to the raw power efficiency of the Arc G3 Extreme chip. All of these upgrades make the Claw 8 EX AI the best handheld gaming PC to date and with its new purple colorway and extended screen, it looks stunning too.</p><p><em>— Anthony Spadafora, Managing Editor</em></p><h3 class="article-body__section" id="section-best-gaming-monitor"><span>Best gaming monitor</span></h3><h2 id="msi-mpg-341cqr-qd-oled-x36">MSI MPG 341CQR QD-OLED X36</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="k8URoehPBgWco4Ja95MU74" name="MSI X36.JPG" alt="The MSI MPG 341CQR QD-OLED X36 monitor with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/k8URoehPBgWco4Ja95MU74-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/computing/monitors/msi-mpg-341cqr-qd-oled-x36-review">MSI MPG 341CQR QD-OLED X36</a> is one of the most beautiful QD-OLED monitors I’ve ever seen, and certainly the best I’ve tested this year. It’s perfect for gaming and productivity, thanks to its phenomenal color coverage and accuracy. The 34-inch panel is vivid and gorgeous, and that’s plenty of screen real estate for multitasking as well as an immersive gaming experience.</p><p>But the X36’s prowess lies in its blistering 360Hz refresh rate and 0.03ms response time, both of which ensure smooth motion, no ghosting and zero motion blur. The X36 also features a useful AI Care Sensor which can wake the monitor (or put it to sleep), and the sleek, all-black design helps the monitor fit right into most spaces. For gamers who want a fast monitor that doesn’t skimp on features, the X36 is a no-brainer.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-keyboard"><span>Best gaming keyboard</span></h3><h2 id="keychron-q6-he-8k">Keychron Q6 HE 8K </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Z7cgmq5EsZ8878yMZHx4vA" name="Keychron Q6 HE 8K" alt="The Keychron Q6 HE 8K with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/Z7cgmq5EsZ8878yMZHx4vA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This year, Keychron has continued to blow me away with its phenomenal peripherals, and the <a href="https://www.tomsguide.com/computing/keyboards/keychron-q6-he-8k-review">Q6 HE 8K</a> didn’t fail to impress me. It features some of the best magnetic switches I’ve ever tried. The Ultra-Fast Lime magnetic switches are buttery smooth for typing, and for competitive gaming, their sensitivity is adjustable all the way down to 0.01mm. Features such as Rapid Trigger and Last Key Prioritization make it excellent for esports and professional gamers.</p><p>Not just that: the Q6 HE 8K is a looker. It’s built extremely well, and it’s easy on the eyes. For productivity, you get a number pad, full row of Function keys, and more. Web-based software makes customization a walk in the park, too. If there’s one Hall Effect keyboard that I keep coming back to, it is, without a doubt, the Q6 HE 8K.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-mouse"><span>Best gaming mouse</span></h3><h2 id="razer-viper-v4-pro">Razer Viper V4 Pro</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aP2HAiJFFqVKvRC8ZzQM4G" name="Razer Viper V4 Pro" alt="The Razer Viper V4 Pro with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/aP2HAiJFFqVKvRC8ZzQM4G-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Razer has once again proven that it is the king of esports with the <a href="https://www.tomsguide.com/computing/mice/razer-viper-v4-pro-review">Viper V4 Pro</a>, its best gaming mouse to date — and an industry-leading one, at that. Boasting a maximum DPI of 50,000 and an 8,000Hz polling rate, the Viper V4 Pro gives you a competitive edge that makes even rookies like me good at Counter-Strike 2. The mouse itself is ergonomic, comfortable and feather-light, perfect for all-day play.</p><p>It goes without saying that the Viper V4 Pro’s gaming performance is nothing short of phenomenal. The blisteringly high DPI and polling make quick work of enemies in FPS titles, and you can drop (or increase) the DPI via a dedicated button on the mouse’s underside. Razer Synapse enables quick and easy customization, and the mouse’s 180-hour battery life is the cherry on top of this very delicious cake.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-controller"><span>Best gaming controller</span></h3><h2 id="asus-rog-raikiri-ii">Asus ROG Raikiri II</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fCzYWfn7FKtuJBLGQ4nBvL" name="Asus ROG Raikiri II" alt="The Asus ROG Raikiri II controller with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/fCzYWfn7FKtuJBLGQ4nBvL-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-raikiri-ii-review">Asus ROG Raikiri II</a> is the best third-party Xbox and PC controller I’ve tested this year, period. It puts the Xbox Elite 2 on notice with its phenomenal and responsive TMR thumbsticks and triggers which deliver enhanced precision across genres. The TMR sticks enable you to make minuscule adjustments to your movements, while the triggers’ sensitivity can be adjusted to suit your playstyle.</p><p>Adding to the Raikiri II’s appeal is its long 50-hour battery life, as well as extensive customization via web-based software. The controller itself is extremely comfortable and ergonomic for long hours, and the dual rumble motors help keep your immersion intact. This is a high-performance gaming powerhouse that gets nearly everything right.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-headset"><span>Best gaming headset</span></h3><h2 id="sony-inzone-h6-air">Sony Inzone H6 Air</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="prX8kGDT5U2rXB8fpJ5MkQ" name="Sony Inzone H6 Air" alt="The Sony Inzone H6 Air headset with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/prX8kGDT5U2rXB8fpJ5MkQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In a world where the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/sony-inzone-h6-air-review">Sony Inzone H6 Air</a> exists, why would you buy any other gaming headset? The H6 Air makes a compelling case to ditch wireless cans and use open-backs for gaming. Its 40mm drivers — also found in some of Sony’s studio monitors — deliver outstanding sound quality across genres. Open, spacious and dynamic sound makes your favorite games feel more immersive than ever, whether you’re chopping down enemies in Ghost of Yotei or admiring the beautiful sounds of Clair Obsur: Expedition 33. Given the drive configuration, the H6 Air is a fantastic headset for listening to music, too.</p><p>The H6 Air’s open-back nature makes the headset extremely comfortable for all-day play. The suspended headband and the light nylon ear cushions deliver unparalleled comfort for hours on end. Since the H6 Air is a wired headset, it’s compatible with a range of consoles and devices (yes, including Xbox). The mic is superb and doesn’t give you much to complain about. For gamers who want studio-grade sound, headsets don’t get much better than the H6 Air.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em> </p><h3 class="article-body__section" id="section-best-gaming-chair"><span>Best gaming chair</span></h3><h2 id="razer-iskur-v2-newgen">Razer Iskur V2 NewGen</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="faZkHTVdyUPALENZoC2dQU" name="Razer Iskur V2 NewGen" alt="The Razer Iskur V2 NewGen gaming chair with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/faZkHTVdyUPALENZoC2dQU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Unlike office chairs, gaming chairs aren’t known for their ergonomics but the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-iskur-v2-newgen-review">Razer Iskur V2 NewGen</a> gives you the best of both worlds. This upgraded gaming chair is wider all around with an extended seat and backrest. It features the same excellent adaptive lumbar support mechanism as its predecessor too which keeps your back fully supported regardless of how close or far away you’re sitting from your desk.</p><p>The Iskur V2 NewGen also prioritizes comfort with an upgraded synthetic leather designed to keep you cool and an extra thick foam seat cushion. Adjustments are simple too with a handbrake-style lever for reclining and knobs on either side to fine tune the position of its lumbar support. The Razer Iskur V2 NewGen builds on the V2’s solid foundation while adding plenty of extras to keep you comfortable and supported during even longer play sessions.</p><p><em>—- Anthony Spadafora, Managing Editor</em></p><h3 class="article-body__section" id="section-best-game-subscription-service"><span>Best game subscription service</span></h3><h2 id="playstation-plus-extra">PlayStation Plus Extra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cbyEaDii8PxBNQdUCGMvMY" name="ps plus extra" alt="The PS5 Pro console with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/cbyEaDii8PxBNQdUCGMvMY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Xbox Game Pass tends to grab the headlines in discussions of gaming subscription services. However, while it is indeed a solid package, the Ultimate tier costs $22.99 per month ($275 annually). That’s expensive. If you’re not using it pretty much daily, you’re not getting value. </p><p>Meanwhile, PlayStation Plus Extra, PS+’s middle tier, costs a more affordable $13.49 per month (or $134 annually) and makes a compelling case. You get all the baseline Essential benefits, like access to online multiplayer, cloud storage, and the occasional PlayStation Store discount, but its biggest draw is the Game Catalog. Which is exactly what it sounds like: a collection of hundreds of PS4 and PS5 games that you can download and play with your subscription.</p><p>PS+ Extra lacks day-one PlayStation Studios games compared to Game Pass Ultimate, which offers launch-day access to Xbox’s own exclusive roster, but the Extra library of more than 400 titles is robust. Plus, it’s refreshed every month, so you always have something new to play.</p><p><em>— Rory Mellon, Senior Entertainment Editor</em></p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/toms-guide-awards-2026</link>
                                                                            <description>
                            <![CDATA[ These are the Tom's Guide Awards 2026 winners in our gaming category which includes everything from consoles and handhelds to mice and keyboards. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">WVsyBAr7tUgHkWcZmqxJLX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8fBXAu3nU9FhPKZsswNDDa-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 15 Sep 2026 11:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Tom&#039;s Guide Staff ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/6hCNi5TkwpnQYs6nUTtoPc-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8fBXAu3nU9FhPKZsswNDDa-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Tom&#039;s Guide Awards 2026 Gaming]]></media:description>                                                            <media:text><![CDATA[Tom&#039;s Guide Awards 2026 Gaming]]></media:text>
                                <media:title type="plain"><![CDATA[Tom&#039;s Guide Awards 2026 Gaming]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8fBXAu3nU9FhPKZsswNDDa-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Whether you’re playing on PC, a console, or a handheld, there’s never been a better time to be a gamer. You have more ways to play than ever before, alongside accessories built for every playstyle that make it easy to upgrade and personalize your setup.</p><p>From handhelds that bring full PC gaming on the go to highly customizable controllers with drift-free sticks and ultrawide OLED monitors with deep blacks, the right gear makes all the difference when diving into the latest releases.</p><p>For the Tom’s Guide Awards 2026, our team of experts spent the past 12 months testing and reviewing the latest consoles, handhelds, and peripherals. Below, we highlight the standouts that took our play sessions to the next level and made our favorite games even more fun to play.</p><h3 class="article-body__section" id="section-best-console"><span>Best console</span></h3><h2 id="nintendo-switch-2">Nintendo Switch 2</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rvTYwkupg9UPCS52kSS9zg" name="nintendo switch 2" alt="The Nintendo Switch 2 with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/rvTYwkupg9UPCS52kSS9zg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As the PS5 and Xbox Series X enter the final stage of their lifecycles (Xbox Project Helix is confirmed, PS6 heavily rumored), it’s the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> that is picking up momentum. </p><p>More than 12 months after its 2025 debut, Nintendo’s second-generation “Editor’s Choice” hybrid console remains an excellent choice, ideal for both gaming at home and on the go. Its magnetic Joy-Cons are a huge upgrade over its predecessor (which used a plastic railing system), and its 7.9-inch LCD is eye-catching, even if it’s unfortunately not an OLED.</p><p>More importantly, the Switch 2’s library is now taking shape. There are excellent exclusives like <a href="https://www.tomsguide.com/gaming/nintendo/donkey-kong-bananza-review">Donkey Kong: Bananza</a>, <a href="https://www.tomsguide.com/gaming/nintendo/splatoon-raiders-review">Splatoon Raiders</a> and <a href="https://www.tomsguide.com/gaming/pokemon-pokopia-review">Pokémon: Pokopia</a>, with more on the way, and support from third-party developers has also been strong, <a href="https://www.tomsguide.com/gaming/nintendo/forget-nintendo-its-capcom-keeping-the-switch-2-alive-right-now">particularly from Capcom</a>, who has released more than half a dozen games on the Nintendo Switch 2 already.</p><p><em>— Rory Mellon, Senior Entertainment Editor</em></p><h3 class="article-body__section" id="section-best-handheld-gaming-console"><span>Best handheld gaming console</span></h3><h2 id="msi-claw-8-ex-ai">MSI Claw 8 EX AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AFkyAMR2bW6StMWETBo2Fm" name="MSI Claw 8 EX AI" alt="The MSI Claw 8 EX AI with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/AFkyAMR2bW6StMWETBo2Fm-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-8-ex-ai-plus-review">MSI Claw 8 EX AI</a> is a testament to how much MSI has continued to improve and refine its handheld gaming PCs. From its larger screen to its more comfortable and textured grips, this is easily MSI’s best handheld yet. However, it’s the power and improved sustained performance from Intel’s new <a href="https://www.tomsguide.com/gaming/handheld-gaming/intel-arc-g3-is-here-to-shake-up-handheld-gaming-and-amd-should-be-terrified-acer-predator-atlas-8-is-the-first-out-the-gate">Arc G3 Extreme</a> chip inside that truly sets it apart.</p><p>While demanding PC games used to struggle on previous handhelds, the Claw 8 EX AI handles the latest titles with ease. It can also play them for even longer thanks to the raw power efficiency of the Arc G3 Extreme chip. All of these upgrades make the Claw 8 EX AI the best handheld gaming PC to date and with its new purple colorway and extended screen, it looks stunning too.</p><p><em>— Anthony Spadafora, Managing Editor</em></p><h3 class="article-body__section" id="section-best-gaming-monitor"><span>Best gaming monitor</span></h3><h2 id="msi-mpg-341cqr-qd-oled-x36">MSI MPG 341CQR QD-OLED X36</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="k8URoehPBgWco4Ja95MU74" name="MSI X36.JPG" alt="The MSI MPG 341CQR QD-OLED X36 monitor with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/k8URoehPBgWco4Ja95MU74-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/computing/monitors/msi-mpg-341cqr-qd-oled-x36-review">MSI MPG 341CQR QD-OLED X36</a> is one of the most beautiful QD-OLED monitors I’ve ever seen, and certainly the best I’ve tested this year. It’s perfect for gaming and productivity, thanks to its phenomenal color coverage and accuracy. The 34-inch panel is vivid and gorgeous, and that’s plenty of screen real estate for multitasking as well as an immersive gaming experience.</p><p>But the X36’s prowess lies in its blistering 360Hz refresh rate and 0.03ms response time, both of which ensure smooth motion, no ghosting and zero motion blur. The X36 also features a useful AI Care Sensor which can wake the monitor (or put it to sleep), and the sleek, all-black design helps the monitor fit right into most spaces. For gamers who want a fast monitor that doesn’t skimp on features, the X36 is a no-brainer.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-keyboard"><span>Best gaming keyboard</span></h3><h2 id="keychron-q6-he-8k">Keychron Q6 HE 8K </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Z7cgmq5EsZ8878yMZHx4vA" name="Keychron Q6 HE 8K" alt="The Keychron Q6 HE 8K with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/Z7cgmq5EsZ8878yMZHx4vA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This year, Keychron has continued to blow me away with its phenomenal peripherals, and the <a href="https://www.tomsguide.com/computing/keyboards/keychron-q6-he-8k-review">Q6 HE 8K</a> didn’t fail to impress me. It features some of the best magnetic switches I’ve ever tried. The Ultra-Fast Lime magnetic switches are buttery smooth for typing, and for competitive gaming, their sensitivity is adjustable all the way down to 0.01mm. Features such as Rapid Trigger and Last Key Prioritization make it excellent for esports and professional gamers.</p><p>Not just that: the Q6 HE 8K is a looker. It’s built extremely well, and it’s easy on the eyes. For productivity, you get a number pad, full row of Function keys, and more. Web-based software makes customization a walk in the park, too. If there’s one Hall Effect keyboard that I keep coming back to, it is, without a doubt, the Q6 HE 8K.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-mouse"><span>Best gaming mouse</span></h3><h2 id="razer-viper-v4-pro">Razer Viper V4 Pro</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aP2HAiJFFqVKvRC8ZzQM4G" name="Razer Viper V4 Pro" alt="The Razer Viper V4 Pro with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/aP2HAiJFFqVKvRC8ZzQM4G-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Razer has once again proven that it is the king of esports with the <a href="https://www.tomsguide.com/computing/mice/razer-viper-v4-pro-review">Viper V4 Pro</a>, its best gaming mouse to date — and an industry-leading one, at that. Boasting a maximum DPI of 50,000 and an 8,000Hz polling rate, the Viper V4 Pro gives you a competitive edge that makes even rookies like me good at Counter-Strike 2. The mouse itself is ergonomic, comfortable and feather-light, perfect for all-day play.</p><p>It goes without saying that the Viper V4 Pro’s gaming performance is nothing short of phenomenal. The blisteringly high DPI and polling make quick work of enemies in FPS titles, and you can drop (or increase) the DPI via a dedicated button on the mouse’s underside. Razer Synapse enables quick and easy customization, and the mouse’s 180-hour battery life is the cherry on top of this very delicious cake.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-controller"><span>Best gaming controller</span></h3><h2 id="asus-rog-raikiri-ii">Asus ROG Raikiri II</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fCzYWfn7FKtuJBLGQ4nBvL" name="Asus ROG Raikiri II" alt="The Asus ROG Raikiri II controller with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/fCzYWfn7FKtuJBLGQ4nBvL-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-raikiri-ii-review">Asus ROG Raikiri II</a> is the best third-party Xbox and PC controller I’ve tested this year, period. It puts the Xbox Elite 2 on notice with its phenomenal and responsive TMR thumbsticks and triggers which deliver enhanced precision across genres. The TMR sticks enable you to make minuscule adjustments to your movements, while the triggers’ sensitivity can be adjusted to suit your playstyle.</p><p>Adding to the Raikiri II’s appeal is its long 50-hour battery life, as well as extensive customization via web-based software. The controller itself is extremely comfortable and ergonomic for long hours, and the dual rumble motors help keep your immersion intact. This is a high-performance gaming powerhouse that gets nearly everything right.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em></p><h3 class="article-body__section" id="section-best-gaming-headset"><span>Best gaming headset</span></h3><h2 id="sony-inzone-h6-air">Sony Inzone H6 Air</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="prX8kGDT5U2rXB8fpJ5MkQ" name="Sony Inzone H6 Air" alt="The Sony Inzone H6 Air headset with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/prX8kGDT5U2rXB8fpJ5MkQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In a world where the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/sony-inzone-h6-air-review">Sony Inzone H6 Air</a> exists, why would you buy any other gaming headset? The H6 Air makes a compelling case to ditch wireless cans and use open-backs for gaming. Its 40mm drivers — also found in some of Sony’s studio monitors — deliver outstanding sound quality across genres. Open, spacious and dynamic sound makes your favorite games feel more immersive than ever, whether you’re chopping down enemies in Ghost of Yotei or admiring the beautiful sounds of Clair Obsur: Expedition 33. Given the drive configuration, the H6 Air is a fantastic headset for listening to music, too.</p><p>The H6 Air’s open-back nature makes the headset extremely comfortable for all-day play. The suspended headband and the light nylon ear cushions deliver unparalleled comfort for hours on end. Since the H6 Air is a wired headset, it’s compatible with a range of consoles and devices (yes, including Xbox). The mic is superb and doesn’t give you much to complain about. For gamers who want studio-grade sound, headsets don’t get much better than the H6 Air.</p><p><em>— Nikita Achanta, Senior Reviews Writer</em> </p><h3 class="article-body__section" id="section-best-gaming-chair"><span>Best gaming chair</span></h3><h2 id="razer-iskur-v2-newgen">Razer Iskur V2 NewGen</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="faZkHTVdyUPALENZoC2dQU" name="Razer Iskur V2 NewGen" alt="The Razer Iskur V2 NewGen gaming chair with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/faZkHTVdyUPALENZoC2dQU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Unlike office chairs, gaming chairs aren’t known for their ergonomics but the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-iskur-v2-newgen-review">Razer Iskur V2 NewGen</a> gives you the best of both worlds. This upgraded gaming chair is wider all around with an extended seat and backrest. It features the same excellent adaptive lumbar support mechanism as its predecessor too which keeps your back fully supported regardless of how close or far away you’re sitting from your desk.</p><p>The Iskur V2 NewGen also prioritizes comfort with an upgraded synthetic leather designed to keep you cool and an extra thick foam seat cushion. Adjustments are simple too with a handbrake-style lever for reclining and knobs on either side to fine tune the position of its lumbar support. The Razer Iskur V2 NewGen builds on the V2’s solid foundation while adding plenty of extras to keep you comfortable and supported during even longer play sessions.</p><p><em>—- Anthony Spadafora, Managing Editor</em></p><h3 class="article-body__section" id="section-best-game-subscription-service"><span>Best game subscription service</span></h3><h2 id="playstation-plus-extra">PlayStation Plus Extra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cbyEaDii8PxBNQdUCGMvMY" name="ps plus extra" alt="The PS5 Pro console with a TG Awards 2026 badge" src="https://cdn.mos.cms.futurecdn.net/cbyEaDii8PxBNQdUCGMvMY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Xbox Game Pass tends to grab the headlines in discussions of gaming subscription services. However, while it is indeed a solid package, the Ultimate tier costs $22.99 per month ($275 annually). That’s expensive. If you’re not using it pretty much daily, you’re not getting value. </p><p>Meanwhile, PlayStation Plus Extra, PS+’s middle tier, costs a more affordable $13.49 per month (or $134 annually) and makes a compelling case. You get all the baseline Essential benefits, like access to online multiplayer, cloud storage, and the occasional PlayStation Store discount, but its biggest draw is the Game Catalog. Which is exactly what it sounds like: a collection of hundreds of PS4 and PS5 games that you can download and play with your subscription.</p><p>PS+ Extra lacks day-one PlayStation Studios games compared to Game Pass Ultimate, which offers launch-day access to Xbox’s own exclusive roster, but the Extra library of more than 400 titles is robust. Plus, it’s refreshed every month, so you always have something new to play.</p><p><em>— Rory Mellon, Senior Entertainment Editor</em></p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I gave the Steam Machine 3 stars at launch — but a game-changing update and this 1TB storage hack has me thinking differently ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you watch my video review of the <a href="https://www.tomsguide.com/gaming/steam-machine-review">Steam Machine</a>, you can tell how heartbroken I was by it. This was supposed to be the perfect middle ground — PC gaming smashed together with a console experience to give you your massive Steam library in a box by your TV.</p><p>But it felt overpriced, unpolished and struggled to hit the performance metrics PC games need in 2026. Then, I started using it…and using it some more…and after weeks of relentless software updates, I have to admit that <em>maybe </em>I rushed to judgement.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/vYWbZGcIKVI" allowfullscreen=""></iframe></div></div><p>I stand by the score for most of you reading this: console players can get better living room bang for their buck elsewhere (for now) and for PC players, the component math isn’t really mathing. </p><p>But for those in that small group like me who just want our massive Steam backlogs on the big screen without the headache of using Windows from the couch, this is where the Steam Machine turns from good to great.</p><p>This started as a test of the <a href="https://www.amazon.com/Lexar-256GB-Micro-Express-900MB/dp/B0DYB7ZGR3" target="_blank" rel="nofollow">Lexar PLAY microSDXC card,</a> and as you can see by my sprawling thoughts, has evolved into something more. Let me explain.</p><h2 id="fsr-4-1-is-a-game-changer">FSR 4.1 is a game changer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v4HrF7QQPQsVVL3MUgg4QU" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/v4HrF7QQPQsVVL3MUgg4QU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The proof is in the pudding, and Forza Horizon 6 was the first place where I really felt that proof. Recently, Valve <a href="https://steamcommunity.com/groups/steam_hardware/announcements/detail/698770449667981837" target="_blank">updated the Steam Machine to support AMD’s FSR 4.1 resolution scaling</a> and frame generation tech (otherwise known as FSR Redstone).</p><p>Now, it’s worth noting that Horizon 6 is a game that has FSR 4.1 options natively supported in its in-game menus. For others, like The Last of Us Part II, you will have to go into the <strong>game properties, </strong>and <strong>turn the compatibility layer to Proton Experimental. </strong>A small file downloads and you should be off to the races.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o5TQcpbH3VCvV24wmLGD7U" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/o5TQcpbH3VCvV24wmLGD7U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Even if the in-game settings says “FSR 3.1” of some sort, you’re getting FSR 4 — something that I saw when flipping over to Naughty Dog’s epic. The number changes are minor, but the real difference maker here is frame pacing and image quality.</p><p>Forza Horizon 6 had a real stuttering problem when I first played it on the Steam Machine, with driving gameplay feeling like it was on the framerate equivalent of an elastic band stretching and contracting.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/wDZobwvjWr3VWH5WddQadU-1920-80.jpg" alt="Steam Machine" /><figcaption>FSR 3<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/HbD9syCc9Va3RWorXXj6fU-1920-80.jpg" alt="Steam Machine" /><figcaption>FSR 4<small role="credit">Future</small></figcaption></figure></figure><p>Now with FSR 4, not only is ghosting drastically reduced, the 1% lows are much stronger for a massive improvement in consistency. The same can be said of The Last of Us too, as the surface textures don’t fizzle anymore and the frame pacing stability is much better.</p><div ><table><tbody><tr><td class="firstcol " ><p><strong>Game (and settings)</strong></p></td><td  ><p><strong>FSR 3</strong></p></td><td  ><p><strong>FSR 4</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 6 (1080p Ultra FSR Performance)</strong></p></td><td  ><p>50 FPS</p></td><td  ><p>56 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>The Last of Us Part 2 (1440p Medium Dynamic resolution scaling)</strong></p></td><td  ><p>52 FPS</p></td><td  ><p>55 FPS</p></td></tr></tbody></table></div><p>Throw in all the UI updates (like making resolution settings much clearer), stability improvements and support for USB wheels and pedals, and this is all coming together nicely! Not in a way that makes the price feel more worthwhile, but we’re heading in the right direction.</p><h2 id="the-remaining-friction-and-the-hack">The remaining friction (and the hack)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y36AXNfeyagfEawshhPeVU" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/y36AXNfeyagfEawshhPeVU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the software and frame rates have evolved, that price remains a massive hurdle — to the point that the base model is the only tier that makes sense. However, that limited internal drive will fill up fast after downloading just a couple of modern games.</p><p>So the fix? The smartest move is buying the base model and pairing it with a microSDXC memory card like the Lexar PLAY I’ve been using. </p><div ><table><thead><tr><th class="firstcol " ><p>Storage</p></th><th  ><p><strong>Read/write speeds  (Mb/s)</strong></p></th><th  ><p>Cyberpunk 2077 load mission</p></th><th  ><p>007 First Light load mission</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steam Machine internal SSD</strong></p></td><td  ><p>3865.7 / 4759.1</p></td><td  ><p>9.6 seconds</p></td><td  ><p>26.2 seconds</p></td></tr><tr><td class="firstcol " ><p><strong>Lexar PLAY microSDXC card</strong></p></td><td  ><p>155.5 / 149.4</p></td><td  ><p>16.9 seconds</p></td><td  ><p>40.7 seconds</p></td></tr></tbody></table></div><p>It’s cheaper to get a 1TB card than upgrading the internal storage, and while the read/write rates are slower than the internal storage, the speeds are fast enough to handle games without any stuttering.</p><p>There is a longer load time, but nothing too agonizing.</p><h2 id="the-comeback-kid">The comeback kid?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kBVojPHsL8eazNgDWzCTfU" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/kBVojPHsL8eazNgDWzCTfU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div><blockquote><p>So, is the Steam Machine suddenly a five-star masterpiece? Let’s not get carried away. </p></blockquote></div><p>So, is the Steam Machine suddenly a five-star masterpiece? Let’s not get carried away. The sticker shock is still very real, and for anyone wanting to roll up their sleeves and build their own compact living room machine, the dollar-to-performance ratio doesn’t add up.</p><p>But the integration of FSR 4 has transformed a choppy, frustrating experience into a genuinely viable console competitor. The Steam Machine proves that hardware specs on a spreadsheet are only half the story, and Valve is putting in the grueling software work to right the ship.</p><p>Plus, you can save a little bit of cash on that premium storage tax by slapping a high-speed Lexar PLAY 1TB microSD card into the base model. The math doesn’t really math as badly as before. </p><p>It might not be the undisputed king of the living room just yet, but it’s absolutely a console comeback kid worth rooting for.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/nvidias-rtx-spark-n1x-drops-this-october-why-apple-silicon-should-be-terrified-and-our-price-predictions">Nvidia’s RTX Spark N1X launches this October: My price predictions for the potential MacBook Pro killer</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-tested-acers-wild-flip-and-swivel-handheld-why-project-dualplay-mini-is-the-ultimate-netbook-love-letter">I tested Acer's wild Project DualPlay Mini — and it's a gaming handheld and laptop in one gadget</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/as-a-pc-snob-i-wanted-to-catch-gta-6-making-console-compromises-instead-im-in-awe-of-the-trickery">As a PC snob, I wanted to catch GTA 6 making console compromises. Instead, I’m in awe of the trickery</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/pc-gaming/i-gave-the-steam-machine-3-stars-at-launch-but-a-game-changing-update-and-this-1tb-storage-hack-has-me-thinking-differently</link>
                                                                            <description>
                            <![CDATA[ The Steam Machine is in its comeback era with FSR 4, and while the pricing is still crazy, it's a game-changing update that does make it awesome in my own testing! ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qFQCVEwKYZZu8o5cMEbNV3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/piJ44JNvyTdWibDxvdteUU-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 14 Sep 2026 09:00:00 +0000</pubDate>                                                                                                                                <updated>Mon, 14 Sep 2026 23:03:28 +0000</updated>
                                                                                                                                            <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/piJ44JNvyTdWibDxvdteUU-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine]]></media:description>                                                            <media:text><![CDATA[Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/piJ44JNvyTdWibDxvdteUU-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you watch my video review of the <a href="https://www.tomsguide.com/gaming/steam-machine-review">Steam Machine</a>, you can tell how heartbroken I was by it. This was supposed to be the perfect middle ground — PC gaming smashed together with a console experience to give you your massive Steam library in a box by your TV.</p><p>But it felt overpriced, unpolished and struggled to hit the performance metrics PC games need in 2026. Then, I started using it…and using it some more…and after weeks of relentless software updates, I have to admit that <em>maybe </em>I rushed to judgement.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/vYWbZGcIKVI" allowfullscreen=""></iframe></div></div><p>I stand by the score for most of you reading this: console players can get better living room bang for their buck elsewhere (for now) and for PC players, the component math isn’t really mathing. </p><p>But for those in that small group like me who just want our massive Steam backlogs on the big screen without the headache of using Windows from the couch, this is where the Steam Machine turns from good to great.</p><p>This started as a test of the <a href="https://www.amazon.com/Lexar-256GB-Micro-Express-900MB/dp/B0DYB7ZGR3" target="_blank" rel="nofollow">Lexar PLAY microSDXC card,</a> and as you can see by my sprawling thoughts, has evolved into something more. Let me explain.</p><h2 id="fsr-4-1-is-a-game-changer">FSR 4.1 is a game changer</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v4HrF7QQPQsVVL3MUgg4QU" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/v4HrF7QQPQsVVL3MUgg4QU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The proof is in the pudding, and Forza Horizon 6 was the first place where I really felt that proof. Recently, Valve <a href="https://steamcommunity.com/groups/steam_hardware/announcements/detail/698770449667981837" target="_blank">updated the Steam Machine to support AMD’s FSR 4.1 resolution scaling</a> and frame generation tech (otherwise known as FSR Redstone).</p><p>Now, it’s worth noting that Horizon 6 is a game that has FSR 4.1 options natively supported in its in-game menus. For others, like The Last of Us Part II, you will have to go into the <strong>game properties, </strong>and <strong>turn the compatibility layer to Proton Experimental. </strong>A small file downloads and you should be off to the races.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o5TQcpbH3VCvV24wmLGD7U" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/o5TQcpbH3VCvV24wmLGD7U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Even if the in-game settings says “FSR 3.1” of some sort, you’re getting FSR 4 — something that I saw when flipping over to Naughty Dog’s epic. The number changes are minor, but the real difference maker here is frame pacing and image quality.</p><p>Forza Horizon 6 had a real stuttering problem when I first played it on the Steam Machine, with driving gameplay feeling like it was on the framerate equivalent of an elastic band stretching and contracting.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/wDZobwvjWr3VWH5WddQadU-1920-80.jpg" alt="Steam Machine" /><figcaption>FSR 3<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/HbD9syCc9Va3RWorXXj6fU-1920-80.jpg" alt="Steam Machine" /><figcaption>FSR 4<small role="credit">Future</small></figcaption></figure></figure><p>Now with FSR 4, not only is ghosting drastically reduced, the 1% lows are much stronger for a massive improvement in consistency. The same can be said of The Last of Us too, as the surface textures don’t fizzle anymore and the frame pacing stability is much better.</p><div ><table><tbody><tr><td class="firstcol " ><p><strong>Game (and settings)</strong></p></td><td  ><p><strong>FSR 3</strong></p></td><td  ><p><strong>FSR 4</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 6 (1080p Ultra FSR Performance)</strong></p></td><td  ><p>50 FPS</p></td><td  ><p>56 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>The Last of Us Part 2 (1440p Medium Dynamic resolution scaling)</strong></p></td><td  ><p>52 FPS</p></td><td  ><p>55 FPS</p></td></tr></tbody></table></div><p>Throw in all the UI updates (like making resolution settings much clearer), stability improvements and support for USB wheels and pedals, and this is all coming together nicely! Not in a way that makes the price feel more worthwhile, but we’re heading in the right direction.</p><h2 id="the-remaining-friction-and-the-hack">The remaining friction (and the hack)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y36AXNfeyagfEawshhPeVU" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/y36AXNfeyagfEawshhPeVU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the software and frame rates have evolved, that price remains a massive hurdle — to the point that the base model is the only tier that makes sense. However, that limited internal drive will fill up fast after downloading just a couple of modern games.</p><p>So the fix? The smartest move is buying the base model and pairing it with a microSDXC memory card like the Lexar PLAY I’ve been using. </p><div ><table><thead><tr><th class="firstcol " ><p>Storage</p></th><th  ><p><strong>Read/write speeds  (Mb/s)</strong></p></th><th  ><p>Cyberpunk 2077 load mission</p></th><th  ><p>007 First Light load mission</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steam Machine internal SSD</strong></p></td><td  ><p>3865.7 / 4759.1</p></td><td  ><p>9.6 seconds</p></td><td  ><p>26.2 seconds</p></td></tr><tr><td class="firstcol " ><p><strong>Lexar PLAY microSDXC card</strong></p></td><td  ><p>155.5 / 149.4</p></td><td  ><p>16.9 seconds</p></td><td  ><p>40.7 seconds</p></td></tr></tbody></table></div><p>It’s cheaper to get a 1TB card than upgrading the internal storage, and while the read/write rates are slower than the internal storage, the speeds are fast enough to handle games without any stuttering.</p><p>There is a longer load time, but nothing too agonizing.</p><h2 id="the-comeback-kid">The comeback kid?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kBVojPHsL8eazNgDWzCTfU" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/kBVojPHsL8eazNgDWzCTfU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div><blockquote><p>So, is the Steam Machine suddenly a five-star masterpiece? Let’s not get carried away. </p></blockquote></div><p>So, is the Steam Machine suddenly a five-star masterpiece? Let’s not get carried away. The sticker shock is still very real, and for anyone wanting to roll up their sleeves and build their own compact living room machine, the dollar-to-performance ratio doesn’t add up.</p><p>But the integration of FSR 4 has transformed a choppy, frustrating experience into a genuinely viable console competitor. The Steam Machine proves that hardware specs on a spreadsheet are only half the story, and Valve is putting in the grueling software work to right the ship.</p><p>Plus, you can save a little bit of cash on that premium storage tax by slapping a high-speed Lexar PLAY 1TB microSD card into the base model. The math doesn’t really math as badly as before. </p><p>It might not be the undisputed king of the living room just yet, but it’s absolutely a console comeback kid worth rooting for.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/nvidias-rtx-spark-n1x-drops-this-october-why-apple-silicon-should-be-terrified-and-our-price-predictions">Nvidia’s RTX Spark N1X launches this October: My price predictions for the potential MacBook Pro killer</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-tested-acers-wild-flip-and-swivel-handheld-why-project-dualplay-mini-is-the-ultimate-netbook-love-letter">I tested Acer's wild Project DualPlay Mini — and it's a gaming handheld and laptop in one gadget</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/as-a-pc-snob-i-wanted-to-catch-gta-6-making-console-compromises-instead-im-in-awe-of-the-trickery">As a PC snob, I wanted to catch GTA 6 making console compromises. Instead, I’m in awe of the trickery</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This premium PC controller does something I've never seen before — and it’s a game-changer ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I mostly know SteelSeries for its lineup of gaming headsets, keyboards, and other accessories. Curiously enough, it has never released a full-fledged gaming controller for consoles and PC. Well, that used to be the case, as we now have the SteelSeries Aeon Pro. And let me tell you, it’s a pretty awesome gaming controller.</p><p>Its standout feature is the QuickSwitch Dock System, which can connect to your PC and Xbox simultaneously for seamless pairing. The dock itself has a slot to charge the extra detachable battery, while the controller has an OLED panel for easy profile switching. It also includes expected “pro” controller features like Hall Effect thumbsticks, remappable back buttons, and rubber grips.</p><p>While the SteelSeries Aeon Pro is pretty pricey at $259, it’s arguably worth the money given what it packs and what it can do. I’ve used and tested many of the <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best PC controllers</a>, and this is one of the most impressive yet. If that price doesn’t scare you away, there’s a lot to like here. This is what I think after using the Aeon Pro for the better part of two weeks.</p><div class="product"><a data-dimension112="41d9ce06-ae0f-11f1-ad0d-6917892df765" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259" href="https://steelseries.com/gaming-controllers/aeon-pro?srsltid=AfmBOop_FgUbthHFvuHncUbwafvG-6tomHZXEkiIiP5SWbO4OBpkTt4W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4KQWbcoHH7mXgVxr9YU3vC" name="SteelSeries Aeon Pro controller deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4KQWbcoHH7mXgVxr9YU3vC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="1200" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The SteelSeries Aeon Pro is a $259 Xbox and PC controller for gamers who bounce between both. Its QuickSwitch dock stays wired to each system, so you swap platforms without re-pairing, while dual hot-swap batteries keep you playing instead of charging. It features Hall Effect thumbsticks, clicky mechanical buttons, and an OLED screen for easy profile switching. Though pricey, it’s one of the most innovative controllers on the market.<a class="view-deal button" href="https://steelseries.com/gaming-controllers/aeon-pro?srsltid=AfmBOop_FgUbthHFvuHncUbwafvG-6tomHZXEkiIiP5SWbO4OBpkTt4W" target="_blank" rel="nofollow" data-dimension112="41d9ce06-ae0f-11f1-ad0d-6917892df765" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259">View Deal</a></p></div><h2 id="a-solid-controller">A solid controller</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="939zHBW3NJqEYJrzqkhvJC" name="SteelSeries Aeon Pro-11" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/939zHBW3NJqEYJrzqkhvJC-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Let’s start with the Aeon Pro itself. Its overall size and weight are virtually identical to a standard Xbox controller. Of course, it feels much different in hand thanks to the wrap-around rubber grips and four back buttons. Still, if you’re familiar with the Xbox controller, it doesn’t take very long to acclimate to SteelSeries’ peripheral.</p><p>Button layout isn’t radically different. The asymmetrical thumbsticks, raised D-Pad, four face buttons, and four shoulder buttons are exactly where you’d expect. The main difference here is that the Xbox Home button is lower to accommodate the OLED screen in the top center. The options and select buttons are now located directly beneath the D-Pad and right thumbstick instead of in the middle.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5j5Z3mRywJXeN9Uy6iQuLg" name="SteelSeries Aeon Pro-6" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/5j5Z3mRywJXeN9Uy6iQuLg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Aside from the thumbsticks, all the buttons—including the D-Pad—are clicky like a keyboard, which is appropriate for a PC controller. I should add that the triggers only click once you flip the trigger locks to shorten their actuation point. I’m a fan of the <a href="https://www.tomsguide.com/best-picks/best-mechanical-keyboards">best mechanical keyboards</a>, so I’m all about the clicky.</p><p>The back buttons generally don’t bother me because both are positioned where my middle and ring fingers naturally rest. That said, I wish they were removable, as on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/scuf-valor-pro-review">Scuf Valor Pro</a>. This is a minor thing for me, but it could be frustrating if you’re not a fan of back buttons. Still, I’d rather have four permanent back buttons than none.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dkHaryt32gioYFxG2hHm9o" name="SteelSeries Aeon Pro-10" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/dkHaryt32gioYFxG2hHm9o-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Lastly, there are the Hall Effect thumbsticks. Even though TMR thumbsticks are all the rage now, Hall Effect — the OG magnetic switch type — still delivers smooth, precise movement, especially compared with traditional analog sticks. And since they’re magnetic instead of analog, you likely won’t have to suffer from stick drift for a long time — if ever.</p><h2 id="an-innovative-dock">An innovative dock</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5GDrxinx2tbQtNLg9eJ7xG" name="SteelSeries Aeon Pro-9" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/5GDrxinx2tbQtNLg9eJ7xG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Controller charging stations aren’t new. However, SteelSeries’ QuickSwitch Dock System (as the company calls it) does something I’ve never seen before on a controller dock: it charges a separate battery (included with the controller). So when the battery inside your controller runs out, you can simply swap in the fully charged one and keep playing without a major interruption.</p><p>If that sounds familiar, it’s because this feature comes from SteelSeries’ own <a href="https://www.tomsguide.com/reviews/steelseries-arctis-nova-pro-wireless">Arctis Nova Pro</a> headset, which has a hub that lets you charge its batteries. Best of all, the batteries for that headset and the Aeon Pro are interchangeable. If you own both peripherals, you’ll have four chargeable batteries at your disposal!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j3Yq5pvDoHBfLKWPU6BnVb" name="SteelSeries Aeon Pro-8" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/j3Yq5pvDoHBfLKWPU6BnVb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Like the Arctis Nova Pro’s hub, the QuickSwitch Dock System lets you connect to your PC and Xbox at the same time via the two USB-C ports on the back. Thanks to this feature, you won’t have to constantly pair and re-pair the controller to whatever platform you’re using, as you would with other controllers.</p><p>Another cool feature is the two slots for extra thumbsticks. One thumbstick is the same size as the two on the controller, only it is convex instead of concave. The other thumbstick is about twice as long for more precise aiming in shooting games. The magnetic thumbsticks snap in and out easily, which is a bonus.</p><p>The compartment for the extra battery sits right under the thumbsticks, and you just press down to lock it in place or release it. This is a simple process, but it’s extremely satisfying to press the battery in and out.</p><h2 id="an-oled-screen-on-a-game-controller">An OLED screen on a game controller?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qGBqF7hLnJndZyT3ZopN7U" name="SteelSeries Aeon Pro-3" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/qGBqF7hLnJndZyT3ZopN7U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Remapping buttons or fine-tuning thumbstick sensitivity on controllers usually requires you to dive into a dedicated desktop or mobile app. While the SteelSeries GG desktop app exists for that, you can almost effectively ignore it and still customize the Aeon Pro to your liking thanks to the integrated OLED screen.</p><p>On this monochrome screen, you can access profiles, switch between PC and Xbox, monitor battery life, and remap the controls. While the screen isn’t all that large, all the text appears nice and sharp.</p><p>My favorite thing about the OLED is that it quickly shows which profile you’re using, which is especially handy if you have different configurations for different genres or games. This way, I don’t have to open an app to see if I’m using the right profile, or remember which colors correspond to which layouts, like some controllers have you do.</p><p>Though I question why the screen needed to be OLED since it’s monochrome, I can’t complain about the results. Sure, you can make finer adjustments via the GG app, but it’s good that you can configure most of what you’d want right on the controller.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5ErZW"></div>                            </div>                            <script src="https://kwizly.com/embed/W5ErZW.js" async=""></script><h2 id="my-new-daily-driver">My new daily driver</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7YgfF97brCRTreyFWya6oY" name="SteelSeries Aeon Pro-2" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/7YgfF97brCRTreyFWya6oY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>We’ll have a full review of the SteelSeries Aeon Pro controller for you soon, but I wanted to share my thoughts ahead of that since I’ve been enjoying this awesome peripheral for some time. Again, it’s definitely pricey, but given all the cool features it packs, I think it’s worth the money for hardcore PC gamers.</p><p>If you’ve liked what I had to say about the Aeon Pro, then give it a shot. I promise you won’t be disappointed.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/gaming-laptops/alienware-16-area-51-gaming-laptop-2026-review"><strong>I just tested the new Alienware 16 Area-51 — and the OLED panel makes it the complete package</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/laptops/lenovo-yoga-9n-2-in-1-hands-on"><strong>I went hands-on with Lenovo’s RTX Spark-powered Yoga 9n 2-in-1 laptop — and it’s a creative powerhouse</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/metal-gear-solid-4-on-ps5-is-an-almost-perfect-port-of-my-favorite-ps3-exclusive"><strong>Metal Gear Solid 4 on PS5 is an almost perfect port of my favorite PS3 exclusive</strong></a><strong></strong></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=gaming+controllers&amp;min_discount_ratio=0.95&amp;widget_title=Top+Deals+Handpicked+by+Our+Editors&amp;widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&amp;bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="8">8 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const finalHref = cardLink.href || cardLink.getAttribute('href') || '';                let actualRevenueId = cardLink.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: this.decodeHTML(item.name || item.title || item.model_name || item.product_name || 'Unknown Product'),            brand: this.decodeHTML(item.brand || ''),            productName: this.decodeHTML(item.model_name || item.product_name || item.name || ''),            merchant: this.decodeHTML(item.merchant_name || item.merchant || item.retailer || 'Retailer'),            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const finalHref = btn.href || btn.getAttribute('href') || '';                let actualRevenueId = btn.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/this-premium-pc-controller-does-something-ive-never-seen-before-and-its-a-game-changer</link>
                                                                            <description>
                            <![CDATA[ The $259 SteelSeries Aeon Pro controller is expensive, but its unique dock and premium features make it one of the best gaming controllers available. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gEcBRYFYgoHh7MDXQjXexT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/L8Sp7VoNWHNDiXoDpmao87-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 12 Sep 2026 12:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/L8Sp7VoNWHNDiXoDpmao87-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[SteelSeries Aeon Pro controller]]></media:description>                                                            <media:text><![CDATA[SteelSeries Aeon Pro controller]]></media:text>
                                <media:title type="plain"><![CDATA[SteelSeries Aeon Pro controller]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/L8Sp7VoNWHNDiXoDpmao87-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I mostly know SteelSeries for its lineup of gaming headsets, keyboards, and other accessories. Curiously enough, it has never released a full-fledged gaming controller for consoles and PC. Well, that used to be the case, as we now have the SteelSeries Aeon Pro. And let me tell you, it’s a pretty awesome gaming controller.</p><p>Its standout feature is the QuickSwitch Dock System, which can connect to your PC and Xbox simultaneously for seamless pairing. The dock itself has a slot to charge the extra detachable battery, while the controller has an OLED panel for easy profile switching. It also includes expected “pro” controller features like Hall Effect thumbsticks, remappable back buttons, and rubber grips.</p><p>While the SteelSeries Aeon Pro is pretty pricey at $259, it’s arguably worth the money given what it packs and what it can do. I’ve used and tested many of the <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best PC controllers</a>, and this is one of the most impressive yet. If that price doesn’t scare you away, there’s a lot to like here. This is what I think after using the Aeon Pro for the better part of two weeks.</p><div class="product"><a data-dimension112="41d9ce06-ae0f-11f1-ad0d-6917892df765" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259" href="https://steelseries.com/gaming-controllers/aeon-pro?srsltid=AfmBOop_FgUbthHFvuHncUbwafvG-6tomHZXEkiIiP5SWbO4OBpkTt4W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4KQWbcoHH7mXgVxr9YU3vC" name="SteelSeries Aeon Pro controller deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4KQWbcoHH7mXgVxr9YU3vC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="1200" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The SteelSeries Aeon Pro is a $259 Xbox and PC controller for gamers who bounce between both. Its QuickSwitch dock stays wired to each system, so you swap platforms without re-pairing, while dual hot-swap batteries keep you playing instead of charging. It features Hall Effect thumbsticks, clicky mechanical buttons, and an OLED screen for easy profile switching. Though pricey, it’s one of the most innovative controllers on the market.<a class="view-deal button" href="https://steelseries.com/gaming-controllers/aeon-pro?srsltid=AfmBOop_FgUbthHFvuHncUbwafvG-6tomHZXEkiIiP5SWbO4OBpkTt4W" target="_blank" rel="nofollow" data-dimension112="41d9ce06-ae0f-11f1-ad0d-6917892df765" data-action="Deal Block" data-label="Aeon Pro" data-dimension48="Aeon Pro" data-dimension25="$259">View Deal</a></p></div><h2 id="a-solid-controller">A solid controller</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="939zHBW3NJqEYJrzqkhvJC" name="SteelSeries Aeon Pro-11" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/939zHBW3NJqEYJrzqkhvJC-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Let’s start with the Aeon Pro itself. Its overall size and weight are virtually identical to a standard Xbox controller. Of course, it feels much different in hand thanks to the wrap-around rubber grips and four back buttons. Still, if you’re familiar with the Xbox controller, it doesn’t take very long to acclimate to SteelSeries’ peripheral.</p><p>Button layout isn’t radically different. The asymmetrical thumbsticks, raised D-Pad, four face buttons, and four shoulder buttons are exactly where you’d expect. The main difference here is that the Xbox Home button is lower to accommodate the OLED screen in the top center. The options and select buttons are now located directly beneath the D-Pad and right thumbstick instead of in the middle.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5j5Z3mRywJXeN9Uy6iQuLg" name="SteelSeries Aeon Pro-6" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/5j5Z3mRywJXeN9Uy6iQuLg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Aside from the thumbsticks, all the buttons—including the D-Pad—are clicky like a keyboard, which is appropriate for a PC controller. I should add that the triggers only click once you flip the trigger locks to shorten their actuation point. I’m a fan of the <a href="https://www.tomsguide.com/best-picks/best-mechanical-keyboards">best mechanical keyboards</a>, so I’m all about the clicky.</p><p>The back buttons generally don’t bother me because both are positioned where my middle and ring fingers naturally rest. That said, I wish they were removable, as on the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/scuf-valor-pro-review">Scuf Valor Pro</a>. This is a minor thing for me, but it could be frustrating if you’re not a fan of back buttons. Still, I’d rather have four permanent back buttons than none.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dkHaryt32gioYFxG2hHm9o" name="SteelSeries Aeon Pro-10" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/dkHaryt32gioYFxG2hHm9o-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Lastly, there are the Hall Effect thumbsticks. Even though TMR thumbsticks are all the rage now, Hall Effect — the OG magnetic switch type — still delivers smooth, precise movement, especially compared with traditional analog sticks. And since they’re magnetic instead of analog, you likely won’t have to suffer from stick drift for a long time — if ever.</p><h2 id="an-innovative-dock">An innovative dock</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5GDrxinx2tbQtNLg9eJ7xG" name="SteelSeries Aeon Pro-9" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/5GDrxinx2tbQtNLg9eJ7xG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Controller charging stations aren’t new. However, SteelSeries’ QuickSwitch Dock System (as the company calls it) does something I’ve never seen before on a controller dock: it charges a separate battery (included with the controller). So when the battery inside your controller runs out, you can simply swap in the fully charged one and keep playing without a major interruption.</p><p>If that sounds familiar, it’s because this feature comes from SteelSeries’ own <a href="https://www.tomsguide.com/reviews/steelseries-arctis-nova-pro-wireless">Arctis Nova Pro</a> headset, which has a hub that lets you charge its batteries. Best of all, the batteries for that headset and the Aeon Pro are interchangeable. If you own both peripherals, you’ll have four chargeable batteries at your disposal!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="j3Yq5pvDoHBfLKWPU6BnVb" name="SteelSeries Aeon Pro-8" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/j3Yq5pvDoHBfLKWPU6BnVb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Like the Arctis Nova Pro’s hub, the QuickSwitch Dock System lets you connect to your PC and Xbox at the same time via the two USB-C ports on the back. Thanks to this feature, you won’t have to constantly pair and re-pair the controller to whatever platform you’re using, as you would with other controllers.</p><p>Another cool feature is the two slots for extra thumbsticks. One thumbstick is the same size as the two on the controller, only it is convex instead of concave. The other thumbstick is about twice as long for more precise aiming in shooting games. The magnetic thumbsticks snap in and out easily, which is a bonus.</p><p>The compartment for the extra battery sits right under the thumbsticks, and you just press down to lock it in place or release it. This is a simple process, but it’s extremely satisfying to press the battery in and out.</p><h2 id="an-oled-screen-on-a-game-controller">An OLED screen on a game controller?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qGBqF7hLnJndZyT3ZopN7U" name="SteelSeries Aeon Pro-3" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/qGBqF7hLnJndZyT3ZopN7U-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Remapping buttons or fine-tuning thumbstick sensitivity on controllers usually requires you to dive into a dedicated desktop or mobile app. While the SteelSeries GG desktop app exists for that, you can almost effectively ignore it and still customize the Aeon Pro to your liking thanks to the integrated OLED screen.</p><p>On this monochrome screen, you can access profiles, switch between PC and Xbox, monitor battery life, and remap the controls. While the screen isn’t all that large, all the text appears nice and sharp.</p><p>My favorite thing about the OLED is that it quickly shows which profile you’re using, which is especially handy if you have different configurations for different genres or games. This way, I don’t have to open an app to see if I’m using the right profile, or remember which colors correspond to which layouts, like some controllers have you do.</p><p>Though I question why the screen needed to be OLED since it’s monochrome, I can’t complain about the results. Sure, you can make finer adjustments via the GG app, but it’s good that you can configure most of what you’d want right on the controller.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5ErZW"></div>                            </div>                            <script src="https://kwizly.com/embed/W5ErZW.js" async=""></script><h2 id="my-new-daily-driver">My new daily driver</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7YgfF97brCRTreyFWya6oY" name="SteelSeries Aeon Pro-2" alt="SteelSeries Aeon Pro" src="https://cdn.mos.cms.futurecdn.net/7YgfF97brCRTreyFWya6oY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>We’ll have a full review of the SteelSeries Aeon Pro controller for you soon, but I wanted to share my thoughts ahead of that since I’ve been enjoying this awesome peripheral for some time. Again, it’s definitely pricey, but given all the cool features it packs, I think it’s worth the money for hardcore PC gamers.</p><p>If you’ve liked what I had to say about the Aeon Pro, then give it a shot. I promise you won’t be disappointed.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/gaming-laptops/alienware-16-area-51-gaming-laptop-2026-review"><strong>I just tested the new Alienware 16 Area-51 — and the OLED panel makes it the complete package</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/laptops/lenovo-yoga-9n-2-in-1-hands-on"><strong>I went hands-on with Lenovo’s RTX Spark-powered Yoga 9n 2-in-1 laptop — and it’s a creative powerhouse</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/gaming/metal-gear-solid-4-on-ps5-is-an-almost-perfect-port-of-my-favorite-ps3-exclusive"><strong>Metal Gear Solid 4 on PS5 is an almost perfect port of my favorite PS3 exclusive</strong></a><strong></strong></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=gaming+controllers&amp;min_discount_ratio=0.95&amp;widget_title=Top+Deals+Handpicked+by+Our+Editors&amp;widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&amp;bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="8">8 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const finalHref = cardLink.href || cardLink.getAttribute('href') || '';                let actualRevenueId = cardLink.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.getFilteredDeals().slice(0, this.displayLimit), this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: this.decodeHTML(item.name || item.title || item.model_name || item.product_name || 'Unknown Product'),            brand: this.decodeHTML(item.brand || ''),            productName: this.decodeHTML(item.model_name || item.product_name || item.name || ''),            merchant: this.decodeHTML(item.merchant_name || item.merchant || item.retailer || 'Retailer'),            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const finalHref = btn.href || btn.getAttribute('href') || '';                let actualRevenueId = btn.getAttribute('data-revenue-id');                const revMatch = finalHref.match(/(?:subId1|xcust|clickref|ascsubtag)=[^&]*?(\d{18,20})(?:&|$)/i);                if (revMatch && revMatch[1]) {                  actualRevenueId = revMatch[1];                }                const rewrittenLink = finalHref;                const revenueId = actualRevenueId;                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Ignore the internet — Blood of Dawnwalker’s time limit is the best thing about this new RPG ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Since <a href="https://www.tomsguide.com/gaming/the-blood-of-dawnwalker-review">The Blood of Dawnwalker</a> launched last week (Sept. 3), the online conversation has centered on one subject: its time limit. In this new RPG from debut studio Rebel Wolves, which boasts several developers who worked on <a href="https://www.tomsguide.com/opinion/witcher-3-next-gen-update-is-even-better-than-expected-im-shocked-its-free">The Witcher 3: Wild Hunt</a>, you play human-vampire hybrid Coen, and you have exactly 30 days and 30 nights to save your family.</p><p>Unlike many other RPGs, where the story revolves around a deadline but players are free to get distracted for hours without consequences, in The Blood of Dawnwalker, most actions take up a “chunk” of time. There are eight chunks during the day and eight at night. While there’s no ticking clock, most tasks, from leveling up skills to completing quests, will take up anywhere from 1-3 chunks, so time is a constant presence.</p><p>This core pillar of the game has proven divisive. Arguably, even controversial. Shortly after the game’s launch, the most downloaded game mod on <a href="https://www.nexusmods.com/thebloodofdawnwalker/mods/10" target="_blank">Nexus Mods</a> was “Better Story Timer.” This PC mod lets you have as many days as you wish, or even remove the time limit. As of writing, it’s got more than 177,000 downloads, showing the strength of player feeling.</p><p>On my own social feeds, I’ve seen several people claim they’re not buying the game, citing the time limit as the reason. But I’m here to tell you, not only is the time limit far from a dealbreaker, it’s The Blood of the Dawnwalker’s biggest strength. It's undoubtedly the primary reason I’m currently absorbed in this compelling fantasy role-play experience.</p><div class="product"><a data-dimension112="06067a4a-ae0b-11f1-9de6-7970b0970285" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$69" href="https://www.amazon.com/BLOOD-DAWNWALKER-Day-PlayStation-5/dp/B0GWGTH4LF/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="grUo7YrfFA5aVGmKyetSiB" name="the-blood-of-dawnwalker-ps5-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/grUo7YrfFA5aVGmKyetSiB-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/BLOOD-DAWNWALKER-Day-PlayStation-5/dp/B0GWGTH4LF/" target="_blank" rel="nofollow" data-dimension112="06067a4a-ae0b-11f1-9de6-7970b0970285" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$69">(PS5): $69</a></strong><br />In The Blood of Dawnwalker, you play Coen, a human-vampire hybrid, on a quest to save his family from a vampire lord. A new fantasy RPG from debut developer Rebel Wolves, it's an experience where every choice matters, and you can shape the story and Coen himself.<a class="view-deal button" href="https://www.amazon.com/BLOOD-DAWNWALKER-Day-PlayStation-5/dp/B0GWGTH4LF/" target="_blank" rel="nofollow" data-dimension112="06067a4a-ae0b-11f1-9de6-7970b0970285" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$69">View Deal</a></p></div><h2 id="dawnwalker-makes-every-moment-matter">Dawnwalker makes every moment matter</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Fn7aYRVyRMM" allowfullscreen=""></iframe></div></div><p>In The Blood of Dawnwalker, because time is essentially a virtual currency, you’re constantly thinking about how to spend it.</p><p>The system makes you think before committing to an action. Even though 30 days and 30 nights is a pretty generous allotment — and <em>a lot</em> more than you need to beat the main quest — it’s still not an infinite supply.</p><p>The prologue teaches you that you can’t do everything. You’re given a few hours to fill, and your map is dotted with more quests than you can actually complete. I know for completionists that sounds like a nightmare, but it forced me to consider which quests interested me the most.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ujfhkmHidZnmycd95JQz" name="blood-of-dawnwalker-screenshot-02.JPG" alt="The Blood of Dawnwalker screenshot showcasing the game's time mechanic" src="https://cdn.mos.cms.futurecdn.net/ujfhkmHidZnmycd95JQz-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Rebel Wolves)</span></figcaption></figure><p>Did I really want to waste a portion of my precious time allowance helping a farmer find his missing pig, when there was a local mystery to solve? Did I want to spend the additional time playing tag with Coen’s siblings when that would cost me an hour I could use to complete another quest?</p><p>Even when the full game opens up, these choices continue. My focus is on spending time strategically to get the best return. Every time I’m notified that an action will advance time, I pause and think, “Do I want to use my time on this?” It adds an extra dimension to the experience and a real feeling of importance to even small decisions.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rTwyUXNCbbnXEvksqRpJRo" name="blood-of-dawnwalker-screenshot-01.JPG" alt="The Blood of Dawnwalker screenshot showcasing the game's time mechanic" src="https://cdn.mos.cms.futurecdn.net/rTwyUXNCbbnXEvksqRpJRo-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Rebel Wolves)</span></figcaption></figure><p>Leveling up is a great example of the mechanic’s effectiveness. Early skills come at no time cost, but later ones require a skill point and time to learn. In more conventional RPGs, I might be a bit careless with my skill points, but in The Blood of Dawnwalker, I’m really thinking about what abilities I’ll actually use. Because if I unlock a skill and then don’t use it, it’s cost me a skill point <em>and </em>valuable time I could have used elsewhere.</p><p>Again, to reiterate, for those still unconvinced about the system, time only moves forward when you choose to spend it. Unlike a title like <a href="https://www.tomsguide.com/gaming/ive-waited-18-years-for-this-ps5-remaster-and-the-final-result-has-me-torn">Dead Rising</a>, you’re not on a literal clock, so while there’s a degree of pressure when making choices, it doesn’t become overwhelming and suffocating.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJ9lEX"></div>                            </div>                            <script src="https://kwizly.com/embed/eJ9lEX.js" async=""></script><h2 id="the-time-limit-fixes-a-major-issue-with-rpgs">The time limit fixes a major issue with RPGs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rbofXLa9biryMjuvpr7gKY" name="the-blood-of-dawnwalker-screenshot-02" alt="Screenshot from The Blood of Dawnwalker preview event" src="https://cdn.mos.cms.futurecdn.net/rbofXLa9biryMjuvpr7gKY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rebel Wolves / Bandai Namco Entertainment)</span></figcaption></figure><p>The system is compelling not only from a design standpoint, but also from a narrative one. I’ve long felt that many RPGs struggle to pair together the freedom their worlds offer with the larger stories they’re trying to tell.</p><p>Take The Witcher 3, The Blood of Dawnwalker’s spiritual sibling, as an example. In that game’s story, Geralt of Rivia is desperately searching for his surrogate daughter Ciri before the eponymous Wild Hunt finds her. Yet, in my playthrough, Geralt spent dozens of hours roaming the land for odd jobs, neglecting to locate his ward. That creates narrative dissonance. </p><p>The same is true of CD Projekt Red’s other much-heralded RPG, <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a>. In that game, your character, V, is literally dying and on a desperate mission to save themselves before it’s too late. Yet, under my control, V spent countless hours just cruising the streets of Night City.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TkNhdm5KzhbbkeiCqSfJsa" name="Cyberpunk 2077.jpg" alt="Cyberpunk 2077" src="https://cdn.mos.cms.futurecdn.net/TkNhdm5KzhbbkeiCqSfJsa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt RED)</span></figcaption></figure><p>To be clear, I still enjoy those RPGs (I need The Witcher 4 like now), and this disconnect is something I generally accept in big open-world games, where you can ignore the main storyline for hours on end. However, I love that in The Blood of Dawnwalker, the deadline to save your family from a sinister vampire lord is an ever-present part of the experience.</p><p>So, if The Blood of Dawnwalker’s time limit has you reconsidering playing, I encourage you to see it as a valuable part of the experience, rather than as a harsh restriction. And if you’re playing on PC, resist the temptation to download a mod to remove the time limit. The game is entirely designed around the system, and I truly think that without it, it would be a lesser RPG.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/marvels-wolverine-is-a-playable-summer-blockbuster-but-fades-from-memory-fast">Marvel's Wolverine review: A playable superhero blockbuster</a></li><li><a href="https://www.tomsguide.com/news/live/gta-6-ps5-dualsense-controller-pre-orders-live-updates">GTA 6 DualSense pre-orders — where to buy yours now</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/ignore-the-internet-blood-of-dawnwalkers-time-limit-is-the-best-thing-about-this-new-rpg</link>
                                                                            <description>
                            <![CDATA[ The Blood of the Dawnwalker's time limit is proving divisive with players, but I believe it's actually this fantasy RPG's biggest strength. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uALGPnJAtnpZbbpXCzqw4j</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xGgQfgYiAfJ8hWLJXEKjHY-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 12 Sep 2026 10:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/xGgQfgYiAfJ8hWLJXEKjHY-1920-80.jpg">
                                                            <media:credit><![CDATA[Rebel Wolves / Bandai Namco Entertainment]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Screenshot from The Blood of Dawnwalker preview event]]></media:description>                                                            <media:text><![CDATA[Screenshot from The Blood of Dawnwalker preview event]]></media:text>
                                <media:title type="plain"><![CDATA[Screenshot from The Blood of Dawnwalker preview event]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xGgQfgYiAfJ8hWLJXEKjHY-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Since <a href="https://www.tomsguide.com/gaming/the-blood-of-dawnwalker-review">The Blood of Dawnwalker</a> launched last week (Sept. 3), the online conversation has centered on one subject: its time limit. In this new RPG from debut studio Rebel Wolves, which boasts several developers who worked on <a href="https://www.tomsguide.com/opinion/witcher-3-next-gen-update-is-even-better-than-expected-im-shocked-its-free">The Witcher 3: Wild Hunt</a>, you play human-vampire hybrid Coen, and you have exactly 30 days and 30 nights to save your family.</p><p>Unlike many other RPGs, where the story revolves around a deadline but players are free to get distracted for hours without consequences, in The Blood of Dawnwalker, most actions take up a “chunk” of time. There are eight chunks during the day and eight at night. While there’s no ticking clock, most tasks, from leveling up skills to completing quests, will take up anywhere from 1-3 chunks, so time is a constant presence.</p><p>This core pillar of the game has proven divisive. Arguably, even controversial. Shortly after the game’s launch, the most downloaded game mod on <a href="https://www.nexusmods.com/thebloodofdawnwalker/mods/10" target="_blank">Nexus Mods</a> was “Better Story Timer.” This PC mod lets you have as many days as you wish, or even remove the time limit. As of writing, it’s got more than 177,000 downloads, showing the strength of player feeling.</p><p>On my own social feeds, I’ve seen several people claim they’re not buying the game, citing the time limit as the reason. But I’m here to tell you, not only is the time limit far from a dealbreaker, it’s The Blood of the Dawnwalker’s biggest strength. It's undoubtedly the primary reason I’m currently absorbed in this compelling fantasy role-play experience.</p><div class="product"><a data-dimension112="06067a4a-ae0b-11f1-9de6-7970b0970285" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$69" href="https://www.amazon.com/BLOOD-DAWNWALKER-Day-PlayStation-5/dp/B0GWGTH4LF/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1298px;"><p class="vanilla-image-block" style="padding-top:115.56%;"><img id="grUo7YrfFA5aVGmKyetSiB" name="the-blood-of-dawnwalker-ps5-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/grUo7YrfFA5aVGmKyetSiB-1920-80.jpg" mos="" align="middle" fullscreen="" width="1298" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/BLOOD-DAWNWALKER-Day-PlayStation-5/dp/B0GWGTH4LF/" target="_blank" rel="nofollow" data-dimension112="06067a4a-ae0b-11f1-9de6-7970b0970285" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$69">(PS5): $69</a></strong><br />In The Blood of Dawnwalker, you play Coen, a human-vampire hybrid, on a quest to save his family from a vampire lord. A new fantasy RPG from debut developer Rebel Wolves, it's an experience where every choice matters, and you can shape the story and Coen himself.<a class="view-deal button" href="https://www.amazon.com/BLOOD-DAWNWALKER-Day-PlayStation-5/dp/B0GWGTH4LF/" target="_blank" rel="nofollow" data-dimension112="06067a4a-ae0b-11f1-9de6-7970b0970285" data-action="Deal Block" data-label="(PS5)" data-dimension48="(PS5)" data-dimension25="$69">View Deal</a></p></div><h2 id="dawnwalker-makes-every-moment-matter">Dawnwalker makes every moment matter</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Fn7aYRVyRMM" allowfullscreen=""></iframe></div></div><p>In The Blood of Dawnwalker, because time is essentially a virtual currency, you’re constantly thinking about how to spend it.</p><p>The system makes you think before committing to an action. Even though 30 days and 30 nights is a pretty generous allotment — and <em>a lot</em> more than you need to beat the main quest — it’s still not an infinite supply.</p><p>The prologue teaches you that you can’t do everything. You’re given a few hours to fill, and your map is dotted with more quests than you can actually complete. I know for completionists that sounds like a nightmare, but it forced me to consider which quests interested me the most.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ujfhkmHidZnmycd95JQz" name="blood-of-dawnwalker-screenshot-02.JPG" alt="The Blood of Dawnwalker screenshot showcasing the game's time mechanic" src="https://cdn.mos.cms.futurecdn.net/ujfhkmHidZnmycd95JQz-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Rebel Wolves)</span></figcaption></figure><p>Did I really want to waste a portion of my precious time allowance helping a farmer find his missing pig, when there was a local mystery to solve? Did I want to spend the additional time playing tag with Coen’s siblings when that would cost me an hour I could use to complete another quest?</p><p>Even when the full game opens up, these choices continue. My focus is on spending time strategically to get the best return. Every time I’m notified that an action will advance time, I pause and think, “Do I want to use my time on this?” It adds an extra dimension to the experience and a real feeling of importance to even small decisions.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rTwyUXNCbbnXEvksqRpJRo" name="blood-of-dawnwalker-screenshot-01.JPG" alt="The Blood of Dawnwalker screenshot showcasing the game's time mechanic" src="https://cdn.mos.cms.futurecdn.net/rTwyUXNCbbnXEvksqRpJRo-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bandai Namco Entertainment / Rebel Wolves)</span></figcaption></figure><p>Leveling up is a great example of the mechanic’s effectiveness. Early skills come at no time cost, but later ones require a skill point and time to learn. In more conventional RPGs, I might be a bit careless with my skill points, but in The Blood of Dawnwalker, I’m really thinking about what abilities I’ll actually use. Because if I unlock a skill and then don’t use it, it’s cost me a skill point <em>and </em>valuable time I could have used elsewhere.</p><p>Again, to reiterate, for those still unconvinced about the system, time only moves forward when you choose to spend it. Unlike a title like <a href="https://www.tomsguide.com/gaming/ive-waited-18-years-for-this-ps5-remaster-and-the-final-result-has-me-torn">Dead Rising</a>, you’re not on a literal clock, so while there’s a degree of pressure when making choices, it doesn’t become overwhelming and suffocating.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJ9lEX"></div>                            </div>                            <script src="https://kwizly.com/embed/eJ9lEX.js" async=""></script><h2 id="the-time-limit-fixes-a-major-issue-with-rpgs">The time limit fixes a major issue with RPGs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rbofXLa9biryMjuvpr7gKY" name="the-blood-of-dawnwalker-screenshot-02" alt="Screenshot from The Blood of Dawnwalker preview event" src="https://cdn.mos.cms.futurecdn.net/rbofXLa9biryMjuvpr7gKY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rebel Wolves / Bandai Namco Entertainment)</span></figcaption></figure><p>The system is compelling not only from a design standpoint, but also from a narrative one. I’ve long felt that many RPGs struggle to pair together the freedom their worlds offer with the larger stories they’re trying to tell.</p><p>Take The Witcher 3, The Blood of Dawnwalker’s spiritual sibling, as an example. In that game’s story, Geralt of Rivia is desperately searching for his surrogate daughter Ciri before the eponymous Wild Hunt finds her. Yet, in my playthrough, Geralt spent dozens of hours roaming the land for odd jobs, neglecting to locate his ward. That creates narrative dissonance. </p><p>The same is true of CD Projekt Red’s other much-heralded RPG, <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a>. In that game, your character, V, is literally dying and on a desperate mission to save themselves before it’s too late. Yet, under my control, V spent countless hours just cruising the streets of Night City.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TkNhdm5KzhbbkeiCqSfJsa" name="Cyberpunk 2077.jpg" alt="Cyberpunk 2077" src="https://cdn.mos.cms.futurecdn.net/TkNhdm5KzhbbkeiCqSfJsa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt RED)</span></figcaption></figure><p>To be clear, I still enjoy those RPGs (I need The Witcher 4 like now), and this disconnect is something I generally accept in big open-world games, where you can ignore the main storyline for hours on end. However, I love that in The Blood of Dawnwalker, the deadline to save your family from a sinister vampire lord is an ever-present part of the experience.</p><p>So, if The Blood of Dawnwalker’s time limit has you reconsidering playing, I encourage you to see it as a valuable part of the experience, rather than as a harsh restriction. And if you’re playing on PC, resist the temptation to download a mod to remove the time limit. The game is entirely designed around the system, and I truly think that without it, it would be a lesser RPG.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/best-picks/the-best-ps5-games">The best PS5 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/marvels-wolverine-is-a-playable-summer-blockbuster-but-fades-from-memory-fast">Marvel's Wolverine review: A playable superhero blockbuster</a></li><li><a href="https://www.tomsguide.com/news/live/gta-6-ps5-dualsense-controller-pre-orders-live-updates">GTA 6 DualSense pre-orders — where to buy yours now</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I ran Counter-Strike at 600fps to test out Sony’s elite esports monitor — here’s my verdict ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Sony’s elite esports gaming monitor just got, well, even more elite. The Inzone M10S II succeeds (you guessed it) the original M10S — a monitor I know well. I attended the original M10S launch at Gamescom 2024, where I spoke with the Fnatic esports team, who were heavily involved in its design, and the Sony engineers who brought Fnatic’s requests to life.</p><p>The new model shares the same core objectives as its predecessor: to provide professional esports gamers, or those aspiring to be one, with everything they need. As such, the core formula remains largely unchanged: blazing refresh and response rates; an array of features tailored entirely to esports; all combined with Sony’s premium design.</p><p>This time, refresh rates have been boosted in QHD and FHD modes; there’s a new anti-glare coating and a brightness boost, at least on paper. So, is this the <a href="https://www.tomsguide.com/us/best-gaming-monitors,review-3114.html"><u>best gaming monitor</u></a> for elite players? Find out in my full Sony Inzone M10S II review.</p><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-cheat-sheet"><span>Sony Inzone M10S II review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>An elite esports gaming monitor</li><li><strong>Who is it for? </strong>Pro esports gamers, or those aspiring to be</li><li><strong>What does it cost? </strong><a href="https://electronics.sony.com/tv-video/gaming-monitors/all-inzone-monitors/p/sdm27q102-b" target="_blank" rel="nofollow">$1,099</a> / <a href="https://www.amazon.co.uk/Sony-INZONE-M10S-Gaming-Monitor/dp/B0GVJFDTB3/" target="_blank" rel="nofollow">£1,199</a></li><li><strong>What do we like? </strong>Be-all, end-all gaming performance and features; premium and thoughtful design</li><li><strong>What don’t we like? </strong>Not the brightest compared to other OLED monitors; USB-A and -B ports only</li></ul><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-specs"><span>Sony Inzone M10S II review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://electronics.sony.com/tv-video/gaming-monitors/all-inzone-monitors/p/sdm27q102-b" target="_blank" rel="nofollow">$1,099</a> / <a href="https://www.amazon.co.uk/Sony-INZONE-M10S-Gaming-Monitor/dp/B0GVJFDTB3/" target="_blank" rel="nofollow">£1,199</a></p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>27-inch</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>2560 x 1440</p></td></tr><tr><td class="firstcol " ><p><strong>Aspect ratio</strong></p></td><td  ><p>16:9</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>540Hz (QHD); 720Hz (HD)</p></td></tr><tr><td class="firstcol " ><p><strong>Response time</strong></p></td><td  ><p>0.02ms</p></td></tr><tr><td class="firstcol " ><p><strong>Panel type</strong></p></td><td  ><p>OLED</p></td></tr><tr><td class="firstcol " ><p><strong>Color depth</strong></p></td><td  ><p>10-bit</p></td></tr><tr><td class="firstcol " ><p><strong>Inputs</strong></p></td><td  ><p>DisplayPort 2.1; 2x HDMI 2.1; 1x USB Type-B upstream; 2x USB Type-A downstream; 1x USB Type-A (software update only); 3.5mm jack</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>23.8 x 19.8 x 7.8 inches (with stand)</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>13.67 lbs (with stand)</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-the-ups"><span>Sony Inzone M10S II review: The ups</span></h2><p>The M10S II has one job: to be the ultimate gaming monitor for esports players. With its impressive specs and an extensive array of performance and quality-of-life features, it succeeds. And as a Sony product, it boasts premium looks and a high-quality build.</p><h2 id="ultra-fast-performance">Ultra-fast performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dgELH7YWCoEkHwQJffwJaZ" name="Sony_M10S2_ 2.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/dgELH7YWCoEkHwQJffwJaZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The M10S II packs so many gaming features that I’ll have to break them up. First, I’ll cover the hardware side of things. And <em>that</em> refresh rate! With 540Hz in QHD mode and up to 720Hz when dropping to 720p (HD), this monitor is absolutely rapid, relaying enemy movement as accurately as possible, with no motion blur or lag.</p><p>With an ultra low response time of 0.02ms gtg (gray to gray, which means how fast the pixels can change color), plus Sony’s Motion Blur Reduction, ghosting is effectively removed. There’s also G-Sync to remove tearing, especially in situations with rapidly changing frame rates. All this means the enemy you’re shooting at is more likely to be exactly where you’re seeing it, and you aren’t shooting its ghost trail or some other artefact.</p><p>I’m not an esports pro, of course, but playing Counter-Strike 2 at 600fps was a smooth experience — though not particularly enjoyable at 720p. Our TG testing rig couldn’t hit the maximum 720fps, even with Counter-Strike set to low and running at 720p, but topping out at 600fps was still pretty cool. At 1440p with Counter-Strike on high settings, our testing rig still hit around 400fps.</p><p>The original M10S looks like a tortoise in comparison, topping out at <em><strong>only</strong></em> 480Hz and a <em><strong>mere</strong></em> 0.03ms response time. Our favorite high-refresh-rate monitor (up to now), the <a href="https://www.tomsguide.com/computing/monitors/msi-mag-272qp-qd-oled-x50-review"><u>MSI MAG 272QP QD-OLED X50</u></a> ($749), manages <em><strong>just</strong></em> 500Hz.</p><h2 id="plethora-of-gaming-features">Plethora of gaming features</h2><p>The M10S II also offers a comprehensive array of gaming features designed to suit elite gamers — like the Fnatic team. There’s a 24.5-inch tournament crop for competition practice, and two FPS modes, FPS Pro (which simulates an LCD) and FPS Pro+, which adjust contrast ratios to make enemy detection easier, especially in dimly lit game scenarios. I especially enjoyed using FPS Pro when playing Hell Let Loose, particularly on darker nighttime maps, as it lifted the blacks a little to help me spot enemies hiding in bushes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="S4SAwUmha8JfVBRu7TriZa" name="Sony_M10S2_ 5.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/S4SAwUmha8JfVBRu7TriZa-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Those aren’t the only game modes, though, as there’s a specific MOBA/RTS mode, as well as a general game mode for casual play.</p><p>There’s also an on-screen crosshair with a variety of crosshair types to choose from. I found this really handy in Counter-Strike 2, where many guns have no ADS mode and the in-game crosshair expands and contracts with movement and movement penalties. It was also super useful in Hell Let Loose, as it allowed me to more accurately fire from the hip and score reflex kills on enemies popping up from bushes or around corners, which I might otherwise have missed.</p><p>On that note, there’s also a black equalizer mode to brighten shadows without affecting lighter areas of the screen. This is handy if you’re already in a game-specific mode and only want to boost shadows, or if affecting highlights would hamper your performance.</p><h2 id="plus-some-useful-qol-features">Plus some useful QoL features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6ZRAudYR7PuyXrwbVscXiZ" name="Sony_M10S2_ 3.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/6ZRAudYR7PuyXrwbVscXiZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I also appreciate some of the quality-of-life (QoL) features found in the M10S range. The M10S II, like its predecessor, is designed with setup flexibility as a key consideration, and plenty of attention has been paid to the details.</p><p>In particular, there’s the stand. The M10S II features the same cantilevered stand as its predecessor. I actually spoke to the engineer who designed this stand at the original M10S press briefing — the stand was his passion project because he was trying to solve an issue he had with monitors. The cantilever channels all the weight into the center for perfect balance, allowing Sony to keep the base small.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/EmMsEVzXmWDZwR9XjPvFYF-1920-80.jpg" alt="A keyboard about to be slid over the M10S II's base stand" /><figcaption>Before!<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/xD4knPrxjzJpq95fLuAYTF-1920-80.jpg" alt="A keyboard over the M10S II's base stand" /><figcaption>After!<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/AmxfvLVC93t7jNrUE2ZFaF-1920-80.jpg" alt="The Sony M10S II's cable tidy" /><figcaption>And the cable tidy doing its job admirably.<small role="credit">Future</small></figcaption></figure></figure><p>The M10S II is therefore much easier to position than many other monitors. The M10S II replaced my <a href="https://www.tomsguide.com/computing/monitors/lenovo-legion-r27qe-gen-2-review"><u>Lenovo Legion R27qe Gen 2</u></a> (£199, U.K. only), with its enormous tripod stand — with the Sony, my desk felt so much more spacious and open, and for once I had room for other products I was testing. The base is also extremely thin, deliberately designed so you can slide your keyboard over it and keep your desk tidy when not in use. The arm swivels, so you can adjust the monitor's rotation without having to pick up and move the whole assembly. And there's a neat cable tidy to, well, keep your cables tidy!</p><p>I’m also a big fan of the anti-glare coating on the screen. I work with a window behind me in the office, along with overhead lighting. I was able to game and work on the M10S II for hours without eye strain or headaches.</p><h2 id="accurate-color-rendition">Accurate color rendition</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="s2sHA2gKHAZTa69V3Et8Ha" name="Sony_M10S2_ 4.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/s2sHA2gKHAZTa69V3Et8Ha-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the M10S II isn’t a production monitor, it’s still important that the panel reproduces color accurately. Thankfully, the M10S II does! As you can see in our lab test results below, the M10S II achieved a Delta-E score of 0.26. This score measures how closely the on-screen color matches the color sent to the display by the computer, and the lower the better.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Product name</strong></p></th><th  ><p><strong>Panel type</strong></p></th><th  ><p><strong>Delta E</strong></p></th><th  ><p><strong>sRGB volume</strong></p></th><th  ><p><strong>DCI P3 volume</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sony Inzone M10S II</strong></p></td><td  ><p>OLED</p></td><td  ><p>0.26</p></td><td  ><p>185.80%</p></td><td  ><p>131.60%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/msi-mpg-272urx-qd-oled-monitor-review"><strong>MSI MPG 272URX QD-OLED</strong></a></p></td><td  ><p>OLED</p></td><td  ><p>0.15</p></td><td  ><p>131%</p></td><td  ><p>97%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/lenovo-legion-pro-34wd-10-oled-review"><strong>Lenovo Legion Pro 34WD10</strong></a></p></td><td  ><p>OLED</p></td><td  ><p>0.08</p></td><td  ><p>156.40%</p></td><td  ><p>110.80%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/alienware-aw2725q-gaming-monitor-review"><strong>Alienware AW2725Q</strong></a></p></td><td  ><p>QD-OLED</p></td><td  ><p>0.06</p></td><td  ><p>182.50%</p></td><td  ><p>129.30%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/msi-mag-272qp-qd-oled-x50-review"><strong>MSI MAG 272 QP QD-OLED X50</strong></a></p></td><td  ><p>OLED</p></td><td  ><p>0.11</p></td><td  ><p>192.90%</p></td><td  ><p>136.70%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/msi-mpg-341cqr-qd-oled-x36-review"><strong>MSI MPG 341CQR QD-OLED X36</strong></a></p></td><td  ><p>QD-OLED</p></td><td  ><p>0.15</p></td><td  ><p>166.30%</p></td><td  ><p>117.80%</p></td></tr></tbody></table></div><p>A 0.26 Delta-E isn’t as good as some of the other gaming monitors we’ve tested, such as the Alienware AW2525HM, MSI MAG 272 QP, or MSI MPG 341CQR QD-OLED X36. But it’s still fairly respectable, and it means the colors you’re seeing on screen are rendered accurately.</p><p>The M10S II also covers both the sRGB and DCI-P3 color gamuts. What does that mean? Games are mastered in sRGB for SDR and in DCI-P3 for HDR, so the M10S II can reproduce every unique color in every game you play.</p><p>Now, an ultra-wide gamut can cause oversaturation in those spaces, resulting in an unnatural, neon effect. So, more technically isn’t always better. But while colors appear very bold and vivid on the M10S II, they didn’t feel overdone. And besides, there are sRGB and Cinema (for DCI-P3) color modes if you want to ensure strict accuracy to those gamuts.</p><h2 id="sony-s-typically-premium-design">Sony’s typically premium design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TKK6c4T63tdmtZJU3kNfba" name="Sony_M10S2_ 8.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/TKK6c4T63tdmtZJU3kNfba-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Unsurprisingly, as this is a Sony product, the M10S II is built extremely well. The monitor looks and feels premium, with high-quality materials used throughout.</p><p>The rear of the display is finished in textured metal rather than plastic. The stand and base are also made from metal and feel extremely sturdy. It simply feels built to last, and there’s a three-year warranty to back it up anyway.</p><h2 id="arguably-good-value">Arguably good value</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LarUzNpMtjrLRDAFWrQmuZ" name="Sony_M10S2_ 6.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/LarUzNpMtjrLRDAFWrQmuZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This might sound a little odd given that the M10S II costs <a href="https://electronics.sony.com/tv-video/gaming-monitors/all-inzone-monitors/p/sdm27q102-b" target="_blank" rel="nofollow"><u>$1,099</u></a> / <a href="https://www.amazon.co.uk/Sony-INZONE-M10S-Gaming-Monitor/dp/B0GVJFDTB3/" target="_blank" rel="nofollow"><u>£1,199</u></a>, but I’d argue it’s fairly good value. It’s not uncommon for gaming monitors to push well beyond the $1,000 mark. The <a href="https://www.tomsguide.com/computing/monitors/lenovo-legion-pro-34wd-10-oled-review"><u>Lenovo Legion Pro 34WD-10 OLED</u></a>, for example, launched at $1,099. The <a href="https://www.tomsguide.com/reviews/samsung-odyssey-oled-g9"><u>Samsung Odyssey OLED G9</u></a>, meanwhile, launched at $1,799.</p><p>I know: those are ultrawides, and their prices have dropped since launch. But what I mean here is that the M10S II isn’t priced beyond the pale. And yet it offers superb performance for elite gamers. If you’re one of those people, the M10S II could make strong financial and competitive sense.</p><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-the-downs"><span>Sony Inzone M10S II review: The downs</span></h2><p>The Inzone M10S II doesn’t have many faults. However, it’s not the brightest OLED we’ve lab tested, and the USB ports on the underside are pretty dated.</p><h2 id="not-the-brightest">Not the brightest</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HZwVkRiBJBLqzXttnbMSga" name="Sony_M10S2_ 7.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/HZwVkRiBJBLqzXttnbMSga-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We don’t like to rely on manufacturer claims, which are often best-case scenarios and can be a tad (to say the least) unrealistic. As such, as part of our lab testing process, we also measure peak SDR and HDR brightness.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Product name</strong></p></th><th  ><p><strong>Panel type</strong></p></th><th  ><p><strong>Nits (HDR, at 10%)</strong></p></th><th  ><p><strong>Nits (SDR)</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sony Inzone M10S II</strong></p></td><td  ><p>OLED</p></td><td  ><p>146 </p></td><td  ><p>231</p></td></tr><tr><td class="firstcol " ><p><strong>MSI MPG 272URX QD-OLED</strong></p></td><td  ><p>OLED</p></td><td  ><p>449 </p></td><td  ><p>254</p></td></tr><tr><td class="firstcol " ><p><strong>Lenovo Legion Pro 34WD10</strong></p></td><td  ><p>OLED</p></td><td  ><p>443</p></td><td  ><p>265</p></td></tr><tr><td class="firstcol " ><p><strong>Alienware AW2725Q</strong></p></td><td  ><p>QD-OLED</p></td><td  ><p>334</p></td><td  ><p>250 </p></td></tr><tr><td class="firstcol " ><p><strong>MSI MAG 272 QP</strong></p></td><td  ><p>OLED</p></td><td  ><p>284 </p></td><td  ><p>289</p></td></tr><tr><td class="firstcol " ><p><strong>MSI MPG 341CQR QD-OLED X36</strong></p></td><td  ><p>QD-OLED</p></td><td  ><p>413</p></td><td  ><p>280</p></td></tr></tbody></table></div><p>As you can see in the test results, the M10S II isn’t as bright as other OLED gaming panels we’ve tested and is well below the (rather ambitious) 1,500-nit peak brightness claimed by Sony.</p><p>Still, when you think about it, this monitor’s primary purpose is to be used in a dark room. And besides, figures alone don’t always tell the full story, and I certainly wouldn’t let our measured peak brightness put you off buying this monitor. I’ve had no issues using it in bright environments, largely thanks to the anti-glare coating. And I never struggled with darker in-game scenarios, thanks to the different color modes and black point equalizer.</p><h2 id="dated-usb-ports">Dated USB ports</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QMNtiWvm7wPDH9KhHvZa3a" name="Sony_M10S2_ 9.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/QMNtiWvm7wPDH9KhHvZa3a-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>My only other gripe with the M10S II is that it uses fairly dated ports, at least when it comes to USB (with HDMI 2.1 and DisplayPort 2.1, the video ports are just fine). There are two USB-A downstream ports and a USB-B upstream port. These are outdated, and it would’ve been nice to see at least a USB-C port or two.</p><p>Again, it’s important to remember use cases here. I’m not going to complain about the lack of a Thunderbolt port or KVM controller on a monitor that isn’t designed for productivity, but come on, it’s 2026… how can Sony fit a Type-B but not a single Type-C?</p><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-verdict"><span>Sony Inzone M10S II review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xdncXHJiq6rPWsCo2R3LFa" name="Sony_M10S2_.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/xdncXHJiq6rPWsCo2R3LFa-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you want the fastest and most feature-packed gaming monitor around, especially if you’re an elite competitive player or aspiring pro, I wholeheartedly recommend the Sony Inzone M10S II.</p><p>Its flaws are very few and fairly minor. What’s more, it not only delivers blazing-fast hardware performance but also a huge roster of genuinely useful gaming tools and thoughtful quality-of-life features! Then there’s Sony’s usual build quality and a fairly reasonable price tag, all things considered. I’m genuinely rather sad to be giving it back to Sony!</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/monitors/sony-inzone-m10s-ii-review</link>
                                                                            <description>
                            <![CDATA[ The Sony Inzone M10S II is ultra fast, built beautifully and packs plenty of gaming features. Its flaws are few, although it isn't the brightest. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">JbAH7NarBmT6NbfUPdwVZR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nfhB5rkXZny2jcAYhL3Sga-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 11 Sep 2026 12:02:35 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Monitors]]></category>
                                                    <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ peter.wolinski@futurenet.com (Peter Wolinski) ]]></author>                    <dc:creator><![CDATA[ Peter Wolinski ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/stgPfXWY7ukw8J8rfC7vjg-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Peter is a Senior Editor at Tom&#039;s Guide, heading up the site&#039;s Reviews team and Cameras section. Having built gaming PCs since he was 10 (that&#039;s a while ago now) he&#039;s a bit of a nerd about components and hardware. He&#039;s also been an iPhone user since the classic iPhone 4, and a Mac user for well over a decade. Experienced in using and testing all kinds of technology — from phones through to tablets, computers, games consoles, cameras and smart home tech — helping people find the best tech for them (at the best prices) is what Peter does best. A photographer since he bought his first camera (a Fujifilm) in 2015, Peter was previously an Editor for Canon-Europe.com. He then edited the Cameras and How To sections of Tom&#039;s Guide. When he&#039;s not crafting helpful, in-depth reviews, Peter can usually be found out and about honing his architectural photography skills, riding his motorcycle around Welsh mountain roads, telling everyone about his two greyhounds, squeezing a few extra FPS out of PC games or perfecting his espresso shots.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nfhB5rkXZny2jcAYhL3Sga-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Sony Inzone M10S II against a blue gradient background]]></media:description>                                                            <media:text><![CDATA[The Sony Inzone M10S II against a blue gradient background]]></media:text>
                                <media:title type="plain"><![CDATA[The Sony Inzone M10S II against a blue gradient background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nfhB5rkXZny2jcAYhL3Sga-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Sony’s elite esports gaming monitor just got, well, even more elite. The Inzone M10S II succeeds (you guessed it) the original M10S — a monitor I know well. I attended the original M10S launch at Gamescom 2024, where I spoke with the Fnatic esports team, who were heavily involved in its design, and the Sony engineers who brought Fnatic’s requests to life.</p><p>The new model shares the same core objectives as its predecessor: to provide professional esports gamers, or those aspiring to be one, with everything they need. As such, the core formula remains largely unchanged: blazing refresh and response rates; an array of features tailored entirely to esports; all combined with Sony’s premium design.</p><p>This time, refresh rates have been boosted in QHD and FHD modes; there’s a new anti-glare coating and a brightness boost, at least on paper. So, is this the <a href="https://www.tomsguide.com/us/best-gaming-monitors,review-3114.html"><u>best gaming monitor</u></a> for elite players? Find out in my full Sony Inzone M10S II review.</p><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-cheat-sheet"><span>Sony Inzone M10S II review: Cheat sheet</span></h2><ul><li><strong>What is it? </strong>An elite esports gaming monitor</li><li><strong>Who is it for? </strong>Pro esports gamers, or those aspiring to be</li><li><strong>What does it cost? </strong><a href="https://electronics.sony.com/tv-video/gaming-monitors/all-inzone-monitors/p/sdm27q102-b" target="_blank" rel="nofollow">$1,099</a> / <a href="https://www.amazon.co.uk/Sony-INZONE-M10S-Gaming-Monitor/dp/B0GVJFDTB3/" target="_blank" rel="nofollow">£1,199</a></li><li><strong>What do we like? </strong>Be-all, end-all gaming performance and features; premium and thoughtful design</li><li><strong>What don’t we like? </strong>Not the brightest compared to other OLED monitors; USB-A and -B ports only</li></ul><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-specs"><span>Sony Inzone M10S II review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://electronics.sony.com/tv-video/gaming-monitors/all-inzone-monitors/p/sdm27q102-b" target="_blank" rel="nofollow">$1,099</a> / <a href="https://www.amazon.co.uk/Sony-INZONE-M10S-Gaming-Monitor/dp/B0GVJFDTB3/" target="_blank" rel="nofollow">£1,199</a></p></td></tr><tr><td class="firstcol " ><p><strong>Display</strong></p></td><td  ><p>27-inch</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>2560 x 1440</p></td></tr><tr><td class="firstcol " ><p><strong>Aspect ratio</strong></p></td><td  ><p>16:9</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>540Hz (QHD); 720Hz (HD)</p></td></tr><tr><td class="firstcol " ><p><strong>Response time</strong></p></td><td  ><p>0.02ms</p></td></tr><tr><td class="firstcol " ><p><strong>Panel type</strong></p></td><td  ><p>OLED</p></td></tr><tr><td class="firstcol " ><p><strong>Color depth</strong></p></td><td  ><p>10-bit</p></td></tr><tr><td class="firstcol " ><p><strong>Inputs</strong></p></td><td  ><p>DisplayPort 2.1; 2x HDMI 2.1; 1x USB Type-B upstream; 2x USB Type-A downstream; 1x USB Type-A (software update only); 3.5mm jack</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>23.8 x 19.8 x 7.8 inches (with stand)</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>13.67 lbs (with stand)</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-the-ups"><span>Sony Inzone M10S II review: The ups</span></h2><p>The M10S II has one job: to be the ultimate gaming monitor for esports players. With its impressive specs and an extensive array of performance and quality-of-life features, it succeeds. And as a Sony product, it boasts premium looks and a high-quality build.</p><h2 id="ultra-fast-performance">Ultra-fast performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="dgELH7YWCoEkHwQJffwJaZ" name="Sony_M10S2_ 2.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/dgELH7YWCoEkHwQJffwJaZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The M10S II packs so many gaming features that I’ll have to break them up. First, I’ll cover the hardware side of things. And <em>that</em> refresh rate! With 540Hz in QHD mode and up to 720Hz when dropping to 720p (HD), this monitor is absolutely rapid, relaying enemy movement as accurately as possible, with no motion blur or lag.</p><p>With an ultra low response time of 0.02ms gtg (gray to gray, which means how fast the pixels can change color), plus Sony’s Motion Blur Reduction, ghosting is effectively removed. There’s also G-Sync to remove tearing, especially in situations with rapidly changing frame rates. All this means the enemy you’re shooting at is more likely to be exactly where you’re seeing it, and you aren’t shooting its ghost trail or some other artefact.</p><p>I’m not an esports pro, of course, but playing Counter-Strike 2 at 600fps was a smooth experience — though not particularly enjoyable at 720p. Our TG testing rig couldn’t hit the maximum 720fps, even with Counter-Strike set to low and running at 720p, but topping out at 600fps was still pretty cool. At 1440p with Counter-Strike on high settings, our testing rig still hit around 400fps.</p><p>The original M10S looks like a tortoise in comparison, topping out at <em><strong>only</strong></em> 480Hz and a <em><strong>mere</strong></em> 0.03ms response time. Our favorite high-refresh-rate monitor (up to now), the <a href="https://www.tomsguide.com/computing/monitors/msi-mag-272qp-qd-oled-x50-review"><u>MSI MAG 272QP QD-OLED X50</u></a> ($749), manages <em><strong>just</strong></em> 500Hz.</p><h2 id="plethora-of-gaming-features">Plethora of gaming features</h2><p>The M10S II also offers a comprehensive array of gaming features designed to suit elite gamers — like the Fnatic team. There’s a 24.5-inch tournament crop for competition practice, and two FPS modes, FPS Pro (which simulates an LCD) and FPS Pro+, which adjust contrast ratios to make enemy detection easier, especially in dimly lit game scenarios. I especially enjoyed using FPS Pro when playing Hell Let Loose, particularly on darker nighttime maps, as it lifted the blacks a little to help me spot enemies hiding in bushes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="S4SAwUmha8JfVBRu7TriZa" name="Sony_M10S2_ 5.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/S4SAwUmha8JfVBRu7TriZa-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Those aren’t the only game modes, though, as there’s a specific MOBA/RTS mode, as well as a general game mode for casual play.</p><p>There’s also an on-screen crosshair with a variety of crosshair types to choose from. I found this really handy in Counter-Strike 2, where many guns have no ADS mode and the in-game crosshair expands and contracts with movement and movement penalties. It was also super useful in Hell Let Loose, as it allowed me to more accurately fire from the hip and score reflex kills on enemies popping up from bushes or around corners, which I might otherwise have missed.</p><p>On that note, there’s also a black equalizer mode to brighten shadows without affecting lighter areas of the screen. This is handy if you’re already in a game-specific mode and only want to boost shadows, or if affecting highlights would hamper your performance.</p><h2 id="plus-some-useful-qol-features">Plus some useful QoL features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6ZRAudYR7PuyXrwbVscXiZ" name="Sony_M10S2_ 3.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/6ZRAudYR7PuyXrwbVscXiZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I also appreciate some of the quality-of-life (QoL) features found in the M10S range. The M10S II, like its predecessor, is designed with setup flexibility as a key consideration, and plenty of attention has been paid to the details.</p><p>In particular, there’s the stand. The M10S II features the same cantilevered stand as its predecessor. I actually spoke to the engineer who designed this stand at the original M10S press briefing — the stand was his passion project because he was trying to solve an issue he had with monitors. The cantilever channels all the weight into the center for perfect balance, allowing Sony to keep the base small.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/EmMsEVzXmWDZwR9XjPvFYF-1920-80.jpg" alt="A keyboard about to be slid over the M10S II's base stand" /><figcaption>Before!<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/xD4knPrxjzJpq95fLuAYTF-1920-80.jpg" alt="A keyboard over the M10S II's base stand" /><figcaption>After!<small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/AmxfvLVC93t7jNrUE2ZFaF-1920-80.jpg" alt="The Sony M10S II's cable tidy" /><figcaption>And the cable tidy doing its job admirably.<small role="credit">Future</small></figcaption></figure></figure><p>The M10S II is therefore much easier to position than many other monitors. The M10S II replaced my <a href="https://www.tomsguide.com/computing/monitors/lenovo-legion-r27qe-gen-2-review"><u>Lenovo Legion R27qe Gen 2</u></a> (£199, U.K. only), with its enormous tripod stand — with the Sony, my desk felt so much more spacious and open, and for once I had room for other products I was testing. The base is also extremely thin, deliberately designed so you can slide your keyboard over it and keep your desk tidy when not in use. The arm swivels, so you can adjust the monitor's rotation without having to pick up and move the whole assembly. And there's a neat cable tidy to, well, keep your cables tidy!</p><p>I’m also a big fan of the anti-glare coating on the screen. I work with a window behind me in the office, along with overhead lighting. I was able to game and work on the M10S II for hours without eye strain or headaches.</p><h2 id="accurate-color-rendition">Accurate color rendition</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="s2sHA2gKHAZTa69V3Et8Ha" name="Sony_M10S2_ 4.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/s2sHA2gKHAZTa69V3Et8Ha-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the M10S II isn’t a production monitor, it’s still important that the panel reproduces color accurately. Thankfully, the M10S II does! As you can see in our lab test results below, the M10S II achieved a Delta-E score of 0.26. This score measures how closely the on-screen color matches the color sent to the display by the computer, and the lower the better.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Product name</strong></p></th><th  ><p><strong>Panel type</strong></p></th><th  ><p><strong>Delta E</strong></p></th><th  ><p><strong>sRGB volume</strong></p></th><th  ><p><strong>DCI P3 volume</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sony Inzone M10S II</strong></p></td><td  ><p>OLED</p></td><td  ><p>0.26</p></td><td  ><p>185.80%</p></td><td  ><p>131.60%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/msi-mpg-272urx-qd-oled-monitor-review"><strong>MSI MPG 272URX QD-OLED</strong></a></p></td><td  ><p>OLED</p></td><td  ><p>0.15</p></td><td  ><p>131%</p></td><td  ><p>97%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/lenovo-legion-pro-34wd-10-oled-review"><strong>Lenovo Legion Pro 34WD10</strong></a></p></td><td  ><p>OLED</p></td><td  ><p>0.08</p></td><td  ><p>156.40%</p></td><td  ><p>110.80%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/alienware-aw2725q-gaming-monitor-review"><strong>Alienware AW2725Q</strong></a></p></td><td  ><p>QD-OLED</p></td><td  ><p>0.06</p></td><td  ><p>182.50%</p></td><td  ><p>129.30%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/msi-mag-272qp-qd-oled-x50-review"><strong>MSI MAG 272 QP QD-OLED X50</strong></a></p></td><td  ><p>OLED</p></td><td  ><p>0.11</p></td><td  ><p>192.90%</p></td><td  ><p>136.70%</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/monitors/msi-mpg-341cqr-qd-oled-x36-review"><strong>MSI MPG 341CQR QD-OLED X36</strong></a></p></td><td  ><p>QD-OLED</p></td><td  ><p>0.15</p></td><td  ><p>166.30%</p></td><td  ><p>117.80%</p></td></tr></tbody></table></div><p>A 0.26 Delta-E isn’t as good as some of the other gaming monitors we’ve tested, such as the Alienware AW2525HM, MSI MAG 272 QP, or MSI MPG 341CQR QD-OLED X36. But it’s still fairly respectable, and it means the colors you’re seeing on screen are rendered accurately.</p><p>The M10S II also covers both the sRGB and DCI-P3 color gamuts. What does that mean? Games are mastered in sRGB for SDR and in DCI-P3 for HDR, so the M10S II can reproduce every unique color in every game you play.</p><p>Now, an ultra-wide gamut can cause oversaturation in those spaces, resulting in an unnatural, neon effect. So, more technically isn’t always better. But while colors appear very bold and vivid on the M10S II, they didn’t feel overdone. And besides, there are sRGB and Cinema (for DCI-P3) color modes if you want to ensure strict accuracy to those gamuts.</p><h2 id="sony-s-typically-premium-design">Sony’s typically premium design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TKK6c4T63tdmtZJU3kNfba" name="Sony_M10S2_ 8.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/TKK6c4T63tdmtZJU3kNfba-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Unsurprisingly, as this is a Sony product, the M10S II is built extremely well. The monitor looks and feels premium, with high-quality materials used throughout.</p><p>The rear of the display is finished in textured metal rather than plastic. The stand and base are also made from metal and feel extremely sturdy. It simply feels built to last, and there’s a three-year warranty to back it up anyway.</p><h2 id="arguably-good-value">Arguably good value</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LarUzNpMtjrLRDAFWrQmuZ" name="Sony_M10S2_ 6.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/LarUzNpMtjrLRDAFWrQmuZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This might sound a little odd given that the M10S II costs <a href="https://electronics.sony.com/tv-video/gaming-monitors/all-inzone-monitors/p/sdm27q102-b" target="_blank" rel="nofollow"><u>$1,099</u></a> / <a href="https://www.amazon.co.uk/Sony-INZONE-M10S-Gaming-Monitor/dp/B0GVJFDTB3/" target="_blank" rel="nofollow"><u>£1,199</u></a>, but I’d argue it’s fairly good value. It’s not uncommon for gaming monitors to push well beyond the $1,000 mark. The <a href="https://www.tomsguide.com/computing/monitors/lenovo-legion-pro-34wd-10-oled-review"><u>Lenovo Legion Pro 34WD-10 OLED</u></a>, for example, launched at $1,099. The <a href="https://www.tomsguide.com/reviews/samsung-odyssey-oled-g9"><u>Samsung Odyssey OLED G9</u></a>, meanwhile, launched at $1,799.</p><p>I know: those are ultrawides, and their prices have dropped since launch. But what I mean here is that the M10S II isn’t priced beyond the pale. And yet it offers superb performance for elite gamers. If you’re one of those people, the M10S II could make strong financial and competitive sense.</p><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-the-downs"><span>Sony Inzone M10S II review: The downs</span></h2><p>The Inzone M10S II doesn’t have many faults. However, it’s not the brightest OLED we’ve lab tested, and the USB ports on the underside are pretty dated.</p><h2 id="not-the-brightest">Not the brightest</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HZwVkRiBJBLqzXttnbMSga" name="Sony_M10S2_ 7.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/HZwVkRiBJBLqzXttnbMSga-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We don’t like to rely on manufacturer claims, which are often best-case scenarios and can be a tad (to say the least) unrealistic. As such, as part of our lab testing process, we also measure peak SDR and HDR brightness.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Product name</strong></p></th><th  ><p><strong>Panel type</strong></p></th><th  ><p><strong>Nits (HDR, at 10%)</strong></p></th><th  ><p><strong>Nits (SDR)</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sony Inzone M10S II</strong></p></td><td  ><p>OLED</p></td><td  ><p>146 </p></td><td  ><p>231</p></td></tr><tr><td class="firstcol " ><p><strong>MSI MPG 272URX QD-OLED</strong></p></td><td  ><p>OLED</p></td><td  ><p>449 </p></td><td  ><p>254</p></td></tr><tr><td class="firstcol " ><p><strong>Lenovo Legion Pro 34WD10</strong></p></td><td  ><p>OLED</p></td><td  ><p>443</p></td><td  ><p>265</p></td></tr><tr><td class="firstcol " ><p><strong>Alienware AW2725Q</strong></p></td><td  ><p>QD-OLED</p></td><td  ><p>334</p></td><td  ><p>250 </p></td></tr><tr><td class="firstcol " ><p><strong>MSI MAG 272 QP</strong></p></td><td  ><p>OLED</p></td><td  ><p>284 </p></td><td  ><p>289</p></td></tr><tr><td class="firstcol " ><p><strong>MSI MPG 341CQR QD-OLED X36</strong></p></td><td  ><p>QD-OLED</p></td><td  ><p>413</p></td><td  ><p>280</p></td></tr></tbody></table></div><p>As you can see in the test results, the M10S II isn’t as bright as other OLED gaming panels we’ve tested and is well below the (rather ambitious) 1,500-nit peak brightness claimed by Sony.</p><p>Still, when you think about it, this monitor’s primary purpose is to be used in a dark room. And besides, figures alone don’t always tell the full story, and I certainly wouldn’t let our measured peak brightness put you off buying this monitor. I’ve had no issues using it in bright environments, largely thanks to the anti-glare coating. And I never struggled with darker in-game scenarios, thanks to the different color modes and black point equalizer.</p><h2 id="dated-usb-ports">Dated USB ports</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QMNtiWvm7wPDH9KhHvZa3a" name="Sony_M10S2_ 9.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/QMNtiWvm7wPDH9KhHvZa3a-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>My only other gripe with the M10S II is that it uses fairly dated ports, at least when it comes to USB (with HDMI 2.1 and DisplayPort 2.1, the video ports are just fine). There are two USB-A downstream ports and a USB-B upstream port. These are outdated, and it would’ve been nice to see at least a USB-C port or two.</p><p>Again, it’s important to remember use cases here. I’m not going to complain about the lack of a Thunderbolt port or KVM controller on a monitor that isn’t designed for productivity, but come on, it’s 2026… how can Sony fit a Type-B but not a single Type-C?</p><h2 class="article-body__section" id="section-sony-inzone-m10s-ii-review-verdict"><span>Sony Inzone M10S II review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xdncXHJiq6rPWsCo2R3LFa" name="Sony_M10S2_.JPG" alt="The Sony Inzone M10S II against a blue gradient background" src="https://cdn.mos.cms.futurecdn.net/xdncXHJiq6rPWsCo2R3LFa-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you want the fastest and most feature-packed gaming monitor around, especially if you’re an elite competitive player or aspiring pro, I wholeheartedly recommend the Sony Inzone M10S II.</p><p>Its flaws are very few and fairly minor. What’s more, it not only delivers blazing-fast hardware performance but also a huge roster of genuinely useful gaming tools and thoughtful quality-of-life features! Then there’s Sony’s usual build quality and a fairly reasonable price tag, all things considered. I’m genuinely rather sad to be giving it back to Sony!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Asus ROG Kithara sounds amazing, but here’s why you shouldn’t buy it at full price ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Asus ROG Kithara is a premium open back gaming headset and a collaboration between Asus and HIFIMAN — renowned manufacturer of affordable audiophile headphones.</p><p>Asus promises incredible sound from the Kithara, with the detail and soundstage of HIFIMAN’s open back cans. And, yeah, the headset delivers pretty much exactly that. It’s also lightweight and comfortable, simple to operate, and great for music too.</p><p>Unfortunately, the usual afflictions of HIFIMAN gear appear, with a cheap headband that needs tightening to avoid slippage. Its mic is lackluster, and compounding both these issues is an unwarrantable price tag of nearly $300. </p><p>But could this still be one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets%5C">best gaming headsets</a> for audiophiles? Find out in my full Asus ROG Kithara review.  </p><h2 class="article-body__section" id="section-asus-rog-kithara-review-cheat-sheet"><span>Asus ROG Kithara review: Cheat sheet</span></h2><ul><li><strong>What is it?</strong> A premium open back gaming headset, and collab between Asus and HIFIMAN</li><li><strong>Who is it for? </strong>Gamers wanting spacious, audiophile-tier sound</li><li><strong>What does it cost? </strong>A whopping <a href="https://www.amazon.com/ASUS-ROG-Audiophile-Open-Back-Headphones/dp/B0GG53SPJC" target="_blank" rel="nofollow">$299</a> / <a href="https://www.amazon.co.uk/ASUS-ROG-Audiophile-Headphones-Microphone-Black/dp/B0GG53SPJC" target="_blank" rel="nofollow">£285</a></li><li><strong>What do we like? </strong>The beautiful sound, lightweight fit and simplicity</li><li><strong>What don’t we like? </strong>The poor build quality, lackluster mic and high price</li></ul><h2 class="article-body__section" id="section-asus-rog-kithara-review-specs"><span>Asus ROG Kithara review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/ASUS-ROG-Audiophile-Open-Back-Headphones/dp/B0GG53SPJC" target="_blank" rel="nofollow">$299</a> / <a href="https://www.amazon.co.uk/ASUS-ROG-Audiophile-Headphones-Microphone-Black/dp/B0GG53SPJC" target="_blank" rel="nofollow">£285</a></p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black</p></td></tr><tr><td class="firstcol " ><p><strong>Platforms</strong></p></td><td  ><p>PC, PlayStation, Xbox</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>3.5mm, 4.4mm, 6.3mm USB-C (via 3.5mm adapter)</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>None</p></td></tr><tr><td class="firstcol " ><p><strong>Frequency response</strong></p></td><td  ><p>8-55,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Drivers</strong></p></td><td  ><p>100mm planar magnetic</p></td></tr><tr><td class="firstcol " ><p><strong>Microphone</strong></p></td><td  ><p>Boom mic</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>14 ounces / 420 grams</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-asus-rog-kithara-review-the-ups"><span>Asus ROG Kithara review: The ups</span></h2><p>The Asus ROG Kithara is, first and foremost, about sound, which is where it excels with open, spacious and detailed sound. It’s also lightweight and comfy, not to mention being about as simple as headsets come.</p><h2 id="spacious-detailed-sound">Spacious, detailed sound</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WDkwYYB8JDjbUgNpvvTaW" name="ROG_Kithara_Gaming Headset_003.JPG" alt="The Asus ROG Kithara earcups facing upwards on a white table" src="https://cdn.mos.cms.futurecdn.net/WDkwYYB8JDjbUgNpvvTaW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The Kithara is essentially just a set of HIFIMAN open back headphones with some Asus branding. It uses the planar magnetic drivers that HIFIMAN is renowned for, and which I have a fair bit of experience with — I’ve used the <a href="https://www.tomsguide.com/audio/over-ear-headphones/i-ignored-reddit-and-built-my-own-audiophile-headphone-setup-for-under-usd500-heres-the-gear-i-chose">HIFIMAN Sundara</a> ($179) and 400SE ($109) regularly for comparative testing open back headphones. The drivers in the Kithara are enormous at 100mm, and bigger than the 90mm planars in the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-review">Audeze Maxwell</a> ($299), Maxwell 2 ($329) and Maxwell 2 ANC ($449).</p><p>The Kithara sounds pure HIFIMAN, albeit with a gaming tune — it’s mostly a neutral, reference-style tune with some extra amplification at the high-end. </p><p>When driven properly, there’s plenty of detail across the highs and mids, in large part thanks to the ultra fast transient response of the planar drivers — basically, they can start and stop vibrating very quickly, giving more definition and a cleaner sound. As an open back headset, the Kithara boasts very open, wide sound and strong spatial imaging, too. All of this helped me hear and pinpoint enemy cues, like footsteps and reloads, to get the drop on unsuspecting foes in Hell Let Loose and Counter Strike 2. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="i5GG4HzuXAhr3mYLs4Ziq" name="IMG_2409" alt="A frequency response curve in hand, showing the response of the tested Asus ROG Kithara" src="https://cdn.mos.cms.futurecdn.net/i5GG4HzuXAhr3mYLs4Ziq-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Here's the frequency response curve for my set of Kithara. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The flat tuning means this isn’t a very bassy headset, even though the response range bottoms out at an impressive 8Hz — while the drivers can technically replicate that low, there’s not much amplification there. Explosions in Hell Let Loose lacked the impact you’d get from the bassy <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">SteelSeries Arctis Nova Pro Omni</a> ($399) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-2-review">Audeze Maxwell 2</a>.</p><p>Tonal separation is really strong, which was perfect for the beautiful campaign soundtrack of Total War: Rome II. Each of the instruments, from flutes through to horns and percussion existed on their own isolated plane, and I could pick them apart with ease.</p><p>Naturally, this all makes the Kithara great for listening to music, too… as long as you’re not a bass fanatic. </p><p><em>Listen along to my testing playlist on </em><a href="https://www.tomsguide.com/audio/qobuz-review"><em>Qobuz</em></a><em>, our favorite </em><a href="https://www.tomsguide.com/buying-guide/best-music-streaming-services"><em>music streaming service</em></a><em> for audiophiles.</em></p><iframe allow="" height="390" width="400" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://widget.qobuz.com/playlist/59666746?zone=GB-en"></iframe><h2 id="audiophile-accessories-included">Audiophile accessories included</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1625px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LynfGBi38hoFbnG7ZXzYYo" name="ROG_Kithara_Gaming Headset_011.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:166,l:136,cw:1625,ch:914,q:80/LynfGBi38hoFbnG7ZXzYYo.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like I mentioned above, the Kithara is ideal (and indeed intended) for music as well as gaming. As such, it’s great to see an array of audiophile accessories included. There’s a headphone cable without a mic for listening to music, and no fewer than three swappable jacks included: 3.5mm, balanced 4.4mm, and 6.3mm. </p><p>The Kithara even comes with a diagram of its individual frequency response curve from quality checking, which is really cool. I’d expect no less from a set of HIFIMAN cans.</p><h2 id="refreshingly-simple">Refreshingly simple</h2><p>The Kithara is a super simple headset. It’s literally plug and play. No batteries, no ANC, no companion app. Obviously, this gives you fewer features than, say, the Arctis Nova Pro Omni or Maxwell 2, but that’s not necessarily a bad thing. Sometimes it’s nice to cut the clutter and use a plain old set of headphones (with a mic).</p><h2 id="open-back-awareness">Open back awareness</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3tqLyFVsE7GtiPfjNF9HW" name="ROG_Kithara_Gaming Headset_012.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/3tqLyFVsE7GtiPfjNF9HW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Thanks to the open back design, the Kithara lets you hear everything around you, so you can stay aware of your surroundings. Now, I know, I know — gaming is often about immersion and concentration, right? Not always, I’d say.</p><p>Sure, in FPS games like Counter Strike 2, or strategic stealthy games like Sniper Elite: Resistance, I found myself missing the isolation of my closed back <a href="https://www.tomsguide.com/gaming/gaming-peripherals/fractal-design-scape-review">Fractal Design Scape</a> ($149) or the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-7-gen-2-review">SteelSeries Arctis Nova 7 Gen 2</a> ($199). </p><p>However, in less intense gameplay, like Rome II, I really appreciated being able to hear one of my dogs barking to tell me she needed to go out for a wee; or my wife calling from downstairs to tell me my cup of tea was ready. My wife and I work in the same home office, and I also enjoyed being able to chat with her while I gamed.</p><p>Naturally, this also has its downsides when it comes to distractions and immersion-breaking, which I’ll cover a little later. But that’s kinda the price you pay for open back space.</p><h2 id="lightweight-and-comfortable">Lightweight and comfortable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RZKQoXSRkNFvCJWKUaWKN" name="ROG_Kithara_Gaming Headset_015.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/RZKQoXSRkNFvCJWKUaWKN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Kithara is extremely lightweight and comfortable, which is yet another benefit of that open back HIFIMAN design — both the Sundara and 400SE headphones are similarly lightweight. The Kithara weighs just 14 ounces / 420g, and I had no issue wearing the headset for hours on end.</p><p>The earcups are extremely soft and well padded. The default set of pads has a faux leather rim, but a second set is included which is completely velour and a little more breathable.</p><h2 id="stealthy-looks">Stealthy looks</h2><p>Beauty is in the eye of the beholder, of course, but I think the Kithara is fairly nice looking. It’s not gonna win any pageants like the Fractal Design Scape or <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review">Razer BlackShark V3 Pro</a> ($249). But clad in black and gunmetal, it’s pleasingly stealthy and much less garish than some of Asus’ other offerings — looking at you, <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-tuf-gaming-h1-gen-ii-headset-review">Asus TUF H1 Gen II</a> ($49) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-delta-ii-gaming-headset-review">ROG Delta II</a> ($229)</p><h2 class="article-body__section" id="section-asus-rog-kithara-review-the-downs"><span>Asus ROG Kithara review: The downs</span></h2><p>The ROG Kithara has a couple of noteworthy flaws. It’s built like a HIFIMAN product, so not that well, and features a lackluster mic. I’d also argue that it’s downright overpriced.</p><h2 id="hifiman-build-quality">HIFIMAN build quality</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1281px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="LT4ZuwY5cDSdHGa3FnXHX" name="ROG_Kithara_Gaming Headset_008.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:0,l:329,cw:1281,ch:721,q:80/LT4ZuwY5cDSdHGa3FnXHX.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Asus hasn’t yet confirmed to me the extent to which HIFIMAN was involved in building the Kithara (I’ve asked). But if I had to guess, I’d say HIFIMAN built the whole thing and stuck Asus’ branding on it.</p><p>My first words on picking the Kithara up were: ‘yep, feels like HIFIMAN.’ And that’s not a good thing. HIFIMAN is well known for its build quality issues, with the popular Sundara being a ‘frequently returned product’ on Amazon due to headstrap build issues.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b483aVLCU5SNkiGULSQpn" name="IMG_2410" alt="The Asus ROG Kithara headband adjustment" src="https://cdn.mos.cms.futurecdn.net/b483aVLCU5SNkiGULSQpn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Kithara feels no different. The head strap is made of thin, cheap-feeling leatherette, just like the Sundara. The headband is a thin piece of metal. The adjustment sliders constantly slip downwards from where you set them. Asus acknowledges this is an issue, and it can be solved easily with a T7 Torx driver, in fairness. But why should I have to fix my own headset from factory? At $300, that’s not acceptable.</p><p>Now, none of this bothers me too much on HIFIMAN headphones, because they’re cheap. The problem is that the Kithara isn’t cheap, at <a href="https://www.amazon.com/ASUS-ROG-Audiophile-Open-Back-Headphones/dp/B0GG53SPJC" target="_blank" rel="nofollow">$299</a> / <a href="https://www.amazon.co.uk/ASUS-ROG-Audiophile-Headphones-Microphone-Black/dp/B0GG53SPJC" target="_blank" rel="nofollow">£285</a>. It’s HIFIMAN quality; Asus prices. </p><h2 id="lackluster-mic">Lackluster mic</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TtnYLYPXr3f7y9FBAJDKX" name="ROG_Kithara_Gaming Headset_009.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/TtnYLYPXr3f7y9FBAJDKX-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ll preface this by saying that the Kithara’s mic isn’t <em>bad</em>. In both my testing calls and game chat, nobody had issues understanding me — that was super important in Hell Let Loose where team communication is vital. </p><p>My colleagues reported, however, that the mic sounded fairly tinny and low quality. Again, that stings a little when paying $299, especially as rivals like the Maxwell 2 and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/turtle-beach-stealth-pro-ii-review">Turtle Beach Stealth Pro II</a> ($349) offer fantastic, broadcast-worthy mics for only $50 more. If you’re going to be on stream, I’d recommend either of those.</p><h2 id="should-cost-half-its-msrp">Should cost half its MSRP</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1227px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="6MfYqv5RUo7NCmzSfxioV" name="ROG_Kithara_Gaming Headset_005.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:365,l:339,cw:1227,ch:690,q:80/6MfYqv5RUo7NCmzSfxioV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As I’ve already alluded to a few times, my biggest gripe with the Kithara is its price. In a world where the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/sony-inzone-h6-air-review">Sony Inzone H6 Air</a> ($199) exists for a hundred dollars less, with spacious open back sound, premium build quality and an excellent mic, there’s just no way I can recommend the Kithara. That’s why I’ve scored this headset 3.5 — we define this score as very good, but it misses out on our Tom’s Guide Recommended award. I can’t recommend this headset over the higher-scoring H6 Air.</p><h2 id="open-back-might-not-be-for-everyone">Open back might not be for everyone</h2><p>Before you drop 300 smackeroonies into the Kithara, it’s worth making sure an open back headset is right for you. This isn’t really a con, so I’ve left it until last, but the environmental sound leakage may not be best for every gamer.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QsqtvqkTpjgzuR8yf87bF" name="ROG_Kithara_Gaming Headset_013.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/QsqtvqkTpjgzuR8yf87bF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the headset is loud enough for fine detail, some of that can get drowned out by external noise coming through the open driver backs. In Hell Let Loose, I sometimes found it difficult to hear the super fine interference noises of enemy garrisons and outposts, leaving me hunting around blindly and getting killed. This was only an issue when I had the window open, but could make the difference in shooters where enemy cue sounds are pivotal.</p><p>As I mentioned above, the sound is also nowhere near as immersive or intense as a closed back headset. Switching back to my Fractal Design Scape after testing the Kithara, the chaos, explosions and bullet hisses in Hell Let Loose sounded way more intense and frightening. </p><p>Like I said, this isn’t a con. If you’d like that more spacious, detailed and gentle sound, plus you game in quiet environments, it shouldn’t be an issue. If you’d rather a headset that fully isolates and immerses you, a closed back design with ANC is your best bet. These tend to cost more though, like the $399 Arctis Nova Pro Omni, $429 <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-2-anc-review">Audeze Maxwell 2 ANC</a> and $599 <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">SteelSeries Arctis Nova Elite</a>.</p><h2 class="article-body__section" id="section-asus-rog-kithara-review-verdict"><span>Asus ROG Kithara review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZodY286KAY7Yy6qjaU8GHo" name="ROG_Kithara_Gaming Headset_010.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/ZodY286KAY7Yy6qjaU8GHo-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Kithara is a very good headset. It offers extremely detailed, spacious sound that’ll appeal especially to any lovers of open back headphones, who want the same kind of experience when gaming. It’s great for music, too, while proving lightweight, comfy and fuss-free.</p><p>However, I pretty much summed up my verdict already in the price section. Our 3.5-star score means a product is very good, but we wouldn’t outright recommend it over cheaper rivals. The build quality is poor, while the mic is lackluster, neither of which is worthy of the $300 price tag. If you’ve got to have planar magnetic open backs, my advice is to invest in a set of Torx drivers and wait for a sale.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-kithara-review</link>
                                                                            <description>
                            <![CDATA[ The Asus ROG Kithara sounds great and is comfy for hours, but its mic and build quality make the high price tag difficult to stomach. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hUc5NXAmaJLbxRNfmQJS3d</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hhvUR7GbwjLEwW2Bmz2a5o-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 11 Sep 2026 11:28:27 +0000</pubDate>                                                                                                                                <updated>Fri, 11 Sep 2026 11:39:48 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ peter.wolinski@futurenet.com (Peter Wolinski) ]]></author>                    <dc:creator><![CDATA[ Peter Wolinski ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/stgPfXWY7ukw8J8rfC7vjg-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Peter is a Senior Editor at Tom&#039;s Guide, heading up the site&#039;s Reviews team and Cameras section. Having built gaming PCs since he was 10 (that&#039;s a while ago now) he&#039;s a bit of a nerd about components and hardware. He&#039;s also been an iPhone user since the classic iPhone 4, and a Mac user for well over a decade. Experienced in using and testing all kinds of technology — from phones through to tablets, computers, games consoles, cameras and smart home tech — helping people find the best tech for them (at the best prices) is what Peter does best. A photographer since he bought his first camera (a Fujifilm) in 2015, Peter was previously an Editor for Canon-Europe.com. He then edited the Cameras and How To sections of Tom&#039;s Guide. When he&#039;s not crafting helpful, in-depth reviews, Peter can usually be found out and about honing his architectural photography skills, riding his motorcycle around Welsh mountain roads, telling everyone about his two greyhounds, squeezing a few extra FPS out of PC games or perfecting his espresso shots.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/hhvUR7GbwjLEwW2Bmz2a5o-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Asus ROG Kithara on a white table with a blue background]]></media:description>                                                            <media:text><![CDATA[The Asus ROG Kithara on a white table with a blue background]]></media:text>
                                <media:title type="plain"><![CDATA[The Asus ROG Kithara on a white table with a blue background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hhvUR7GbwjLEwW2Bmz2a5o-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Asus ROG Kithara is a premium open back gaming headset and a collaboration between Asus and HIFIMAN — renowned manufacturer of affordable audiophile headphones.</p><p>Asus promises incredible sound from the Kithara, with the detail and soundstage of HIFIMAN’s open back cans. And, yeah, the headset delivers pretty much exactly that. It’s also lightweight and comfortable, simple to operate, and great for music too.</p><p>Unfortunately, the usual afflictions of HIFIMAN gear appear, with a cheap headband that needs tightening to avoid slippage. Its mic is lackluster, and compounding both these issues is an unwarrantable price tag of nearly $300. </p><p>But could this still be one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-headsets%5C">best gaming headsets</a> for audiophiles? Find out in my full Asus ROG Kithara review.  </p><h2 class="article-body__section" id="section-asus-rog-kithara-review-cheat-sheet"><span>Asus ROG Kithara review: Cheat sheet</span></h2><ul><li><strong>What is it?</strong> A premium open back gaming headset, and collab between Asus and HIFIMAN</li><li><strong>Who is it for? </strong>Gamers wanting spacious, audiophile-tier sound</li><li><strong>What does it cost? </strong>A whopping <a href="https://www.amazon.com/ASUS-ROG-Audiophile-Open-Back-Headphones/dp/B0GG53SPJC" target="_blank" rel="nofollow">$299</a> / <a href="https://www.amazon.co.uk/ASUS-ROG-Audiophile-Headphones-Microphone-Black/dp/B0GG53SPJC" target="_blank" rel="nofollow">£285</a></li><li><strong>What do we like? </strong>The beautiful sound, lightweight fit and simplicity</li><li><strong>What don’t we like? </strong>The poor build quality, lackluster mic and high price</li></ul><h2 class="article-body__section" id="section-asus-rog-kithara-review-specs"><span>Asus ROG Kithara review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/ASUS-ROG-Audiophile-Open-Back-Headphones/dp/B0GG53SPJC" target="_blank" rel="nofollow">$299</a> / <a href="https://www.amazon.co.uk/ASUS-ROG-Audiophile-Headphones-Microphone-Black/dp/B0GG53SPJC" target="_blank" rel="nofollow">£285</a></p></td></tr><tr><td class="firstcol " ><p><strong>Colors</strong></p></td><td  ><p>Black</p></td></tr><tr><td class="firstcol " ><p><strong>Platforms</strong></p></td><td  ><p>PC, PlayStation, Xbox</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>3.5mm, 4.4mm, 6.3mm USB-C (via 3.5mm adapter)</p></td></tr><tr><td class="firstcol " ><p><strong>Battery</strong></p></td><td  ><p>None</p></td></tr><tr><td class="firstcol " ><p><strong>Frequency response</strong></p></td><td  ><p>8-55,000Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Drivers</strong></p></td><td  ><p>100mm planar magnetic</p></td></tr><tr><td class="firstcol " ><p><strong>Microphone</strong></p></td><td  ><p>Boom mic</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>14 ounces / 420 grams</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-asus-rog-kithara-review-the-ups"><span>Asus ROG Kithara review: The ups</span></h2><p>The Asus ROG Kithara is, first and foremost, about sound, which is where it excels with open, spacious and detailed sound. It’s also lightweight and comfy, not to mention being about as simple as headsets come.</p><h2 id="spacious-detailed-sound">Spacious, detailed sound</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WDkwYYB8JDjbUgNpvvTaW" name="ROG_Kithara_Gaming Headset_003.JPG" alt="The Asus ROG Kithara earcups facing upwards on a white table" src="https://cdn.mos.cms.futurecdn.net/WDkwYYB8JDjbUgNpvvTaW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>The Kithara is essentially just a set of HIFIMAN open back headphones with some Asus branding. It uses the planar magnetic drivers that HIFIMAN is renowned for, and which I have a fair bit of experience with — I’ve used the <a href="https://www.tomsguide.com/audio/over-ear-headphones/i-ignored-reddit-and-built-my-own-audiophile-headphone-setup-for-under-usd500-heres-the-gear-i-chose">HIFIMAN Sundara</a> ($179) and 400SE ($109) regularly for comparative testing open back headphones. The drivers in the Kithara are enormous at 100mm, and bigger than the 90mm planars in the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-review">Audeze Maxwell</a> ($299), Maxwell 2 ($329) and Maxwell 2 ANC ($449).</p><p>The Kithara sounds pure HIFIMAN, albeit with a gaming tune — it’s mostly a neutral, reference-style tune with some extra amplification at the high-end. </p><p>When driven properly, there’s plenty of detail across the highs and mids, in large part thanks to the ultra fast transient response of the planar drivers — basically, they can start and stop vibrating very quickly, giving more definition and a cleaner sound. As an open back headset, the Kithara boasts very open, wide sound and strong spatial imaging, too. All of this helped me hear and pinpoint enemy cues, like footsteps and reloads, to get the drop on unsuspecting foes in Hell Let Loose and Counter Strike 2. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="i5GG4HzuXAhr3mYLs4Ziq" name="IMG_2409" alt="A frequency response curve in hand, showing the response of the tested Asus ROG Kithara" src="https://cdn.mos.cms.futurecdn.net/i5GG4HzuXAhr3mYLs4Ziq-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Here's the frequency response curve for my set of Kithara. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The flat tuning means this isn’t a very bassy headset, even though the response range bottoms out at an impressive 8Hz — while the drivers can technically replicate that low, there’s not much amplification there. Explosions in Hell Let Loose lacked the impact you’d get from the bassy <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-pro-omni-review">SteelSeries Arctis Nova Pro Omni</a> ($399) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-2-review">Audeze Maxwell 2</a>.</p><p>Tonal separation is really strong, which was perfect for the beautiful campaign soundtrack of Total War: Rome II. Each of the instruments, from flutes through to horns and percussion existed on their own isolated plane, and I could pick them apart with ease.</p><p>Naturally, this all makes the Kithara great for listening to music, too… as long as you’re not a bass fanatic. </p><p><em>Listen along to my testing playlist on </em><a href="https://www.tomsguide.com/audio/qobuz-review"><em>Qobuz</em></a><em>, our favorite </em><a href="https://www.tomsguide.com/buying-guide/best-music-streaming-services"><em>music streaming service</em></a><em> for audiophiles.</em></p><iframe allow="" height="390" width="400" id="" style="" class="position-center" data-lazy-priority="low" data-lazy-src="https://widget.qobuz.com/playlist/59666746?zone=GB-en"></iframe><h2 id="audiophile-accessories-included">Audiophile accessories included</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1625px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LynfGBi38hoFbnG7ZXzYYo" name="ROG_Kithara_Gaming Headset_011.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:166,l:136,cw:1625,ch:914,q:80/LynfGBi38hoFbnG7ZXzYYo.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like I mentioned above, the Kithara is ideal (and indeed intended) for music as well as gaming. As such, it’s great to see an array of audiophile accessories included. There’s a headphone cable without a mic for listening to music, and no fewer than three swappable jacks included: 3.5mm, balanced 4.4mm, and 6.3mm. </p><p>The Kithara even comes with a diagram of its individual frequency response curve from quality checking, which is really cool. I’d expect no less from a set of HIFIMAN cans.</p><h2 id="refreshingly-simple">Refreshingly simple</h2><p>The Kithara is a super simple headset. It’s literally plug and play. No batteries, no ANC, no companion app. Obviously, this gives you fewer features than, say, the Arctis Nova Pro Omni or Maxwell 2, but that’s not necessarily a bad thing. Sometimes it’s nice to cut the clutter and use a plain old set of headphones (with a mic).</p><h2 id="open-back-awareness">Open back awareness</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3tqLyFVsE7GtiPfjNF9HW" name="ROG_Kithara_Gaming Headset_012.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/3tqLyFVsE7GtiPfjNF9HW-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Thanks to the open back design, the Kithara lets you hear everything around you, so you can stay aware of your surroundings. Now, I know, I know — gaming is often about immersion and concentration, right? Not always, I’d say.</p><p>Sure, in FPS games like Counter Strike 2, or strategic stealthy games like Sniper Elite: Resistance, I found myself missing the isolation of my closed back <a href="https://www.tomsguide.com/gaming/gaming-peripherals/fractal-design-scape-review">Fractal Design Scape</a> ($149) or the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-7-gen-2-review">SteelSeries Arctis Nova 7 Gen 2</a> ($199). </p><p>However, in less intense gameplay, like Rome II, I really appreciated being able to hear one of my dogs barking to tell me she needed to go out for a wee; or my wife calling from downstairs to tell me my cup of tea was ready. My wife and I work in the same home office, and I also enjoyed being able to chat with her while I gamed.</p><p>Naturally, this also has its downsides when it comes to distractions and immersion-breaking, which I’ll cover a little later. But that’s kinda the price you pay for open back space.</p><h2 id="lightweight-and-comfortable">Lightweight and comfortable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RZKQoXSRkNFvCJWKUaWKN" name="ROG_Kithara_Gaming Headset_015.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/RZKQoXSRkNFvCJWKUaWKN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Kithara is extremely lightweight and comfortable, which is yet another benefit of that open back HIFIMAN design — both the Sundara and 400SE headphones are similarly lightweight. The Kithara weighs just 14 ounces / 420g, and I had no issue wearing the headset for hours on end.</p><p>The earcups are extremely soft and well padded. The default set of pads has a faux leather rim, but a second set is included which is completely velour and a little more breathable.</p><h2 id="stealthy-looks">Stealthy looks</h2><p>Beauty is in the eye of the beholder, of course, but I think the Kithara is fairly nice looking. It’s not gonna win any pageants like the Fractal Design Scape or <a href="https://www.tomsguide.com/gaming/gaming-peripherals/razer-blackshark-v3-pro-review">Razer BlackShark V3 Pro</a> ($249). But clad in black and gunmetal, it’s pleasingly stealthy and much less garish than some of Asus’ other offerings — looking at you, <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-tuf-gaming-h1-gen-ii-headset-review">Asus TUF H1 Gen II</a> ($49) and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/asus-rog-delta-ii-gaming-headset-review">ROG Delta II</a> ($229)</p><h2 class="article-body__section" id="section-asus-rog-kithara-review-the-downs"><span>Asus ROG Kithara review: The downs</span></h2><p>The ROG Kithara has a couple of noteworthy flaws. It’s built like a HIFIMAN product, so not that well, and features a lackluster mic. I’d also argue that it’s downright overpriced.</p><h2 id="hifiman-build-quality">HIFIMAN build quality</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1281px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="LT4ZuwY5cDSdHGa3FnXHX" name="ROG_Kithara_Gaming Headset_008.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:0,l:329,cw:1281,ch:721,q:80/LT4ZuwY5cDSdHGa3FnXHX.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Asus hasn’t yet confirmed to me the extent to which HIFIMAN was involved in building the Kithara (I’ve asked). But if I had to guess, I’d say HIFIMAN built the whole thing and stuck Asus’ branding on it.</p><p>My first words on picking the Kithara up were: ‘yep, feels like HIFIMAN.’ And that’s not a good thing. HIFIMAN is well known for its build quality issues, with the popular Sundara being a ‘frequently returned product’ on Amazon due to headstrap build issues.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b483aVLCU5SNkiGULSQpn" name="IMG_2410" alt="The Asus ROG Kithara headband adjustment" src="https://cdn.mos.cms.futurecdn.net/b483aVLCU5SNkiGULSQpn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Kithara feels no different. The head strap is made of thin, cheap-feeling leatherette, just like the Sundara. The headband is a thin piece of metal. The adjustment sliders constantly slip downwards from where you set them. Asus acknowledges this is an issue, and it can be solved easily with a T7 Torx driver, in fairness. But why should I have to fix my own headset from factory? At $300, that’s not acceptable.</p><p>Now, none of this bothers me too much on HIFIMAN headphones, because they’re cheap. The problem is that the Kithara isn’t cheap, at <a href="https://www.amazon.com/ASUS-ROG-Audiophile-Open-Back-Headphones/dp/B0GG53SPJC" target="_blank" rel="nofollow">$299</a> / <a href="https://www.amazon.co.uk/ASUS-ROG-Audiophile-Headphones-Microphone-Black/dp/B0GG53SPJC" target="_blank" rel="nofollow">£285</a>. It’s HIFIMAN quality; Asus prices. </p><h2 id="lackluster-mic">Lackluster mic</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TtnYLYPXr3f7y9FBAJDKX" name="ROG_Kithara_Gaming Headset_009.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/TtnYLYPXr3f7y9FBAJDKX-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ll preface this by saying that the Kithara’s mic isn’t <em>bad</em>. In both my testing calls and game chat, nobody had issues understanding me — that was super important in Hell Let Loose where team communication is vital. </p><p>My colleagues reported, however, that the mic sounded fairly tinny and low quality. Again, that stings a little when paying $299, especially as rivals like the Maxwell 2 and <a href="https://www.tomsguide.com/gaming/gaming-peripherals/turtle-beach-stealth-pro-ii-review">Turtle Beach Stealth Pro II</a> ($349) offer fantastic, broadcast-worthy mics for only $50 more. If you’re going to be on stream, I’d recommend either of those.</p><h2 id="should-cost-half-its-msrp">Should cost half its MSRP</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1227px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="6MfYqv5RUo7NCmzSfxioV" name="ROG_Kithara_Gaming Headset_005.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:365,l:339,cw:1227,ch:690,q:80/6MfYqv5RUo7NCmzSfxioV.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As I’ve already alluded to a few times, my biggest gripe with the Kithara is its price. In a world where the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/sony-inzone-h6-air-review">Sony Inzone H6 Air</a> ($199) exists for a hundred dollars less, with spacious open back sound, premium build quality and an excellent mic, there’s just no way I can recommend the Kithara. That’s why I’ve scored this headset 3.5 — we define this score as very good, but it misses out on our Tom’s Guide Recommended award. I can’t recommend this headset over the higher-scoring H6 Air.</p><h2 id="open-back-might-not-be-for-everyone">Open back might not be for everyone</h2><p>Before you drop 300 smackeroonies into the Kithara, it’s worth making sure an open back headset is right for you. This isn’t really a con, so I’ve left it until last, but the environmental sound leakage may not be best for every gamer.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QsqtvqkTpjgzuR8yf87bF" name="ROG_Kithara_Gaming Headset_013.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/QsqtvqkTpjgzuR8yf87bF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the headset is loud enough for fine detail, some of that can get drowned out by external noise coming through the open driver backs. In Hell Let Loose, I sometimes found it difficult to hear the super fine interference noises of enemy garrisons and outposts, leaving me hunting around blindly and getting killed. This was only an issue when I had the window open, but could make the difference in shooters where enemy cue sounds are pivotal.</p><p>As I mentioned above, the sound is also nowhere near as immersive or intense as a closed back headset. Switching back to my Fractal Design Scape after testing the Kithara, the chaos, explosions and bullet hisses in Hell Let Loose sounded way more intense and frightening. </p><p>Like I said, this isn’t a con. If you’d like that more spacious, detailed and gentle sound, plus you game in quiet environments, it shouldn’t be an issue. If you’d rather a headset that fully isolates and immerses you, a closed back design with ANC is your best bet. These tend to cost more though, like the $399 Arctis Nova Pro Omni, $429 <a href="https://www.tomsguide.com/gaming/gaming-peripherals/audeze-maxwell-2-anc-review">Audeze Maxwell 2 ANC</a> and $599 <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steelseries-arctis-nova-elite-review">SteelSeries Arctis Nova Elite</a>.</p><h2 class="article-body__section" id="section-asus-rog-kithara-review-verdict"><span>Asus ROG Kithara review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZodY286KAY7Yy6qjaU8GHo" name="ROG_Kithara_Gaming Headset_010.JPG" alt="The Asus ROG Kithara on a white table with a blue background" src="https://cdn.mos.cms.futurecdn.net/ZodY286KAY7Yy6qjaU8GHo-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The Kithara is a very good headset. It offers extremely detailed, spacious sound that’ll appeal especially to any lovers of open back headphones, who want the same kind of experience when gaming. It’s great for music, too, while proving lightweight, comfy and fuss-free.</p><p>However, I pretty much summed up my verdict already in the price section. Our 3.5-star score means a product is very good, but we wouldn’t outright recommend it over cheaper rivals. The build quality is poor, while the mic is lackluster, neither of which is worthy of the $300 price tag. If you’ve got to have planar magnetic open backs, my advice is to invest in a set of Torx drivers and wait for a sale.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The 10 most influential games ever, according to ChatGPT, Gemini, Claude and Perplexity — and two of them couldn’t agree on No. 1 for National Video Games Day ]]></title>
                                                                                                <dc:content><![CDATA[ <p>To say that games have impacted my life in a major way would be the biggest understatement ever.</p><p>Discovering video games at a young age helped me find one of my favorite pastimes, led me to become a journalist and helped me interact with gaming &amp; entertainment industry personalities I thought I’d never meet. For this year’s installment of National Video Games Day (a holiday meant to honor the legendary history, evolution and cultural impact of interactive media), I wanted to try something fun that combined my love for gaming and my newfound appreciation for AI.</p><p>I came to <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-gemini-claude-and-perplexity-what-they-really-think-of-each-other-and-their-responses-revealed-their-biggest-strengths-and-weaknesses">ChatGPT, Gemini, Claude and Perplexity</a> with a simple request: “Give me your ranking of the 10 most influential video games of all time.” And after cataloging all their results, I came away with two thoughts: all four chatbots recognize the major trendsetters of the video game industry and two of them couldn’t agree on which game deserved to take the No. 1 spot.</p><p>Here’s what each chatbot delivered in response to my inquiry and even my own ranking of the 10 most influential video games of all time.</p><h2 id="where-these-four-chatbots-agreed-and-disagreed">Where these four chatbots agreed and disagreed</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vpvcDoUr3fszkk8jhdKutL" name="shutterstock_2211833037-16x9" alt="pac man" src="https://cdn.mos.cms.futurecdn.net/vpvcDoUr3fszkk8jhdKutL-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>All four chatbots wasted little time in proving their video game knowledge is stronger than I expected when they presented me with their personal ranking of the 10 most influential video games ever made:</p><ul><li><strong>ChatGPT: </strong><em>Super Mario Bros., Tetris, Doom, The Legend of Zelda, Grand Theft Auto III, Minecraft, World of Warcraft, Pong, Half-Life, and Wii Sports.</em></li><li><strong>Gemini: </strong><em>Pong, Super Mario Bros., Tetris, Doom, Street Fighter II: The World Warrior, Super Mario 64, Grand Theft Auto III, World of Warcraft, Minecraft, and Dark Souls.</em></li><li><strong>Claude: </strong><em>Doom, Super Mario Bros., Tetris, World of Warcraft, Minecraft, The Legend of Zelda, Half-Life, Pong, Street Fighter II, and Grand Theft Auto III.</em></li><li><strong>Perplexity: </strong><em>Pong, Super Mario Bros., Tetris, Doom, The Legend of Zelda, Street Fighter II: The World Warrior, Super Mario 64, Grand Theft Auto III, World of Warcraft, and Minecraft.</em></li></ul><p>What impressed me about ChatGPT’s acknowledgement of Super Mario Bros. as the most influential video game of all time was the factual reasons it used to back up its choice.</p><p>The chatbot noted that it practically revived the home-console gaming market after the crash of 1983, established the traditional conventions for 2D platformers that are still around to this day, produced arguably the most recognizable video game character of all time, helped cement the idea that gaming could deliver deeper experiences at home and showcased a textbook example of level design that teaches players what to do through gameplay.</p><p>Claude’s rationale for choosing Doom is as follows: <em>Defined the FPS genre, pioneered shareware distribution, and its modding scene (WAD files) kickstarted the entire user-generated-content movement in gaming.</em></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jQw6C5Ws9jRFyJorsXHZTD" name="shutterstock_2507107843-16x9" alt="super mario bros" src="https://cdn.mos.cms.futurecdn.net/jQw6C5Ws9jRFyJorsXHZTD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I also found it pretty wild how ChatGPT and Claude’s No. 1 picks were completely different from each other, while Gemini and Perplexity emerged with the same game for the top spot on their respective lists. Here’s the reasoning Gemini and Perplexity brought up to explain their decision to place Pong in the No. 1 position:</p><ul><li><strong>Gemini: </strong><em><strong>The Breakthrough: </strong></em><em>Proved commercial viability. Why It’s Essential: While not technically the first video game, Pong was the spark that established video games as a commercial industry. It proved that people would pay real money to play interactive digital games, launching arcade culture and home console gaming simultaneously.</em></li><li><strong>Perplexity: </strong><em>The essential commercial breakthrough. Pong made the video game legible to a mass public: two controls, one immediate competitive idea, and an arcade format that helped establish games as a viable entertainment business. Its simplicity became a template for accessible design.</em></li></ul><p>Alongside ChatGPT’s ranked selections for its most influential games, it also brought up a bunch of games it deemed “painful omissions” that would make its top 20 list if permitted to do so. </p><p>Those 10 other games included Spacewar!, Pac-Man, Street Fighter II, Pokémon Red/Blue, Final Fantasy VII, The Sims, Counter-Strike, Dark Souls, Fortnite and The Last of Us. Claude also had two honorable mentions of its own: Fortnite and EVE Online.</p><p>As for my ranking of the 10 most influential video games of all time, I went with Pong (it seems like I agree with Gemini and Perplexity), Pac-Man, Super Mario Bros., Tetris, The Legend of Zelda, Street Fighter II: The World Warrior, Doom, Virtua Fighter, Half-Life and Grand Theft Auto III.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wl8k1W"></div>                            </div>                            <script src="https://kwizly.com/embed/Wl8k1W.js" async=""></script><h2 id="final-thoughts-2">Final thoughts</h2><p>I have to hand it to all four chatbots: they mentioned a strong selection of games that anyone who’s immersed in the hobby would mention on their list of the most influential titles in the still-thriving entertainment genre. Super Mario Bros., Pong and Doom all earned top billing among all four chatbots — all three games had a major impact on the gaming industry that captured millions of gamers’ attention and inspired plenty of iconic titles in their wake.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/i-used-ask-maps-in-google-maps-to-find-the-best-date-spots-in-my-city-and-the-recommendations-were-a-lot-better-than-i-expected" target="_blank"><strong>I tried Google’s new ‘Ask Maps’ feature for date night — it was shockingly good</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/chatgpt-images-2-5-can-do-a-lot-more-than-you-think-7-fun-prompts-to-show-off-your-creative-side-with-2-of-my-favorites" target="_blank"><strong>I tested ChatGPT’s Images 2.5 — these 7 prompts show how much it leveled up</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/anthropic-modeled-what-ai-could-do-by-2030-the-economy-gets-32-percent-richer-while-workers-get-left-behind" target="_blank"><strong>Anthropic modeled what AI could do by 2030 — the economy gets 32% richer while workers get left behind</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/the-10-most-influential-games-ever-according-to-chatgpt-gemini-claude-and-perplexity-and-two-of-them-couldnt-agree-on-no-1-for-national-video-games-day</link>
                                                                            <description>
                            <![CDATA[ I asked four chatbots to rank the 10 most influential video games of all time for a very fitting holiday. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CcvbMcJLYPV4joRPGyjrJJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/gkGgTYaLWMGP8y3R8KDSz8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 11 Sep 2026 11:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/gkGgTYaLWMGP8y3R8KDSz8-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[atari]]></media:description>                                                            <media:text><![CDATA[atari]]></media:text>
                                <media:title type="plain"><![CDATA[atari]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/gkGgTYaLWMGP8y3R8KDSz8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>To say that games have impacted my life in a major way would be the biggest understatement ever.</p><p>Discovering video games at a young age helped me find one of my favorite pastimes, led me to become a journalist and helped me interact with gaming &amp; entertainment industry personalities I thought I’d never meet. For this year’s installment of National Video Games Day (a holiday meant to honor the legendary history, evolution and cultural impact of interactive media), I wanted to try something fun that combined my love for gaming and my newfound appreciation for AI.</p><p>I came to <a href="https://www.tomsguide.com/ai/i-asked-chatgpt-gemini-claude-and-perplexity-what-they-really-think-of-each-other-and-their-responses-revealed-their-biggest-strengths-and-weaknesses">ChatGPT, Gemini, Claude and Perplexity</a> with a simple request: “Give me your ranking of the 10 most influential video games of all time.” And after cataloging all their results, I came away with two thoughts: all four chatbots recognize the major trendsetters of the video game industry and two of them couldn’t agree on which game deserved to take the No. 1 spot.</p><p>Here’s what each chatbot delivered in response to my inquiry and even my own ranking of the 10 most influential video games of all time.</p><h2 id="where-these-four-chatbots-agreed-and-disagreed">Where these four chatbots agreed and disagreed</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vpvcDoUr3fszkk8jhdKutL" name="shutterstock_2211833037-16x9" alt="pac man" src="https://cdn.mos.cms.futurecdn.net/vpvcDoUr3fszkk8jhdKutL-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>All four chatbots wasted little time in proving their video game knowledge is stronger than I expected when they presented me with their personal ranking of the 10 most influential video games ever made:</p><ul><li><strong>ChatGPT: </strong><em>Super Mario Bros., Tetris, Doom, The Legend of Zelda, Grand Theft Auto III, Minecraft, World of Warcraft, Pong, Half-Life, and Wii Sports.</em></li><li><strong>Gemini: </strong><em>Pong, Super Mario Bros., Tetris, Doom, Street Fighter II: The World Warrior, Super Mario 64, Grand Theft Auto III, World of Warcraft, Minecraft, and Dark Souls.</em></li><li><strong>Claude: </strong><em>Doom, Super Mario Bros., Tetris, World of Warcraft, Minecraft, The Legend of Zelda, Half-Life, Pong, Street Fighter II, and Grand Theft Auto III.</em></li><li><strong>Perplexity: </strong><em>Pong, Super Mario Bros., Tetris, Doom, The Legend of Zelda, Street Fighter II: The World Warrior, Super Mario 64, Grand Theft Auto III, World of Warcraft, and Minecraft.</em></li></ul><p>What impressed me about ChatGPT’s acknowledgement of Super Mario Bros. as the most influential video game of all time was the factual reasons it used to back up its choice.</p><p>The chatbot noted that it practically revived the home-console gaming market after the crash of 1983, established the traditional conventions for 2D platformers that are still around to this day, produced arguably the most recognizable video game character of all time, helped cement the idea that gaming could deliver deeper experiences at home and showcased a textbook example of level design that teaches players what to do through gameplay.</p><p>Claude’s rationale for choosing Doom is as follows: <em>Defined the FPS genre, pioneered shareware distribution, and its modding scene (WAD files) kickstarted the entire user-generated-content movement in gaming.</em></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jQw6C5Ws9jRFyJorsXHZTD" name="shutterstock_2507107843-16x9" alt="super mario bros" src="https://cdn.mos.cms.futurecdn.net/jQw6C5Ws9jRFyJorsXHZTD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I also found it pretty wild how ChatGPT and Claude’s No. 1 picks were completely different from each other, while Gemini and Perplexity emerged with the same game for the top spot on their respective lists. Here’s the reasoning Gemini and Perplexity brought up to explain their decision to place Pong in the No. 1 position:</p><ul><li><strong>Gemini: </strong><em><strong>The Breakthrough: </strong></em><em>Proved commercial viability. Why It’s Essential: While not technically the first video game, Pong was the spark that established video games as a commercial industry. It proved that people would pay real money to play interactive digital games, launching arcade culture and home console gaming simultaneously.</em></li><li><strong>Perplexity: </strong><em>The essential commercial breakthrough. Pong made the video game legible to a mass public: two controls, one immediate competitive idea, and an arcade format that helped establish games as a viable entertainment business. Its simplicity became a template for accessible design.</em></li></ul><p>Alongside ChatGPT’s ranked selections for its most influential games, it also brought up a bunch of games it deemed “painful omissions” that would make its top 20 list if permitted to do so. </p><p>Those 10 other games included Spacewar!, Pac-Man, Street Fighter II, Pokémon Red/Blue, Final Fantasy VII, The Sims, Counter-Strike, Dark Souls, Fortnite and The Last of Us. Claude also had two honorable mentions of its own: Fortnite and EVE Online.</p><p>As for my ranking of the 10 most influential video games of all time, I went with Pong (it seems like I agree with Gemini and Perplexity), Pac-Man, Super Mario Bros., Tetris, The Legend of Zelda, Street Fighter II: The World Warrior, Doom, Virtua Fighter, Half-Life and Grand Theft Auto III.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wl8k1W"></div>                            </div>                            <script src="https://kwizly.com/embed/Wl8k1W.js" async=""></script><h2 id="final-thoughts-2">Final thoughts</h2><p>I have to hand it to all four chatbots: they mentioned a strong selection of games that anyone who’s immersed in the hobby would mention on their list of the most influential titles in the still-thriving entertainment genre. Super Mario Bros., Pong and Doom all earned top billing among all four chatbots — all three games had a major impact on the gaming industry that captured millions of gamers’ attention and inspired plenty of iconic titles in their wake.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/i-used-ask-maps-in-google-maps-to-find-the-best-date-spots-in-my-city-and-the-recommendations-were-a-lot-better-than-i-expected" target="_blank"><strong>I tried Google’s new ‘Ask Maps’ feature for date night — it was shockingly good</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/chatgpt-images-2-5-can-do-a-lot-more-than-you-think-7-fun-prompts-to-show-off-your-creative-side-with-2-of-my-favorites" target="_blank"><strong>I tested ChatGPT’s Images 2.5 — these 7 prompts show how much it leveled up</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/anthropic-modeled-what-ai-could-do-by-2030-the-economy-gets-32-percent-richer-while-workers-get-left-behind" target="_blank"><strong>Anthropic modeled what AI could do by 2030 — the economy gets 32% richer while workers get left behind</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Marvel’s Wolverine is a playable summer blockbuster — but fades from memory fast ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Marvel's Wolverine review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms: </strong>PS5<br /><strong>Price: </strong>$69 / £69 / AU$124<br /><strong>Release Date: </strong>September 15, 2026<br /><strong>Genre:</strong> Action-adventure</p></div></div><p>For better or worse, Marvel’s Wolverine is basically a playable blockbuster. You’ll find cinematic spectacle, thrilling set pieces, and a (mostly) enjoyable storyline. But, like many modern summer movies, this PS5 exclusive lacks substance and is even a little forgettable. </p><p>PS5’s Wolverine shows its full hand surprisingly early. While the violent combat feels true to the character, even the gory satisfaction of eviscerating an enemy soldier starts to wear off disappointingly fast. Still, at least the original comic book narrative has its moments, and the game always looks great on PS5 Pro — when technical issues aren’t spoiling the fun.</p><p>I had a good time tearing through this slickly produced Wolverine game, but even as I write this review, merely a week after completing the campaign, it’s already fading from memory. But if the goal was to give players a bombastic single-player experience, in which Logan’s inner turmoil takes center stage, then developer Insomniac Games has definitely succeeded. </p><p>It’s just a little disappointing that Marvel’s Wolverine doesn’t have more to sink your claws into. It lacks the staying power and gameplay variety to be one of the PS5’s best exclusives.</p><h2 id="marvel-39-s-wolverine-the-basics">Marvel's Wolverine: The Basics</h2><ul><li><strong>What is it? </strong>Marvel’s Wolverine is a third-person action-adventure game where you play the titular always-angry hero as he tears through armies of enemies on a personal quest to protect mutantkind from several sinister villains.</li><li><strong>Who is it for? </strong>Dedicated Marvel fans may enjoy this fresh spin on the character, while players looking for a short (and mostly sweet) game will enjoy Wolverine’s linear approach.</li><li><strong>What’s the price? </strong><a href="https://www.amazon.com/Wolverine-PS5-PlayStation-5/dp/B0G6157JKW/" target="_blank" rel="nofollow">Marvel’s Wolverine on PS5 costs $69 at Amazon</a>. There’s also a <a href="https://store.playstation.com/en-us/product/UP9000-PPSA03671_00-WOLVERINEDELUXE0" target="_blank" rel="nofollow">Digital Deluxe Edition for $79</a> with some extra suits.</li><li><strong>What other games has the developer made? </strong>Wolverine comes from Insomniac Games, the developer behind the Marvel’s Spider-Man series. Other notable titles from Insomniac include Ratchet &amp; Clank, Sunset Overdrive, and the PS3 shooter franchise Resistance.</li><li><strong>What games is it similar to? </strong>Marvel’s Wolverine shares several similarities to its sister series, Marvel’s Spider-Man, but without an open world and with the blood and gore factor turned up to 11.</li></ul><h2 id="not-the-marvel-universe-you-know">Not the Marvel Universe you know</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BKh7SqDGpJzsEDicEUHqKS" name="MW_SDCC_LoganJapanHero_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/BKh7SqDGpJzsEDicEUHqKS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>Marvel’s Wolverine throws players right into the action. After a brief introductory cutscene, Wolverine leaps from a helicopter on a mission to save Nathaniel Essex, leader of Team X and something of a father figure to Logan, who’s been captured by villain Bolivar Trask. </p><p>I appreciate that Insomniac has opted to avoid the origin story approach. Like the first Marvel’s Spider-Man game, you take control of an established Wolverine, already familiar with his powers, and with a rich backstory explored across the single-player campaign.</p><p>Marvel purists might wrinkle their noses at some changes to established X-Men lore. However, the story is generally entertaining and does a good job of motivating players to push through the many, many enemy gauntlets to see what happens next. There are also several familiar faces, including Mystique, Sabretooth, Lady Deathstrike, and Jean Grey.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fX2HAE2a4Z8f6riZuCdF5S" name="MW_ExtGameplay_Jean_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/fX2HAE2a4Z8f6riZuCdF5S-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>The latter is the most important. Jean and Wolverine’s relationship takes on a prominent role in the narrative, and their budding romance is easy to buy into. There’s no Scott Summers in Logan’s way in this Marvel universe, so that played-out X-Men love triangle isn’t repeated.</p><p>One less successful character inclusion is Nathaniel Essex. I’ll avoid direct spoilers, but anybody even vaguely familiar with the X-Men’s comic book history will know where his character arc is heading, which means that when the big reveal comes, it lacks impact.</p><p>While not telling the definitive Wolverine story, the game presents a well-paced and smartly plotted comic book tale. It leaves the protagonist in a good spot where a sequel seems likely, not least because of an intriguing post-credits scene that leaves a thread hanging.</p><h2 id="getting-the-claws-out">Getting the claws out</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7d6qp2tEBoUQixDdDneLuR" name="MW_ExtGameplay_WolverineHero_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/7d6qp2tEBoUQixDdDneLuR-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>Insomniac hasn’t been afraid to lean into brutal violence with its interpretation of Wolverine. Within moments of picking up your DualSense controller, Logan’s claws are stained red with blood as he quite literally tears through enemies, lopping off limbs, spilling guts, and some of the finisher moves are so extreme they made me practically wince the first time I saw them.</p><p>Unfortunately, while such a high level of violence is initially novel (does that say something worrying about me?), the pleasure of disembowelling an enemy wears off alarmingly fast. Wolverine’s combat always looks extremely flashy, but it’s very one-note. It’s your basic system of light and heavy attacks, with the occasional block thrown in every few strikes.</p><p>As the story progresses, you unlock a suite of special abilities, one of which lets Wolverine knee an enemy in the chin (which always made me chuckle), and another lets him unleash a quick flurry of damage-dealing slashes. But these do little to spice up a combat system that feels repetitive within just a few levels. Late-game enemies are damage sponges, and bosses have large health pools and predictable move sets, further adding to the issue.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YJ2a6EuNp2aUCgphWCMdKS" name="MW_ExtGameplay_GunCut_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/YJ2a6EuNp2aUCgphWCMdKS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>At least smartly managing your rage meter, which fills as you kill enemies, can make later encounters a bit less of a slog. At rage level 3, you unlock the ability to instantly execute enemies, so you can bounce around the battlefield, turning henchmen to pulp in minutes. </p><p>Alternatively, you could often opt for stealth; multiple levels place Logan in environments with tall grass to sink through and high trees to scale, but I have to wonder: does anybody associate Wolverine with a stealthy approach? It certainly doesn’t fit the character to me.</p><p>As the game progresses, combat areas grow larger with more and more enemies to slice up, but I found myself merely going through the motions, relying on basic combos that suffice until the end. The skill tree unlocks a few new moves, but they’re largely unnecessary; on normal difficulty, just mashing the standard attack and tapping the block button will suffice.</p><h2 id="unfogging-logan-s-past">Unfogging Logan’s past</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Nbt33GkGB7ZfBJj9pDdhmP" name="MW_PREVIEWS_HAND_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/Nbt33GkGB7ZfBJj9pDdhmP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>Wolverine is primarily a very linear experience. There’s no open world like Spidey’s NYC. However, some levels do let you wander a little bit. Taking in the sights is worthwhile, as there are collectibles that flesh out Insomniac’s spin on the X-Men universe. </p><p>I suspect some players will find the frequency of “walking” sections a chore, but I enjoyed this change of pace, and they helped to break up the repetitive combat. They also go a long way to developing Wolverine’s relationship with the supporting cast, which is one of the game’s core strengths. I wouldn’t have cared about Jean Grey half as much without them.</p><p>Optional Nightmare Doors offer even more insight into Wolverine’s past and represent the bulk of the side content (unless you count collectible whiskey bottles). These imposing wooden doors are easily spotted within levels by their glowing purple roots, and each offers a self-contained challenge mission. Once completed, you get a short memory fragment. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9wbnUSo6hfErWG6pLE5XQP" name="MW_PREVIEWS_TELEMBANGCOMBAT_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/9wbnUSo6hfErWG6pLE5XQP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>The Nightmare Door challenges range from combat trials (not that I really need <em>more </em>enemies to butcher) to some very fun traversal courses, which I always looked forward to. Upon completion, you’re given a rank from bronze to adamantium, and I felt compelled to achieve the highest rank on each before moving on. High score chasers will love them.</p><p>Here, the game also dips its toes into the rougelite genre with three trials that pit you against 20 waves of enemies. Between every five waves, you can pick a modifier that buffs Logan (increased damage, reduced special ability cooldown, etc.), while also giving him a negative effect (like your rage meter taking longer to fill), forcing you to adapt your combat tactics.</p><p>These combat trials are very simple, and all take place in the same small map, but there’s a good foundation here. I’d love to see them expanded further. Maybe they’re hinting at a post-launch DLC similar to God of War Ragnarök’s well-received Valhalla expansion?</p><h2 id="impressive-visuals-with-rough-edges">Impressive visuals, with rough edges</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bjCmoouJgvfNaJsk4njjFS" name="MW_SDCC_SentinelAction_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/bjCmoouJgvfNaJsk4njjFS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>On PS5 Pro, Marvel’s Wolverine looks and runs very well. Character models are expressive, the bloody detail when Logan sinks his claws into a goon is marvellous, and the voice acting is of a high standard. Particular credit to Liam McIntyre, who voices the eponymous mutant. </p><p> Even when the action gets thick and fast with Wolverine leaping between enemy soldiers and eventually Sentinel robots, I never noticed any framerate hitches; things were locked at 60 fps. Insomniac offers players plenty of accessibility options, which is very commendable.</p><p>Unfortunately, while Marvel’s Wolverine is another PlayStation Studios game that proves there’s plenty of power remaining in the PS5, my playthrough was blighted by pesky bugs and glitches. These ranged from enemy bodies floating in mid-air, Wolverine initiating a finisher move with thin air (which admittedly looked very funny), and interactable objects refusing to cooperate until Logan was standing at the perfect angle. Annoying but tolerable.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMzqxsWEMFNrRk3FVFp88S" name="MW_ExtGameplay_ConvoyAttack_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/uMzqxsWEMFNrRk3FVFp88S-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>What was harder to stomach were the half-a-dozen hard crashes that occurred during my 15-hour playthrough. Marvel’s Wolverine is generous with checkpoints, so most didn’t cost me any real progress, but two came during boss battles, which forced me to start over. And as noted, the boss battles are already over-lengthy, so I didn’t need them drawn out further.</p><h2 id="marvel-s-wolverine-review-verdict">Marvel’s Wolverine review: Verdict</h2><p>I don’t want to be too harsh on Marvel’s Wolverine. It’s a generally high-quality action-adventure experience that lets you live out your X-Men dreams of becoming the team’s most iconic member. Yet, while playing, I always felt like something was missing. </p><p>There’s a factory-line quality to Marvel’s Wolverine; it hits all the expected beats of a modern AAA game, but never carves out an identity of its own. The combat is repetitive, the story is good but predictable, and after completing it, I felt little reason to return — even mopping up the few remaining trophies for the Platinum failed to motivate me to continue playing. </p><p>Marvel’s Wolverine is undeniably well-made and offers some no-frills superhero fun, but launching in such a packed release schedule, it’s hard to see where it truly stands out.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/marvels-wolverine-is-a-playable-summer-blockbuster-but-fades-from-memory-fast</link>
                                                                            <description>
                            <![CDATA[ Marvel’s Wolverine is a playable summer blockbuster, and while its 15-hour campaign offers plenty of violent carnage, it lacks enough substance to stand out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6BZusquTRcdnJGjvGoHKD9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AfpkWnvXM2Q3cNKKswwRR-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 10 Sep 2026 15:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                    <category><![CDATA[Playstation]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AfpkWnvXM2Q3cNKKswwRR-1920-80.jpg">
                                                            <media:credit><![CDATA[Sony]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Marvel&#039;s Wolverine image showing Logan]]></media:description>                                                            <media:text><![CDATA[Marvel&#039;s Wolverine image showing Logan]]></media:text>
                                <media:title type="plain"><![CDATA[Marvel&#039;s Wolverine image showing Logan]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AfpkWnvXM2Q3cNKKswwRR-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Marvel's Wolverine review: Specs</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Platforms: </strong>PS5<br /><strong>Price: </strong>$69 / £69 / AU$124<br /><strong>Release Date: </strong>September 15, 2026<br /><strong>Genre:</strong> Action-adventure</p></div></div><p>For better or worse, Marvel’s Wolverine is basically a playable blockbuster. You’ll find cinematic spectacle, thrilling set pieces, and a (mostly) enjoyable storyline. But, like many modern summer movies, this PS5 exclusive lacks substance and is even a little forgettable. </p><p>PS5’s Wolverine shows its full hand surprisingly early. While the violent combat feels true to the character, even the gory satisfaction of eviscerating an enemy soldier starts to wear off disappointingly fast. Still, at least the original comic book narrative has its moments, and the game always looks great on PS5 Pro — when technical issues aren’t spoiling the fun.</p><p>I had a good time tearing through this slickly produced Wolverine game, but even as I write this review, merely a week after completing the campaign, it’s already fading from memory. But if the goal was to give players a bombastic single-player experience, in which Logan’s inner turmoil takes center stage, then developer Insomniac Games has definitely succeeded. </p><p>It’s just a little disappointing that Marvel’s Wolverine doesn’t have more to sink your claws into. It lacks the staying power and gameplay variety to be one of the PS5’s best exclusives.</p><h2 id="marvel-39-s-wolverine-the-basics">Marvel's Wolverine: The Basics</h2><ul><li><strong>What is it? </strong>Marvel’s Wolverine is a third-person action-adventure game where you play the titular always-angry hero as he tears through armies of enemies on a personal quest to protect mutantkind from several sinister villains.</li><li><strong>Who is it for? </strong>Dedicated Marvel fans may enjoy this fresh spin on the character, while players looking for a short (and mostly sweet) game will enjoy Wolverine’s linear approach.</li><li><strong>What’s the price? </strong><a href="https://www.amazon.com/Wolverine-PS5-PlayStation-5/dp/B0G6157JKW/" target="_blank" rel="nofollow">Marvel’s Wolverine on PS5 costs $69 at Amazon</a>. There’s also a <a href="https://store.playstation.com/en-us/product/UP9000-PPSA03671_00-WOLVERINEDELUXE0" target="_blank" rel="nofollow">Digital Deluxe Edition for $79</a> with some extra suits.</li><li><strong>What other games has the developer made? </strong>Wolverine comes from Insomniac Games, the developer behind the Marvel’s Spider-Man series. Other notable titles from Insomniac include Ratchet &amp; Clank, Sunset Overdrive, and the PS3 shooter franchise Resistance.</li><li><strong>What games is it similar to? </strong>Marvel’s Wolverine shares several similarities to its sister series, Marvel’s Spider-Man, but without an open world and with the blood and gore factor turned up to 11.</li></ul><h2 id="not-the-marvel-universe-you-know">Not the Marvel Universe you know</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BKh7SqDGpJzsEDicEUHqKS" name="MW_SDCC_LoganJapanHero_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/BKh7SqDGpJzsEDicEUHqKS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>Marvel’s Wolverine throws players right into the action. After a brief introductory cutscene, Wolverine leaps from a helicopter on a mission to save Nathaniel Essex, leader of Team X and something of a father figure to Logan, who’s been captured by villain Bolivar Trask. </p><p>I appreciate that Insomniac has opted to avoid the origin story approach. Like the first Marvel’s Spider-Man game, you take control of an established Wolverine, already familiar with his powers, and with a rich backstory explored across the single-player campaign.</p><p>Marvel purists might wrinkle their noses at some changes to established X-Men lore. However, the story is generally entertaining and does a good job of motivating players to push through the many, many enemy gauntlets to see what happens next. There are also several familiar faces, including Mystique, Sabretooth, Lady Deathstrike, and Jean Grey.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fX2HAE2a4Z8f6riZuCdF5S" name="MW_ExtGameplay_Jean_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/fX2HAE2a4Z8f6riZuCdF5S-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>The latter is the most important. Jean and Wolverine’s relationship takes on a prominent role in the narrative, and their budding romance is easy to buy into. There’s no Scott Summers in Logan’s way in this Marvel universe, so that played-out X-Men love triangle isn’t repeated.</p><p>One less successful character inclusion is Nathaniel Essex. I’ll avoid direct spoilers, but anybody even vaguely familiar with the X-Men’s comic book history will know where his character arc is heading, which means that when the big reveal comes, it lacks impact.</p><p>While not telling the definitive Wolverine story, the game presents a well-paced and smartly plotted comic book tale. It leaves the protagonist in a good spot where a sequel seems likely, not least because of an intriguing post-credits scene that leaves a thread hanging.</p><h2 id="getting-the-claws-out">Getting the claws out</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7d6qp2tEBoUQixDdDneLuR" name="MW_ExtGameplay_WolverineHero_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/7d6qp2tEBoUQixDdDneLuR-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>Insomniac hasn’t been afraid to lean into brutal violence with its interpretation of Wolverine. Within moments of picking up your DualSense controller, Logan’s claws are stained red with blood as he quite literally tears through enemies, lopping off limbs, spilling guts, and some of the finisher moves are so extreme they made me practically wince the first time I saw them.</p><p>Unfortunately, while such a high level of violence is initially novel (does that say something worrying about me?), the pleasure of disembowelling an enemy wears off alarmingly fast. Wolverine’s combat always looks extremely flashy, but it’s very one-note. It’s your basic system of light and heavy attacks, with the occasional block thrown in every few strikes.</p><p>As the story progresses, you unlock a suite of special abilities, one of which lets Wolverine knee an enemy in the chin (which always made me chuckle), and another lets him unleash a quick flurry of damage-dealing slashes. But these do little to spice up a combat system that feels repetitive within just a few levels. Late-game enemies are damage sponges, and bosses have large health pools and predictable move sets, further adding to the issue.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YJ2a6EuNp2aUCgphWCMdKS" name="MW_ExtGameplay_GunCut_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/YJ2a6EuNp2aUCgphWCMdKS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>At least smartly managing your rage meter, which fills as you kill enemies, can make later encounters a bit less of a slog. At rage level 3, you unlock the ability to instantly execute enemies, so you can bounce around the battlefield, turning henchmen to pulp in minutes. </p><p>Alternatively, you could often opt for stealth; multiple levels place Logan in environments with tall grass to sink through and high trees to scale, but I have to wonder: does anybody associate Wolverine with a stealthy approach? It certainly doesn’t fit the character to me.</p><p>As the game progresses, combat areas grow larger with more and more enemies to slice up, but I found myself merely going through the motions, relying on basic combos that suffice until the end. The skill tree unlocks a few new moves, but they’re largely unnecessary; on normal difficulty, just mashing the standard attack and tapping the block button will suffice.</p><h2 id="unfogging-logan-s-past">Unfogging Logan’s past</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Nbt33GkGB7ZfBJj9pDdhmP" name="MW_PREVIEWS_HAND_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/Nbt33GkGB7ZfBJj9pDdhmP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>Wolverine is primarily a very linear experience. There’s no open world like Spidey’s NYC. However, some levels do let you wander a little bit. Taking in the sights is worthwhile, as there are collectibles that flesh out Insomniac’s spin on the X-Men universe. </p><p>I suspect some players will find the frequency of “walking” sections a chore, but I enjoyed this change of pace, and they helped to break up the repetitive combat. They also go a long way to developing Wolverine’s relationship with the supporting cast, which is one of the game’s core strengths. I wouldn’t have cared about Jean Grey half as much without them.</p><p>Optional Nightmare Doors offer even more insight into Wolverine’s past and represent the bulk of the side content (unless you count collectible whiskey bottles). These imposing wooden doors are easily spotted within levels by their glowing purple roots, and each offers a self-contained challenge mission. Once completed, you get a short memory fragment. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9wbnUSo6hfErWG6pLE5XQP" name="MW_PREVIEWS_TELEMBANGCOMBAT_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/9wbnUSo6hfErWG6pLE5XQP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>The Nightmare Door challenges range from combat trials (not that I really need <em>more </em>enemies to butcher) to some very fun traversal courses, which I always looked forward to. Upon completion, you’re given a rank from bronze to adamantium, and I felt compelled to achieve the highest rank on each before moving on. High score chasers will love them.</p><p>Here, the game also dips its toes into the rougelite genre with three trials that pit you against 20 waves of enemies. Between every five waves, you can pick a modifier that buffs Logan (increased damage, reduced special ability cooldown, etc.), while also giving him a negative effect (like your rage meter taking longer to fill), forcing you to adapt your combat tactics.</p><p>These combat trials are very simple, and all take place in the same small map, but there’s a good foundation here. I’d love to see them expanded further. Maybe they’re hinting at a post-launch DLC similar to God of War Ragnarök’s well-received Valhalla expansion?</p><h2 id="impressive-visuals-with-rough-edges">Impressive visuals, with rough edges</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bjCmoouJgvfNaJsk4njjFS" name="MW_SDCC_SentinelAction_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/bjCmoouJgvfNaJsk4njjFS-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>On PS5 Pro, Marvel’s Wolverine looks and runs very well. Character models are expressive, the bloody detail when Logan sinks his claws into a goon is marvellous, and the voice acting is of a high standard. Particular credit to Liam McIntyre, who voices the eponymous mutant. </p><p> Even when the action gets thick and fast with Wolverine leaping between enemy soldiers and eventually Sentinel robots, I never noticed any framerate hitches; things were locked at 60 fps. Insomniac offers players plenty of accessibility options, which is very commendable.</p><p>Unfortunately, while Marvel’s Wolverine is another PlayStation Studios game that proves there’s plenty of power remaining in the PS5, my playthrough was blighted by pesky bugs and glitches. These ranged from enemy bodies floating in mid-air, Wolverine initiating a finisher move with thin air (which admittedly looked very funny), and interactable objects refusing to cooperate until Logan was standing at the perfect angle. Annoying but tolerable.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uMzqxsWEMFNrRk3FVFp88S" name="MW_ExtGameplay_ConvoyAttack_4k_2026" alt="Marvel's Wolverine screenshot courtesy of Sony Interactive Entertainment" src="https://cdn.mos.cms.futurecdn.net/uMzqxsWEMFNrRk3FVFp88S-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Insomniac Games)</span></figcaption></figure><p>What was harder to stomach were the half-a-dozen hard crashes that occurred during my 15-hour playthrough. Marvel’s Wolverine is generous with checkpoints, so most didn’t cost me any real progress, but two came during boss battles, which forced me to start over. And as noted, the boss battles are already over-lengthy, so I didn’t need them drawn out further.</p><h2 id="marvel-s-wolverine-review-verdict">Marvel’s Wolverine review: Verdict</h2><p>I don’t want to be too harsh on Marvel’s Wolverine. It’s a generally high-quality action-adventure experience that lets you live out your X-Men dreams of becoming the team’s most iconic member. Yet, while playing, I always felt like something was missing. </p><p>There’s a factory-line quality to Marvel’s Wolverine; it hits all the expected beats of a modern AAA game, but never carves out an identity of its own. The combat is repetitive, the story is good but predictable, and after completing it, I felt little reason to return — even mopping up the few remaining trophies for the Platinum failed to motivate me to continue playing. </p><p>Marvel’s Wolverine is undeniably well-made and offers some no-frills superhero fun, but launching in such a packed release schedule, it’s hard to see where it truly stands out.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ GTA 6 DualSense pre-orders LIVE — limited-edition PS5 controllers are now available at Amazon, Walmart and more ]]></title>
                                                                                                <dc:content><![CDATA[ <div class="live-content"><div  class="fancy-box"><div class="fancy_box-title">GTA 6 DualSense pre-orders</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EPt7Jojwcu8g3LTUtBYAnA" name="gta-dualsense-controllers-ps5" caption="" alt="GTA 6 DualSense Controllers on a Vice City themed background" src="https://cdn.mos.cms.futurecdn.net/EPt7Jojwcu8g3LTUtBYAnA-1920-80.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Sony / Rockstar Games)</span></figcaption></figure><p class="fancy-box__body-text"><strong>US (pre-orders now LIVE)</strong><br /><em>Amazon: </em><a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><em>pre-order now</em></a><br /><em>PS Direct: </em><a data-analytics-id="inline-link" href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><em>pre-order now</em></a><br /><em>Best Buy: </em><a data-analytics-id="inline-link" href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><em>pre-order now</em></a><br /><em>Walmart: </em><a data-analytics-id="inline-link" href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><em>pre-order now</em></a><br />----------------------------------<br /><strong>UK (pre-orders now LIVE)</strong><br /><em>Amazon: </em><a data-analytics-id="inline-link" href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><em>check stock now</em></a><br /><em>PS Direct: </em><a data-analytics-id="inline-link" href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><em>pre-order now</em></a><br />----------------------------------<br />1. <a data-analytics-id="inline-link" href="#section-gta-6-dualsense-controller-pre-orders-quick-links">Quick Links</a><br />2. <a data-analytics-id="inline-link" href="#section-gta-6-dualsense-controller-pre-orders-full-retailer-listings">Retailer listings</a><br />3. <a data-analytics-id="inline-link" href="#section-wolverine-ps5-console-and-controllers-uk-pre-orders">U.K. pre-orders</a><br />4. <a data-analytics-id="inline-link" href="#section-live-updates">LIVE: Latest updates</a></p></div></div><p>To mark the release of a little game called Grand Theft Auto VI, PlayStation is launching limited-edition PS5 DualSense controllers. <strong>GTA 6 DualSense pre-orders are now live in the U.S. and the U.K.</strong></p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li></ul><p>U.S. pre-orders kicked off at 10 a.m. ET, and for now, there is stock available at multiple retailers including <a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>Amazon</strong></a>, <a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>Best Buy</strong></a> and <a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>Walmart</strong></a>. The Black edition is exclusive to <a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>PlayStation Direct</strong></a>.</p><p><strong>In the U.K., most</strong> <strong>retailers are sold out </strong>after pre-orders went live at 10 a.m. BST. You can still pre-order the Black variant at <a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>PlayStation Direct</strong></a>, and <a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>Amazon</strong></a> has a listing page but hasn't taken pre-orders yet. So watch the retailer closely; it could have stock soon.</p><p>This latest special edition PS5 pad comes in two variants, Black and White, and gives the DualSense controller a GTA 6-themed makeover. You’ve got the GTA 6 logo on the touchpad, palm trees adorning the sides, and a "shimmering" finish to cap it all off. In PlayStation’s own words, the controllers "capture that unmistakable Vice City energy."</p><p>Like anything GTA 6 related, these DualSense controllers are likely to sell out fast, but this isn’t my first rodeo. I’ve played (and won) the pre-order game multiple times. I’ve covered major pre-orders for a slew of in-demand items over the years, all in an effort to help regular gamers get their hands on limited edition gear rather than those nefarious resellers.</p><p>Below are all the retailer links you’ll need, and the latest live stock update to make sure you get your GTA 6 PS5 controller.</p><h3 class="article-body__section" id="section-gta-6-dualsense-controller-pre-orders-quick-links"><span>GTA 6 DualSense controller pre-orders - quick links</span></h3><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>$84 @ Walmart</strong></a><strong> </strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong> </a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>check stock @ Best Buy </strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li></ul><h3 class="article-body__section" id="section-gta-6-dualsense-controller-pre-orders-full-retailer-listings"><span>GTA 6 DualSense controller pre-orders - full retailer listings</span></h3><div class="product"><a data-dimension112="c4fc3adc-ac64-11f1-93ca-0f58826d1f39" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="c4fc3adc-ac64-11f1-93ca-0f58826d1f39" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Amazon was late to the party, but it is now taking GTA 6 DualSense pre-orders. If you're a Prime member, this is the obvious place to secure yours!<a class="view-deal button" href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="c4fc3adc-ac64-11f1-93ca-0f58826d1f39" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3bcc-ac64-11f1-b70e-89e74b5147dd" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:93.65%;"><img id="Bi2iDjTxUHTUQK9FHZ4W8D" name="Walmart logo.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bi2iDjTxUHTUQK9FHZ4W8D-1920-80.jpeg" mos="" align="middle" fullscreen="" width="960" height="899" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow" data-dimension112="c4fc3bcc-ac64-11f1-b70e-89e74b5147dd" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Walmart just went live with its GTA 6 DualSense pre-orders; you can secure your controllers from the retailer right now.<a class="view-deal button" href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow" data-dimension112="c4fc3bcc-ac64-11f1-b70e-89e74b5147dd" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="dd66d302-ad22-11f1-bbab-d56f9dafb593" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EXpDruhoaAuddyN6RUCGyb" name="GameStop logo.png" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EXpDruhoaAuddyN6RUCGyb-1920-80.png" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow" data-dimension112="dd66d302-ad22-11f1-bbab-d56f9dafb593" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />GameStop is now taking pre-orders of the GTA 6 DualSense in White; it costs $84. <a class="view-deal button" href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow" data-dimension112="dd66d302-ad22-11f1-bbab-d56f9dafb593" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3a64-ac64-11f1-a4d0-03e5a8c457af" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-white-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="HZfFhWobR5BcFYUhfz5KbR" name="playstation-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HZfFhWobR5BcFYUhfz5KbR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-white-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3a64-ac64-11f1-a4d0-03e5a8c457af" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br /><strong>PlayStation Direct has GTA 6 DualSense pre-orders now</strong>. There's a virtual queue in place, and this is the only retailer where you can get the exclusive Black edition.<a class="view-deal button" href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-white-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3a64-ac64-11f1-a4d0-03e5a8c457af" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3b5e-ac64-11f1-926e-5f8ad0762efc" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow" data-dimension112="c4fc3b5e-ac64-11f1-926e-5f8ad0762efc" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Best Buy started taking GTA 6 DualSense pre-orders at 10 a.m., and after a few hours, appears to have sold out, with its buy button replaced with "coming soon."<a class="view-deal button" href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow" data-dimension112="c4fc3b5e-ac64-11f1-926e-5f8ad0762efc" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3c3a-ac64-11f1-85d8-5d350aed0243" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow" data-dimension112="c4fc3c3a-ac64-11f1-85d8-5d350aed0243" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Target is another retailer to check if you're hunting for a GTA 6 DualSense. It normally drops its stock in good time, so keep an eye on it around 10 a.m. ET in case the listing goes live.<a class="view-deal button" href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow" data-dimension112="c4fc3c3a-ac64-11f1-85d8-5d350aed0243" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><h3 class="article-body__section" id="section-gta-6-dualsense-controller-uk-pre-orders"><span>GTA 6 DualSense controller UK pre-orders</span></h3><p><em>U.K. pre-orders began at 10 a.m. BST with most retailers selling out after a few hours. However, restocks could appear at any moment so check these links, and Amazon is still yet to go live with its pre-orders.</em></p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://ee.co.uk/products/playstation-5-gta-vi-white-edition-dualsense" target="_blank" rel="nofollow"><strong>£74 @ EE</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>check stock @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>check stock @ Currys</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>check stock @ Very</strong></a></li><li><strong>GTA 6 DualSense (White):</strong> <a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li></ul><div class="product"><a data-dimension112="c4fc3d16-ac64-11f1-b939-85b23f8cf7c2" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow" data-dimension112="c4fc3d16-ac64-11f1-b939-85b23f8cf7c2" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Amazon is the world's biggest online retailer and has launched a listing page for the GTA 6 DualSense. <strong>Pre-orders aren't live yet</strong>, but could arrive any moment. This is the retailer to watch.<a class="view-deal button" href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow" data-dimension112="c4fc3d16-ac64-11f1-b939-85b23f8cf7c2" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3d84-ac64-11f1-945d-c905e040642e" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="fcoMFvDbzgfzqaiQW5MiR3" name="Currys logo.JPG" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/fcoMFvDbzgfzqaiQW5MiR3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow" data-dimension112="c4fc3d84-ac64-11f1-945d-c905e040642e" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Currys specialises in all things tech, and that includes the GTA 6 DualSense. However, as of now, it's <strong>sold out </strong>of pre-orders. I'm watching out for a restock.<a class="view-deal button" href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow" data-dimension112="c4fc3d84-ac64-11f1-945d-c905e040642e" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3cb2-ac64-11f1-9e4a-e3862ee50721" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="HZfFhWobR5BcFYUhfz5KbR" name="playstation-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HZfFhWobR5BcFYUhfz5KbR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3cb2-ac64-11f1-9e4a-e3862ee50721" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />PlayStation Direct is now sold out of pre-orders, and it's the <strong>exclusive retailer for the Black edition. </strong>If you want that one, you'll need to hope for a restock. <a class="view-deal button" href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3cb2-ac64-11f1-9e4a-e3862ee50721" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="80b8e842-acf1-11f1-84ce-2930f5b99925" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="mR6gMuPnQxkcEgakbtC2Kn" name="Argos" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/mR6gMuPnQxkcEgakbtC2Kn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2048" height="2048" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow" data-dimension112="80b8e842-acf1-11f1-84ce-2930f5b99925" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Argos is another U.K. retailer that dropped its pre-orders early and has since <strong>sold out</strong>, but it's already restocked once today. Could a third drop follow? I'm watching closely just in case.<a class="view-deal button" href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow" data-dimension112="80b8e842-acf1-11f1-84ce-2930f5b99925" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3e60-ac64-11f1-8776-9772ade8eed7" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.74%;"><img id="cviyb34Txub5MugdCdTP4X" name="smyths-toys-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/cviyb34Txub5MugdCdTP4X-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="249" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow" data-dimension112="c4fc3e60-ac64-11f1-8776-9772ade8eed7" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Smyths Toys is another UK retailer that took GTA 6 DualSense pre-orders before the 10 a.m. BST drop time. It's currently <strong>sold out</strong>, but has already restocked once.<a class="view-deal button" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow" data-dimension112="c4fc3e60-ac64-11f1-8776-9772ade8eed7" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3df2-ac64-11f1-885a-d7f8cb786b41" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="Kme7twv2ZTuVy3i7F33SWo" name="Very_Logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Kme7twv2ZTuVy3i7F33SWo-1920-80.png" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow" data-dimension112="c4fc3df2-ac64-11f1-885a-d7f8cb786b41" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Very began taking GTA 6 DualSense today (Sept. 9), and now appears to be <strong>sold out</strong>; however, there could be restocks, so it's worth checking stock.<a class="view-deal button" href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow" data-dimension112="c4fc3df2-ac64-11f1-885a-d7f8cb786b41" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><h3 class="article-body__section" id="section-live-updates"><span>Live updates</span></h3></div><div class="live-content"><time datetime="2026-09-10T08:11:05+00:00">September 10, 2026 – 4:11 AM</time><h2 id="welcome-2">Welcome!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aTyNXd6bLMr7vHwNjtATy5" name="GTA 6 - Lucia.jpg" alt="GTA 6" src="https://cdn.mos.cms.futurecdn.net/aTyNXd6bLMr7vHwNjtATy5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar Games)</span></figcaption></figure><p>Good morning! Welcome to Tom's Guide of the GTA 6 DualSense pre-order drop. The controllers are set to be available in the U.K. in less than an hour (at 10 a.m. BST), with the U.S. drop following at 10 a.m. ET / 7 a.m PT. I'm here to bring you all the updates and stock information to help you secure yours. </p></div><div class="live-content"><time datetime="2026-09-10T08:15:56+00:00">September 10, 2026 – 4:15 AM</time><h2 id="uk-retailers-drop-early">UK retailers drop early!</h2><p>Well, pre-orders weren't supposed to start until 10 a.m. BST, but multiple retailers in the U.K. have jumped the gun, and you can pre-order a GTA 6 DualSense now at Very, Currys and Argos!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>£74 @ Very</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:27:46+00:00">September 10, 2026 – 4:27 AM</time><h2 id="another-uk-retailer-is-taking-pre-orders-now">Another UK retailer is taking pre-orders now!</h2><p>It's all happening this morning, the 10 a.m. BST drop is well and truly out of the window. Smyths Toys is the latest stockiest to push the button and start taking pre-orders of the GTA 6 DualSense. You can lock in yours right now!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:42:06+00:00">September 10, 2026 – 4:42 AM</time><h2 id="the-black-model-is-mia-in-the-uk-so-far">The Black model is MIA in the UK (so far)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aVjN5Bt4xVayURR3x8Bihh" name="gta-6-dualsense-controller-black" alt="GTA 6 DualSense in Black on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/aVjN5Bt4xVayURR3x8Bihh-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>If you want to pre-order the GTA 6 DualSense in White, you've got plenty of options in the U.K. right now (see links below). However, so far, I've not spotted any retailers that is offering the Black version. </p><p>Perhaps this one will be exclusive to PlayStation Direct? That is a strategy PlayStation has used before during limited-edition pre-order drops. PlayStation likes to keep at least one item exclusive to its own online storefront (it did similar during the Wolverine PS5 range pre-order drop). </p><p>If you're holding out for the GTA 6 DualSense in Black, <strong>PS Direct is set to take pre-orders from 10 a.m. BST</strong>, and I'm watching closely for any retailer listings for this one!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>£74 @ Very</strong></a></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:46:09+00:00">September 10, 2026 – 4:46 AM</time><h2 id="amazon-u-k-39-s-listing-page-is-live-but-no-pre-orders-yet">Amazon U.K.'s listing page is live, but no pre-orders yet!</h2><p>Looks like Amazon U.K. will be getting in on the pre-order action at some point. The GTA 6 DualSense now has a listing page on the online mega-retailer, but Amazon pre-orders aren't live yet. This is one to watch closely if it's your preferred shopping destination.  </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>£74 @ Amazon U.K.</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:54:03+00:00">September 10, 2026 – 4:54 AM</time><h2 id="ps-direct-drop-is-about-to-begin">PS Direct drop is about to begin!</h2><p>One retailer that is sticking to the 10 a.m. BST drop (at least, it appears that way) is PlayStation Direct. This might be the exclusive place to get the GTA 6 DualSense in Black, so now's a good time to head over to the site and get ready if you want to pre-order directly from PlayStation. </p><p>Naturally, I'll update you the moment that stock becomes available </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-icon-blue-special-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:00:36+00:00">September 10, 2026 – 5:00 AM</time><h2 id="gta-6-dualsense-pre-orders-are-live-at-playstation-direct">GTA 6 Dualsense pre-orders are LIVE at PlayStation Direct!</h2><p>If you're not already on PS Direct, get over there now, because pre-orders are going live any second. There's even a virtual queue forming, so clearly there's plenty of shoppers jumping onto the site to grab a limited edition DualSense!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-icon-blue-special-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:04:54+00:00">September 10, 2026 – 5:04 AM</time><h2 id="it-could-be-a-long-wait">It could be a long wait...</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZiCKsz8NAcuWqCEwXyRc8N" name="ps-direct-gta-6-dualsense-waiting-room" alt="PlayStation Direct waiting room for the GTA 6 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/ZiCKsz8NAcuWqCEwXyRc8N-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>PS Direct is open for pre-orders, but it's going to take a little while to get on the site. My current estimated wait time is 42 minutes, but I'm hoping that'll prove to be an over estimation. Remember, the GTA 6 DualSense in Black appears to be exclusive to PlayStation Direct, so join the queue now if that's the model you're looking to score today!</p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-icon-blue-special-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:09:34+00:00">September 10, 2026 – 5:09 AM</time><h2 id="if-you-want-the-white-model-don-39-t-wait-in-the-queue">If you want the White model, don't wait in the queue!</h2><p>Hello to anybody just joining us now that 10 a.m. BST has arrived. PlayStation Direct is now taking pre-orders but there's a long virtual queue in place. This retailer is the exclusive place to score the GTA 6 DualSense in Black, so if that's the one you're after, there's nothing to do but wait and hope it stays in stock.</p><p>However, if you want the white model, skip the queue, and go pre-order it right now at the other U.K. retailers that currently have it in stock already. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>£74 @ Very</strong></a></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:15:36+00:00">September 10, 2026 – 5:15 AM</time><h2 id="looks-like-some-uk-retailers-are-selling-out">Looks like some UK retailers are selling out!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="k9ACowFJAchxyV8SK7c238" name="gta-6-dualsense-smyths-toys-pre-order" alt="Smyths Toys listing page for GTA 6 DualSense showing "out of stock"" src="https://cdn.mos.cms.futurecdn.net/k9ACowFJAchxyV8SK7c238-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Smyths Toys)</span></figcaption></figure><p>I'm still waiting in the PS Direct queue, and will update you once I reach the front. In the meantime, I've been checking stock across the other UK retailers taking pre-orders for the GTA 6 DualSense, and it looks like Very and Smyths Toys have sold out. We knew this controller would be popular. I'm still able to add to my cart on Currys and Argos, but who knows how long these will hold. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:31:32+00:00">September 10, 2026 – 5:31 AM</time><h2 id="i-39-m-nearly-at-the-front-of-the-ps-direct-queue">I'm nearly at the front of the PS Direct queue!</h2><p>PS Direct is telling me I've got just 8 minutes left to wait until I'm <em>finally </em>through, and can give you an update on the stock situation. Nearly there!</p></div><div class="live-content"><time datetime="2026-09-10T09:40:22+00:00">September 10, 2026 – 5:40 AM</time><h2 id="here-39-s-the-situation-at-ps-direct-and-the-links-you-need">Here's the situation at PS Direct (and the links you need)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KNmKFejEgZbaC8khvjansV" name="ps-direct-gta-6-dualsense-black" alt="PlayStation Direct listing page for the GTA 6 DualSense in Black" src="https://cdn.mos.cms.futurecdn.net/KNmKFejEgZbaC8khvjansV-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>I'm onto PS Direct at long last, and the retailer is taking pre-orders for both versions of the controllers. I've got the links you need down below. I've been able to add both editions to my cart, so it appears that stock is still available! </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:50:34+00:00">September 10, 2026 – 5:50 AM</time><h2 id="stock-is-holding-at-ps-direct">Stock is holding at PS Direct!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HRQ9WzN6agHNywZTcAAHhh" name="gta-6-dualsense-ps-direct-checkout" alt="PlayStation Direct checkout screen for the GTA 6 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/HRQ9WzN6agHNywZTcAAHhh-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>If you're in the virtual queue right now, keep waiting. I can confirm that stock is holding for now, even on the exclusive Black edition. I'm able to add both to my cart and reach the final stages of checkout. Let's hope stock sticks around! </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:59:40+00:00">September 10, 2026 – 5:59 AM</time><h2 id="another-retailer-sold-out-in-the-uk">Another retailer sold out in the UK</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K4R4ujDyyZ26W5PUkhPsKo" name="gta-6-dualsense-argos-sold-out" alt="Argos checkout showing the GTA 6 DualSense sold out" src="https://cdn.mos.cms.futurecdn.net/K4R4ujDyyZ26W5PUkhPsKo-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Argos)</span></figcaption></figure><p>It appears that stock is starting to stumble in the UK, I've done my latest stock check, and it looks like <strong>Argos has now sold out</strong>. You can still add the controller to your cart, but there is no option for either collection or delivery. I'm still able to see stock at Currys and PS Direct, but don't expect this to stick around for long. If you want a GTA 6 DualSense, now is the time to pre-order!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:12:07+00:00">September 10, 2026 – 6:12 AM</time><h2 id="did-the-gta-6-dualsense-just-disappear-on-ps-direct">Did the GTA 6 DualSense just disappear on PS Direct?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zzVesshfRQQ5tBvpF2MXNP" name="ps-direct-dualsense-color-options" alt="PlayStation Direct page for DualSense controllers" src="https://cdn.mos.cms.futurecdn.net/zzVesshfRQQ5tBvpF2MXNP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>The situation has taken a mysterious turn. I just refreshed PlayStation Direct to do my latest stock level check, and the GTA 6 DualSense controllers appear to have disappeared from the retailer's DualSense page. The only limited edition pads I'm seeing now are the two Wolverine controllers. </p><p>Could this be a sign of a sell-out, or is PlayStation Direct being crushed with so many people trying to buy that the site can't handle the load? Fortunately, the direct links to the listing pages below are still working, but it does appear that PS Direct is becoming a little unstable as shoppers try to check out. </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:22:32+00:00">September 10, 2026 – 6:22 AM</time><h2 id="ps-direct-sells-out-of-gta-6-dualsense-but-it-39-s-not-the-one-i-expected">PS Direct sells out of GTA 6 DualSense, but it's not the one I expected!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="U2HpzEtzckL6zyhRvFi45m" name="ps-direct-gta-6-dualsense-controller" alt="PlayStation Direct listing page showing the GTA 6 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/U2HpzEtzckL6zyhRvFi45m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Looks like PS Direct's stock is reaching its limit. I'm now getting a <strong>"currently unavailable"</strong> message on the GTA 6 DualSense controller, but surprisingly, it's on the White model. </p><p>The Black one is exclusive to PS Direct, so I expect it to be the first to sell out, but it would appear the White model is the more popular of the two. For now, you can still grab the GTA 6 DualSense in Black on PS Direct, but it might only be a matter of minutes before it also sells out. </p><p>Meanwhile, if you want the controller in white,  I'm still able to add it to my cart on Currys. But again, this stock may not stick around much longer. </p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:32:32+00:00">September 10, 2026 – 6:32 AM</time><h2 id="restock-over-at-smyths-toys">Restock over at Smyths Toys!</h2><p>Earlier this morning, Smyths Toys appeared to sell out the GTA 6 DualSense, but seemingly the retailer found some more stock, because the "delivery" button has turned green, and you can now pre-order it again. Be quick!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:51:50+00:00">September 10, 2026 – 6:51 AM</time><h2 id="argos-has-also-restocked-the-gta-6-dualsense">Argos has also restocked the GTA 6 DualSense!</h2><p>Looks like several UK retailers are again taking pre-orders after initially appearing to sell out, add Argos to the list, the controller is once again available to order for delivery at the retailer. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li></ul></div><div class="live-content"><time datetime="2026-09-10T11:03:28+00:00">September 10, 2026 – 7:03 AM</time><h2 id="currys-is-currently-39-out-of-stock-39">Currys is currently 'out of stock'!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y7xyn8VYcu6qFGbJoo7BJn" name="currys-gta-6-dualsense-listing-page" alt="Currys listing page for the GTA 6 DualSense showing an "out of stock" message" src="https://cdn.mos.cms.futurecdn.net/y7xyn8VYcu6qFGbJoo7BJn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Currys)</span></figcaption></figure><p>While other retailers, like Argos and Smyths Toys have restocked, Currys is now saying "out of stock." The retailer held strong for several hours, but at least for now, it's allocation has run dry. I'll keep watching for restocks, but fear not, if you haven't locked in a pre-order yet, you've got plenty of options.</p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a><strong> </strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>£74 @ Amazon</strong></a><strong> (CHECK STOCK)</strong></li></ul></div><div class="live-content"><time datetime="2026-09-10T11:20:20+00:00">September 10, 2026 – 7:20 AM</time><h2 id="white-model-back-in-stock-at-ps-direct">White model back in stock at PS Direct!</h2><p>It looks like fresh stock is appearing across UK retailers. PS Direct is taking pre-orders of the White mode after previously listing it as "unavailable". It's also the only place to get the Black version, so take your pick: </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T11:41:12+00:00">September 10, 2026 – 7:41 AM</time><h2 id="here-39-s-the-state-of-play-in-the-uk">Here's the state of play in the UK!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p><strong>I'll be turning my attention to the US next</strong>, with the pre-order drop set for 10 a.m. ET Stateside, but I'm still keeping an eye on the situation in the UK, and with retailers selling out and restocking and then selling out again, here's where we currently stand:</p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White):</strong> <a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>check stock @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>check stock @ Currys</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>check stock @ Very</strong></a></li></ul><p>So, essentially, the <strong>White model is currently sold out across retailers</strong>, but we have seen a few retailers "sell out" and then restock, so keep checking. Meanwhile, <strong>the Black controller is still available </strong>(and is exclusive to PS Direct). But I wouldn't bank on this sticking around long, so get yours ASAP.</p><p>Amazon is the main retailer to watch in the UK. It has a listing page for the GTA 6 DualSense but hasn't opened pre-orders yet. This isn't abnormal; Amazon often drops its stock later than its retailer rivals. So, if you're hoping to score the GTA-themed pad in White, I suggest keeping Amazon open. </p></div><div class="live-content"><time datetime="2026-09-10T12:01:16+00:00">September 10, 2026 – 8:01 AM</time><h2 id="the-us-is-waking-up-time-to-get-ready">The US is waking up, time to get ready!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4TUTG7z8sBNcsajGFwkPaN" name="GTA 6 feature image.jpg" alt="GTA 6 featured poster" src="https://cdn.mos.cms.futurecdn.net/4TUTG7z8sBNcsajGFwkPaN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar)</span></figcaption></figure><p>Good morning to anybody in the U.S. joining the live blog now. It's 8 a.m. ET, which means the GTA 6 DualSense pre-order drop is set to arrive Stateside in two hours. However, as we saw in the U.K. already, retailers don't always stick to these timings. Several went early in the U.K., so I'm watching all the major U.S. retailers now and will keep you updated the moment pre-orders go live!</p></div><div class="live-content"><time datetime="2026-09-10T12:18:50+00:00">September 10, 2026 – 8:18 AM</time><h2 id="let-me-know-which-gta-dualsense-you-want-most">Let me know which GTA DualSense you want most!</h2><p>I'm curious to hear from you. Vote in our poll and let me know which DualSense you're looking to pre-order later today. Or if you're in the U.K., let me know if you managed to lock in your order during this morning's drop!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJ9orX"></div>                            </div>                            <script src="https://kwizly.com/embed/eJ9orX.js" async=""></script></div><div class="live-content"><time datetime="2026-09-10T12:46:27+00:00">September 10, 2026 – 8:46 AM</time><h2 id="psa-prepare-for-pre-orders-before-10-a-m-et">PSA: Prepare for pre-orders before 10 a.m. ET!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aVjN5Bt4xVayURR3x8Bihh" name="gta-6-dualsense-controller-black" alt="GTA 6 DualSense in Black on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/aVjN5Bt4xVayURR3x8Bihh-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>A word of advice, if you're hoping to secure a GTA 6 DualSense today, don't bank on the 10 a.m. ET drop timing being wholly accurate. </p><p>We've seen with previous pre-order events that retailers can be unpredictable, sometimes dropping early, sometimes waiting until after the initial rush. Pre-orders could feasibly start pretty much any time from now. </p><p>The good news is, if you're following this live blog, you're already in the right spot, as I'll be updating you with all the latest stock information throughout.</p></div><div class="live-content"><time datetime="2026-09-10T13:03:33+00:00">September 10, 2026 – 9:03 AM</time><h2 id="1-hour-until-the-us-pre-order-drop">1 hour until the US pre-order drop!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>Just 60 minutes until pre-orders are scheduled to begin in the U.S., but remember, retailers don't always play by the rules, and an early drop could happen, and the odds suggest that a few (probably Amazon) will go later!</p></div><div class="live-content"><time datetime="2026-09-10T13:10:36+00:00">September 10, 2026 – 9:10 AM</time><h2 id="target-39-s-listing-page-is-already-up">Target's listing page is already up!</h2><p>Most retailers haven't yet launched listings pages for the GTA 6 DualSense, but Target has broken rank, and it's page is up. You can't pre-order the controller yet, and there's a "preorders have sold out" message, but I'm assuming this is an error because there are no reports of the retailer ever taking pre-orders. I expect this page will be updated around 10 a.m. ET. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><strong>$84 @ Target</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T13:24:41+00:00">September 10, 2026 – 9:24 AM</time><h2 id="another-uk-retailer-just-came-to-the-party">Another UK retailer just came to the party!</h2><p>Briefly returning to the U.K., EE is now taking pre-orders of the GTA 6 DualSense. This is good news because all other major retailers are currently sold out. I can't say that EE would be the first place I'd check for limited edition gaming items, but hey, if you missed out earlier, go grab one now!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://ee.co.uk/products/playstation-5-gta-vi-white-edition-dualsense" target="_blank" rel="nofollow"><strong>£74 @ EE</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T13:43:42+00:00">September 10, 2026 – 9:43 AM</time><h2 id="playstation-direct-pages-are-live">PlayStation Direct pages are LIVE!</h2><p>PS Direct is getting ready for the pre-order drop, with it's listing pages for the GTA 6 DualSense in both White and Black (Which is exclusive to the retailer) now live. Below are the all important links you'll need at 10 a.m., get ready!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T13:46:02+00:00">September 10, 2026 – 9:46 AM</time><h2 id="i-want-to-hear-from-you">I want to hear from you!</h2><p>With just 15 minutes until the pre-order chaos kicks off in the U.S., let me know which GTA 6 DualSense controller are you hoping to grab very soon:</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJ9orX"></div>                            </div>                            <script src="https://kwizly.com/embed/eJ9orX.js" async=""></script></div><div class="live-content"><time datetime="2026-09-10T13:55:29+00:00">September 10, 2026 – 9:55 AM</time><h2 id="it-39-s-almost-time-here-39-s-the-ps-direct-links-you-need">It's almost time, here's the PS Direct links you need</h2><p>Just 5 minutes until PS Direct (and potentially other retailers) start taking GTA 6 DualSense controller pre-orders. Below are the links you need to get onto the site and get your pre-order secured at 10 a.m. ET. If the site gets crushed Sony will likely opt to open a virtual waiting room to avoid any crashing. </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:03:14+00:00">September 10, 2026 – 10:03 AM</time><h2 id="ps-direct-has-opened-a-queue">PS Direct has opened a queue! </h2><p>It was expected, the demand for the GTA 6 DualSense is overwhelming PlayStation Direct and a virtual waiting room has appear, slightly worryingly, I'm getting a "line is paused" message, but hopefully I'll have an estimated time to get onto the site in a matter of minutes. </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:10:13+00:00">September 10, 2026 – 10:10 AM</time><h2 id="best-buy-is-taking-pre-orders-quick">Best Buy is taking pre-orders! Quick!</h2><p>If you're stuck at the back of the PS Direct queue, head over to Best Buy now as the retailer is taking pre-orders of the White model.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>$84 @ Best Buy</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:18:23+00:00">September 10, 2026 – 10:18 AM</time><h2 id="ps-direct-is-struggling-so-try-these-alternative-options">PS Direct is struggling, so try these alternative options</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="553dgptyNJ8JsYWAt2dGkE" name="ps-direct-queue-gta-6-controllers" alt="PlayStation Direct virtual waiting room for the GTA 6 DualSense pre-orders" src="https://cdn.mos.cms.futurecdn.net/553dgptyNJ8JsYWAt2dGkE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>I'm seeing a queue time of more than an hour on PlayStation Direct, and if you're also stuck waiting, then you can go pre-orders right now at GameStop and Best Buy using the links below. But remember the Black model is exclusive to PS Direct. However, if it's the White you're after, go grab one!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>$84 @ Best Buy</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:25:04+00:00">September 10, 2026 – 10:25 AM</time><h2 id="try-this-queue-skip-method-on-ps-direct">Try this queue skip method on PS Direct!</h2><p>I'm seeing reports online that you can bypass the PlayStation Direct queue by heading to the <a href="https://direct.playstation.com/en-us/latest" target="_blank" rel="nofollow"><strong>"What's New" section</strong></a><strong> </strong>and then adding a GTA 6 controller directly to your cart from there. I'm unable to check if this method actually works, but if you've got a long wait in the queue, then give it a try!</p><p>You will (reportedly) need to be signed into a PlayStation account for the "add to cart" button to appear. Let me know in the comments if this method works for you!</p><ul><li><strong>GTA 6 DualSense (Black/White): </strong><a href="https://direct.playstation.com/en-us/latest" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:29:38+00:00">September 10, 2026 – 10:29 AM</time><h2 id="walmart-pre-orders-are-live">Walmart pre-orders are LIVE!</h2><p>Walmart is the latest retailer to join the pre-order party, if you were holding out for this one, then now is the time to secure you GTA 6 controller! </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" rel="nofollow"><strong>$84 @ Walmart</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:43:23+00:00">September 10, 2026 – 10:43 AM</time><h2 id="here-39-s-all-the-pre-order-links-you-need">Here's all the pre-order links you need!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>After a hectic 30 minutes, here's all the GTA 6 DualSense pre-order links you need. We're still waiting on something from Amazon, and any signs that Target has more stock (it currently says sold out), and there's a <em>long </em>queue on PS Direct, but you can head straight to Best Buy, Walmart and GameStop and grab the controller in White. The Black model is exclusive to PS Direct.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>$84 @ Best Buy </strong></a><strong>(IN STOCK)</strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>$84 @ Walmart</strong></a><strong> (IN STOCK)</strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong> </a><strong>(IN STOCK)</strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a><strong></strong></li></ul></div><div class="live-content"><time datetime="2026-09-10T15:00:59+00:00">September 10, 2026 – 11:00 AM</time><h2 id="finally-at-the-front-of-the-ps-direct-queue">Finally at the front of the PS Direct queue!</h2><p>It took almost an hour, but I've got onto PS Direct, and it appears that both the White and Black GTA 6 DualSense controllers are still in stock. You will need to sign in to buy, so make sure you know your details beforehand.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T15:24:43+00:00">September 10, 2026 – 11:24 AM</time><h2 id="amazon-has-woken-up">Amazon has woken up!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VKJuBJdcGuY5sj4thDBPfX" name="gta-6-dualsense-amazon-listing" alt="Amazon listing page for the GTA 6 DualSense" src="https://cdn.mos.cms.futurecdn.net/VKJuBJdcGuY5sj4thDBPfX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Amazon)</span></figcaption></figure><p>Amazon kept us waiting, but at long last, the online retailer is taking pre-orders. If you haven't grabbed a GTA 6 DualSense yet, here's the link: </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T15:49:35+00:00">September 10, 2026 – 11:49 AM</time><h2 id="best-buy-stock-appears-to-be-running-out">Best Buy stock appears to be running out!</h2><p>We might have our first sell out in the U.S. soon, Best Buy is jumping between "pre order now" and "coming soon," which suggests it's stock levels are dwindling. I'm still able to get a "pre order now" button with a few refreshes, but that might not last much longer. Fortunately, Amazon just came online, giving you an alternative retailer, if you still need a pre-order.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T16:33:14+00:00">September 10, 2026 – 12:33 PM</time><h2 id="here-39-s-the-state-of-play-in-the-us-and-uk-right-now">Here's the state of play in the US (and UK) right now!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>My day is winding down, but I've done a final sweep of stock across all major retailers in the U.S. and U.K. There's plenty of availability in the U.S., with the DualSense available at <em>most </em>retailers (Best Buy and Target are sold out). </p><p>Meanwhile, in the U.K, options are very limited. EE is still taking pre-orders, and Amazon has a listing page, but so far today, there have been no signs of any stock. PlayStation Direct took the longest but is now sold out in the U.K.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>$84 @ Walmart</strong></a><strong> </strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong> </a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://ee.co.uk/products/playstation-5-gta-vi-white-edition-dualsense" target="_blank" rel="nofollow"><strong>£74 @ EE</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li></ul></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/news/live/gta-6-ps5-dualsense-controller-pre-orders-live-updates</link>
                                                                            <description>
                            <![CDATA[ GTA 6 DualSense controller pre-orders start now, and I've got live updates to help you secure these limited-edition PS5 pads. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gMx9d6mondgj8CYiKf6XRT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EPt7Jojwcu8g3LTUtBYAnA-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 10 Sep 2026 08:08:24 +0000</pubDate>                                                                                                                                <updated>Thu, 10 Sep 2026 16:38:49 +0000</updated>
                                                                                                                                            <category><![CDATA[Playstation]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EPt7Jojwcu8g3LTUtBYAnA-1920-80.jpg">
                                                            <media:credit><![CDATA[Sony / Rockstar Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[GTA 6 DualSense Controllers on a Vice City themed background]]></media:description>                                                            <media:text><![CDATA[GTA 6 DualSense Controllers on a Vice City themed background]]></media:text>
                                <media:title type="plain"><![CDATA[GTA 6 DualSense Controllers on a Vice City themed background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EPt7Jojwcu8g3LTUtBYAnA-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="live-content"><div  class="fancy-box"><div class="fancy_box-title">GTA 6 DualSense pre-orders</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EPt7Jojwcu8g3LTUtBYAnA" name="gta-dualsense-controllers-ps5" caption="" alt="GTA 6 DualSense Controllers on a Vice City themed background" src="https://cdn.mos.cms.futurecdn.net/EPt7Jojwcu8g3LTUtBYAnA-1920-80.jpg" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Sony / Rockstar Games)</span></figcaption></figure><p class="fancy-box__body-text"><strong>US (pre-orders now LIVE)</strong><br /><em>Amazon: </em><a data-analytics-id="inline-link" href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><em>pre-order now</em></a><br /><em>PS Direct: </em><a data-analytics-id="inline-link" href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><em>pre-order now</em></a><br /><em>Best Buy: </em><a data-analytics-id="inline-link" href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><em>pre-order now</em></a><br /><em>Walmart: </em><a data-analytics-id="inline-link" href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><em>pre-order now</em></a><br />----------------------------------<br /><strong>UK (pre-orders now LIVE)</strong><br /><em>Amazon: </em><a data-analytics-id="inline-link" href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><em>check stock now</em></a><br /><em>PS Direct: </em><a data-analytics-id="inline-link" href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><em>pre-order now</em></a><br />----------------------------------<br />1. <a data-analytics-id="inline-link" href="#section-gta-6-dualsense-controller-pre-orders-quick-links">Quick Links</a><br />2. <a data-analytics-id="inline-link" href="#section-gta-6-dualsense-controller-pre-orders-full-retailer-listings">Retailer listings</a><br />3. <a data-analytics-id="inline-link" href="#section-wolverine-ps5-console-and-controllers-uk-pre-orders">U.K. pre-orders</a><br />4. <a data-analytics-id="inline-link" href="#section-live-updates">LIVE: Latest updates</a></p></div></div><p>To mark the release of a little game called Grand Theft Auto VI, PlayStation is launching limited-edition PS5 DualSense controllers. <strong>GTA 6 DualSense pre-orders are now live in the U.S. and the U.K.</strong></p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li></ul><p>U.S. pre-orders kicked off at 10 a.m. ET, and for now, there is stock available at multiple retailers including <a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>Amazon</strong></a>, <a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>Best Buy</strong></a> and <a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>Walmart</strong></a>. The Black edition is exclusive to <a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>PlayStation Direct</strong></a>.</p><p><strong>In the U.K., most</strong> <strong>retailers are sold out </strong>after pre-orders went live at 10 a.m. BST. You can still pre-order the Black variant at <a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>PlayStation Direct</strong></a>, and <a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>Amazon</strong></a> has a listing page but hasn't taken pre-orders yet. So watch the retailer closely; it could have stock soon.</p><p>This latest special edition PS5 pad comes in two variants, Black and White, and gives the DualSense controller a GTA 6-themed makeover. You’ve got the GTA 6 logo on the touchpad, palm trees adorning the sides, and a "shimmering" finish to cap it all off. In PlayStation’s own words, the controllers "capture that unmistakable Vice City energy."</p><p>Like anything GTA 6 related, these DualSense controllers are likely to sell out fast, but this isn’t my first rodeo. I’ve played (and won) the pre-order game multiple times. I’ve covered major pre-orders for a slew of in-demand items over the years, all in an effort to help regular gamers get their hands on limited edition gear rather than those nefarious resellers.</p><p>Below are all the retailer links you’ll need, and the latest live stock update to make sure you get your GTA 6 PS5 controller.</p><h3 class="article-body__section" id="section-gta-6-dualsense-controller-pre-orders-quick-links"><span>GTA 6 DualSense controller pre-orders - quick links</span></h3><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>$84 @ Walmart</strong></a><strong> </strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong> </a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>check stock @ Best Buy </strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li></ul><h3 class="article-body__section" id="section-gta-6-dualsense-controller-pre-orders-full-retailer-listings"><span>GTA 6 DualSense controller pre-orders - full retailer listings</span></h3><div class="product"><a data-dimension112="c4fc3adc-ac64-11f1-93ca-0f58826d1f39" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="c4fc3adc-ac64-11f1-93ca-0f58826d1f39" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Amazon was late to the party, but it is now taking GTA 6 DualSense pre-orders. If you're a Prime member, this is the obvious place to secure yours!<a class="view-deal button" href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow" data-dimension112="c4fc3adc-ac64-11f1-93ca-0f58826d1f39" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3bcc-ac64-11f1-b70e-89e74b5147dd" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:93.65%;"><img id="Bi2iDjTxUHTUQK9FHZ4W8D" name="Walmart logo.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bi2iDjTxUHTUQK9FHZ4W8D-1920-80.jpeg" mos="" align="middle" fullscreen="" width="960" height="899" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow" data-dimension112="c4fc3bcc-ac64-11f1-b70e-89e74b5147dd" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Walmart just went live with its GTA 6 DualSense pre-orders; you can secure your controllers from the retailer right now.<a class="view-deal button" href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow" data-dimension112="c4fc3bcc-ac64-11f1-b70e-89e74b5147dd" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="dd66d302-ad22-11f1-bbab-d56f9dafb593" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EXpDruhoaAuddyN6RUCGyb" name="GameStop logo.png" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EXpDruhoaAuddyN6RUCGyb-1920-80.png" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow" data-dimension112="dd66d302-ad22-11f1-bbab-d56f9dafb593" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />GameStop is now taking pre-orders of the GTA 6 DualSense in White; it costs $84. <a class="view-deal button" href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow" data-dimension112="dd66d302-ad22-11f1-bbab-d56f9dafb593" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3a64-ac64-11f1-a4d0-03e5a8c457af" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-white-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="HZfFhWobR5BcFYUhfz5KbR" name="playstation-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HZfFhWobR5BcFYUhfz5KbR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-white-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3a64-ac64-11f1-a4d0-03e5a8c457af" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br /><strong>PlayStation Direct has GTA 6 DualSense pre-orders now</strong>. There's a virtual queue in place, and this is the only retailer where you can get the exclusive Black edition.<a class="view-deal button" href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-white-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3a64-ac64-11f1-a4d0-03e5a8c457af" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3b5e-ac64-11f1-926e-5f8ad0762efc" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow" data-dimension112="c4fc3b5e-ac64-11f1-926e-5f8ad0762efc" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Best Buy started taking GTA 6 DualSense pre-orders at 10 a.m., and after a few hours, appears to have sold out, with its buy button replaced with "coming soon."<a class="view-deal button" href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow" data-dimension112="c4fc3b5e-ac64-11f1-926e-5f8ad0762efc" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3c3a-ac64-11f1-85d8-5d350aed0243" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84" href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow" data-dimension112="c4fc3c3a-ac64-11f1-85d8-5d350aed0243" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">DualSense Controller: $84</a></strong><br />Target is another retailer to check if you're hunting for a GTA 6 DualSense. It normally drops its stock in good time, so keep an eye on it around 10 a.m. ET in case the listing goes live.<a class="view-deal button" href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow" data-dimension112="c4fc3c3a-ac64-11f1-85d8-5d350aed0243" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="$84">View Deal</a></p></div><h3 class="article-body__section" id="section-gta-6-dualsense-controller-uk-pre-orders"><span>GTA 6 DualSense controller UK pre-orders</span></h3><p><em>U.K. pre-orders began at 10 a.m. BST with most retailers selling out after a few hours. However, restocks could appear at any moment so check these links, and Amazon is still yet to go live with its pre-orders.</em></p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://ee.co.uk/products/playstation-5-gta-vi-white-edition-dualsense" target="_blank" rel="nofollow"><strong>£74 @ EE</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>check stock @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>check stock @ Currys</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>check stock @ Very</strong></a></li><li><strong>GTA 6 DualSense (White):</strong> <a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li></ul><div class="product"><a data-dimension112="c4fc3d16-ac64-11f1-b939-85b23f8cf7c2" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow" data-dimension112="c4fc3d16-ac64-11f1-b939-85b23f8cf7c2" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Amazon is the world's biggest online retailer and has launched a listing page for the GTA 6 DualSense. <strong>Pre-orders aren't live yet</strong>, but could arrive any moment. This is the retailer to watch.<a class="view-deal button" href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow" data-dimension112="c4fc3d16-ac64-11f1-b939-85b23f8cf7c2" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3d84-ac64-11f1-945d-c905e040642e" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="fcoMFvDbzgfzqaiQW5MiR3" name="Currys logo.JPG" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/fcoMFvDbzgfzqaiQW5MiR3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow" data-dimension112="c4fc3d84-ac64-11f1-945d-c905e040642e" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Currys specialises in all things tech, and that includes the GTA 6 DualSense. However, as of now, it's <strong>sold out </strong>of pre-orders. I'm watching out for a restock.<a class="view-deal button" href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow" data-dimension112="c4fc3d84-ac64-11f1-945d-c905e040642e" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3cb2-ac64-11f1-9e4a-e3862ee50721" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="HZfFhWobR5BcFYUhfz5KbR" name="playstation-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/HZfFhWobR5BcFYUhfz5KbR-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3cb2-ac64-11f1-9e4a-e3862ee50721" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />PlayStation Direct is now sold out of pre-orders, and it's the <strong>exclusive retailer for the Black edition. </strong>If you want that one, you'll need to hope for a restock. <a class="view-deal button" href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow" data-dimension112="c4fc3cb2-ac64-11f1-9e4a-e3862ee50721" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="80b8e842-acf1-11f1-84ce-2930f5b99925" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2048px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="mR6gMuPnQxkcEgakbtC2Kn" name="Argos" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/mR6gMuPnQxkcEgakbtC2Kn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2048" height="2048" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow" data-dimension112="80b8e842-acf1-11f1-84ce-2930f5b99925" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Argos is another U.K. retailer that dropped its pre-orders early and has since <strong>sold out</strong>, but it's already restocked once today. Could a third drop follow? I'm watching closely just in case.<a class="view-deal button" href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow" data-dimension112="80b8e842-acf1-11f1-84ce-2930f5b99925" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3e60-ac64-11f1-8776-9772ade8eed7" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.74%;"><img id="cviyb34Txub5MugdCdTP4X" name="smyths-toys-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/cviyb34Txub5MugdCdTP4X-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="249" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow" data-dimension112="c4fc3e60-ac64-11f1-8776-9772ade8eed7" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Smyths Toys is another UK retailer that took GTA 6 DualSense pre-orders before the 10 a.m. BST drop time. It's currently <strong>sold out</strong>, but has already restocked once.<a class="view-deal button" href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow" data-dimension112="c4fc3e60-ac64-11f1-8776-9772ade8eed7" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><div class="product"><a data-dimension112="c4fc3df2-ac64-11f1-885a-d7f8cb786b41" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74" href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="Kme7twv2ZTuVy3i7F33SWo" name="Very_Logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Kme7twv2ZTuVy3i7F33SWo-1920-80.png" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow" data-dimension112="c4fc3df2-ac64-11f1-885a-d7f8cb786b41" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">DualSense Controller: £74</a></strong><br />Very began taking GTA 6 DualSense today (Sept. 9), and now appears to be <strong>sold out</strong>; however, there could be restocks, so it's worth checking stock.<a class="view-deal button" href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow" data-dimension112="c4fc3df2-ac64-11f1-885a-d7f8cb786b41" data-action="Deal Block" data-label="DualSense Controller" data-dimension48="DualSense Controller" data-dimension25="£74">View Deal</a></p></div><h3 class="article-body__section" id="section-live-updates"><span>Live updates</span></h3></div><div class="live-content"><time datetime="2026-09-10T08:11:05+00:00">September 10, 2026 – 4:11 AM</time><h2 id="welcome-2">Welcome!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aTyNXd6bLMr7vHwNjtATy5" name="GTA 6 - Lucia.jpg" alt="GTA 6" src="https://cdn.mos.cms.futurecdn.net/aTyNXd6bLMr7vHwNjtATy5-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar Games)</span></figcaption></figure><p>Good morning! Welcome to Tom's Guide of the GTA 6 DualSense pre-order drop. The controllers are set to be available in the U.K. in less than an hour (at 10 a.m. BST), with the U.S. drop following at 10 a.m. ET / 7 a.m PT. I'm here to bring you all the updates and stock information to help you secure yours. </p></div><div class="live-content"><time datetime="2026-09-10T08:15:56+00:00">September 10, 2026 – 4:15 AM</time><h2 id="uk-retailers-drop-early">UK retailers drop early!</h2><p>Well, pre-orders weren't supposed to start until 10 a.m. BST, but multiple retailers in the U.K. have jumped the gun, and you can pre-order a GTA 6 DualSense now at Very, Currys and Argos!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>£74 @ Very</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:27:46+00:00">September 10, 2026 – 4:27 AM</time><h2 id="another-uk-retailer-is-taking-pre-orders-now">Another UK retailer is taking pre-orders now!</h2><p>It's all happening this morning, the 10 a.m. BST drop is well and truly out of the window. Smyths Toys is the latest stockiest to push the button and start taking pre-orders of the GTA 6 DualSense. You can lock in yours right now!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:42:06+00:00">September 10, 2026 – 4:42 AM</time><h2 id="the-black-model-is-mia-in-the-uk-so-far">The Black model is MIA in the UK (so far)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aVjN5Bt4xVayURR3x8Bihh" name="gta-6-dualsense-controller-black" alt="GTA 6 DualSense in Black on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/aVjN5Bt4xVayURR3x8Bihh-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>If you want to pre-order the GTA 6 DualSense in White, you've got plenty of options in the U.K. right now (see links below). However, so far, I've not spotted any retailers that is offering the Black version. </p><p>Perhaps this one will be exclusive to PlayStation Direct? That is a strategy PlayStation has used before during limited-edition pre-order drops. PlayStation likes to keep at least one item exclusive to its own online storefront (it did similar during the Wolverine PS5 range pre-order drop). </p><p>If you're holding out for the GTA 6 DualSense in Black, <strong>PS Direct is set to take pre-orders from 10 a.m. BST</strong>, and I'm watching closely for any retailer listings for this one!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>£74 @ Very</strong></a></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:46:09+00:00">September 10, 2026 – 4:46 AM</time><h2 id="amazon-u-k-39-s-listing-page-is-live-but-no-pre-orders-yet">Amazon U.K.'s listing page is live, but no pre-orders yet!</h2><p>Looks like Amazon U.K. will be getting in on the pre-order action at some point. The GTA 6 DualSense now has a listing page on the online mega-retailer, but Amazon pre-orders aren't live yet. This is one to watch closely if it's your preferred shopping destination.  </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>£74 @ Amazon U.K.</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T08:54:03+00:00">September 10, 2026 – 4:54 AM</time><h2 id="ps-direct-drop-is-about-to-begin">PS Direct drop is about to begin!</h2><p>One retailer that is sticking to the 10 a.m. BST drop (at least, it appears that way) is PlayStation Direct. This might be the exclusive place to get the GTA 6 DualSense in Black, so now's a good time to head over to the site and get ready if you want to pre-order directly from PlayStation. </p><p>Naturally, I'll update you the moment that stock becomes available </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-icon-blue-special-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:00:36+00:00">September 10, 2026 – 5:00 AM</time><h2 id="gta-6-dualsense-pre-orders-are-live-at-playstation-direct">GTA 6 Dualsense pre-orders are LIVE at PlayStation Direct!</h2><p>If you're not already on PS Direct, get over there now, because pre-orders are going live any second. There's even a virtual queue forming, so clearly there's plenty of shoppers jumping onto the site to grab a limited edition DualSense!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-icon-blue-special-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:04:54+00:00">September 10, 2026 – 5:04 AM</time><h2 id="it-could-be-a-long-wait">It could be a long wait...</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZiCKsz8NAcuWqCEwXyRc8N" name="ps-direct-gta-6-dualsense-waiting-room" alt="PlayStation Direct waiting room for the GTA 6 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/ZiCKsz8NAcuWqCEwXyRc8N-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>PS Direct is open for pre-orders, but it's going to take a little while to get on the site. My current estimated wait time is 42 minutes, but I'm hoping that'll prove to be an over estimation. Remember, the GTA 6 DualSense in Black appears to be exclusive to PlayStation Direct, so join the queue now if that's the model you're looking to score today!</p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-icon-blue-special-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:09:34+00:00">September 10, 2026 – 5:09 AM</time><h2 id="if-you-want-the-white-model-don-39-t-wait-in-the-queue">If you want the White model, don't wait in the queue!</h2><p>Hello to anybody just joining us now that 10 a.m. BST has arrived. PlayStation Direct is now taking pre-orders but there's a long virtual queue in place. This retailer is the exclusive place to score the GTA 6 DualSense in Black, so if that's the one you're after, there's nothing to do but wait and hope it stays in stock.</p><p>However, if you want the white model, skip the queue, and go pre-order it right now at the other U.K. retailers that currently have it in stock already. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>£74 @ Very</strong></a></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:15:36+00:00">September 10, 2026 – 5:15 AM</time><h2 id="looks-like-some-uk-retailers-are-selling-out">Looks like some UK retailers are selling out!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="k9ACowFJAchxyV8SK7c238" name="gta-6-dualsense-smyths-toys-pre-order" alt="Smyths Toys listing page for GTA 6 DualSense showing "out of stock"" src="https://cdn.mos.cms.futurecdn.net/k9ACowFJAchxyV8SK7c238-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Smyths Toys)</span></figcaption></figure><p>I'm still waiting in the PS Direct queue, and will update you once I reach the front. In the meantime, I've been checking stock across the other UK retailers taking pre-orders for the GTA 6 DualSense, and it looks like Very and Smyths Toys have sold out. We knew this controller would be popular. I'm still able to add to my cart on Currys and Argos, but who knows how long these will hold. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:31:32+00:00">September 10, 2026 – 5:31 AM</time><h2 id="i-39-m-nearly-at-the-front-of-the-ps-direct-queue">I'm nearly at the front of the PS Direct queue!</h2><p>PS Direct is telling me I've got just 8 minutes left to wait until I'm <em>finally </em>through, and can give you an update on the stock situation. Nearly there!</p></div><div class="live-content"><time datetime="2026-09-10T09:40:22+00:00">September 10, 2026 – 5:40 AM</time><h2 id="here-39-s-the-situation-at-ps-direct-and-the-links-you-need">Here's the situation at PS Direct (and the links you need)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KNmKFejEgZbaC8khvjansV" name="ps-direct-gta-6-dualsense-black" alt="PlayStation Direct listing page for the GTA 6 DualSense in Black" src="https://cdn.mos.cms.futurecdn.net/KNmKFejEgZbaC8khvjansV-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>I'm onto PS Direct at long last, and the retailer is taking pre-orders for both versions of the controllers. I've got the links you need down below. I've been able to add both editions to my cart, so it appears that stock is still available! </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:50:34+00:00">September 10, 2026 – 5:50 AM</time><h2 id="stock-is-holding-at-ps-direct">Stock is holding at PS Direct!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HRQ9WzN6agHNywZTcAAHhh" name="gta-6-dualsense-ps-direct-checkout" alt="PlayStation Direct checkout screen for the GTA 6 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/HRQ9WzN6agHNywZTcAAHhh-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>If you're in the virtual queue right now, keep waiting. I can confirm that stock is holding for now, even on the exclusive Black edition. I'm able to add both to my cart and reach the final stages of checkout. Let's hope stock sticks around! </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T09:59:40+00:00">September 10, 2026 – 5:59 AM</time><h2 id="another-retailer-sold-out-in-the-uk">Another retailer sold out in the UK</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K4R4ujDyyZ26W5PUkhPsKo" name="gta-6-dualsense-argos-sold-out" alt="Argos checkout showing the GTA 6 DualSense sold out" src="https://cdn.mos.cms.futurecdn.net/K4R4ujDyyZ26W5PUkhPsKo-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Argos)</span></figcaption></figure><p>It appears that stock is starting to stumble in the UK, I've done my latest stock check, and it looks like <strong>Argos has now sold out</strong>. You can still add the controller to your cart, but there is no option for either collection or delivery. I'm still able to see stock at Currys and PS Direct, but don't expect this to stick around for long. If you want a GTA 6 DualSense, now is the time to pre-order!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:12:07+00:00">September 10, 2026 – 6:12 AM</time><h2 id="did-the-gta-6-dualsense-just-disappear-on-ps-direct">Did the GTA 6 DualSense just disappear on PS Direct?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zzVesshfRQQ5tBvpF2MXNP" name="ps-direct-dualsense-color-options" alt="PlayStation Direct page for DualSense controllers" src="https://cdn.mos.cms.futurecdn.net/zzVesshfRQQ5tBvpF2MXNP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>The situation has taken a mysterious turn. I just refreshed PlayStation Direct to do my latest stock level check, and the GTA 6 DualSense controllers appear to have disappeared from the retailer's DualSense page. The only limited edition pads I'm seeing now are the two Wolverine controllers. </p><p>Could this be a sign of a sell-out, or is PlayStation Direct being crushed with so many people trying to buy that the site can't handle the load? Fortunately, the direct links to the listing pages below are still working, but it does appear that PS Direct is becoming a little unstable as shoppers try to check out. </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:22:32+00:00">September 10, 2026 – 6:22 AM</time><h2 id="ps-direct-sells-out-of-gta-6-dualsense-but-it-39-s-not-the-one-i-expected">PS Direct sells out of GTA 6 DualSense, but it's not the one I expected!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="U2HpzEtzckL6zyhRvFi45m" name="ps-direct-gta-6-dualsense-controller" alt="PlayStation Direct listing page showing the GTA 6 DualSense controller" src="https://cdn.mos.cms.futurecdn.net/U2HpzEtzckL6zyhRvFi45m-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Looks like PS Direct's stock is reaching its limit. I'm now getting a <strong>"currently unavailable"</strong> message on the GTA 6 DualSense controller, but surprisingly, it's on the White model. </p><p>The Black one is exclusive to PS Direct, so I expect it to be the first to sell out, but it would appear the White model is the more popular of the two. For now, you can still grab the GTA 6 DualSense in Black on PS Direct, but it might only be a matter of minutes before it also sells out. </p><p>Meanwhile, if you want the controller in white,  I'm still able to add it to my cart on Currys. But again, this stock may not stick around much longer. </p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>£74 @ Currys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:32:32+00:00">September 10, 2026 – 6:32 AM</time><h2 id="restock-over-at-smyths-toys">Restock over at Smyths Toys!</h2><p>Earlier this morning, Smyths Toys appeared to sell out the GTA 6 DualSense, but seemingly the retailer found some more stock, because the "delivery" button has turned green, and you can now pre-order it again. Be quick!</p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T10:51:50+00:00">September 10, 2026 – 6:51 AM</time><h2 id="argos-has-also-restocked-the-gta-6-dualsense">Argos has also restocked the GTA 6 DualSense!</h2><p>Looks like several UK retailers are again taking pre-orders after initially appearing to sell out, add Argos to the list, the controller is once again available to order for delivery at the retailer. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li></ul></div><div class="live-content"><time datetime="2026-09-10T11:03:28+00:00">September 10, 2026 – 7:03 AM</time><h2 id="currys-is-currently-39-out-of-stock-39">Currys is currently 'out of stock'!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y7xyn8VYcu6qFGbJoo7BJn" name="currys-gta-6-dualsense-listing-page" alt="Currys listing page for the GTA 6 DualSense showing an "out of stock" message" src="https://cdn.mos.cms.futurecdn.net/y7xyn8VYcu6qFGbJoo7BJn-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Currys)</span></figcaption></figure><p>While other retailers, like Argos and Smyths Toys have restocked, Currys is now saying "out of stock." The retailer held strong for several hours, but at least for now, it's allocation has run dry. I'll keep watching for restocks, but fear not, if you haven't locked in a pre-order yet, you've got plenty of options.</p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>£74 @ Smyths Toys</strong></a><strong> </strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>£74 @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense: </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>£74 @ Amazon</strong></a><strong> (CHECK STOCK)</strong></li></ul></div><div class="live-content"><time datetime="2026-09-10T11:20:20+00:00">September 10, 2026 – 7:20 AM</time><h2 id="white-model-back-in-stock-at-ps-direct">White model back in stock at PS Direct!</h2><p>It looks like fresh stock is appearing across UK retailers. PS Direct is taking pre-orders of the White mode after previously listing it as "unavailable". It's also the only place to get the Black version, so take your pick: </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T11:41:12+00:00">September 10, 2026 – 7:41 AM</time><h2 id="here-39-s-the-state-of-play-in-the-uk">Here's the state of play in the UK!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p><strong>I'll be turning my attention to the US next</strong>, with the pre-order drop set for 10 a.m. ET Stateside, but I'm still keeping an eye on the situation in the UK, and with retailers selling out and restocking and then selling out again, here's where we currently stand:</p><ul><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White):</strong> <a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/playstation-5/playstation-5-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition/p/265409" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.argos.co.uk/product/9706934" target="_blank" rel="nofollow"><strong>check stock @ Argos</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.currys.co.uk/products/playstation-ps5-dualsense-wireless-controller-gta-vi-limited-edition-10311140.html" target="_blank" rel="nofollow"><strong>check stock @ Currys</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.very.co.uk/playstation-playstationreg5nbspdualsensereg-wireless-controller-ndash-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-amp-mobile/1601365488.prd" target="_blank" rel="nofollow"><strong>check stock @ Very</strong></a></li></ul><p>So, essentially, the <strong>White model is currently sold out across retailers</strong>, but we have seen a few retailers "sell out" and then restock, so keep checking. Meanwhile, <strong>the Black controller is still available </strong>(and is exclusive to PS Direct). But I wouldn't bank on this sticking around long, so get yours ASAP.</p><p>Amazon is the main retailer to watch in the UK. It has a listing page for the GTA 6 DualSense but hasn't opened pre-orders yet. This isn't abnormal; Amazon often drops its stock later than its retailer rivals. So, if you're hoping to score the GTA-themed pad in White, I suggest keeping Amazon open. </p></div><div class="live-content"><time datetime="2026-09-10T12:01:16+00:00">September 10, 2026 – 8:01 AM</time><h2 id="the-us-is-waking-up-time-to-get-ready">The US is waking up, time to get ready!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4TUTG7z8sBNcsajGFwkPaN" name="GTA 6 feature image.jpg" alt="GTA 6 featured poster" src="https://cdn.mos.cms.futurecdn.net/4TUTG7z8sBNcsajGFwkPaN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar)</span></figcaption></figure><p>Good morning to anybody in the U.S. joining the live blog now. It's 8 a.m. ET, which means the GTA 6 DualSense pre-order drop is set to arrive Stateside in two hours. However, as we saw in the U.K. already, retailers don't always stick to these timings. Several went early in the U.K., so I'm watching all the major U.S. retailers now and will keep you updated the moment pre-orders go live!</p></div><div class="live-content"><time datetime="2026-09-10T12:18:50+00:00">September 10, 2026 – 8:18 AM</time><h2 id="let-me-know-which-gta-dualsense-you-want-most">Let me know which GTA DualSense you want most!</h2><p>I'm curious to hear from you. Vote in our poll and let me know which DualSense you're looking to pre-order later today. Or if you're in the U.K., let me know if you managed to lock in your order during this morning's drop!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJ9orX"></div>                            </div>                            <script src="https://kwizly.com/embed/eJ9orX.js" async=""></script></div><div class="live-content"><time datetime="2026-09-10T12:46:27+00:00">September 10, 2026 – 8:46 AM</time><h2 id="psa-prepare-for-pre-orders-before-10-a-m-et">PSA: Prepare for pre-orders before 10 a.m. ET!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aVjN5Bt4xVayURR3x8Bihh" name="gta-6-dualsense-controller-black" alt="GTA 6 DualSense in Black on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/aVjN5Bt4xVayURR3x8Bihh-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>A word of advice, if you're hoping to secure a GTA 6 DualSense today, don't bank on the 10 a.m. ET drop timing being wholly accurate. </p><p>We've seen with previous pre-order events that retailers can be unpredictable, sometimes dropping early, sometimes waiting until after the initial rush. Pre-orders could feasibly start pretty much any time from now. </p><p>The good news is, if you're following this live blog, you're already in the right spot, as I'll be updating you with all the latest stock information throughout.</p></div><div class="live-content"><time datetime="2026-09-10T13:03:33+00:00">September 10, 2026 – 9:03 AM</time><h2 id="1-hour-until-the-us-pre-order-drop">1 hour until the US pre-order drop!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>Just 60 minutes until pre-orders are scheduled to begin in the U.S., but remember, retailers don't always play by the rules, and an early drop could happen, and the odds suggest that a few (probably Amazon) will go later!</p></div><div class="live-content"><time datetime="2026-09-10T13:10:36+00:00">September 10, 2026 – 9:10 AM</time><h2 id="target-39-s-listing-page-is-already-up">Target's listing page is already up!</h2><p>Most retailers haven't yet launched listings pages for the GTA 6 DualSense, but Target has broken rank, and it's page is up. You can't pre-order the controller yet, and there's a "preorders have sold out" message, but I'm assuming this is an error because there are no reports of the retailer ever taking pre-orders. I expect this page will be updated around 10 a.m. ET. </p><ul><li><strong>GTA 6 DualSense: </strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><strong>$84 @ Target</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T13:24:41+00:00">September 10, 2026 – 9:24 AM</time><h2 id="another-uk-retailer-just-came-to-the-party">Another UK retailer just came to the party!</h2><p>Briefly returning to the U.K., EE is now taking pre-orders of the GTA 6 DualSense. This is good news because all other major retailers are currently sold out. I can't say that EE would be the first place I'd check for limited edition gaming items, but hey, if you missed out earlier, go grab one now!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://ee.co.uk/products/playstation-5-gta-vi-white-edition-dualsense" target="_blank" rel="nofollow"><strong>£74 @ EE</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-gb/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>£74 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T13:43:42+00:00">September 10, 2026 – 9:43 AM</time><h2 id="playstation-direct-pages-are-live">PlayStation Direct pages are LIVE!</h2><p>PS Direct is getting ready for the pre-order drop, with it's listing pages for the GTA 6 DualSense in both White and Black (Which is exclusive to the retailer) now live. Below are the all important links you'll need at 10 a.m., get ready!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>check stock @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T13:46:02+00:00">September 10, 2026 – 9:46 AM</time><h2 id="i-want-to-hear-from-you">I want to hear from you!</h2><p>With just 15 minutes until the pre-order chaos kicks off in the U.S., let me know which GTA 6 DualSense controller are you hoping to grab very soon:</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJ9orX"></div>                            </div>                            <script src="https://kwizly.com/embed/eJ9orX.js" async=""></script></div><div class="live-content"><time datetime="2026-09-10T13:55:29+00:00">September 10, 2026 – 9:55 AM</time><h2 id="it-39-s-almost-time-here-39-s-the-ps-direct-links-you-need">It's almost time, here's the PS Direct links you need</h2><p>Just 5 minutes until PS Direct (and potentially other retailers) start taking GTA 6 DualSense controller pre-orders. Below are the links you need to get onto the site and get your pre-order secured at 10 a.m. ET. If the site gets crushed Sony will likely opt to open a virtual waiting room to avoid any crashing. </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:03:14+00:00">September 10, 2026 – 10:03 AM</time><h2 id="ps-direct-has-opened-a-queue">PS Direct has opened a queue! </h2><p>It was expected, the demand for the GTA 6 DualSense is overwhelming PlayStation Direct and a virtual waiting room has appear, slightly worryingly, I'm getting a "line is paused" message, but hopefully I'll have an estimated time to get onto the site in a matter of minutes. </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:10:13+00:00">September 10, 2026 – 10:10 AM</time><h2 id="best-buy-is-taking-pre-orders-quick">Best Buy is taking pre-orders! Quick!</h2><p>If you're stuck at the back of the PS Direct queue, head over to Best Buy now as the retailer is taking pre-orders of the White model.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>$84 @ Best Buy</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:18:23+00:00">September 10, 2026 – 10:18 AM</time><h2 id="ps-direct-is-struggling-so-try-these-alternative-options">PS Direct is struggling, so try these alternative options</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="553dgptyNJ8JsYWAt2dGkE" name="ps-direct-queue-gta-6-controllers" alt="PlayStation Direct virtual waiting room for the GTA 6 DualSense pre-orders" src="https://cdn.mos.cms.futurecdn.net/553dgptyNJ8JsYWAt2dGkE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>I'm seeing a queue time of more than an hour on PlayStation Direct, and if you're also stuck waiting, then you can go pre-orders right now at GameStop and Best Buy using the links below. But remember the Black model is exclusive to PS Direct. However, if it's the White you're after, go grab one!</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>$84 @ Best Buy</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:25:04+00:00">September 10, 2026 – 10:25 AM</time><h2 id="try-this-queue-skip-method-on-ps-direct">Try this queue skip method on PS Direct!</h2><p>I'm seeing reports online that you can bypass the PlayStation Direct queue by heading to the <a href="https://direct.playstation.com/en-us/latest" target="_blank" rel="nofollow"><strong>"What's New" section</strong></a><strong> </strong>and then adding a GTA 6 controller directly to your cart from there. I'm unable to check if this method actually works, but if you've got a long wait in the queue, then give it a try!</p><p>You will (reportedly) need to be signed into a PlayStation account for the "add to cart" button to appear. Let me know in the comments if this method works for you!</p><ul><li><strong>GTA 6 DualSense (Black/White): </strong><a href="https://direct.playstation.com/en-us/latest" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:29:38+00:00">September 10, 2026 – 10:29 AM</time><h2 id="walmart-pre-orders-are-live">Walmart pre-orders are LIVE!</h2><p>Walmart is the latest retailer to join the pre-order party, if you were holding out for this one, then now is the time to secure you GTA 6 controller! </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" rel="nofollow"><strong>$84 @ Walmart</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T14:43:23+00:00">September 10, 2026 – 10:43 AM</time><h2 id="here-39-s-all-the-pre-order-links-you-need">Here's all the pre-order links you need!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>After a hectic 30 minutes, here's all the GTA 6 DualSense pre-order links you need. We're still waiting on something from Amazon, and any signs that Target has more stock (it currently says sold out), and there's a <em>long </em>queue on PS Direct, but you can head straight to Best Buy, Walmart and GameStop and grab the controller in White. The Black model is exclusive to PS Direct.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.bestbuy.com/product/sony-interactive-entertainment-dualsense-wireless-controller-grand-theft-auto-vi-limited-edition-for-ps5-pc-mac-mobile-white/JXHQ37ZHGL" target="_blank" rel="nofollow"><strong>$84 @ Best Buy </strong></a><strong>(IN STOCK)</strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>$84 @ Walmart</strong></a><strong> (IN STOCK)</strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong> </a><strong>(IN STOCK)</strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.target.com/p/playstation-5-dualsense-controller-grand-theft-auto-vi-le/-/A-1013468584" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a><strong></strong></li></ul></div><div class="live-content"><time datetime="2026-09-10T15:00:59+00:00">September 10, 2026 – 11:00 AM</time><h2 id="finally-at-the-front-of-the-ps-direct-queue">Finally at the front of the PS Direct queue!</h2><p>It took almost an hour, but I've got onto PS Direct, and it appears that both the White and Black GTA 6 DualSense controllers are still in stock. You will need to sign in to buy, so make sure you know your details beforehand.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T15:24:43+00:00">September 10, 2026 – 11:24 AM</time><h2 id="amazon-has-woken-up">Amazon has woken up!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VKJuBJdcGuY5sj4thDBPfX" name="gta-6-dualsense-amazon-listing" alt="Amazon listing page for the GTA 6 DualSense" src="https://cdn.mos.cms.futurecdn.net/VKJuBJdcGuY5sj4thDBPfX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Amazon)</span></figcaption></figure><p>Amazon kept us waiting, but at long last, the online retailer is taking pre-orders. If you haven't grabbed a GTA 6 DualSense yet, here's the link: </p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T15:49:35+00:00">September 10, 2026 – 11:49 AM</time><h2 id="best-buy-stock-appears-to-be-running-out">Best Buy stock appears to be running out!</h2><p>We might have our first sell out in the U.S. soon, Best Buy is jumping between "pre order now" and "coming soon," which suggests it's stock levels are dwindling. I'm still able to get a "pre order now" button with a few refreshes, but that might not last much longer. Fortunately, Amazon just came online, giving you an alternative retailer, if you still need a pre-order.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li></ul></div><div class="live-content"><time datetime="2026-09-10T16:33:14+00:00">September 10, 2026 – 12:33 PM</time><h2 id="here-39-s-the-state-of-play-in-the-us-and-uk-right-now">Here's the state of play in the US (and UK) right now!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QoHfCMbRsQyJ7ycpaqgHx7" name="gta-6-dualsense-white-edition" alt="GTA 6 DualSense controller in White on a GTA-themed background" src="https://cdn.mos.cms.futurecdn.net/QoHfCMbRsQyJ7ycpaqgHx7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony Interactive Entertainment / Rockstar Games)</span></figcaption></figure><p>My day is winding down, but I've done a final sweep of stock across all major retailers in the U.S. and U.K. There's plenty of availability in the U.S., with the DualSense available at <em>most </em>retailers (Best Buy and Target are sold out). </p><p>Meanwhile, in the U.K, options are very limited. EE is still taking pre-orders, and Amazon has a listing page, but so far today, there have been no signs of any stock. PlayStation Direct took the longest but is now sold out in the U.K.</p><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.com/dp/B0HHNZFXL5/" target="_blank" rel="nofollow"><strong>$84 @ Amazon</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.walmart.com/ip/Ps5-Dualsense-Wireless-Cntrl-Gra/20958211420" target="_blank" rel="nofollow"><strong>$84 @ Walmart</strong></a><strong> </strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.gamestop.com/gaming-accessories/controllers/playstation-5/products/sony-dualsense-wireless-controller-for-playstation-5---grand-theft-auto-vi-white-limited-edition/451594.html" target="_blank" rel="nofollow"><strong>$84 @ GameStop</strong> </a><strong></strong></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-white-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li><li><strong>GTA 6 DualSense (Black): </strong><a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller-grand-theft-auto-vi-black-limited-edition-for-ps5-pc-mac-mobile" target="_blank" rel="nofollow"><strong>$84 @ PlayStation Direct</strong></a></li></ul><ul><li><strong>GTA 6 DualSense (White): </strong><a href="https://ee.co.uk/products/playstation-5-gta-vi-white-edition-dualsense" target="_blank" rel="nofollow"><strong>£74 @ EE</strong></a></li><li><strong>GTA 6 DualSense (White): </strong><a href="https://www.amazon.co.uk/DualSense%C2%AE-Wireless-Controller-Grand-Limited/dp/B0HHS4DKRM" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li></ul></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Zelda 40th Anniversary Edition Switch 2 console and Pro Controller pre-orders are live — quick! Walmart has stock right now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Legend of Zelda is celebrating its 40th Anniversary this year, and Nintendo isn’t letting the occasion quietly pass. Zelda fans are being treated to a stunning remake of one of Link’s most beloved adventures, Ocarina of Time, alongside a limited-edition <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Switch 2 console</a> and a Zelda-themed <a href="https://www.tomsguide.com/gaming/gaming-peripherals/nintendo-switch-2-pro-controller-review">Pro Controller</a>. These in-demand items <strong>are available to pre-order now</strong>.</p><ul><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><strong>$519 @ Walmart</strong></a> <strong>(IN STOCK NOW)</strong></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li></ul><p>Rather than holding a specific pre-order drop, Nintendo made the Zelda 40th Anniversary Edition Switch 2 console and Pro controller available shortly after the <a href="https://www.tomsguide.com/news/live/zelda-nintendo-direct-live-updates-2026">Zelda Direct</a> concluded. I’m expecting these items to be popular, and retailers like Best Buy and Target are already sold out.</p><p><strong>The console (and Pro controller) launch on October 29, exactly one week before Ocarina of Time Remake releases exclusively on Switch 2</strong>. But don’t expect stock to hold until then; use our handy retailer links below to lock in your pre-order now. This limited-edition Switch 2 will be popular; after all, anything Zelda-themed tends to be snapped up by fans very quickly. </p><h3 class="article-body__section" id="section-quick-links"><span>Quick links</span></h3><ul><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Switch 2 Pro Controller – Zelda 40th Anniversary Edition: </strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 Pro Controller + display stand – Zelda 40th Anniversary Edition: </strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>The Legend of Zelda Ocarina of Time (Switch 2): </strong><a href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><strong>$69 @ Amazon</strong></a><strong></strong></li></ul><h3 class="article-body__section" id="section-switch-2-console-pre-orders"><span>Switch 2 console pre-orders</span></h3><div class="product"><a data-dimension112="e94b7528-ac65-11f1-b1d5-37c284e65a5d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:93.65%;"><img id="Bi2iDjTxUHTUQK9FHZ4W8D" name="Walmart logo.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bi2iDjTxUHTUQK9FHZ4W8D-1920-80.jpeg" mos="" align="middle" fullscreen="" width="960" height="899" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="e94b7528-ac65-11f1-b1d5-37c284e65a5d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Walmart just dropped its pre-order stock for the Zelda Switch 2. If you want to secure one, be fast. These won't hang around very long.<a class="view-deal button" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="e94b7528-ac65-11f1-b1d5-37c284e65a5d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4d7ddae6-ac42-11f1-90a6-6527192fc425" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4d7ddae6-ac42-11f1-90a6-6527192fc425" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Amazon has just launched a listing page for the Switch 2 Zelda 40th Anniversary Edition. <strong>Amazon hasn't started taking pre-orders yet</strong>, so this is the retailer to watch closely right now.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4d7ddae6-ac42-11f1-90a6-6527192fc425" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="ecf6256e-ac39-11f1-8e47-4b23b5296642" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="ecf6256e-ac39-11f1-8e47-4b23b5296642" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Best Buy dropped pre-orders for the Zelda Switch 2 on September 8 and sold out in just a few hours. Let's hope there's a restock soon.<a class="view-deal button" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="ecf6256e-ac39-11f1-8e47-4b23b5296642" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="ecf625dc-ac39-11f1-94c2-63db0d5d999f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="ecf625dc-ac39-11f1-94c2-63db0d5d999f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Target has currently sold out of the Zelda-themed Switch 2, but with the console not launching until October 29, there could be a restock over the next few weeks.<a class="view-deal button" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="ecf625dc-ac39-11f1-94c2-63db0d5d999f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="ecf62640-ac39-11f1-bde5-3dd0a94991fe" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="ecf62640-ac39-11f1-bde5-3dd0a94991fe" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Naturally, Nintendo itself is one of the best places to pre-order a Zelda Switch 2. It's currently sold out, but there could be a second wave ahead of the console's October release.<a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="ecf62640-ac39-11f1-bde5-3dd0a94991fe" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><h3 class="article-body__section" id="section-pro-controller-pre-orders"><span>Pro controller pre-orders</span></h3><div class="product"><a data-dimension112="79d2f214-ac3a-11f1-ae94-ff82daa978c7" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="79d2f214-ac3a-11f1-ae94-ff82daa978c7" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Best Buy is the first U.S. retailer to take pre-orders for the Switch 2 Pro Controller Zelda 40th Anniversary Edition. It's a great buy if you already own a Switch 2 console.<a class="view-deal button" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="79d2f214-ac3a-11f1-ae94-ff82daa978c7" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="79d2f296-ac3a-11f1-a2bb-39ba7d5a7ae5" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="79d2f296-ac3a-11f1-a2bb-39ba7d5a7ae5" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">The Legend of Zelda 40th Anniversary Edition: $109</a></strong><br />The Nintendo Store is the exclusive retailer for the Switch 2 Pro Controller Zelda Edition <strong>with a display stand</strong>. You're paying $10 extra, but you get a swanky way to show off your gear.<a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="79d2f296-ac3a-11f1-a2bb-39ba7d5a7ae5" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">View Deal</a></p></div><h3 class="article-body__section" id="section-zelda-ocarina-of-time-pre-orders"><span>Zelda: Ocarina of Time pre-orders</span></h3><div class="product"><a data-dimension112="88a217b6-ac3a-11f1-8efb-892d80e26829" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Legend of Zelda: Ocarina of Time is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches on November 5, 2026, and looks truly stunning.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="88a217b6-ac3a-11f1-8efb-892d80e26829" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-u-k-pre-orders"><span>U.K. pre-orders</span></h3><p><em>U.K. retailers were a little slow off the mark, but as of September 9, pre-orders for the Switch 2 Zelda 40th Anniversary Edition are going live</em></p><ul><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition:  </strong><a href="https://www.amazon.co.uk/dp/B0HJ8344SW/" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>£429 @ Nintendo</strong></a></li><li><strong>Nintendo Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-consoles/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-console/p/265573" target="_blank" rel="nofollow"><strong>£429 @ Smyths Toys</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-accessories/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/p/265620" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a></li></ul><h3 class="article-body__section" id="section-faq"><span>FAQ</span></h3><h2 id="what-is-switch-2-zelda-40th-anniversary-edition">What is Switch 2 Zelda 40th Anniversary Edition?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Ymw9UTRu1V0" allowfullscreen=""></iframe></div></div><p>The Zelda 40th Anniversary Edition Switch 2 is pretty much exactly what it sounds like. It’s the same great “Editor’s Choice” Nintendo Switch 2 console, but with a delightful Zelda-themed makeover. </p><p>The design highlights the iconic Triforce, with the golden triangle emblazoned on the Switch 2’s dock. Meanwhile, the console’s Joy-Con controllers have also been given a Zelda look. They come in contrasting shades of green, with golden highlights underneath the joy-sticks.</p><p>This is the first limited-edition Switch 2 console, and Nintendo definitely hasn’t skimped on the design. It’s a stunning-looking limited-edition console that celebrates the beloved franchise’s storied history. </p><h2 id="does-the-zelda-switch-2-include-ocarina-of-time">Does the Zelda Switch 2 include Ocarina of Time?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2VSEeywQgRRsWUE8nPJPba" name="ocarina-of-time-remake-switch-2" alt="Zelda: Ocarina of Time Remake screenshot from the Zelda Direct" src="https://cdn.mos.cms.futurecdn.net/2VSEeywQgRRsWUE8nPJPba-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Curiously, no, it doesn’t. To confirm, the Zelda 40th Anniversary Edition Switch 2 console does <strong>not </strong>include a copy of The Legend of Zelda: Ocarina of Time. You’ll need to pick up the game separately, either physically (launch pre-orders come with textured foil packaging) or you can purchase the game digitally via the Nintendo eShop. The choice is yours.</p><p>It might seem strange that the Zelda console doesn’t come bundled with the new Zelda game, but Nintendo has done similar in the past. The Animal Crossing: New Horizons Switch 1 console didn’t include a copy of the game either. It’s a move that feels <em>very</em> Nintendo!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/zelda-nintendo-direct-live-updates-2026">Zelda Nintendo Direct recap — everything announced</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-restocks-latest-updates">PS5 Pro restocks — latest updates as retailers sell out ahead of GTA 6</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/gaming/nintendo/zelda-40th-anniversary-edition-switch-2-console-and-pro-controller-pre-orders-are-live-where-to-check-for-stock-today</link>
                                                                            <description>
                            <![CDATA[ Nintendo is celebrating Zelda's 40th Anniversary with a limited-edition console, and pre-orders for this in-demand item are live. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bQvtL2p53gB2kAqcrUbDRf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 09 Sep 2026 11:13:11 +0000</pubDate>                                                                                                                                <updated>Wed, 09 Sep 2026 17:10:58 +0000</updated>
                                                                                                                                            <category><![CDATA[Nintendo]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg">
                                                            <media:credit><![CDATA[Nintendo]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Limited Editon Zelda Switch 2 console]]></media:description>                                                            <media:text><![CDATA[Limited Editon Zelda Switch 2 console]]></media:text>
                                <media:title type="plain"><![CDATA[Limited Editon Zelda Switch 2 console]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/37J4oiTnoxzoLw96rAWLU5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Legend of Zelda is celebrating its 40th Anniversary this year, and Nintendo isn’t letting the occasion quietly pass. Zelda fans are being treated to a stunning remake of one of Link’s most beloved adventures, Ocarina of Time, alongside a limited-edition <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Switch 2 console</a> and a Zelda-themed <a href="https://www.tomsguide.com/gaming/gaming-peripherals/nintendo-switch-2-pro-controller-review">Pro Controller</a>. These in-demand items <strong>are available to pre-order now</strong>.</p><ul><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><strong>$519 @ Walmart</strong></a> <strong>(IN STOCK NOW)</strong></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li></ul><p>Rather than holding a specific pre-order drop, Nintendo made the Zelda 40th Anniversary Edition Switch 2 console and Pro controller available shortly after the <a href="https://www.tomsguide.com/news/live/zelda-nintendo-direct-live-updates-2026">Zelda Direct</a> concluded. I’m expecting these items to be popular, and retailers like Best Buy and Target are already sold out.</p><p><strong>The console (and Pro controller) launch on October 29, exactly one week before Ocarina of Time Remake releases exclusively on Switch 2</strong>. But don’t expect stock to hold until then; use our handy retailer links below to lock in your pre-order now. This limited-edition Switch 2 will be popular; after all, anything Zelda-themed tends to be snapped up by fans very quickly. </p><h3 class="article-body__section" id="section-quick-links"><span>Quick links</span></h3><ul><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow"><strong>check stock @ Target</strong></a></li><li><strong>Switch 2 – Zelda 40th Anniversary Edition: </strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Switch 2 Pro Controller – Zelda 40th Anniversary Edition: </strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li><li><strong>Switch 2 Pro Controller + display stand – Zelda 40th Anniversary Edition: </strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>The Legend of Zelda Ocarina of Time (Switch 2): </strong><a href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><strong>$69 @ Amazon</strong></a><strong></strong></li></ul><h3 class="article-body__section" id="section-switch-2-console-pre-orders"><span>Switch 2 console pre-orders</span></h3><div class="product"><a data-dimension112="e94b7528-ac65-11f1-b1d5-37c284e65a5d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:960px;"><p class="vanilla-image-block" style="padding-top:93.65%;"><img id="Bi2iDjTxUHTUQK9FHZ4W8D" name="Walmart logo.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Bi2iDjTxUHTUQK9FHZ4W8D-1920-80.jpeg" mos="" align="middle" fullscreen="" width="960" height="899" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="e94b7528-ac65-11f1-b1d5-37c284e65a5d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Walmart just dropped its pre-order stock for the Zelda Switch 2. If you want to secure one, be fast. These won't hang around very long.<a class="view-deal button" href="https://www.walmart.com/ip/Nintendo-Switch-2-The-Legend-of-Zelda-40th-Anniversary-Edition/21002656445" target="_blank" rel="nofollow" data-dimension112="e94b7528-ac65-11f1-b1d5-37c284e65a5d" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="4d7ddae6-ac42-11f1-90a6-6527192fc425" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ecjfqi2UgurxrA42rX7pML" name="Amazon-Logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ecjfqi2UgurxrA42rX7pML-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4d7ddae6-ac42-11f1-90a6-6527192fc425" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Amazon has just launched a listing page for the Switch 2 Zelda 40th Anniversary Edition. <strong>Amazon hasn't started taking pre-orders yet</strong>, so this is the retailer to watch closely right now.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F8L6V" target="_blank" rel="nofollow" data-dimension112="4d7ddae6-ac42-11f1-90a6-6527192fc425" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="ecf6256e-ac39-11f1-8e47-4b23b5296642" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="ecf6256e-ac39-11f1-8e47-4b23b5296642" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Best Buy dropped pre-orders for the Zelda Switch 2 on September 8 and sold out in just a few hours. Let's hope there's a restock soon.<a class="view-deal button" href="https://www.bestbuy.com/product/switch-2-the-legend-of-zelda-40th-anniversary-edition/J7GSL57HTY" target="_blank" rel="nofollow" data-dimension112="ecf6256e-ac39-11f1-8e47-4b23b5296642" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="ecf625dc-ac39-11f1-94c2-63db0d5d999f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:129.60%;"><img id="J4ioQbCcWu8knu9FrYgeRT" name="purepng.com-target-logologobrand-logoiconslogos-251519939485oxces" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J4ioQbCcWu8knu9FrYgeRT-1920-80.png" mos="" align="middle" fullscreen="" width="2000" height="2592" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="ecf625dc-ac39-11f1-94c2-63db0d5d999f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Target has currently sold out of the Zelda-themed Switch 2, but with the console not launching until October 29, there could be a restock over the next few weeks.<a class="view-deal button" href="https://www.target.com/p/nintendo-8482-switch-2-the-legend-of-zelda-40th-anniversary-edition-console-system/-/A-1013322047?" target="_blank" rel="nofollow" data-dimension112="ecf625dc-ac39-11f1-94c2-63db0d5d999f" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><div class="product"><a data-dimension112="ecf62640-ac39-11f1-bde5-3dd0a94991fe" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="ecf62640-ac39-11f1-bde5-3dd0a94991fe" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">The Legend of Zelda 40th Anniversary Edition: $519</a></strong><br />Naturally, Nintendo itself is one of the best places to pre-order a Zelda Switch 2. It's currently sold out, but there could be a second wave ahead of the console's October release.<a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-121642/" target="_blank" rel="nofollow" data-dimension112="ecf62640-ac39-11f1-bde5-3dd0a94991fe" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$519">View Deal</a></p></div><h3 class="article-body__section" id="section-pro-controller-pre-orders"><span>Pro controller pre-orders</span></h3><div class="product"><a data-dimension112="79d2f214-ac3a-11f1-ae94-ff82daa978c7" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1331px;"><p class="vanilla-image-block" style="padding-top:68.52%;"><img id="yjsgCbZzcWDLMuhHtLHa7K" name="Best Buy deal block 2022.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yjsgCbZzcWDLMuhHtLHa7K-1920-80.jpeg" mos="" align="middle" fullscreen="" width="1331" height="912" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="79d2f214-ac3a-11f1-ae94-ff82daa978c7" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">The Legend of Zelda 40th Anniversary Edition: $99</a></strong><br />Best Buy is the first U.S. retailer to take pre-orders for the Switch 2 Pro Controller Zelda 40th Anniversary Edition. It's a great buy if you already own a Switch 2 console.<a class="view-deal button" href="https://www.bestbuy.com/product/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition-multi/J7GSL57W27" target="_blank" rel="nofollow" data-dimension112="79d2f214-ac3a-11f1-ae94-ff82daa978c7" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="79d2f296-ac3a-11f1-a2bb-39ba7d5a7ae5" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:738px;"><p class="vanilla-image-block" style="padding-top:33.33%;"><img id="gZerjqKCSRYfCri24NZkbY" name="nintendo-logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZerjqKCSRYfCri24NZkbY-1920-80.png" mos="" align="middle" fullscreen="" width="738" height="246" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="79d2f296-ac3a-11f1-a2bb-39ba7d5a7ae5" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">The Legend of Zelda 40th Anniversary Edition: $109</a></strong><br />The Nintendo Store is the exclusive retailer for the Switch 2 Pro Controller Zelda Edition <strong>with a display stand</strong>. You're paying $10 extra, but you get a swanky way to show off your gear.<a class="view-deal button" href="https://www.nintendo.com/us/store/products/nintendo-switch-2-pro-controller-display-stand-the-legend-of-zelda-40th-anniversary-edition-127076/" target="_blank" rel="nofollow" data-dimension112="79d2f296-ac3a-11f1-a2bb-39ba7d5a7ae5" data-action="Deal Block" data-label="The Legend of Zelda 40th Anniversary Edition" data-dimension48="The Legend of Zelda 40th Anniversary Edition" data-dimension25="$109">View Deal</a></p></div><h3 class="article-body__section" id="section-zelda-ocarina-of-time-pre-orders"><span>Zelda: Ocarina of Time pre-orders</span></h3><div class="product"><a data-dimension112="88a217b6-ac3a-11f1-8efb-892d80e26829" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:926px;"><p class="vanilla-image-block" style="padding-top:161.99%;"><img id="ZNNt3nzwbgoCSxSVbXq3Dd" name="zelda-ocarina-of-time-switch-2-box-na" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZNNt3nzwbgoCSxSVbXq3Dd-1920-80.jpg" mos="" align="middle" fullscreen="" width="926" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p>The Legend of Zelda: Ocarina of Time is getting remade for the Nintendo Switch 2. One of the N64's most beloved games has been completely overhauled to celebrate the franchise's 40th Anniversary. It launches on November 5, 2026, and looks truly stunning.<a class="view-deal button" href="https://www.amazon.com/dp/B0HJ6F7L6T" target="_blank" rel="nofollow" data-dimension112="88a217b6-ac3a-11f1-8efb-892d80e26829" data-action="Deal Block" data-label="Ocarina of Time" data-dimension48="Ocarina of Time" data-dimension25="$69">View Deal</a></p></div><h3 class="article-body__section" id="section-u-k-pre-orders"><span>U.K. pre-orders</span></h3><p><em>U.K. retailers were a little slow off the mark, but as of September 9, pre-orders for the Switch 2 Zelda 40th Anniversary Edition are going live</em></p><ul><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition:  </strong><a href="https://www.amazon.co.uk/dp/B0HJ8344SW/" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>£429 @ Nintendo</strong></a></li><li><strong>Nintendo Switch 2 — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-consoles/nintendo-switch-2-the-legend-of-zelda-40th-anniversary-edition-console/p/265573" target="_blank" rel="nofollow"><strong>£429 @ Smyths Toys</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://nintendo-uk.pxf.io/c/221109/1889570/22585" target="_blank" rel="nofollow"><strong>check stock @ Nintendo</strong></a></li><li><strong>Switch 2 Pro Controller — The Legend of Zelda 40th Anniversary Edition: </strong><a href="https://www.smythstoys.com/uk/en-gb/gaming-and-tech/nintendo-switch-2/nintendo-switch-2-accessories/nintendo-switch-2-pro-controller-the-legend-of-zelda-40th-anniversary-edition/p/265620" target="_blank" rel="nofollow"><strong>check stock @ Smyths Toys</strong></a></li></ul><h3 class="article-body__section" id="section-faq"><span>FAQ</span></h3><h2 id="what-is-switch-2-zelda-40th-anniversary-edition">What is Switch 2 Zelda 40th Anniversary Edition?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/Ymw9UTRu1V0" allowfullscreen=""></iframe></div></div><p>The Zelda 40th Anniversary Edition Switch 2 is pretty much exactly what it sounds like. It’s the same great “Editor’s Choice” Nintendo Switch 2 console, but with a delightful Zelda-themed makeover. </p><p>The design highlights the iconic Triforce, with the golden triangle emblazoned on the Switch 2’s dock. Meanwhile, the console’s Joy-Con controllers have also been given a Zelda look. They come in contrasting shades of green, with golden highlights underneath the joy-sticks.</p><p>This is the first limited-edition Switch 2 console, and Nintendo definitely hasn’t skimped on the design. It’s a stunning-looking limited-edition console that celebrates the beloved franchise’s storied history. </p><h2 id="does-the-zelda-switch-2-include-ocarina-of-time">Does the Zelda Switch 2 include Ocarina of Time?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2VSEeywQgRRsWUE8nPJPba" name="ocarina-of-time-remake-switch-2" alt="Zelda: Ocarina of Time Remake screenshot from the Zelda Direct" src="https://cdn.mos.cms.futurecdn.net/2VSEeywQgRRsWUE8nPJPba-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Curiously, no, it doesn’t. To confirm, the Zelda 40th Anniversary Edition Switch 2 console does <strong>not </strong>include a copy of The Legend of Zelda: Ocarina of Time. You’ll need to pick up the game separately, either physically (launch pre-orders come with textured foil packaging) or you can purchase the game digitally via the Nintendo eShop. The choice is yours.</p><p>It might seem strange that the Zelda console doesn’t come bundled with the new Zelda game, but Nintendo has done similar in the past. The Animal Crossing: New Horizons Switch 1 console didn’t include a copy of the game either. It’s a move that feels <em>very</em> Nintendo!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/news/live/zelda-nintendo-direct-live-updates-2026">Zelda Nintendo Direct recap — everything announced</a></li><li><a href="https://www.tomsguide.com/gaming/nintendo/best-nintendo-switch-2-games">Best Nintendo Switch 2 games in 2026</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-restocks-latest-updates">PS5 Pro restocks — latest updates as retailers sell out ahead of GTA 6</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>