Apple Muncher Project Postmortem: Developing for Panasonic VIERA Connect SmartTV (Part 4)

This is the final part of a four-part series detailing my personal experience developing an indie game for Panasonic’s obscure VIERA Connect television app market years ago.

In the first part of the series, I detailed the pains of becoming a VIERA Connect third party developer and struggles of setting up the rigid development environment required by Panasonic. For the second part, I documented the development process of actually creating a game using the often restrictive VIERA Connect framework. The third part of the story focused on the obstacles of actually publishing the app to the market. This part discusses the aftermath. Read Full Article

How To Fix OBS Studio and ZoomIt for Screencasts (Double Cursor Bug)

 

If you have ever tried using OBS Studio in conjunction with any realtime magnification tools—such as the LiveZoom feature of the excellent and free ZoomIt utility by SysInternals—you'll find that there is quite a frustrating issue with it. While recording with OBS Studio, if you want to zoom into the mouse location using a magnifier app, you will get a second phantom mouse cursor that appears in the recording relative to the enlarged version. This is because OBS is still rendering the native system mouse relative to the display resolution, while the enlarged cursor is being simultaneously rendered to the screen relative to the zoomed in coordinates.

This problem has generated a number of discussions over the years and has been especially problematic to users wishing to create screencasts and related materials. There have been complaints, bug reports and suggestions on how OBS Studio could internally resolve the problem. However, to date there has not been any proper solution offered. The general counter-argument has been that this is a very isolated use case and that other commercial products like Camtasia ($249 USD) would be much better suited for this scenario. But for users already familiar with OBS or not wishing to invest time and money into other software products, I have found that professional screencasts can be created just fine via OBS as long as we can overcome the double cursor bug. Here is what I came up with as a makeshift solution.

Fixing the Double Cursor Bug when Zooming in OBS

To get around the cursor bug problem, we will setup a new OBS scene collection with two scenes. One scene will be setup to record the display with the mouse cursor, and the other without the mouse cursor. Using a shared keyboard shortcut and the transition feature of OBS, we will be able to automatically switch scenes when zoomed in or out so that only the enlarged render of the cursor will appear while magnified.

For this tutorial I am using OBS Studio 22.0.2 and ZoomIt v4.5, but you will find other magnification apps exhibit the same double cursor issue when used with OBS and should be able to easily adapt these instructions for those other utilities. These steps only need to be completed one time; you can then load the scene collection at any time to use these settings.

  1. Create a new scene collection by selecting Scene Collection → New from the top file menu. Give the collection a name, such as "Screencasting" and click OK.
  2. For clarify, let's rename the default scene to "Scene (With Cursor)" by right-clicking on it and selecting Rename.
  3. Add a second scene by clicking on the [+] button under the Scenes list and name it "Scene (Without Cursor") then click OK.
  4. Select the first scene again—Scene (With Cursor)—and then click the [+] button under the Sources list and select Display Capture.
    1. Note: Other source types will not allow you to capture the full screen as you see it. To capture magnification features of other utilities, you must use Display Capture.

    Give the selected Display Capture a more descriptive name, such as "Display Capture (With Cursor)" and then click OK.
    When the Properties window appears, make sure that "Capture Cursor" is checked and—if you have more than one connected display—that you have selected the correct display that you wish to capture, then click OK.
    Repeat steps 4-6 for the second scene—Scene (Without Cursor)—but name the source "Display Capture (Without Cursor)" and make sure that "Capture Cursor" is unchecked.
    Open up the magnifier tool to configure a toggle shortcut. In ZoomIt, click on the LiveZoom tab and then assign a unique keyboard shortcut such as CTRL+SHIFT+ALT+X.  Do NOT click OK yet as we don't want to enable the shortcut until after we also configure it in OBS.
    Click on "Settings" in OBS Studio, then click on Hotkeys and finally enter the same keyboard shortcut under Transition as you did in the zoom utility (e.g., CTRL+SHIFT+ALT+X). Then click OK.
    You can now click OK within ZoomIt as well to activate the utility, but don't press the shortcut just yet.
    Back inside of OBS Studio, click to select "Scene (Without Cursor)" from the Scenes list and then click on the Studio Mode button.
    With Studio Mode open, click to highlight "Scene (With Cursor)" and then click on the Transition button in the center of the screen. This will establish our transition process between the two scenes and ready it for use with our zoom utility and matching shortcut.

    1. Note: Make sure that "Swap Preview/Output Scenes After Transitioning" is activated in the Preferences button next to Transition, which it should be by default.

    Now you can start the recording, minimize OBS Studio and then toggle the magnification whenever needed using the keyboard shortcut. Only a single cursor will be recorded, as expected. The keyboard shortcut for Transition will not work if you currently have OBS Studio in focus, so either click onto a different app or minimize OBS before using the magnification shortcut.

    NOTE: After switching scenes or relaunching OBS, you may need to repeat steps 11-12 to prepare it for use again. You can also add audio input/output sources to both scenes for capturing audio.

    Although this is not the most desirable solution, it does solve the problem pending any official fix. Since OBS Studio is open-source, anyone could theoretically create a fork of the code to implement a workaround internally or perhaps a standalone plugin, time-permitting.

