Fixed an issue with the mac x64 build that causes it crash while starting
Merge branch 'james/ARMv8'
Added bound unit test
Fixed Linux x64 build
Fixed the XCode build for x64
Fixed Linux 32-bit
Updated the version to 20.1.2. Also fixed a minor issue with file sytem dependencies.
Restored the ability for the x64 Windows build to map native memory. Now it can map a 64-bit pointer returned from OpenGL and use it in the 32-bit emulated process. This fixes Fire Fight and Age of Empires.
Fixed an issue when a program create a GDI window while a GL window is still open. This fixes a regression with Age of Empires.
Fixed a regression in the dynamic core for the sub instruction when it doesn't need to calculated flags. This was caused by 5e53844 (July 6, 2020)
Added some more cpu unit tests.
8/16 bit ror/rol instructions need to set the flags even though the result won't change for certain shift amounts, like for 8-bit instruction when the shift is 8, 16 or 24
Added unit test for 0xa4 and 0xa5, MOVS.
Abstracted out the binary translator a little bit more.
Forgot to exclude helpView.cpp from the Windows test build
MacOS can now open a hyperlink from Boxedwine UI
Forgot to include the windows project file changes for the last checkin
Added a help button for Boxedwine UI. It still needs to be populated with more help, but its a start. Also added the ability for display hyperlinks in Boxedwine UI.
Boxedwine will now inform the user if a new version of Wine is available and ask them if they would like to download it.
Added the ability for files.xml to contain back up url's for wine file systems.
#19 I think I finally fixed the mouse/keyboard issue that causes some games to hang. The fix came from studying in more detail winex11.drv/event.c/X11DRV_MsgWaitForMultipleObjectsEx
x86, ARMv7 and ARMv8 dynamic recompiler will now combine eip updates where safe. Also ARMv7 and ARMv8 will not reload a constant into a register if that register currently contains the constant from a previous instruction.
The ARMv7 and ARMv8 will now handle 8-bit and 16-bit signed comparisons. This fixes Abiword.
ARMv8: fixed windows build
ARMv8: changed how I handle registers. I will now only use temp registers, so blocks by default will not have to save/restore registers before using them. If a function is called, most of the time it will do a single save/load pair, which will be the register holding the CPU and LR. MDK is up to 28 now which is a good improvement over 16 for the non dynamic 64-bit core.
ARMv8 dynamic core
Merge branch 'james/arm_dynamic_core'
Fixed some warnings in the Raspberry build and changed the gcc optimization from O2 to O3
ARM compiled with -O2 seemed to change who was responsible for sign extending a signed char paramater for idiv8, so the dynamic recompiler will now always sign extend the parameter.
updated builRaspberry script
Update Raspberry Jenkins build to use the Raspberry specific test build
Added buildRaspberryTest.sh script.
Update buildRaspbery.sh script to build with dynamic recompiler
Fixed some bugs with the ARMv7 recompiler.
emscripten audio buffer must be pow of 2 now
Fixed emscripten build in the arm branch
armv7 dynamic core now passes unit tests, but doesn't run any programs yet.
Started working on ARM dynamic core
Updated the Raspberry Jenkinsfile
Raspberry unit tests now pass
Raspberry Pi Jenkins file
The Raspberry Pi build will now use the OpenGL 2.1 backend for ImGui. Not exactly speedy, the Roller Coaster Tycoon demo seems to get about 1 frame per second.
Raspberry Pi build
Merge branch 'james/33_Quake_2_fix_for_normal_core'
#33 Fixed an experimental x64 binary translator issue if the FPU was emulated.
#33 Fixed some FPU logging issues.
#33 Fixed another FPU bug, this time with FXRSTOR. Now Quake 2 with the normal core is working.
#33 FCOMI ST instruction mistakenly popped the FPU stack. This caused bogus results when using the FPU. I also improved FPU logging. This seems to fix one issue with Quake 2, but soon after this code runs another exception happens.
Merge branch 'james/sdl_abstraction'
Jenkins was not properly building the x64 Release for Windows
Fixed a couple more issues with the SDL abstraction and marked /dev/fb as experimental and turned it off for all builds.
Fixed the mac build for the sdl abstraction branch
Windows x64 test build fix
One more try for the emscripten build
Fixed some build warning and the emscripten build
Abstracted out the SDL code for events and windows
Removed the SDL2 preprocessor flag. SDL 1 will no longer be supported. I also separated the SDL audio specific code out of devdsp and into its own file.
Started some work on abstracting out SDL
#32 started working on removing marshalp and marshalpp for OpenGL marshaling. They are generic functions that hope for the best when it comes to marshalling. I'm trying to replace them with more type specific versions.
wglgears was failing to show the window because it was smaller than I was looking for when trying to prevent multiple small test windows from flickering onto the screen while a game tests the display. Now the code will show the window regardless of the size if it has been more than 2 seconds since it was created.
#19 Added the ability to change the frequency of mouse and keyboard events sent to wine. The new command line argument is -pollRate. The default is 40 and 0 means unlimited like it was before this change. I also added the ability to set this option on a per app basis in the UI.
Merge branch 'master' of https://git.code.sf.net/p/boxedwine/source
Update Wine 5.0 to revert a change that caused Wine to fail to create a window on slower system
Some work on Linux fpu exceptions
Some work on exceptions. Looks like for x64 I was reporting to wine an int divide by zero for all fpu exceptions.
Some games would not show their window, like the Breakdown. The logic to try and prevent multiple create/destroy windows to test the display didn't work in all cases. Now there is a catch all that will show the window after a delay of 1 second.
Updated emscripten Jenkinsfile to help with running unit tests
Update emscripten Jenkins to run unit tests in headless firefox
Update emscripten Jenkins file to call unit tests
commented out a couple of cpu tests for emscripten
Removed some warnings in the normal core when shifting
Windows Jenkins build wasn't calling the x64 version of the unit tests
Automation scripts for Linux
Added x64 automation target to Xcode
Created a new target for Mac automation and turned sandboxing off for it.
If an automation script is not found, Boxedwine should return a non 0 exit code so that jenkins can fail
Added BOXEDWINE_RECORDER to the mac build so that it can run automation tests
Automation script for mac
Automation fix, the 32-bit and 64-bit scripts were clobbering each other
add emscripten test build.add app-payload and overlay-payload parameters.
If the automation script times out, it should return a non 0 value to indicate an error
Windows 32-bit automation fix
More work on automation scripts
Automation will now return 0 for sucess
Automation script for Windows x64
Merge branch 'james/Automation_fix'
Some fixes to get automation working again
Update readme so I can test jenkins and git hooks
Windows jenkins build failed to run tests
More work on Windows jenkins file
More work on the Windows jenkins file
Working on the windows jenkins file
Windows jenkins file
Add Jenkinsfile for mac build
Update Linux and Emscripten builds for Jenkins to be on Linux machines