Sunday, March 6, 2016

Doom 2016 Alpha running on Linux with Wine

The WINE developers and community have typically been hard at work to fix issues, particularly with big AAA games. Usually with a bit of a wait before we see enough supported libraries for the title to function properly. Now it appears a Linux user has already managed to get the latest Doom Alpha running on WINE.

Doom currently has a closed alpha version available a Reddit user has it running on Linux, making it easier than expected. To the point there nothing really particular was done to get the game working, including excellent frame-rate on an Nvidia GTX 970. With the only things missing is the lack of Vsync. Not too shabby.
I obtained an Alpha copy of Doom with the intent of seeing how well it runs on WINE. I was a little concerned with performance and stability considering that it’s a 64-bit-only game (installed to the 32-bit folder, though), but this has proved to be a non issue. Since I’m too pleased with how well this worked, here are the major points:
  • Installed flawlessly using WINE Staging 1.9.1, but this should work with any version of WINE currently shipping with popular distros, seeing as DirectX crap-ware is not in the picture
  • Ran without any configuration (no DLL overrides, etc…)
  • Buttery smooth
  • Worked at Ultra settings with my GTX 970
  • Only issue was the lack of a VSYNC setting
So essentially, to use Doom 2016 on Linux with native performance, you will need to do the following:
  1. Set up a clean 64-Bit WINE prefix.
  2. Run the installer
  3. Install steam
  4. (Not always needed) fix DirectWrite issues with Steam (lol)
  5. Play Doom
  • i7-4790k
  • GTX970 4GB
  • 16GB DDR3-2400
  • 4.4.0-pf5turbokoopa #5 SMP PREEMPT Tue Feb 23 00:02:03 CST 2016 (linux-pf)
  • WINE 1.9.1
So as it stands, the new engine has been optimized rather nicely, seeing more advanced hardware requirements are expected for Linux. This if not a guarantee that the final version of the new Doom will just as easily, but it does give the community hope.

Doom will be released on May 13, 2016 for Windows PC, Xbox One, and PlayStation 4.

MacOS and Windows software bundles, save up to 90% off the normal retail price only at BundleHunt.

The WineHQ Wine development release 1.9.5 is now available for Linux and Mac

The Wine development release 1.9.5 is now available.

What's new in this release:
  • New version of the Mono engine, with 64-bit support.
  • Beginnings of the WineD3D command stream.
  • Support for effect states in Direct3DX.
  • Drag & drop improvements.
  • Various bug fixes.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.

Bugs fixed in 1.9.5 (total 24):

  15473  Adobe After Effects 4 crashes on startup
  17448  Impossible to insert an MPEG file in PowerPoint 2003
  22039  LEGO Island (Mindscape) fails to start (Direct3DRMViewport::SetAppData() and IDirect3DRMViewport::GetAppData() are stubs)
  29583  JScript is missing 'new XMLHttpRequest();' support
  30687  Powerpoint 2003/2007: embedded video play/pause on click no longer works
  34318  Multiple games and applications need ntdll.dll.EtwRegisterTraceGuidsW (Process Hacker 2.x, Far Cry 4)
  34870  Multiple games and applications crash on unimplemented function msvcr100.dll _crt_debugger_hook (ArchiCAD 16, Far Cry 4)
  35286  Borderlands (Steam) crashes on unimplemented function msvcr90.dll._crt_debugger_hook
  36996  Multiple games need msvcp110.dll.??0_Pad@std@@QAE@XZ implementation (World of Tanks 9.2, Planetary Annihilation, Train Fever)
  37115  Calling ReadFile from WINBASEAPI (WinBase.h) with zero read length causes hang
  37694  Multiple applications (Kontakt 5.4.x, Trainz: A New Era, Reaktor 6.0.1) need msvcp120.dll.??0_Pad@std@@QEAA@XZ
  38788  Malwarebytes Anti-Malware 2.1.x crashes on unimplemented function msvcp100.dll.?system_category@std@@YAABVerror_category@1@XZ
  38963  Multiple applications (Minko Engine v3 based custom application, Format Factory v3.7) crash on unimplemented function msvcp120.dll.??0_Pad@std@@QAE@XZ
  39242  oleaut32:typelib fails in the Korean locale
  39591  Crimzon Clover: Page fault on launch
  39636  Assassin's Creed Syndicate crashes due to lack of DisplayConfigGetDeviceInfo in user32.dll
  39690  MAXQDA 12.0.2 installer crashes on unimplemented function ADVAPI32.dll.RegCopyTreeA (Windows Vista+ API)
  39852  3DMark03: Mother Nature test: waterfall has no transparency if AllwaysOffScreen=disabled
  39908  SuperTux 0.3.5a crashes on startup, needs msvcr120.dll.strtof
  40083  Heroes of the Storm Freezes/Crashes after its recent updates
  40186  mscoree:mscoree test regression
  40191  ntdll:rtl test regression
  40194  drag and drop doesn't work because of typo in xdnd.c
  40204  Steam client fails to start with UmePlus font installed, when running in dwrite mode