Guide: Fix Epson Scan Not Responding Windows 10 (2018) - V300 V600 V700

 

The 2018 "feature update" for Windows 10, also known as Update #1803, breaks the Epson Scan Utility software. This affects all compatible devices including Epson's dedicated line of scanners from the V300 to the V600 on up.

When the problem occurs, you'll see a small Epson window flicker in the bottom corner of the screen and sometimes bounce around sporadically. The app locks up and your only recourse is to terminate the software through the Task Manager and then power your device off and on again. This happens most commonly after switching to a different application and then back.

Epson has acknowledged that this problem affects most of their products and they've reportedly escalated the matter. Until a fix becomes available through Epson or Microsoft, the quick fix is to simply run it in administrative mode. Here are the complete steps:

  1. Download the latest Epson Scan package from Epson's website for your respective device. You can find the correct download by entering the device's model number into the epson.com site and then clicking on the "Support" link. From there, locate Scanner Driver and EPSON Scan Utility and click "Download." If a security warning pops up, click "OK" or "Keep" to download the file to your computer.
  2. Once downloaded, install the program to your computer using the default options. This process will place a new shortcut to the software on your desktop, which will make the next steps a little easier. If asked to restart your computer, please do so.
  3. Right-click on the Epson Scan shortcut on your desktop and select "Properties."
  4. Click on the "Compatibility" tab.
  5. Click the button at the bottom labeled: "Change Settings for All Users" and if prompted for confirmation, click "Yes."
  6. Check the option "Run this program as an administrator."
  7. Click "OK," then "OK" again to close the properties.

You should now be able to launch Epson Scan Utility again and use it without issue. Depending on your user account settings, you may have to click "Yes" if prompted with a security alert.

The first time you launch the application after making these changes, you may also receive a "compatibility alert." Select "Yes, this program worked correctly" to close it.

Addendum - No Icon on Desktop

If you do not have a scan icon on your desktop, you can modify the executable directly. To do this:

  1. Press WINDOWS KEY + R to open the Run dialog.
  2. Enter: c:\windows\twain_32\escndv\ then press Enter or click "OK."
  3. When the Explorer window appears, right-click on the escndv.exe icon and select Properties. Then you can continue the tutorial as described above.

Addendum - Disable Security Prompt on Launch

If you have User Account Control enabled, you'll receive a confirmation box each time you launch the app in administrative mode. Although a minor nuisance, there are a couple solutions.

When the alert appears, you can click on "Show More Details" and then "Change when these notifications appear." From there, you can lower the level to the second notch to still receive the alert but without dimming the entire desktop. You can alternatively set the option to "Never Notify" to remove the alert entirely. Be aware that this is a global setting and unless you are an advanced user I don't recommend disabling it, since the alerts can help prevent malware installation.

