+cubanismo Posted January 11, 2021 Share Posted January 11, 2021 I've built some installers for my updated JCP code. First, what you're here for, the files: Windows XP - Windows 10: jcp_installer-02.06.00.exe macOS 10.9 - 11.1: JCPInstaller-02.06.00.pkg Now, the installer features: Fully code signed (signed binaries in signed installers) Optionally installs required driver support files, also code signed: libwdi (Modified to patch WinXP support back in) is used to install libusb-win32 drivers on Windows. This is the same backend Zadig uses to install libusb drivers on Windows. libusb dynamic library is installed in /usr/local/lib on macOS macOS: Supports version 10.9 and newer macOS: Universal binaries - Should run natively on x86_64 (Intel) and ARM (Apple Silicon) Macs macOS: Installs jcp in /usr/local/bin so it will be in the default search path in your terminal macOS: Notarized, so you don't have to futz with overriding macOS's draconian "security" settings to run the installer Windows: Supports Windows XP and above Windows: Optionally adds the JCP install directory to the PATH environment variable, so jcp will be in the search path in your terminal. No need to remember the install path when running it, just type "jcp" and windows will find it. Also, for those that haven't been following, here are the new features of JCP 02.06.00 Vs. 02.05.00: Serial EEPROM (high score/save game chip) dumping and flashing support, assuming your SkunkBoard has one (Rev. 4 boards, Rev. 5 boards, and anyone who's hacked one on to their board). Back up and restore your high scores and save games to/from your Skunkboard, or debug save game/high score support in your project! 6MB cartridge dumping support Serial EEPROM selection support, for SkunkBoards that have two Serial EEPROMs (Rev. 5 boards) I've tested these out on Windows 10 64-bit, Windows XP 32-bit, and macOS 11.1 (Big Sur) on an Intel Macbook. Please test them on whatever computer you skunk with and report success/failure along with a short description of your configuration (Windows/macOS version, your processor type, USB1/2/3 port used, and whatever else you think might be relevant). I'm especially interested in feedback on Windows Vista, 7, and 8, as well as ARM/Apple Silicon Macs, since I don't have easy access to these configurations for testing. NOTE: I've sporadically seen problems with Windows flagging the installer as a severe threat for exhibiting evasive behavior. For me, this happened when I wasn't signing the binaries. Windows doesn't like the way libwdi goes about dynamically generating a signed driver inf file at install time it seems. Signing the binaries seems to have resolved it for me, but let me know if you still see this. Be assured there's no actual threat here, it's just libwdi being somewhat clever, and Windows being extra cautious. Update: One other note for Windows users: The easiest path to a working setup is to run the installer before plugging in your Skunkboard, then plug the board in after completing the install, then run JCP. You must plug the Skunkboard in (and power on your Jaguar) after installing JCP to complete the driver install process on Windows. If you run JCP prior to that, it'll throw up an error about missing libusb libraries. If you get that, no harm done, just plug the skunk in and then try again. When plugging in the Skunkboard for the first time, you might get a "found new hardware" wizard on older versions of Windows, in which case you can just go with the defaults and Windows will find the pre-installed driver automatically and complete the installation. In my Windows 10 testing, the process was seamless and it just silently added the device and completed the driver installation process on its own. As noted, libwdi had to be modified to restore Windows XP support to the latest version. Since it's LGPL code, I've made my changes available here in case anyone else wants to use them: https://github.com/cubanismo/libwdi However, note I did the absolute minimum amount of work to get libusb-win32 drivers installing using the very basic embedded installer example project. If you're trying to build a WinXP-compatible Zadig out of this, it will fail. 7 1 Quote Link to comment Share on other sites More sharing options...
JagChris Posted January 11, 2021 Share Posted January 11, 2021 Yeah I have a 32 bit Windows XP 1200 mHz system running an Athlon processor. If it'll run on that... Quote Link to comment Share on other sites More sharing options...
+cubanismo Posted January 11, 2021 Author Share Posted January 11, 2021 8 hours ago, JagChris said: Yeah I have a 32 bit Windows XP 1200 mHz system running an Athlon processor. If it'll run on that... It should. Let me know if you try it! Quote Link to comment Share on other sites More sharing options...
Fredifredo Posted January 12, 2021 Share Posted January 12, 2021 Thanks ! Work fine on my Intel i3 with Win 10 2004 Pro 1 Quote Link to comment Share on other sites More sharing options...
wietze Posted August 31, 2021 Share Posted August 31, 2021 With Windows 11 I get the error of not finding libusb0.dll, even tho I installed the USB Device Driver via de installed. Is Windows 11 supported? Quote Link to comment Share on other sites More sharing options...
+cubanismo Posted September 1, 2021 Author Share Posted September 1, 2021 Did you plug in the Skunkboard before running JCP? Quote Link to comment Share on other sites More sharing options...
BlueIn2Red Posted May 11, 2022 Share Posted May 11, 2022 On 9/1/2021 at 3:45 PM, cubanismo said: Did you plug in the Skunkboard before running JCP? I'm preparing my PC while waiting for my Skunkboard to arrive and get the same error on Windows 11 when running JCP (installer version 2.07.00). Do I take it that the error will go away once I've actually plugged in the Skunkboard? I'm struggling to understand how this would fix a missing DLL! 1 Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted May 11, 2022 Share Posted May 11, 2022 On 1/11/2021 at 6:00 PM, cubanismo said: You must plug the Skunkboard in (and power on your Jaguar) after installing JCP to complete the driver install process on Windows. If you run JCP prior to that, it'll throw up an error about missing libusb libraries. Needs more bold. Maybe flashing text, some midi music and a HTML marquee 2 Quote Link to comment Share on other sites More sharing options...
BlueIn2Red Posted May 11, 2022 Share Posted May 11, 2022 Yes, sorry, I’m an idiot! I was reading the manual properly though ? (And thank you.) 2 Quote Link to comment Share on other sites More sharing options...
+cubanismo Posted May 11, 2022 Author Share Posted May 11, 2022 Yeah, short answer, it should work once the board is plugged in and Windows has had a minute to respond to the hot-plug. If not, come on back and we'll troubleshoot. I haven't personally tested on Windows 11, but it should behave the same as 10. Long answer: I know it's not intuitive, so I understand the doubt and double-checking. Using various unofficial terms here, but the way Windows driver management works is that files get moved from some driver archive area to the actual runtime paths only when the device is first initialized. When they're not in the runtime paths, applications can't find them. Most applications don't rely on this to find DLLs they rely on to start, so it isn't usually visible to end-users, but the ancient version of libusb (and arguably JCP itself) don't exactly follow modern Windows best practices. On the other hand, we are talking a program that was probably designed for and still works fine on Windows XP, so I like to cut it a little slack and have avoided diving in and gutting + rewriting it. The JCP installer just copies the files to the driver archive area and installs some keys in the registry such that the OS plug-and-play mechanisms can correlate the files with the device when Windows first sees it plugged in. Plugging in then kicks off the "real" install process. Since the libusb DLL is shipped as part of the "driver," it is included in that deferred install process. Arguably, the DLL isn't really part of the driver-proper and could be installed as part of the application instead. However, that's not how the Zadig tool the driver portion of the installer is built on top of works, and (for those familiar with low-level details), I'm not sure the ABI between the libusb0 kernel drivers and the userspace DLL is versioned/stable, so messing with that could lead to other issues in theory. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.