Currently I'm working on Vulkan, Wine 6 and Wine 7. If you want to ask questions or get the latest code, you should go over to github https://github.com/danoon2/Boxedwine
if an error happens, show it in a popup.
Merge branch 'james/mac_m1_build_for_normal_core'
Merge branch 'james/bit_instruction_fix'
Updated on 16-bit memory addresses calculated for bit instructions. Thanks to jmarsh on vogons for pointing out how to do this.
Fixed a bug when relaunching a boxedwine game/app from the UI in the same process. When the previous game/app was torn down, it didn't clear out a global variable.
Merge branch 'james/20.1.2/Fixes'
SDL uses WASAPI for sound by default. For some reason this doesn't work on Windows 7 and will just hang the audio and app. To get around this I will set the environment variable, SDL_AUDIODRIVER, to directsound on Windows 7. Thanks to GOG.com QA for finding this Windows 7 issue
Merge branch 'james/OpenGL'
#37 OpenGL: fixed glReadPixels when packing is used. Added the ability to show windows immediately to the UI. Part 2
#37 OpenGL: fixed glReadPixels when packing is used. Added the ability to show windows immediately to the UI.
#37 OpenGL: fixed marshing for glFeedbackBuffer and glInterleavedArrays
#37 Some simple OpenGL seem to fail if I hide the OpenGL window during creation. Add flag dontHideNewWindows to disable Boxedwine's feature of hiding Windows during creation and showing them when it looks like they will be used. Also implemented glInterleavedArrays call for x64, still need to do the marshalling for other platforms.
Merge branch 'james/minor_stuff'
Including the name for an instruction will now work on release build, exception for emscripten. Empscriten will just return "unknown" for instruction name in order to keep code size down.
Unhandled illegal instruction will now print out the name of the instruction
Added license.txt to the project
Posix fix. Full tilt now works. When the same memory was remapped to another dll, the cached dynamic code associated with the previous dll was not cleared.
Added an extra condition to a unit test and the decoder will longer crash if it comes across an invalid instruction, instead it will just stop decoding and return with the last instruction set to invalid
Simde update: added some missing files
Merge branch 'james/simde_update'
SIMDe update, simde_mm_cvt_ss2si
SIMDe update: fixed linux builds
Forgot to add some new files for the SIMDe update
Updated SIMDe to 0.7.0
Merge branch 'james/minor_refactoring_around_binary_translation'
Missed a part of the binary translator refactoring
Minor refactoring around binary translation
Merge branch 'james/separate_platform_threads_by_chip'
platformThreads will now be separated out by chip
Merge branch 'james/FPU_Unit_Test'
Added unit tests for 3rd group of FPU instructions
Merge branch 'james/More_Bit_unit_tests'
Added more unit tests, should now be done with the bit instructions
Merge branch 'james/Btc_fix'
Added BTC and BTR unit tests. Found a bug with the 32 bit version of BTC where it used the 16 bit code instead.
Some minor refactoring of the FPU to make it easier to work with for binary translators.
Unit tests for Loop and Jcxz
Fixed an issue with the previous checkin that broke the unit test build for normal non dynamic cores
Add unit test for LoopZ and LoopNZ. This found a bug in the dynamic cores for the 16-bit version of LoopZ.
Unit test for bswap instructions
Unit test for setcc instruction
Unit test for cmpxchg8b
Dynamic cores: since the x86 bswap instruction has a native equivalent on all 3 currently supported dynamic cpu's, it will now use those native instructions. bswap will now take 3 native instructions instead of 6.
Fixed a dynamic armv7 bug with the 16-bit signed comparison versions of cmov
Added cmov unit test
Added unit test to scas instruction
Unit test of lods instruction
Merge branch 'james/20.1.2/Fixes'
Merge branch 'james/20.1.2/Fixes'
Vsync will default to disabled
Added the ability to set vsync
Updated change log
Added unit tests for the stos instruction
Enter instruction used the wrong value for the level
Merge branch 'james/20.1.2/Fixes'
Will now prevent the mouse from moving into the letter box region when in fullscreenAspect mode
commented out a couple of unit tests that are giving emscripten trouble.
Fixed the project file for MSVC, it will now show the filter/folders again
Emscriptem seems to get stuck on this test
Merge branch 'james/20.1.2/Fixes'
Added the ability for the full screen option to keep aspect ratio using the new command line argument: -fullscreenAspect.
Merge branch 'james/20.1.2/Fixes'
When scaling the screen, the wrong scale was used for the X coord when getting the mouse position.
Merge branch 'james/ARMv8'
Added bound unit test
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
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.
#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
Added the ability for files.xml to contain back up url's for wine file systems.
The ARMv7 and ARMv8 will now handle 8-bit and 16-bit signed comparisons. This fixes Abiword.
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.
ARMv8: fixed windows build
ARMv8 dynamic core
ARMv8 dynamic core
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.
Merge branch 'james/arm_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 buildRaspbery.sh script to build with dynamic recompiler
Fixed some bugs with the ARMv7 recompiler.
Update Raspberry Jenkins build to use the Raspberry specific test build
Added buildRaspberryTest.sh script.
Fixed emscripten build in the arm branch
Started working on ARM dynamic core
armv7 dynamic core now passes unit tests, but doesn't run any programs yet.
Updated buildjsgl4es.sh to include new sdl platform files
Emscripten will always show the OpenGL window