A more intelligent solution is to use a third party utility or the task scheduler to disable the alert on this application exclusively. Since this can be a somewhat more involved process, I will refer you to an excellent tutorial from Raymond.cc, which thoroughly covers numerous methods of doing so. You'll find the tutorial link below.

Raymond.cc - 4 Ways to Disable User Account Control (UAC) for Specific Software in Windows

How to Increase Default Zoom Level in Outlook 2016

Although there are many accessibility options integrated into modern operating systems and software applications, increasing the default zoom level of received messages in Microsoft Outlook remains surprisingly complicated and inhibiting. I have recently been assisting with computer setup and tutoring of a friend who has macular degeneration, which makes it increasingly difficult to read small text. One of the more difficult tasks was personalizing Outlook 2016 to make the baseline text much larger with minimal required user interaction. Below is a summary of my tribulations and my most recommended way to configure Outlook for those with advanced vision impairment.

These instructions should be equally applicable to Outlook 2010 and Outlook 2013, but have not been tested.

The Wrong and Ineffective Ways to Zoom Messages

There are many general approaches toward increasing the text size in Outlook that I would not recommend. Some of these approaches include:

Increase the global scale and layout.

Description: To increase the general text and icon size throughout Windows, you can increase the scaling factor within Display Settings. The default scale is 100%, but you can quickly adjust it to 125%, 150% and 175% (or even up to 500% via custom scaling). This is similar to setting the "Large Text" option on MacOS and applies globally to all compatible interface elements.

What's Wrong: While this is a helpful technique to generically improve readability across many applications and processes, it has little impact on the UI in Outlook and can actually result in a blurry text appearance as if being artificially scaled. Furthermore, since the majority of emails are HTML-formatted and controlled via CSS, they will appear no different regardless of this global scale factor. There is no level of granular control over this approach either and the effects of changing the default scale factor will vary depending on the software application.

Lower the screen resolution.

Description: Most monitors these days are designed around a relatively high resolution of at least 1920 x 1080 (1080p). As such, lowering the resolution (e.g., down to 1280 x 720) will uniformly increase the size of all elements shown. On a whim, this may seem like a reliable "quick fix" to make everything bigger, but it is actually the least recommended approach out there.

What's Wrong: Unlike traditional CRT monitors that can look sharp at any supported resolution, LCD/LED monitors are physically designed to support one specific resolution. Altering it will almost always result in blurred pixels and decreased clarity, which is counterproductive when attempting to improve readability. Also, since this is a hardware-based adjustment it will impact all aspects of the system equally with no room for making individual adjustments on a per-application basis. In addition, lowering the resolution diminishes the actual on-screen area and reduces the overall number of pixels that could otherwise be put to use enhancing text size and readability.

Force plain text mode and increase the default font size.

Description: Outlook includes the option to adjust the text size for reading and composing plain text messages. (via Options > Mail > Stationary and Fonts) This is effective at enlarging and customizing the font, and will apply to all plain text messages sent or received.

What's Wrong: The obvious disadvantage to this approach is that it requires that all messages be read as plain text (via Options > Trust Center > Email Security > Read all standard mail in plain text). Otherwise, the  vast majority of messages will still use a fixed font size as defined within the embedded HTML/CSS. More annoyingly, when Outlook is configured to only show emails as plain text, any HTML-formatted messages will spit out the HTML source code along with the message and create an unreadable mess. Since most messages are HTML-formatted, forcing plain text output in Outlook causes a serious disruption in readability.

The Right and Automated Way to Zoom Messages

When you open up an email message in Outlook by double-clicking, a Zoom button appears in the top toolbar. Clicking this button allows you to specify the zoom level for that specific message. A shortcut to achieve the same action, as common across most applications, is to hold in CTRL and then roll the mouse wheel forward to zoom in and backward to zoom out (this also works in the reading pane view directly). Unfortunately, there is no integrated way to set the zoom level across all email messages. This means that when you close the zoomed message, any other you open will revert back to the standard 100% zoom level.

