<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Troubleshooting &#8211; BetterJoy</title>
	<atom:link href="https://betterjoyforcemu.com/troubleshooting-cat/feed/" rel="self" type="application/rss+xml" />
	<link>https://betterjoyforcemu.com</link>
	<description>Clean BetterJoy v7.1 Download Mirror &#38; Controller Setup Guide for Windows 11/10</description>
	<lastBuildDate>Sat, 24 Oct 2026 03:48:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://betterjoyforcemu.com/wp-content/uploads/2026/06/favicon-150x150.png</url>
	<title>Troubleshooting &#8211; BetterJoy</title>
	<link>https://betterjoyforcemu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>BetterJoy Crashes on Startup or Won&#8217;t Start? Four Causes, Four Fixes</title>
		<link>https://betterjoyforcemu.com/betterjoy-crashes-or-wont-start/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:47:19 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-crashes-or-wont-start/</guid>

					<description><![CDATA[Double-click BetterJoyForCemu.exe and one of three things happens: nothing at all, a window that flashes and dies, or a stern dialog titled Microsoft .NET Framework reporting an unhandled exception. Startup failures feel alarming but have a short list of usual causes — a driver the program depends on, a settings file it cannot read, or...]]></description>
										<content:encoded><![CDATA[<p>Double-click <code>BetterJoyForCemu.exe</code> and one of three things happens: nothing at all, a window that flashes and dies, or a stern dialog titled <strong>Microsoft .NET Framework</strong> reporting an unhandled exception. Startup failures feel alarming but have a short list of usual causes — a driver the program depends on, a settings file it cannot read, or a leftover of an older install. Issue #578&#8217;s crash report is the reference case for the first; the v7.1 release itself exists because of the second. Work through the sections in order.</p>
<h2>Before the causes: the SmartScreen look-alike</h2>
<p>On a <em>first</em> launch, Windows may intercept the .exe with a SmartScreen prompt (&#8220;Windows protected your PC&#8221;) instead of opening the program, which reads as &#8220;won&#8217;t start.&#8221; That is Windows being cautious about a program without a commercial signature, not a crash: choose <strong>More info → Run anyway</strong> and the program opens normally — provided your copy is the verified package, which is the whole point of checking the hash published alongside it. SmartScreen only explains a first-launch block, though. If the program previously ran on this machine and now fails, skip ahead: something in its stack changed, and the causes below are where to look.</p>
<h2>Cause 1: The dialog names .NET, but the fix is ViGEmBus (#578)</h2>
<p>It confuses everyone the first time: the crash popup says &#8220;Microsoft .NET Framework,&#8221; yet in issue #578 the recorded remedy was to <strong>remove and reinstall ViGEmBus</strong>. The dialog title names the framework that <em>reported</em> the exception, not the component that failed — when BetterJoy starts, it initialises its virtual-controller layer, and a broken ViGEmBus install surfaces as exactly this unhandled-exception dialog. So: uninstall ViGEmBus (Settings → Apps), reboot, install the current 1.22.0 from the link on our <a href="https://betterjoyforcemu.com/download/">download page</a>, reboot again, and relaunch. Our <a href="https://betterjoyforcemu.com/betterjoy-vigembus-not-found-exception/">ViGEmBus not found guide</a> covers the full repair, including the Device Manager check.</p>
<h2>Cause 2: A config file your Windows locale can&#8217;t read — updating is the fix</h2>
<p>BetterJoy v7.1 exists for one reason. Its entire official changelog is a single fix: <strong>config reading did not work when the Windows locale uses a comma as the decimal separator</strong> — which is most of Europe and much of the world. If you are on v7.0 or earlier with such a locale, and the program crashes or misbehaves around reading its <code>BetterJoyForCemu.exe.config</code>, you do not have a mystery bug; you have the exact defect the hotfix repaired. Updating to v7.1 <em>is</em> the fix. Our <a href="https://betterjoyforcemu.com/how-to-update-betterjoy/">update guide</a> covers moving up without losing your settings.</p>
<h2>Cause 3: A corrupted or badly edited config — restore a fresh one</h2>
<p>Hand-editing the .exe.config is part of normal BetterJoy life (calibration values, legacy toggles), and a malformed edit can leave the program unable to parse the file at startup. The clean recovery:</p>
<ol>
<li>Close BetterJoy fully (check the system tray).</li>
<li>Rename your current <code>BetterJoyForCemu.exe.config</code> to something like <code>.config.bak</code> — don&#8217;t delete it; your settings live there.</li>
<li>Extract a <strong>fresh, untouched .exe.config from the original v7.1 ZIP</strong> into the program folder.</li>
<li>Launch. If the program starts, re-apply your edits one at a time, launching after each, until the bad edit reveals itself.</li>
<li>If it still won&#8217;t start with a pristine config, the config was never the problem — move on to Cause 4.</li>
</ol>
<p>The <a href="https://betterjoyforcemu.com/betterjoy-config-file-guide/">config file guide</a> explains what each documented setting does, so your re-applied edits are deliberate ones.</p>
<h2>Cause 4: Driver conflicts and leftovers — isolate them</h2>
<p>BetterJoy sits on a small stack of drivers, and conflicts there surface as startup failures rather than neat errors. Isolate them in this order:</p>
<ul>
<li><strong>Two hiding layers:</strong> if you ever installed both the bundled <strong>HIDGuardian</strong> and the modern <strong>HidHide</strong>, they are documented as mutually exclusive — the author&#8217;s own guide says they must not be on the same system. Pick one stack and remove the other properly (ordered removal in our <a href="https://betterjoyforcemu.com/controller-unusable-after-betterjoy-hidguardian/">HIDGuardian recovery guide</a>).</li>
<li><strong>An instance already running:</strong> since v6.3 the program refuses to open a second copy. An old instance minimised to the tray makes a fresh double-click look like a crash. Check the tray and Task Manager before diagnosing anything else.</li>
<li><strong>A damaged program folder:</strong> extract the ZIP to a <em>new</em> folder in a normal user location (not a protected directory — see the settings-path problem in the <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">not-detected guide</a>) and run from there. If the fresh copy starts, your old folder was the fault.</li>
<li><strong>Security software:</strong> check your antivirus quarantine for the .exe or its DLLs before assuming corruption, and only restore files from the verified package.</li>
</ul>
<p>If none of the four causes fits, capture the exact dialog text — the exception dialog&#8217;s details are what the project&#8217;s issue tracker needs, and the quoted error string is usually how a maintainer recognises the case. All other startup-adjacent fixes are indexed on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>.</p>
<h2>FAQ</h2>
<h3>Does BetterJoy need a specific .NET version installed?</h3>
<p>The official documentation does not state a runtime version requirement, and we won&#8217;t invent one. What is documented is the behaviour above: the &#8220;.NET Framework&#8221; dialog is the messenger, and its recorded triggers are the ViGEmBus install state (#578) and config reading (v7.1&#8217;s locale fix). Fix those before touching .NET itself.</p>
<h3>It crashes only when I connect the controller, not at launch. Same page?</h3>
<p>Related, but start with the <a href="https://betterjoyforcemu.com/betterjoy-vigembus-not-found-exception/">ViGEmBus guide</a> — virtual controllers are created at connection time, so a bus problem can wait until then to surface — then check for the two-hiding-layers conflict in Cause 4.</p>
<h3>Will reinstalling BetterJoy delete my remappings?</h3>
<p>Your settings live in <code>BetterJoyForCemu.exe.config</code> in the program folder. Back that file up before any reinstall or folder move and your configuration survives; the update guide explains the full preserve-your-settings routine.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PowerA Controller Not Recognized by BetterJoy? What&#8217;s Worth Trying</title>
		<link>https://betterjoyforcemu.com/powera-third-party-controller-not-recognized/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:46:58 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/powera-third-party-controller-not-recognized/</guid>

					<description><![CDATA[Your PowerA controller pairs with Windows without a fight. Windows lists it, maybe a game even responds to it — but BetterJoy never shows it, no matter how many times you re-pair. You are not doing anything wrong: this is one of the best-documented limitations in the project&#8217;s tracker, where reports about PowerA models span...]]></description>
										<content:encoded><![CDATA[<p>Your PowerA controller pairs with Windows without a fight. Windows lists it, maybe a game even responds to it — but BetterJoy never shows it, no matter how many times you re-pair. You are not doing anything wrong: this is one of the best-documented limitations in the project&#8217;s tracker, where reports about PowerA models span 2019 to 2025 (issues #63, #83, #163, #606, a long support request in #268, and #1222 in May 2025). This page gives you the realistic checklist, the reason clones are hard, and — just as important — the point at which to stop trying.</p>
<h2>The shape of the problem (#1222)</h2>
<p>The most recent report is the cleanest: on Windows 11, the PC recognised a PowerA controller while BetterJoy did not list it at all. That split — <em>Windows yes, BetterJoy no</em> — is the signature of this issue and separates it from pairing trouble. If Windows cannot see your controller either, you have a different problem; start with the <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">not-detected guide</a> instead. What follows assumes Windows sees the pad fine.</p>
<h2>Why third-party pads are a hard case</h2>
<p>BetterJoy was written against Nintendo&#8217;s own hardware. It finds controllers by how they present themselves over Bluetooth — their identifiers and behaviour — and third-party manufacturers imitate that presentation to varying degrees: different Bluetooth identifiers and MAC addresses, different polling behaviour, differently scaled sensors. Version 7&#8217;s release notes are candid that third-party support &#8220;is not perfect,&#8221; and the support that exists flows through one feature: the <strong>Add Controllers</strong> button.</p>
<p>There is a naming problem underneath the identifier problem. Nintendo&#8217;s pads announce themselves to Windows in the standard forms BetterJoy was built to expect, while third-party pads announce vendor-specific names and device IDs that vary not just between brands but between models from the same brand in the same year. A detection routine can only match what it knows or is taught — which is why one PowerA model can appear in BetterJoy while its near-identical sibling never does, and why outcomes in the tracker are resolutely model-by-model rather than brand-wide. Keep that in mind while running the checklist: you are testing your specific unit, not the logo on it.</p>
<h2>The checklist: what is actually worth trying</h2>
<ol>
<li><strong>Confirm the pad works as a generic controller first.</strong> Open <code>joy.cpl</code> and check that buttons and sticks respond there. If a pad works in joy.cpl but not in BetterJoy, at least you know the hardware and the pairing are sound.</li>
<li><strong>Run the Add Controllers flow properly.</strong> With the controller connected to Windows, start BetterJoy and use the <strong>Add Controllers</strong> button — our <a href="https://betterjoyforcemu.com/how-to-add-third-party-controllers-to-betterjoy/">third-party controllers tutorial</a> walks the full flow, including what the button can and cannot teach the program about a new device.</li>
<li><strong>Try USB as well as Bluetooth.</strong> Some pads present differently wired than wireless; a model invisible over Bluetooth occasionally registers over a cable (and vice versa). Ten minutes, worth ruling out.</li>
<li><strong>If it registers but the gyro or sticks feel wrong, calibrate.</strong> The v7 feature set includes config-file calibration for third-party pads — the <code>acc_sensiti</code> / <code>gyr_sensiti</code> values in <code>BetterJoyForCemu.exe.config</code> exist for exactly the &#8220;recognised but misbehaving&#8221; case. Recognised-but-weird is fixable; never-recognised is usually not.</li>
<li><strong>Search the tracker for your exact model.</strong> With six-plus PowerA threads alone, someone may have posted a model-specific outcome — success or confirmed failure — that saves you an evening.</li>
</ol>
<h2>The honest bottom line on PowerA</h2>
<p>Across those years of reports, many PowerA models have simply never been recognised by BetterJoy, and there is no configuration file edit that changes a device&#8217;s Bluetooth identity into one the program accepts. (A stronger claim circulates in community posts — that the maintainer confirmed PowerA is unsupported outright — but it is not something we can quote verbatim from a primary source, so we will not print it as fact. The pattern of reports speaks plainly enough on its own.) If you have run the checklist, the rational conclusion is that your model is in the not-recognised group, and your options are: use the pad where it works natively (many third-party pads behave as standard controllers in Steam and in games with their own input support), use it on the console it was built for, or use a genuine Nintendo pad — or a clone with a confirmed success report — for your BetterJoy setup. There are no affiliate links in that advice; it is the same answer the tracker gives, minus the years of scrolling. One adjacent trap: if a pad <em>is</em> recognised but then appears twice in a game, that&#8217;s not this issue — it&#8217;s <a href="https://betterjoyforcemu.com/betterjoy-double-input-fix/">double input</a>, and it has a clean fix. The program itself is on the <a href="https://betterjoyforcemu.com/download/">download page</a>, and all the neighbouring fixes are gathered on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>.</p>
<h2>FAQ</h2>
<h3>My PowerA worked with an older BetterJoy. Did support get removed?</h3>
<p>Not deliberately, as far as the record shows — but recognition depends on the specific model&#8217;s behaviour, and Windows Bluetooth stack updates over the years have changed how some pads present themselves. Re-run the Add Controllers flow on the current version and check the tracker for your model before assuming a regression.</p>
<h3>Will the maintained BetterJoy fork recognise my PowerA?</h3>
<p>The community fork&#8217;s documented additions are newer hardware families (such as NES/N64-style controllers) and a modernised driver stack — we have no verified source promising PowerA recognition, so we won&#8217;t claim it. If you try the fork, treat it as an experiment, not a fix.</p>
<h3>Is there a list of third-party models that do work?</h3>
<p>There is no official compatibility list — that absence is part of the problem. The practical substitute is the issue tracker itself: model-specific threads with confirmed outcomes, which is why step 5 of the checklist points you there.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BetterJoy Low Battery Notification: Real Warning or Glitch?</title>
		<link>https://betterjoyforcemu.com/betterjoy-low-battery-notification/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:46:38 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-low-battery-notification/</guid>

					<description><![CDATA[BetterJoy has a low battery feature, and most people discover it the annoying way: a Windows notification pops up mid-game — sometimes once, sometimes relentlessly, occasionally on a controller that was charged an hour ago. The feature itself is real and useful (it arrived alongside the battery colour indicator described below). The spam and the...]]></description>
										<content:encoded><![CDATA[<p>BetterJoy has a low battery feature, and most people discover it the annoying way: a Windows notification pops up mid-game — sometimes once, sometimes relentlessly, occasionally on a controller that was charged an hour ago. The feature itself is real and useful (it arrived alongside the battery colour indicator described below). The spam and the false alarms have their own documented patterns, mainly in issues #898 and #973. This page separates &#8220;your battery really is low&#8221; from the two known glitches.</p>
<h2>What the notification and the colour change mean</h2>
<p>BetterJoy reads the battery level your controller reports and does two things with it: it can raise a <strong>low battery notification</strong> (the feature was added as a headline item in v6.4b), and it changes the <strong>background colour of the controller&#8217;s icon</strong> in the BetterJoy window as a running battery indicator (present since v6). So the first check is free: glance at the icon colour before reacting to a popup. If the colour says healthy and the popups keep coming anyway, you are not looking at a battery problem — you are looking at one of the glitches below. One caveat: Bluetooth battery reporting from game controllers is coarse, often a handful of rough levels rather than a true percentage, so treat &#8220;low&#8221; as &#8220;charge soon,&#8221; not a precise measurement.</p>
<h2>Glitch 1: Notification spam that survives the game (#898)</h2>
<p>In issue #898, after the user closed their emulator, BetterJoy kept firing low battery notifications continuously — the only thing that stopped them was restarting. If your spam outlives the session that triggered it, do exactly that: close BetterJoy completely (check the system tray, not just the window) and relaunch it; if the notifications persist, reboot. This pattern is a stuck notification state, not new information about your battery arriving every few seconds, and no setting change is needed once it clears.</p>
<h2>Glitch 2: A popup on every button press, and input stops reaching the emulator (#973)</h2>
<p>Issue #973 is the stranger variant: inside the emulator, <strong>every button press raised a low battery notification, and the controller&#8217;s input did not reach the game</strong>. The workaround that reporter confirmed — on Windows 11, incidentally, which is useful evidence the combination works there — was to change the legacy <code>UseHIDG</code> value in <code>BetterJoyForCemu.exe.config</code> (the toggle for the bundled HIDGuardian hiding layer) and to follow a specific start order: launch BetterJoy and let it settle before starting the emulator. Two cautions before you copy it: write down the original value first, and treat it as a targeted workaround for this exact symptom, not a general tweak — our <a href="https://betterjoyforcemu.com/betterjoy-config-file-guide/">config file guide</a> documents UseHIDG as a legacy, troubleshooting-only switch for precisely this reason. If your input is being swallowed more generally, the <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">not-detected guide</a> and the <a href="https://betterjoyforcemu.com/betterjoy-gyro-not-working-in-cemu/">gyro/DSU checks</a> cover the neighbouring causes.</p>
<h2>Charging while you play</h2>
<p>If the battery really is low, you have a clean option with the Pro Controller: play over USB. A USB-C cable carries data and charge at the same time, so a wired session tops the battery up instead of draining it — and as a bonus you remove Bluetooth from the equation entirely. Joy-Cons are less flexible: they do not charge while you are playing with them detached; they charge when attached to the console or a charging grip, so a genuinely flat Joy-Con means a charging break or swapping to the other pair. Community practice for long sessions is simple — start charged, and treat the first honest notification as your cue to plug in rather than a countdown to argue with.</p>
<h2>Reducing false triggers</h2>
<ul>
<li><strong>Fully charge, then test:</strong> a controller charged to full that still triggers immediate &#8220;low battery&#8221; popups is reporting badly or hitting a glitch — that contrast is your diagnostic.</li>
<li><strong>Restart BetterJoy after emulator sessions</strong> rather than leaving it resident for days; the #898 spam state builds across sessions.</li>
<li><strong>Re-pair if readings stay implausible:</strong> remove and re-pair the controller in Windows Bluetooth settings so the battery reporting channel is renegotiated.</li>
<li><strong>Keep the layers straight:</strong> if the popup-per-press pattern matches #973, apply that workaround deliberately (above) instead of stacking random changes.</li>
</ul>
<p>One more readout worth trusting over any single popup: after a full charge and a fresh pairing, watch the icon colour through a session. A colour that steps down gradually is the feature working as designed; a colour that claims &#8220;low&#8221; within minutes of a full charge is the reporting glitch again, and the re-pair in the list above is the fix to repeat — not another charge.</p>
<p>The notification feature working correctly is worth having — a controller dying mid-session without warning is worse. Get a clean copy of the program from the <a href="https://betterjoyforcemu.com/download/">download page</a> if your build predates the feature&#8217;s fixes, and find related fixes on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>.</p>
<h2>FAQ</h2>
<h3>Can I turn the low battery notification off?</h3>
<p>There is no prominently documented on/off switch for it in the program&#8217;s official documentation, and we won&#8217;t invent one. The realistic controls are the ones above: keep the battery genuinely charged, restart the program to clear the stuck state (#898), or apply the #973 workaround when the popup-per-press pattern matches.</p>
<h3>The popup says low battery but the Switch shows plenty of charge. Who is right?</h3>
<p>Probably the Switch. Bluetooth battery reports to Windows are coarse and can go stale, especially across sleep and re-pairing. Charge fully, re-pair, and judge by the icon colour plus a fresh session rather than a single popup.</p>
<h3>Is the notification spam a sign of malware or a broken controller?</h3>
<p>No — both documented spam patterns (#898 and #973) are BetterJoy-side states with named workarounds, on otherwise healthy controllers. If spam survives a reboot with BetterJoy closed, look elsewhere; with BetterJoy open, you are in the territory this page covers.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Controller Unusable After BetterJoy? Recover It from the HIDGuardian Blacklist</title>
		<link>https://betterjoyforcemu.com/controller-unusable-after-betterjoy-hidguardian/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:46:18 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/controller-unusable-after-betterjoy-hidguardian/</guid>

					<description><![CDATA[After using BetterJoy, your controller stops working everywhere else: Steam can&#8217;t see it, other emulators can&#8217;t see it, sometimes it disappears from Windows entirely. It looks like the controller broke. It didn&#8217;t — it is almost certainly still on the HIDGuardian blacklist, and there is a specific recovery procedure. This scenario is literally the first...]]></description>
										<content:encoded><![CDATA[<p>After using BetterJoy, your controller stops working <em>everywhere else</em>: Steam can&#8217;t see it, other emulators can&#8217;t see it, sometimes it disappears from Windows entirely. It looks like the controller broke. It didn&#8217;t — it is almost certainly still on the <strong>HIDGuardian blacklist</strong>, and there is a specific recovery procedure. This scenario is literally the first entry in the project&#8217;s official FAQ, because BetterJoy adds your controller to that blacklist automatically when it starts. Do not start deleting drivers; follow the order below.</p>
<h2>Why BetterJoy hides your controller in the first place</h2>
<p>HIDGuardian is the legacy hiding layer bundled with BetterJoy v7.1. Its job is legitimate: it stops games from seeing the physical controller alongside BetterJoy&#8217;s virtual one (the double input problem). The side effect is persistence — the hiding outlives the session. If you close BetterJoy, uninstall things in the wrong order, or the service stops unexpectedly, the controller can stay hidden (&#8220;affected&#8221;) with no obvious way back. The warning from the project&#8217;s documentation ecosystem is worth repeating up front: <strong>uninstalling HIDGuardian must follow the official order</strong> — removing driver files directly can break more than the controller, in the worst accounts extending to keyboard and mouse input.</p>
<h2>The recovery: release the device at localhost:26762</h2>
<ol>
<li>Make sure the HidCerberus service is running — it is installed alongside HIDGuardian in the <code>Drivers\HIDGuardian</code> folder of the BetterJoy package. If you removed the service already, reinstall the package&#8217;s HIDGuardian component temporarily; you cannot release devices through a UI that no longer exists.</li>
<li>Open your browser and go to <strong>http://localhost:26762/</strong> — this is the local HidCerberus control page served on your own machine, not a website.</li>
<li>Find the <strong>Currently affected devices</strong> list.</li>
<li><strong>Remove every device</strong> from that list. The wiki&#8217;s instruction is explicit: all of them, not just the controller you are missing.</li>
<li><strong>Restart your PC.</strong> The release takes effect on reboot.</li>
<li>After the restart, pair or plug in the controller and confirm it appears in <code>joy.cpl</code> and in your other programs again.</li>
</ol>
<p>Related log lines you may have seen in BetterJoy&#8217;s console — <code>HidGuardian was stopped. Starting...</code>, <code>Unable to start HidGuardian...</code>, <code>Unable to purge whitelist.</code> — all belong to this layer misbehaving, and this recovery is the documented exit from that state.</p>
<h2>Uninstalling HIDGuardian for good — in the safe order</h2>
<p>If you are moving to the modern HidHide setup (recommended in our <a href="https://betterjoyforcemu.com/betterjoy-double-input-fix/">double input fix</a>) or leaving BetterJoy entirely:</p>
<ol>
<li>Release all affected devices at <strong>localhost:26762</strong> first (steps above) and reboot once.</li>
<li>Then uninstall the driver using the package&#8217;s own <strong>&#8220;HIDGuardian Uninstall (Run as Admin).bat&#8221;</strong> in the same <code>Drivers\HIDGuardian</code> folder — that script exists precisely so you don&#8217;t hand-delete system driver files.</li>
<li>Reboot again, and verify the controller behaves normally with no hiding layer at all before installing anything new.</li>
</ol>
<p>Skipping step 1 is the classic mistake: uninstall the layer while a device is still affected and the device has no manager left to release it.</p>
<h2>If you no longer have the BetterJoy folder</h2>
<p>A common dead end: you deleted the program folder weeks ago — taking the <code>Drivers\HIDGuardian</code> folder and its install/uninstall scripts with it — and the controller is still hidden. The recovery tools live in that folder, so get them back: download a fresh copy of the package from the <a href="https://betterjoyforcemu.com/download/">download page</a>, extract it anywhere convenient, and run the HIDGuardian <em>install</em> script once, as administrator, then reboot. That restores the HidCerberus service so the localhost:26762 page loads again. From there, follow the release steps above, then the ordered uninstall. Installing the layer again feels backwards when your goal is to remove it, but the release list is managed by that service — without it, there is nothing left that can free the device, and hand-deleting files in this state is how the situation gets worse.</p>
<h2>Prevention: make BetterJoy clean up when it closes</h2>
<p>Version 6 added a config option to <strong>remove affected devices when the application shuts down</strong>, with the release notes stating the intent plainly: it &#8220;should prevent any more issues of the controller being unusable after the program.&#8221; If you keep using the legacy layer, enable that shutdown cleanup so a normal exit leaves your controller usable by everything else — our <a href="https://betterjoyforcemu.com/betterjoy-config-file-guide/">config file guide</a> explains where these legacy toggles live and why you should record original values before touching them. Also make a habit of closing BetterJoy normally rather than killing it in Task Manager; a killed process never runs its cleanup. If your controller instead is visible to Windows but BetterJoy itself won&#8217;t list it, that&#8217;s the mirror-image problem — work through the <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">not-detected guide</a>. The <a href="https://betterjoyforcemu.com/how-to-update-betterjoy/">update guide</a> also covers this recovery as part of old-driver cleanup when moving between versions.</p>
<h2>FAQ</h2>
<h3>Is localhost:26762 safe? It looks like a random website.</h3>
<p>It is a page served by the HidCerberus service on your own computer (localhost means &#8220;this machine&#8221;). Nothing is uploaded anywhere. It only exists while that service is installed and running.</p>
<h3>The 26762 page won&#8217;t load. What now?</h3>
<p>The HidCerberus service is not running — usually because it was uninstalled or disabled. Reinstall the HIDGuardian component from the BetterJoy package&#8217;s Drivers folder, reboot, and try the page again; then do the release and the ordered uninstall above.</p>
<h3>Can I just switch to HidHide and skip all this?</h3>
<p>Eventually, yes — HidHide is HIDGuardian&#8217;s maintained successor. But the release step is not skippable: a device still affected by HIDGuardian must be freed first, and the two drivers must never be installed at the same time. Free the device, uninstall in order, then set up HidHide. All related fixes are gathered on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fix vigembusnotfoundexception in BetterJoy</title>
		<link>https://betterjoyforcemu.com/betterjoy-vigembus-not-found-exception/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:45:55 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-vigembus-not-found-exception/</guid>

					<description><![CDATA[You start BetterJoy and Windows answers with a .NET error naming the ViGEmBus — users search for it as vigembusnotfoundexception — or the program opens but recognises nothing at all. Issue #194 is the archetype: the controller was plugged in, yet nothing was detected, and the trail led to the virtual bus driver underneath BetterJoy....]]></description>
										<content:encoded><![CDATA[<p>You start BetterJoy and Windows answers with a .NET error naming the ViGEmBus — users search for it as <code>vigembusnotfoundexception</code> — or the program opens but recognises nothing at all. Issue #194 is the archetype: the controller was plugged in, yet nothing was detected, and the trail led to the virtual bus driver underneath BetterJoy. That driver, <strong>ViGEmBus</strong>, is what creates the virtual Xbox 360 / DualShock 4 controllers that games actually see. If it is missing, half-installed, or never got its post-install reboot, BetterJoy has nothing to build on. Here is the clean repair path.</p>
<h2>Why this exception appears</h2>
<p>BetterJoy talks to ViGEmBus through its client library (<code>Nefarius.ViGEm.Client.dll</code>, in the program folder) when it starts and when it creates virtual controllers. The not-found exception is the library reporting that the bus driver itself is not present and running on the system. In practice that means one of four things: ViGEmBus was never installed (easy to do if you ran the .exe straight from the ZIP), the installer was interrupted, an older install is broken, or the machine was never rebooted after installing. Issue #578 — the startup crash dialog titled &#8220;Microsoft .NET Framework&#8221; — carries the same moral, and its thread title literally annotates the fix: <em>remove and reinstall ViGEmBus</em>.</p>
<h2>The repair, step by step</h2>
<ol>
<li><strong>Get the current driver from a trustworthy source.</strong> Our <a href="https://betterjoyforcemu.com/download/">download page</a> links the official nefarius release. The current and final version is <strong>ViGEmBus 1.22.0</strong>; the project has been retired and archived by its author, which means 1.22.0 is the version to standardise on — and a strong reason to avoid random &#8220;driver updater&#8221; sites offering their own repacks.</li>
<li><strong>Remove the old install first if one exists.</strong> Settings → Apps → find the ViGEmBus entry → uninstall. If your only copy is the old MSI bundled inside the BetterJoy v7.1 ZIP (a 1.16-era driver), a standalone 1.22.0 install over the top usually works — the 1.22.0 release notes even describe running the installer twice to complete an in-place upgrade — but a clean remove-then-install removes doubt.</li>
<li><strong>Run the installer as a normal install</strong> and let it finish; do not interrupt it when the screen pauses.</li>
<li><strong>Reboot. This step is not optional.</strong> Bus drivers load at boot. The #194 pattern — everything installed, nothing detected — is what skipping the reboot looks like.</li>
<li>Start BetterJoy again and connect a controller. The exception should be gone; confirm the virtual controller appears in <code>joy.cpl</code>.</li>
</ol>
<h2>Check Device Manager if it still fails</h2>
<p>As community practice, verify the driver is actually present: open Device Manager and look under <strong>System devices</strong> for the Nefarius Virtual Gamepad Emulation Bus entry. If it is missing entirely, the install did not take — repeat the install step and watch for errors. If it shows a warning icon, uninstall the device from Device Manager, reboot, and install 1.22.0 fresh.</p>
<h2>One installer for every Windows PC</h2>
<p>One less thing to get wrong: the final ViGEmBus release ships as a <strong>single installer covering x64, x86 and ARM64</strong> (<code>ViGEmBus_1.22.0_x64_x86_arm64.exe</code>), with Windows 10 and 11 as its supported systems — you do not need to hunt for a per-architecture build the way the old MSI pair inside the BetterJoy ZIP (separate x64 and x86 files) required. If your repair attempt involved a file named like a per-version &#8220;setup&#8221; from a driver-download site rather than that single official asset, discard it and start the repair over with the real one; mismatched repacks are a recurring cause of &#8220;installed but still not found.&#8221;</p>
<h2>The antivirus quarantine case</h2>
<p>Driver installers occasionally get quarantined by security software because they load kernel components — check your antivirus history if the installer &#8220;completed&#8221; but the Device Manager entry never appeared. Restore the file only when it is the genuine installer you downloaded from the official release, and consider adding the installer to your AV&#8217;s allowlist for the reinstall. Never fix this by downloading the driver from a different, less accountable site; with a retired project, the official GitHub release is the only source we recommend.</p>
<h2>What this error is not</h2>
<p>It is not your controller, your Bluetooth, or your emulator. It also is not fixed by reinstalling BetterJoy itself — the program is fine; its foundation is missing. If the exception appears only after you removed a &#8220;unused driver&#8221; with a cleanup tool, that tool deleted ViGEmBus, and the same repair applies. Once the bus is back, work through the <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">not-detected guide</a> if a controller still does not appear, or the <a href="https://betterjoyforcemu.com/betterjoy-crashes-or-wont-start/">startup crash guide</a> if the program itself still will not open. More fixes are indexed on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>, and the correct first-run order is in the <a href="https://betterjoyforcemu.com/how-to-use-betterjoyforcemu/">install guide</a>.</p>
<h2>FAQ</h2>
<h3>BetterJoy&#8217;s ZIP already includes a ViGEmBus installer. Why install 1.22.0 separately?</h3>
<p>The bundled installer is an old 1.16-era build that has worked for many users, but it predates the final driver by years. If you hit the not-found exception, moving to the maintained-final 1.22.0 removes the old build as a variable.</p>
<h3>ViGEmBus is &#8220;retired.&#8221; Is it still safe and usable?</h3>
<p>Retired means no future updates, not broken: 1.22.0 remains the widely used final release on Windows 10 and 11. The practical caution from the author&#8217;s end-of-life notes is about the old auto-updater phoning a retired domain — another reason to install 1.22.0 (which removed the updater) rather than an ancient version.</p>
<h3>The exception appears when I connect the controller, not at startup. Same fix?</h3>
<p>Yes. The client library also touches the bus when a virtual controller is created, so a partially installed driver can survive until first use. Run the same remove–install–reboot repair.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Joy-Con Bluetooth Lag with BetterJoy: The Checks That Matter</title>
		<link>https://betterjoyforcemu.com/joycon-bluetooth-lag-fix/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:45:35 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/joycon-bluetooth-lag-fix/</guid>

					<description><![CDATA[One Joy-Con feels instant and the other trails behind; inputs arrive late, in bursts, or with jitter that makes aiming impossible. With BetterJoy, Bluetooth lag is rarely the program&#8217;s fault — the project&#8217;s own wiki sets the tone: &#8220;you need a decent Bluetooth adapter that is comfortable with handling 3/4 connections at a time.&#8221; Two...]]></description>
										<content:encoded><![CDATA[<p>One Joy-Con feels instant and the other trails behind; inputs arrive late, in bursts, or with jitter that makes aiming impossible. With BetterJoy, Bluetooth lag is rarely the program&#8217;s fault — the project&#8217;s own wiki sets the tone: &#8220;you need a decent Bluetooth adapter that is comfortable with handling 3/4 connections at a time.&#8221; Two Joy-Cons plus a Pro Controller is three simultaneous connections before anything else joins. This page works from the most specific documented cause (an Intel driver version) outward to the adapter question, so you change one variable at a time.</p>
<h2>Check 1: Your Intel Bluetooth driver version</h2>
<p>This is the rare lag fix with an exact number attached. In issue #731, a lagging secondary Joy-Con on Dolphin was fixed by updating the Intel Bluetooth driver <strong>from Intel&#8217;s website</strong> — the threshold in that report was a driver <strong>older than 22.180.0</strong>. Windows Update routinely serves older Bluetooth drivers than Intel&#8217;s own download center, so &#8220;my drivers are up to date&#8221; inside Windows often isn&#8217;t. If your PC uses Intel wireless (most laptops and many motherboard modules do), download the current Bluetooth driver package from Intel directly, install, reboot, and retest before buying anything.</p>
<h2>Check 2: Which controller lags — and the author&#8217;s blunt diagnosis</h2>
<p>Issue #571 describes the classic shape of this problem: with two Bluetooth controllers, the one that synced <em>first</em> carried almost a second of delay. The author&#8217;s reply was blunt — &#8220;joycons natively don&#8217;t like Intel drivers/BT adapters&#8221; — and in the same discussion, a user solved their setup with an <strong>Asus USB-BT400</strong> USB adapter. Two lessons: the chipset and driver stack matter more than the Bluetooth version number printed on the box, and &#8220;the first-paired controller lags&#8221; is a known pattern, not something you imagined. A quick diagnostic: disconnect both controllers, pair only the lagging one, and play. If it is fine alone, your adapter or driver is struggling with multiple connections — exactly the wiki&#8217;s 3–4 connection warning — and no BetterJoy setting will change that.</p>
<h2>Check 3: Rumble load on the same link</h2>
<p>Rumble data travels over the same Bluetooth connection as your inputs and motion samples, and heavy rumble makes everything else queue behind it. The pattern is documented: in issue #616 the console errors began after about 20 minutes <em>with rumble enabled</em>, while rumble-off sessions ran for hours (see our <a href="https://betterjoyforcemu.com/betterjoy-duplicate-timestamp-enqueued/">duplicate timestamp guide</a>). The practical fix costs nothing: reduce rumble intensity in your emulator — the long-standing guidance for Cemu is around 70–80% — and see whether the lag follows the rumble setting. Older BetterJoy versions also carried a genuine rumble-lag bug fixed in v6.1, so if you are on an ancient build, updating comes first.</p>
<h2>Check 4: Adapter placement and interference (community practice)</h2>
<p>These steps are standard Bluetooth troubleshooting rather than BetterJoy-specific documentation, and they fix a surprising share of cases:</p>
<ul>
<li>Move the adapter (or your PC) so the controller has line-of-sight within a couple of metres; a rear motherboard antenna behind a metal case is the worst common setup.</li>
<li>If you use a USB Bluetooth dongle, put it on a front port or a short USB extension cable — away from USB 3.0 hubs and external drives, which are known to radiate interference in the 2.4 GHz band.</li>
<li>Disconnect other Bluetooth devices (headphones, phones, a second pair of Joy-Cons) for one test session to see if the lag is contention.</li>
<li>For a Joy-Con pair, make sure both were paired separately and appear individually in BetterJoy before joining them, per the <a href="https://betterjoyforcemu.com/how-to-connect-joycons-to-pc/">Joy-Con connection guide</a>.</li>
</ul>
<h2>When a dedicated USB Bluetooth adapter is the real fix</h2>
<p>If the Intel driver is current, rumble is tamed, placement is good, and a pair of Joy-Cons still lags while a single controller is fine, you have hit the adapter&#8217;s connection ceiling. That is a hardware limit, and the honest fix is a decent dedicated USB Bluetooth adapter — the BT400 is simply the model named in the project&#8217;s own issue thread; treat it as an example of the class, not a magic part number. Buy for a reputable chipset and current drivers, keep your motherboard Bluetooth disabled while testing so Windows uses one stack, and buy from somewhere with returns: Bluetooth behaviour varies enough by PC that no adapter is a guaranteed cure. (Our buying guides cover adapter picks separately — this page deliberately keeps the diagnosis tool-agnostic.)</p>
<p>If lag survives a known-good adapter too, the problem has moved — re-check the <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">detection guide</a> and the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>, and grab a clean copy of the program from the <a href="https://betterjoyforcemu.com/download/">download page</a> if your install predates v6.1&#8217;s rumble fixes.</p>
<h2>FAQ</h2>
<h3>Is a Bluetooth 5.0 or 5.3 adapter automatically better than 4.0?</h3>
<p>Not automatically. The documented failures are about chipset and driver quality and how the stack handles several simultaneous game controllers — which is why a well-supported 4.0 dongle appears in the project&#8217;s issue thread as the fix. Judge by chipset reputation and driver currency, not the version badge.</p>
<h3>My Pro Controller lags too, on USB it doesn&#8217;t. Same fix?</h3>
<p>Yes — USB removes the radio from the equation, so lag that exists only on Bluetooth lives in the adapter/driver/placement layer. Work through Checks 1, 3 and 4 in that order.</p>
<h3>Does BetterJoy add input delay itself?</h3>
<p>BetterJoy&#8217;s translation layer is not the documented cause in any of the reports behind this page; the identified causes are the Intel driver threshold, multi-connection load, and rumble traffic. Keep the program updated so you are not fighting the pre-v6.1 rumble bug, and measure after each single change.</p>
<p><strong>Related buying guides:</strong> if your lag survives every fix on this page, the radio itself is the remaining suspect — our <a href="https://betterjoyforcemu.com/best-bluetooth-adapters-for-switch-controllers-on-pc/">Bluetooth adapters for Switch controllers on PC</a> guide covers what to replace it with, and when no adapter is needed at all.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BetterJoy Gyro Not Working in Cemu? Run These DSU Checks</title>
		<link>https://betterjoyforcemu.com/betterjoy-gyro-not-working-in-cemu/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:45:15 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-gyro-not-working-in-cemu/</guid>

					<description><![CDATA[Buttons and sticks work in Cemu, but aiming with gyro does nothing — or the controller does not even appear under GamePad motion source. In issue #671 a Switch Pro Controller hit exactly that wall, and the trail is instructive: the checks below are the ones that matter, in the order that finds the fault...]]></description>
										<content:encoded><![CDATA[<p>Buttons and sticks work in Cemu, but aiming with gyro does nothing — or the controller does not even appear under <strong>GamePad motion source</strong>. In issue #671 a Switch Pro Controller hit exactly that wall, and the trail is instructive: the checks below are the ones that matter, in the order that finds the fault fastest. One honest note before we start: modern Cemu has a native motion path of its own, and at the end of this page we tell you when to use it instead. BetterJoy&#8217;s DSU route is a tool, not a tollbooth.</p>
<h2>How the pieces connect (so the checks make sense)</h2>
<p>In the BetterJoy setup, buttons reach Cemu through the virtual XInput controller, while motion travels separately: BetterJoy runs a <strong>Cemuhook/DSU server</strong> on your PC, and Cemu connects to it as a client. Two independent paths means gyro can fail while buttons work perfectly — and the fix is almost always in the motion path: the server, the address, or the slot.</p>
<h2>Check 1: The server is running, at the right address</h2>
<p>Start BetterJoy with your controller connected and look at its console: you should see the server start line, <code>Starting server on 127.0.0.1:26760</code>. The defaults from the project&#8217;s wiki are <code>serverIP = 127.0.0.1</code> and <code>serverPort = 26760</code>. In Cemu&#8217;s DSU client settings, the server address must match exactly — <strong>127.0.0.1, port 26760</strong>. A single wrong digit in the port is the most common silent failure, because Cemu does not complain; it simply shows no motion device. If the console never shows the server starting, fix detection first with our <a href="https://betterjoyforcemu.com/betterjoy-not-detecting-controller/">controller not detected guide</a>.</p>
<h2>Check 2: The right slot under GamePad motion source</h2>
<p>The DSU server exposes controller slots, and Cemu&#8217;s <strong>GamePad motion source</strong> must point at the slot your controller actually occupies — the #671 symptom was a Pro Controller present everywhere except there. In Cemu&#8217;s input settings, open the motion source dropdown and select the DSU controller entry rather than leaving it on a default or empty slot. With Joy-Cons joined in BetterJoy, remember they present as one controller: pick that combined entry. If the dropdown is entirely empty, Cemu is not reaching the server at all — go back to Check 1, and type the address by hand instead of trusting a remembered value.</p>
<p>A related slot trap catches two-controller households: each physical controller occupies its own DSU slot, so a second player&#8217;s profile pointing at slot 1 gives them buttons with no motion while player one works perfectly. If motion fails for exactly one of two pads, compare the motion-source slot in each profile before changing anything else — it is a thirty-second check that looks, from the player&#8217;s seat, identical to a dead gyro.</p>
<h2>Check 3: The wiki&#8217;s motion reset and calibration basics</h2>
<p>The project&#8217;s FAQ entry for &#8220;motion controls don&#8217;t work / work badly&#8221; gives a disarmingly simple fix: <strong>turn the controller off and back on while everything is running</strong> — hold Home or Capture for 2 seconds to disconnect, then press a button to reconnect. Do this with Cemu open and the DSU client configured, so the motion stream renegotiates cleanly. The same wiki section&#8217;s calibration advice applies if motion works but feels wrong: in Cemu&#8217;s input profile, turn <strong>off</strong> &#8220;Also use for buttons/axes&#8221; for the motion source and set the <strong>deadzone to 0</strong>; both settings distort gyro input when left on. If aiming works but pointing the controller fills BetterJoy&#8217;s console with <code>Duplicate timestamp enqueued</code>, that is a separate queue problem covered in <a href="https://betterjoyforcemu.com/betterjoy-duplicate-timestamp-enqueued/">its own guide</a>.</p>
<h2>Check 4: When the config itself is the problem</h2>
<p>In #671, after the standard checks, the resolution was a <strong>complete reinstall of Cemu</strong> — the emulator&#8217;s own configuration had become the fault. Before you go that far, back up your Cemu folder, and treat reinstall as the last step, not the first. The lesson of that thread is the ordering: port and slot first (five minutes), emulator reinstall last.</p>
<h2>The honest alternative: Cemu&#8217;s native SDL motion</h2>
<p>Cemu 2.x can read Switch controller motion natively: in Input Settings, choose the <strong>SDLController</strong> API for your Pro Controller and tick <strong>Use motion</strong> — no BetterJoy, no DSU server. Current community guidance treats this as the first thing to try for Cemu-only play, and if it works for your setup, it is the simpler stack. The BetterJoy route still earns its place when the SDL path misbehaves on your system, when you want one setup that also feeds other emulators, or when you specifically need dual Joy-Con motion with your choice of which hand supplies the gyro — the case the Ryujinx family&#8217;s own README still names BetterJoy (or DS4Windows) as required. If you are setting up from scratch, our <a href="https://betterjoyforcemu.com/how-to-use-gyro-as-mouse/">gyro guide</a> explains the three gyro modes (DSU server, gyro-to-mouse, gyro-to-stick) and when each fits; the program itself is on the <a href="https://betterjoyforcemu.com/download/">download page</a>, and more fixes are indexed on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>.</p>
<h2>FAQ</h2>
<h3>Buttons work but there is no motion tab option at all. Why?</h3>
<p>Your input profile is probably using XInput only. Motion arrives through the DSU client, which must be configured separately with the 127.0.0.1:26760 server — the two paths are independent by design.</p>
<h3>Motion works in the Cemu settings preview but not in game. What now?</h3>
<p>Check that the game&#8217;s controller profile actually assigns the motion source — profiles are per-game in Cemu. Also verify &#8220;Also use for buttons/axes&#8221; is off and the deadzone is 0, per Check 3.</p>
<h3>Should I just switch to SDL motion permanently?</h3>
<p>If you only play Cemu and SDL motion works with your controller, yes — fewer moving parts. Keep the BetterJoy route in mind for multi-emulator setups and dual Joy-Con motion, where it remains the documented path.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BetterJoy Double Input Fix: One Controller, Seen Twice</title>
		<link>https://betterjoyforcemu.com/betterjoy-double-input-fix/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:44:55 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-double-input-fix/</guid>

					<description><![CDATA[Your character moves twice for every stick push, menus scroll two entries at a time, or the camera drifts on its own. This is the double input problem, and with BetterJoy it has a precise cause: Windows and your game can see two controllers at once — the physical Switch controller (raw HID) and the...]]></description>
										<content:encoded><![CDATA[<p>Your character moves twice for every stick push, menus scroll two entries at a time, or the camera drifts on its own. This is the double input problem, and with BetterJoy it has a precise cause: <strong>Windows and your game can see two controllers at once</strong> — the physical Switch controller (raw HID) and the virtual Xbox 360 or DualShock 4 controller that BetterJoy creates through ViGEmBus. Any game that listens to both will obey both. Issue #455 reports exactly this with a Pro Controller and Joy-Cons in Steam, drift included; issue #1009 describes a controller being read as two separate devices, with hiding the physical one as the accepted fix. Here is how to do that hiding correctly in 2026.</p>
<h2>Step 0: Confirm it is double input, not drift</h2>
<p>Open <strong>joy.cpl</strong> (press Win+R, type <code>joy.cpl</code>) with BetterJoy running. If you see both the real controller <em>and</em> an Xbox 360/DS4 entry, and both respond to the same stick, you have double exposure. If only the virtual controller responds oddly, your problem is elsewhere — check the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a> instead of changing drivers.</p>
<h2>The quick fixes (try these first)</h2>
<ul>
<li><strong>In Steam games:</strong> pick one master. Either let Steam Input handle the physical controller with BetterJoy closed, or use BetterJoy&#8217;s virtual controller and disable Steam Input for that game (right-click the game → Properties → Controller → Disable Steam Input). Steam reading the raw pad while BetterJoy also feeds it is the #455 scenario.</li>
<li><strong>For gyro-only use:</strong> BetterJoy can run <em>only</em> its motion server. Turn off XInput emulation in BetterJoy and let your emulator take buttons from its native input while motion arrives over the DSU connection — with no virtual gamepad created, there is nothing to double.</li>
<li><strong>In emulators:</strong> assign the input profile to the virtual XInput device only, and clear any profile bound to the physical controller.</li>
</ul>
<p>If a game has no such settings — many non-Steam games don&#8217;t — you need the real fix: make the physical controller invisible to everything except BetterJoy.</p>
<h2>The modern fix: hide the physical controller with HidHide</h2>
<p><strong>HidHide</strong> (by nefarius, current version 1.5.230) is the maintained tool for exactly this job: it hides selected HID devices from all applications except the ones you whitelist. It is a separate download from the same author&#8217;s project pages — it is <em>not</em> part of the BetterJoy v7.1 package on our <a href="https://betterjoyforcemu.com/download/">download page</a>, which still bundles the older HIDGuardian instead.</p>
<ol>
<li><strong>Remove HIDGuardian first if you ever installed it</strong> (see the warning below), then reboot.</li>
<li>Install HidHide and reboot when asked.</li>
<li>Open the <strong>HidHide Configuration Client</strong>. On the <strong>Applications</strong> tab, add <code>BetterJoyForCemu.exe</code> — this whitelists BetterJoy so it can still see the physical controller.</li>
<li>On the <strong>Devices</strong> tab, tick your Switch Pro Controller or Joy-Cons.</li>
<li>Tick <strong>Enable device hiding</strong> at the bottom.</li>
<li>Restart BetterJoy and check joy.cpl again: only the virtual controller should respond in games now, while BetterJoy still lists the real one.</li>
</ol>
<p>This is the same approach the community converged on in #1009: hide the native device, keep only the XInput output.</p>
<h2>The hard rule: HidHide and HIDGuardian must never coexist</h2>
<p>Nefarius&#8217;s own setup guide states it in capitals: <strong>HidHide and HidGuardian MUST NOT be together on the same system.</strong> HIDGuardian is the 2016–2018 research driver that BetterJoy v7.1 installs from its <code>Drivers\HIDGuardian</code> folder; it has been discontinued, and HidHide is its direct successor. If your double-input fix &#8220;made things worse&#8221; or the controller vanished entirely, a leftover HIDGuardian is the prime suspect. Removal has a safe order — release the devices from the blacklist first, then uninstall, then reboot — and our <a href="https://betterjoyforcemu.com/controller-unusable-after-betterjoy-hidguardian/">HIDGuardian recovery guide</a> walks through it. Never delete driver files by hand; mishandled removal is how people end up with a controller no program can see.</p>
<h2>Side effects to expect</h2>
<p>While hiding is enabled, non-whitelisted programs will not see the physical controller at all — that is the point, but it surprises people when the pad &#8220;disappears&#8221; from another emulator or from Steam. Whitelist only the programs that should see the raw controller (BetterJoy itself); whitelisting a game defeats the fix for that game. If instead the console starts filling with <code>Duplicate timestamp enqueued</code>, that is the related two-readers problem on the motion side — see our <a href="https://betterjoyforcemu.com/betterjoy-duplicate-timestamp-enqueued/">guide to that message</a>. And if you later touch the legacy toggles mentioned in the <a href="https://betterjoyforcemu.com/betterjoy-config-file-guide/">config file guide</a> (UseHIDG, PurgeWhitelist), note your original values first: they belong to the old HIDGuardian era and interact with everything on this page.</p>
<h2>Keeping the fix in place</h2>
<p>Two habits keep double input from creeping back. First, after any HidHide update or reinstall, re-open the Configuration Client and confirm your device is still ticked and hiding is still enabled — updates can reset the list, and the symptom returns silently. Second, when you deliberately un-tick device hiding (say, to use the pad somewhere that needs the raw controller), remember that every game can see both devices again from that moment; re-enable hiding before your next BetterJoy session rather than debugging the same drift a second time.</p>
<h2>FAQ</h2>
<h3>Why doesn&#8217;t BetterJoy hide the controller automatically?</h3>
<p>Version 7.1 was built when HIDGuardian was the standard layer, and it does use that layer when installed — but HIDGuardian is discontinued and conflicts with modern HidHide installs, which is why the maintained route today is the separate HidHide setup described above.</p>
<h3>Does hiding affect Bluetooth pairing?</h3>
<p>No. Pairing happens at the Windows Bluetooth level, below where HidHide works. The controller still connects normally; it is only hidden from applications that are not whitelisted.</p>
<h3>Can I hide the controller for one game but not others?</h3>
<p>HidHide&#8217;s hiding is system-wide once enabled — the whitelist is per-application for who may <em>see</em> the device. For a single Steam title, the per-game Steam Input toggle is the finer tool; use HidHide when several programs need the same treatment.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Duplicate Timestamp Enqueued in BetterJoy: What It Means and How to Stop It</title>
		<link>https://betterjoyforcemu.com/betterjoy-duplicate-timestamp-enqueued/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:44:35 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-duplicate-timestamp-enqueued/</guid>

					<description><![CDATA[Sooner or later, almost every long-time BetterJoy user meets the same console message: Duplicate timestamp enqueued. It is the program&#8217;s most recognisable recurring log line — dozens of issue reports quote it word for word — and it ranges from harmless background noise to a flood that makes the controller unusable. This page explains what...]]></description>
										<content:encoded><![CDATA[<p>Sooner or later, almost every long-time BetterJoy user meets the same console message: <code>Duplicate timestamp enqueued</code>. It is the program&#8217;s most recognisable recurring log line — dozens of issue reports quote it word for word — and it ranges from harmless background noise to a flood that makes the controller unusable. This page explains what the message means, what the project&#8217;s author identified as the main cause, and the fixes that actually map to each scenario.</p>
<h2>What the message means</h2>
<p>BetterJoy streams motion data from your controller to emulators through its built-in Cemuhook/DSU server. Each motion sample carries a timestamp, and samples are queued in order. When a sample arrives whose timestamp is already in the queue, BetterJoy drops it and logs <code>Duplicate timestamp enqueued</code>. An occasional dropped sample is invisible in gameplay. The problem is the flood: when something downstream keeps requesting or reading data in a way that generates duplicates continuously, the log scrolls non-stop and, in the worst reports, real input stops getting through.</p>
<h2>The author&#8217;s root cause: the emulator is reading the wrong input API</h2>
<p>The clearest explanation on record comes from issue #336, where the message spammed the log after launching an emulator and the controller stopped working. The author (Davidobot) replied that the root cause was the emulator reading the controller through <strong>DirectInput instead of XInput</strong> — the emulator was seeing the raw controller alongside BetterJoy&#8217;s virtual one, and the fix in that thread was to install the HIDGuardian driver layer and enable it, so only the XInput device remained visible.</p>
<p>Translated into steps for your setup:</p>
<ol>
<li>In your emulator&#8217;s input settings, set the controller API to <strong>XInput</strong> (not DirectInput) for the virtual controller BetterJoy creates.</li>
<li>Make sure the game is not also reading the physical controller directly. If it can see both devices, you have the classic double-exposure setup — our <a href="https://betterjoyforcemu.com/betterjoy-double-input-fix/">double input fix</a> explains how to hide the physical controller properly with HidHide.</li>
<li>Restart both the emulator and BetterJoy after changing the API; the queue state does not reset mid-session.</li>
</ol>
<h2>Scenario 2: It starts after about 20 minutes, with rumble on</h2>
<p>Issue #616 describes a different pattern: the message appears after roughly 20 minutes of play <em>with rumble enabled</em>, while turning rumble off lets the same user play for hours. If your flood is time-delayed rather than instant, treat rumble as the trigger: lower the rumble intensity in your emulator (the long-standing community guidance for Cemu is around 70–80%), or disable rumble for a session to confirm the pattern before changing anything else. Rumble traffic shares the same Bluetooth link as the motion stream, which is also why rumble shows up in several of our <a href="https://betterjoyforcemu.com/joycon-bluetooth-lag-fix/">Bluetooth lag checks</a>.</p>
<h2>Scenario 3: It floods when a streaming or capture tool joins</h2>
<p>The earliest detailed report, issue #292, involved Parsec: the log flooded and the user had to disconnect the Pro Controller to stop it. Streaming and remote-play tools hook controllers in their own way and can recreate the same &#8220;two readers&#8221; conflict as the DirectInput case. If your flood starts exactly when a streaming, capture, or remapping tool launches, close that tool, confirm the log goes quiet, then reintroduce it — and make sure it is not also exposing the physical controller as a second device.</p>
<p>One honest boundary: in issue #387 the message recurred on v6.3 even with the config&#8217;s legacy <code>PurgeWhitelist</code> option changed, alongside stray Windows shortcut presses. Not every instance has a clean user-side fix, and the later stages of that thread are workarounds rather than a patch. If you have eliminated the wrong-API cause and the rumble pattern, say so plainly in a new issue report — you are past what configuration can solve.</p>
<h2>When you can safely ignore it</h2>
<p>If the line appears occasionally in the console while your controller responds normally — in a menu, during a loading screen, once in a while mid-game — it is the queue doing its job and dropping a redundant sample. It needs no action. Act only when it is continuous, when it coincides with input loss, or when it arrives with a pattern (a specific emulator, rumble, a streaming tool) you can match to the scenarios above.</p>
<p>New to the program itself? Start with the <a href="https://betterjoyforcemu.com/how-to-use-betterjoyforcemu/">first-run guide</a> and the package on the <a href="https://betterjoyforcemu.com/download/">download page</a> so your baseline setup is known-good, then come back here if the message appears. More fixes live on the <a href="https://betterjoyforcemu.com/troubleshooting/">troubleshooting hub</a>.</p>
<h2>If you end up reporting it</h2>
<p>Should you take this to the issue tracker, report it the way the useful threads in the archive do: quote the exact message, name the emulator and which input API it was set to (XInput or DirectInput), state whether rumble was on, and note when in the session the flood starts — immediately, or after a delay like the ~20 minutes in #616. Those four facts are what separate your report from the dozens of unactionable ones, and they are the same four facts the fixes on this page are organised around.</p>
<h2>FAQ</h2>
<h3>Is &#8220;Duplicate timestamp enqueued&#8221; an error that damages anything?</h3>
<p>No. It is a log message about a dropped motion sample. It does not corrupt your controller, your config, or your saves. Only its continuous form matters, because of the input problems that travel with it.</p>
<h3>The fix mentions HIDGuardian. Should I install it?</h3>
<p>HIDGuardian is the legacy layer bundled with v7.1, and it was the era-correct answer in the author&#8217;s thread. Today the maintained hiding tool is HidHide, and the two must never be installed together. Our <a href="https://betterjoyforcemu.com/betterjoy-double-input-fix/">double input fix</a> walks through the modern route and the removal order for the old one.</p>
<h3>It only happens in one emulator. Is BetterJoy broken?</h3>
<p>Almost certainly not — a single-emulator pattern points at that emulator&#8217;s input API setting (DirectInput vs XInput) or its DSU client configuration, which is exactly the author&#8217;s diagnosis in #336.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BetterJoy Not Detecting Your Controller? Fix &#8216;No Joycons Detected&#8217;</title>
		<link>https://betterjoyforcemu.com/betterjoy-not-detecting-controller/</link>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 02:44:14 +0000</pubDate>
				<category><![CDATA[Troubleshooting]]></category>
		<guid isPermaLink="false">https://betterjoyforcemu.com/betterjoy-not-detecting-controller/</guid>

					<description><![CDATA[Your Switch Pro Controller or Joy-Cons are paired with Windows — they show up in Bluetooth settings, maybe even work in a game — but BetterJoy&#8217;s window stays empty, or the console prints No Joycons detected. This is the single most reported BetterJoy problem (the project&#8217;s own wiki leads its FAQ with it, and issue...]]></description>
										<content:encoded><![CDATA[<p>Your Switch Pro Controller or Joy-Cons are paired with Windows — they show up in Bluetooth settings, maybe even work in a game — but BetterJoy&#8217;s window stays empty, or the console prints <code>No Joycons detected</code>. This is the single most reported BetterJoy problem (the project&#8217;s own wiki leads its FAQ with it, and issue reports like #678 and #358 describe the same symptom years apart). Work through the checks below in order; most cases are fixed by the re-pair in step 2 or the USB isolation test in step 4.</p>
<h2>Step 1: Read what the console is actually telling you</h2>
<p>Launch <strong>BetterJoyForCemu.exe</strong> and look at the log lines. In issue #358, a user whose Pro Controller was never detected saw only two lines: <code>Starting server on 127.0.0.1:26760</code> and <code>All systems go</code>. That pattern tells you something useful: the program itself started fine — its motion server is running — but it never enumerated a controller. The problem is between Windows and the controller, not inside your emulator. If instead you see errors about drivers, jump to our <a href="https://betterjoyforcemu.com/betterjoy-vigembus-not-found-exception/">ViGEmBus not found fix</a>, because a missing virtual bus produces a different failure.</p>
<h2>Step 2: Remove the pairing and re-pair the proper way</h2>
<p>Stale pairings are the classic cause. The official wiki&#8217;s fix for <code>No Joycons detected</code> is to reconnect following the proper disconnect procedure, and in practice a full remove-and-repair is the version of that advice that works:</p>
<ol>
<li>Close BetterJoy completely.</li>
<li>In Windows, open <strong>Settings → Bluetooth &amp; devices</strong>, find the controller, and choose <strong>Remove device</strong>.</li>
<li>Hold the controller&#8217;s <strong>Home</strong> or <strong>Capture</strong> button for about 2 seconds (or tap the Sync button) so it fully disconnects — this is the documented disconnect method, and skipping it is how half-paired states happen.</li>
<li>Hold the small <strong>Sync</strong> button on top of the controller for about 5 seconds until the lights start cycling.</li>
<li>Add it again under <strong>Add device → Bluetooth</strong>, wait until Windows says the device is ready, and only then start BetterJoy.</li>
</ol>
<p>If you need the button-by-button pairing flow, our <a href="https://betterjoyforcemu.com/how-to-connect-switch-pro-controller-to-pc/">Pro Controller connection guide</a> covers it for both the Pro Controller and Joy-Cons.</p>
<h2>Step 3: Check the run order and duplicate instances</h2>
<p>BetterJoy scans progressively while it runs, so a controller paired after the program started should appear — but when it doesn&#8217;t, restart the program <em>after</em> the controller is connected to Windows. Also make sure BetterJoy is not already running: since v6.3 the program refuses to start a second instance, and an old copy minimised to the system tray can make a fresh launch look like &#8220;nothing happens.&#8221; Check the tray and Task Manager, kill any existing <code>BetterJoyForCemu.exe</code>, then launch once.</p>
<h2>Step 4: Isolate Bluetooth with a USB cable</h2>
<p>Plug the controller in with a USB data cable. The wiki&#8217;s USB advice is to unplug, replug, and give Windows a moment to finish setting the device up before judging. Two outcomes:</p>
<ul>
<li><strong>It appears over USB but not Bluetooth:</strong> the pairing or your Bluetooth stack is at fault. Re-do step 2, and if Joy-Cons are involved, work through the adapter and driver checks in our <a href="https://betterjoyforcemu.com/joycon-bluetooth-lag-fix/">Bluetooth lag fix</a> — a weak adapter often fails at detection before it ever gets to lag.</li>
<li><strong>It appears on neither:</strong> check whether <em>any</em> program can see it. If the controller vanished from every app after a previous BetterJoy session, it may still be sitting on the legacy HIDGuardian blacklist — recover it with the <a href="https://betterjoyforcemu.com/controller-unusable-after-betterjoy-hidguardian/">localhost:26762 recovery guide</a> before trying anything else.</li>
</ul>
<p>One more wiki item worth ten seconds: if plugging into USB does literally nothing, open Device Manager&#8217;s USB controller properties and untick the power-saving option that lets Windows turn the device off.</p>
<h2>Step 5: Move BetterJoy out of protected folders</h2>
<p>Issue #678 pairs this symptom with a popup: <code>Access to the path 'C:\Windows\system32\settings' is denied</code>. That happens when the program lives somewhere Windows protects and cannot write its settings. Extract the ZIP from the <a href="https://betterjoyforcemu.com/download/">download page</a> into an ordinary user folder — Documents or Desktop, never System32 or Program Files without admin rights — and run it from there.</p>
<h2>What will not fix this</h2>
<p>Two dead ends to save you time. First, Switch 2 controllers: v7.1 predates them and does not recognise Joy-Con 2 or the Switch 2 Pro Controller at all — no re-pairing will change that. Second, some third-party pads pair with Windows perfectly yet are never listed by BetterJoy; that is a separate, documented limitation covered in our <a href="https://betterjoyforcemu.com/powera-third-party-controller-not-recognized/">third-party controller guide</a>.</p>
<p>Still stuck after all five steps? Browse the full list on the <a href="https://betterjoyforcemu.com/troubleshooting/">BetterJoy troubleshooting hub</a> — your symptom may match a different fix.</p>
<h2>FAQ</h2>
<h3>Windows says the controller is connected. Why is BetterJoy empty?</h3>
<p>Pairing only means Windows completed a Bluetooth handshake. BetterJoy still has to open the device, and a stale pairing, a second program holding it, or the HIDGuardian blacklist can each block that. The remove-and-repair in step 2 plus the USB test in step 4 separate those causes.</p>
<h3>Do I need to run BetterJoy as administrator to detect controllers?</h3>
<p>No. Detection does not need admin rights; per the official README, administrator mode is only the fix when your keyboard or mouse mappings do not work. If you see an access-denied popup about a settings path, that is a folder-location problem (step 5), not a permissions ritual to repeat.</p>
<h3>The controller worked yesterday and vanished today. What changed?</h3>
<p>Most often one of three things: Windows re-paired it as a &#8220;new&#8221; device, another tool (Steam, an emulator) was holding it when BetterJoy scanned, or a previous session left it hidden by HIDGuardian. Steps 2, 3 and 4 cover them in that order.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