MacOS and Windows software bundles, save up to 90% off the normal retail price only at BundleHunt.

Wednesday, March 2, 2016

PlayOnBSD easily install and run Windows software for use with Wine

I just noticed that PlayOnBSD version 4.2.8 has been added to the FreshPorts repository. It should be allot easier and straight forward for BSD users to play Games and run productivity software on FreeBSD and PC-BSD now. So, if you need to run a Microsoft Windows Game or office application go and install the port and start testing PlayOnBSD and Wine now.

This is the adaptation of PlayOnLinux to FreeBSD. The purpose of this
program is to simplify installation of MS Windows software to run under
the Windows emulator "Wine".

The name indicates, that the program was initially developed to support
easy installation of Windows games on Linux. The range of supported
applications has long been extended to cover a wide range of windows
applications including Microsoft Office.

PlayOnFreeBSD behaves significantly different than PlayOnLinux in a
number of aspects, e.g. which version of Wine to use (only a single
version is normally installed on FreeBSD, but PlayOnLinux tries to run
each Windows application in a Wine environment that has previously been
reported to give good results and installs missing Wine versions in the
user's home directory).

Reviewed by: antoine
playonbsd Easily install and run Windows software for use with wine
4.2.8 emulators on this many watch lists=0 search for ports that depend on this port Find issues related to this port Report an issue related to this port
Maintainer: search for ports maintained by this maintainer
Port Added: 18 Feb 2016 13:24:24
Also Listed In: games
License: GPLv3
This is a port of PlayOnLinux to FreeBSD. It allows you to easily install 
and use numerous games and apps designed to run with Microsoft Windows.
The Windows emulation is provided by Wine.

SVNWeb : Homepage : Distfiles Availability : PortsMon

To install the port: cd /usr/ports/emulators/playonbsd/ && make install clean
To add the package: pkg install playonbsd
PKGNAME: playonbsd

NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
Runtime dependencies:
  1. 7z : archivers/p7zip
  2. bash : shells/bash
  3. glxinfo : graphics/mesa-demos
  4. gpg : security/gnupg
  5. gsed : textproc/gsed
  6. sudo : security/sudo
  7. xdg-open : devel/xdg-utils
  8. xterm : x11/xterm
  9. wine-gecko>=2.21 : emulators/wine-gecko
  10. wine-mono-devel>=4.5.6 : emulators/wine-mono-devel
  11. python2.7 : lang/python27
  12. wine : emulators/i386-wine-devel
  13. : x11-toolkits/py-wxPython28
There are no ports dependent upon this port

Configuration Options
===> The following configuration options are available for playonbsd-4.2.8:
     GECKO=on: Wine-gecko HTML rendering support
     MONO=on: Mono bindings or support
===> Use 'make config' to modify these settings


FreshPorts PlayonBSD

Tuesday, March 1, 2016

ReactOS 0.4.0 has been Released

Nearly ten years ago the ReactOS Project released version 0.3.0. Today we are proud to announce the formal release of version 0.4.0. A great deal of work has gone into making this release happen and as we look back it is remarkable to consider how far the project has come since that release a decade ago. This release is both a celebration of and a testament to everything that the ReactOS team and community has achieved together. Thank you to all of you for having stood by the project for this long and we hope rewarding journey. For those of you chomping at the bit to check out the release, go to the download page to get it now.


In Memoriam

It cannot be emphasized enough that ReactOS is where it is today due to the tireless efforts of the people that make up the project. Over the course of the project developers have come and gone but they have all left a mark whether it be in their code or the memories of their interactions with those still with the project. Sadly in two cases these memories are all that we shall ever receive from them. Gé van Geldorp was one of the project’s earlier developers and was heavily involved in the development of the win32 subsystem. He also helped mentor many other developers that joined afterward and is fondly remembered for his willingness to help those just getting started in the project. Brandon Mark Turner was another developer in the earlier days of the project. He worked out a variety of components and was responsible for some of the initial work to make ReactOS buildable with Microsoft’s compiler toolchain. The 0.4.0 release is dedicated to their memory and we hope that its fruition will serve to show at least some degree of our immense gratitude for the effort they put into this project.


Here we document some of the highlights that separate 0.4.0 from not just the 0.3.17 release but also the cumulative achievements that the 0.3.x series achieved.
First of course the bulletpoint shortlist for those of you who don't want to wade through my giant mountain of text.

User-Centric Improvements

  • ext2 read/write and NTFS read support
  • New explorer shell and theme support
  • SerialATA support
  • Sound support
  • USB support
  • VirtualBox and VirtualPC support
  • Wireless networking

Developer-Centric Improvements

  • CMake support for GCC and MSVC compilation
  • Compilation times significantly improved
  • GDB remote debugging interface for kernel debugging
  • WinDBG support
And now onto the meat. In alphabetical order because it’s as good as any other order.

Build Modernization

Those who have been with the project since its early days will likely shudder at recollecting the means by which ReactOS was compiled back then. The first attempt to normalize the situation was in the RBuild system, a custom build specification format based on XML that was supposed to make it easy for developers to add new files and modules to the project. While impressive for its time, it suffered from structural issues that not only introduced very subtle bugs but also prevented the project from using anything but GCC to compile ReactOS.
The solution to this was a migration to the CMake platform, an effort that took many months and saw countless issues fixed. The first formal release using the CMake-based build system was 0.3.15 and since then the modernized build system has allowed developers to use not only GCC but also Microsoft’s compiler and debugging suite to build and test ReactOS, an ability that was crucial to many of the features and improvements listed here today.


Since its earliest days ReactOS has relied on one form or another the FAT filesystem. There was also significant interest from the community for something better, or at least something different, but a variety of technical difficulties prevented the operating system from supporting anything else. While support for ext family of filesystems progressed slowly but steadily probably the more exciting development has been preliminary support for reading NTFS volumes. While bits and pieces of the code were folded into 0.3.17, it was incomplete and 0.4.0 will be the first version to actually provide out of the box support for reading NTFS volumes.


From 2D to 3D there were countless improvements to ReactOS’ graphics stack. Optimization work resulted in considerably faster rendering of 2D graphics, in some cases even beating performance on Windows, while support for 3D graphics has steadily advanced since work began in the 0.3.7 time period. Furthermore, architectural fixes released as part of 0.3.8 saw the ability to properly load graphics drivers, another milestone in the project’s goal of compatibility.


The memory manager, a central piece of any operating system and whose stability and correctness underpins that of the rest of the system. The memory manager that has been with the project for so many years finally saw significant parts of it retired in the 0.3.15 release. More work remains of course but a major milestone was achieved that day.


Support for networking was first formally introduced in the 0.3.0 release and since then the team has steadily improved upon the functionality and features. These range from the mundane such as simply fixing bugs to adding of wireless support in 0.3.14, affectionately known as the the PI release internally. Since the 0.3.17 release the project has also added in support for SSL, with the inclusion of the mbed TLS library.


A much requested feature for ReactOS was support for 16bit DOS applications. On Windows this support is provided by the NT Virtual DOS Machine (NTVDM) and the ReactOS implementation of it was first formally released in version 0.3.17. Needless to say since then the ReactOS NTVDM has seen considerable improvement to the point where many of the testers are sharing examples of old DOS games resurrected. And one of the biggest advantages to the way in which NTVDM is implemented in ReactOS is that support for it will continue on non IA-32 platforms, including AMD64 and even ARM.


Hate it or love it, the registry underpins much of the operating system’s configuration in the Windows family and like its NT-based relatives ReactOS also possesses one. The project has gone to great lengths to ensure that its implementation of the configuration manager works not only in ReactOS but is also able to correctly read and modify a registry from Windows, providing the ability for ReactOS’ own bootloader to be able to boot Windows 2003 successfully.


The explorer shell used in 0.3.0 was originally introduced all the way back in 0.2.0. When it was created ReactOS lacked the proper infrastructure to actually support a proper graphical shell, forcing the old explorer’s creator to reproduce much of the functionality, that was supposed to be provided by the operating system, in the shell itself. This worked for a time but as the OS became more complete the shell was unable to benefit from these improvements. The new explorer shell and all of its supporting infrastructure, and there was a great deal of infrastructure at that, was a cumulative effort by several people and is one of the truly new features being introduced in 0.4.0 with no previous releases possessing it.


Much as PS/2 connectors slowly fell out of use for keyboards and mice, storage devices in modern computers now use SATA instead of IDE. ReactOS added support for such devices in 0.3.10 by importing the UniATA driver and have steadily improved upon that support ever since.


What one might presume to be a rather basic piece of functionality was actually an extremely complex undertaking. Support for sound arrived in 0.3.9 and has progressively been improved upon ever since as we move towards a new normal of expecting things to work instead of being amazed that they do.


In this day and age almost every peripheral comes with a USB connector. Initially the project sought to simply provide support for USB mice and keyboards, support first added in 0.3.10, but a full and proper USB stack is ultimately a necessity in this day and age. This stack was first provided in the 0.3.15 release and has seen continued work since.


Making the shell look nicer was another oft-requested improvement and one that was a long time coming. In the course of adding that support the project encountered a few bumps of course but in the 0.3.16 release ReactOS was shipped with the Lautus theme for those that wanted to try it out.

Final Notes

More detailed technical information about the release can of course be found on the 0.4.0 wiki page with links to the changelog and other notes. Please also note that the VirtualBox image is not yet live at the time of this release.