To achieve an automated system that zooms all emails by a certain percentage when opened (including HTML-formatted messages) without relying on third party products, we will have to rely on some simple VBA scripting. Note that there is no way to manipulate the "reading pane" directly, so this method is only applicable when actually opening messages via double-click.

Although the script is simplistic and provided below, half the battle is getting everything to behave happily given the heightened security restrictions of macros in recent Microsoft products. I will cover the full process of doing so in a safe and secure manner.

Step 1 - Enable Developer Options

To work with VBA macro scripts in Outlook, you first need to enable the Developer tab.

  1. Select File → Options.
  2. Click on Customize Ribbon from the left-hand menu.
  3. Under the "Customize the Ribbon" section, check the box next to Developer and click OK.

Step 2 - Enable Digitally Signed Macros

By default, Outlook disables all macros. This is to prevent malicious code from being covertly executed, which was a common threat in earlier versions of Microsoft Office. In order to run our own custom macro, we will need to enable support for digitally signed macros. This will ensure the application remains secure while allowing us to run our own digitally signed macro (as further precaution, the user will also be prompted before any digitally signed macros are run for the first time).

  1. Select File → Options.
  2. Click on Trust Center from the left-hand menu.
  3. Click on the "Trust Center Settings" button.
  4. Click on Macro Settings from the left-hand menu.
  5. Select the option: Notifications for digitally signed macros, all other macros disabled and click OK.

Step 3 - Create a Digital Signature

To sign our macro and enable its use in Outlook, we will need to create a unique digital signature on the PC that Office is installed on. Microsoft provides a utility buried in the Office folder to do just that.

  1. Navigate to your main Office installation directory. Below are example default paths for Office 2016:
    1. 64-Bit Install: C:\Program Files\Microsoft Office\Office16\ (or C:\Program Files\Microsoft Office\root\Office 16\)
      1. Alternate Possibility: C:\Program Files\Microsoft Office\root\Office 16\

      32-Bit Install on 32-Bit Operating System: C:\Program Files\Microsoft Office\Office16\

      1. Alternate Possibility: C:\Program Files\Microsoft Office\root\Office 16\

      32-Bit Install on 64-Bit Operating System: C:\Program Files (x86)\Microsoft Office\Office16\ 

      1. Alternate Possibility: C:\Program Files (x86)\Microsoft Office\root\Office 16\

      Locate the file named SELFCERT.EXE and double-click it to launch.
      Read the notice and then enter a certificate name, such as your name or OfficeZoomMacro, then click OK.

      Step 4 - Write the Macro

      Now that we have most of the legwork complete to run our macro, we can get to the heart of the task and create the macro itself.

      1. Back in Outlook, click on the Developer tab and then click on the Visual Basic button (ALT+F11).
      2. In the Project Explorer on the left-side, select Project1 → Microsoft Outlook Objects → ThisOutlookSession to open the script editor for the internal Outlook macro.
      3. We need to ensure the necessary References are added or else the code will error out. Click into the code editor and then select Tools → References. In the list that appears, check the following options and then click OK (already checked items will appear at the top; if you are using a different version of Outlook the '16.0' will be a different number):
        1. Visual Basic For Applications
        2. Microsoft Outlook 16.0 Object Library
        3. OLE Automation
        4. Microsoft Office 16.0 Object Library
        5. Microsoft Word 16.0 Object Library
        1. Now we can add the macro code. Copy and paste the following into the code editor. Notice the line "ZoomLevel = 175" - This is the line you modify to change the percentage of zoom that you wish to apply by default to every opened message (175 = 175%).

        1. Let's add the digital signature we created earlier. Click Tools → Digital Signature.
        2. From the Digital Signature window, click Choose. The certificate you created earlier should appear (click "More Choices" to choose it, if it is not already selected). Click OK, then click OK again to close the Digital Signature window.
        1. IMPORTANT: Back in the editor, press CTRL+S or click on the Save icon in the toolbar to save/re-save the macro after applying the digital signature. This will prevent a signature verification issue that affects some instances of Outlook when you attempt to use the macro for the first time. [See comments for additional discussion and what to do if you open Outlook and receive the error: "An error occurred while attempting to verify the VBA project’s signature. Macros will be disabled."]
        2. With the script saved, close the Visual Basic editor.
        3. Close Outlook. You will likely be prompted to save the VBA project again, click Yes. This two-process save (once in VBA and once when closing Outlook) can be necessary to properly apply the digital signature for subsequent use.

        The first time you open Outlook after creating the macro and digitally signing it, you will see a security alert. If you click on the "Show Signature Details" hyperlink you can verify that the certificate is the one previously created. Click "Trust all documents from this publisher" to allow the macro to run, and to prevent the alert from appearing each time you open Outlook. If you ever make modifications to the script, you may need to resign it to prevent it from being detected as suspicious and disabled by Outlook.

        If everything was done correctly, when you double-click on any message (or create a new message) it should now open up in a new window with the specified zoom level automatically applied. You can still override it by using the zoom button or shortcut described in the first section. As noted earlier, you will need to double-click on each message to view the enlarged text size as it is not possible to interface directly with the reading pane to control zoom levels.

        Additional Tasks to Improve Readability for the Vision Impaired

        The macro described above will help ensure that the user can read and compose messages (including HTML-formatted ones) using a default magnification. However, there are some other simple tasks that can be performed to better assist users who are visually impaired. My personal suggestions are below:

        Enlarge Column Heading and Rows & Disable Reading Pane

        The overall UI of Outlook will remain quite small even though the message text will be zoomed in when opened. The main list view of emails can be adjusted to increase column and row text visibility.

        1. Make sure you have the desired folder selected (e.g., Inbox)
        2. Select View → View Settings.
        3. Click the "Other Settings" button.
        4. Click on the "Column Font" and "Row Font" buttons to adjust the text size and formatting, such as increasing the size to 16 pt.
        5. If you wish to disable the reading pane (recommended to ensure the user always views the messages in their zoomed format) you can select the "Off" option under Reading Pane.
        6. Consider also turning off groups by unchecking "Show Items in Groups" to reduce on-screen complexity so that the emails are listed in a simple fashion.
        7. You can also experiment with the "Use compact layout" options in this view, which can have a visual impact depending on the font size and screen resolution.
        8. When done, click OK and then click OK again to close the View Settings window. You can repeat this for other mail folders as desired.

        Modify Conditional Formatting for Unread Messages, Etc.

        Similarly to adjusting the heading appearance above, it is also possible to adjust how the messages appear in the list before being opened.

        1. Make sure you have the desired folder selected (e.g., Inbox)
        2. Select View → View Settings.
        3. Click the "Conditional Formatting" button.
        4. Select the desired view rule such as "Unread Messages" and then click the "Font" button and adjust the text accordingly.
          1. Note that the row font configured in the previous section will still be inherited for aspects like size, but here you can adjust the color and other properties.

          When done, click OK and then click OK again to close the View Settings window. You can repeat this for other mail folders as desired.

          Adjust the Font for New Messages, Reply Letters and Plain Text Compositions

          The following procedure alters the actual font for creating new messages and replying to received mail. Unlike all of the previously offered suggestions, the changes here will also be reflected on the recipient's computer. If you change the font color to maroon and sized to 16 point, the user who receives your message will see that format from their mail reader. The exception is the plain text setting, which is only a local change.

          1. Select File → Options.
          2. Click on Mail from the left-hand menu.
          3. Click on the "Stationary and Fonts" button.
          4. Modify the "New mail messages," "Replying or forwarding messages," and "Composing and reading plain text messages" fonts as desired.
          5. Click OK and then click OK again to close the Options window.

          Read Full Article

Fix for Xbox One Wireless Adapter Not Working in Windows 10 - XBOX ACC Driver

When I received the new Oculus Rift last month, one of the bundled accessories was a wireless Xbox One controller with a wireless USB adapter. Curiously, despite my system being completely up-to-date, the plug-and-play driver installation was never able to succeed correctly. I have seen similar issues pop up occasionally on Facebook and other discussion groups.

The official Microsoft support link on troubleshooting the wireless adapter suggest a wide range of potential solutions, none-of-which helped in my situation. At the end of the first solution that most closely matched my issue ("The adapter didn't auto-install"), Microsoft tells the reader to attempt the uninstall/update process once more and "if this doesn't work, your adapter needs to be replaced." Luckily that isn't really the case and the fix only takes a moment to apply.

Symptoms

  • The Xbox Home button on the controller continues to slowly pulse when powered on, never staying solid.
  • The Xbox One controller does not appear in Devices and Printers.
  • The LED light on the adapter does not come on at all when plugged in, even after pressing Sync button.
  • The Device Manager shows an "XBOX ACC" entry in Other Devices with an explanation mark.

Solution

In short, you'll need to manually download compatible drivers on Microsoft's site and then update the missing device drivers accordingly. Sadly, Microsoft does a fantastic job of hiding these files deep within their site. The main Software Downloads page for the controller only includes links to the user guide and specs sheet, no drivers. Microsoft assumes that the plug-and-play adapter will install without issue—and in many cases I'm sure they are correct, just not always.

The only official way to get at these drivers is through Microsoft's Software Catalog site, which begrudgingly restricts its usage to Internet Explorer browsers. That said, here's a quick way to get what you need and have your controller up and running in minutes!

Downloading the Correct Drivers

  1. First, determine whether you are using a 32-bit or 64-bit operating system. You can press Windows Logo + Pause/Break if you need to verify your system type.
  2. With that information in mind, launch Internet Explorer (important) and navigate to: http://catalog.update.microsoft.com/v7/site/Search.aspx?q=xbox%20adapter
  3. The results should be sorted by Last Updated; the top two results correspond to the latest adapter drivers for 32/64-bit machines:
    1. If your operating system is 32-bit, click the "Add" button next to the lower of the two versions (i.e., 19.34.19.259)
    2. If your operating system is 64-bit, click the "add" button next to the higher of the two versions (i.e., 21.50.45.656)
    1. Once the correct driver has been added to your download basket, click on View Basket (1) in the top-right of the page.
    2. On the following page, verify your selection and then click Download.
    3. Click "Browse" and navigate to the temporary location you wish to download the drivers to; the Desktop is just fine.
    4. Click Continue and once the download lists as "Done" you can close all Internet Explorer windows.
    5. Finally, navigate to the downloaded file. It will have a .cab extension. Open this file in 7-Zip or WinRAR and extract its contents somewhere.

    Updating the Wireless Adapter Drivers

    1. Plug the wireless adapter into any USB port on your computer; you should hear a sound effect. If the Device Setup window appears, wait until it is finished.
    2. Go into the Device Manager (Windows Key + Pause/Break > Device Manager).
    3. You should see XBOX ACC listed under Other Devices. Right-click this entry and select Update Driver Software.
    4. Click on Browse my computer for driver software.
    5. Click "Browse" and navigate to where you previously extracted the .cab files to. Then click OK and Next.
    6. The proper driver should then install and within a few seconds you'll get the message that the driver has been successfully updated. Click Close.

    The device will then show up as Xbox Wireless Adapter for Windows under the Network Adapters category of devices.

    Syncing the Controller with the Adapter

    Chances are you can now turn on your Xbox controller by holding the Home button in until it lights up; after a few pulses it should auto-sync with the now functional USB adapter. If the Home button light does not become solid or otherwise behaves peculiarly in Windows, try re-syncing it as follows:

    1. Press and hold the Sync button on the adapter until it starts flashing.
    2. Once the adapter is flashing, press and hold the Xbox controller bind button front of the controller until the Xbox Home light flashes rapidly.
    3. In a moment, the light on both the adapter and the controller should light solid. You are all set!

    Finally, consider downloading Xbox Accessories from the Windows Store to fully customize the gaming controller and update its firmware.

    Note that I have seen a few people report issues using the wireless adapter in USB 3.0 ports. I have never experienced this issue on my machine and don't think you will either (it is rated for use in either). Of course, there is no harm in using a USB 2.0 port if needed.