Commit Graph

163 Commits

Author SHA1 Message Date
flyinghead 8db02cf503 sdl: Support hats. Save/restore window state and size. Fullscreen mode 2020-03-22 14:10:07 +01:00
flyinghead 8f92315207 Use sdl on windows 2020-03-21 15:25:02 +01:00
Flyinghead 0c2e95185c support for right analog stick. Fix gunsur2 inputs 2020-03-20 16:57:50 +01:00
Flyinghead 4e73af0f94 Mem leaks in input mapping/jvs/x11. Fix crash when latin-1 char is input
Fix warnings
2020-03-12 16:09:05 +01:00
Flyinghead b79c074444 axe wchar 2020-01-31 23:51:12 +01:00
flyinghead 36a7c00507 win32: fix crash when switching to vulkan
fix recursive call to VulkanContext::Init
still crashing when starting with vk and switching to GL
2020-01-08 10:58:24 +01:00
flyinghead 3415ce5577 win32: detect platform. SDL support 2019-12-22 23:49:52 +01:00
Flyinghead 29fd406dd8 vulkan: crash on windows when switching from gl to vulkan
Destroy and recreate window when switching from gl to vulkan
VkGetPhysicalDeviceProperties2 crash with old nvidia driver (376)
2019-12-14 17:53:01 +01:00
Flyinghead 2a89874812 decouple imgui from gles renderer 2019-10-19 18:34:24 +02:00
Flyinghead 6611e9bf5e gl: refactor wsi into their own class.Allow dynamic vk<->gl switch 2019-10-18 21:57:08 +02:00
flyinghead a6c56ba748 vulkan: windows support 2019-10-15 21:25:24 +02:00
Flyinghead ae4f378747 Add fast-forward mode
Fix buttons.png not being created if not first run
2019-09-27 14:15:29 +02:00
Flyinghead 8b949e1dca Get rid of time_sync timer. Clean-up 2019-09-11 15:09:23 +02:00
scribam 49b7e0682b Cleanup 2019-09-07 20:36:13 +02:00
flyinghead 5600120b54 win32: fix crash at boot. remove log command lines options
restore .lst compatibility
2019-08-15 10:48:39 +02:00
Flyinghead 5285911133 Mirror writable aica ram to 8mb in 512mb vmem mode
Fixes switching from dc to naomi on windows
Should help games reading past end of aica ram (HeadHunter and others)
2019-07-10 20:17:59 +02:00
Flyinghead ad98e583c8 win32: fix vmem reset 2019-07-10 18:58:55 +02:00
Flyinghead f3a91de1af Unify dreamcast, naomi and atomiswave builds WIP 2019-07-09 23:52:19 +02:00
Flyinghead ad4218d617 audio: use new logging
other logging changes
2019-07-01 17:17:08 +02:00
Flyinghead 8404c6322c New logging framework stolen from dolphin 2019-06-30 21:06:46 +02:00
Flyinghead b226544d03 Merge remote-tracking branch 'origin/master' into fh/wince-dynarec 2019-06-21 14:37:32 +02:00
Flyinghead f29569cf5d more name change 2019-06-20 23:46:20 +02:00
Flyinghead 6ed098a929 wince: enable code block protection 2019-06-19 22:55:47 +02:00
Flyinghead 13a2f8bc61 win32: build fix 2019-06-19 11:14:12 +02:00
Flyinghead 318852e261 dynarec: use mprotect to protect code areas
All ram pages containing code are write protected. In that case, no need
for block checks. Memory reads in the same block(s) can also be executed
at compile time and the results propagated as constants.
When a write is detected in a protected area, the corresponding blocks
are discarded and recompiled using traditional (slow) block checks.

Backported the blkmap code finding change from upstream.
Use smart pointers for block management to avoid reference issues.
Added WriteAfterWrite ssa pass
Fixed crash in ssa ConstProp pass when op list is modified
2019-06-19 11:01:33 +02:00
Flyinghead 5b2cef3fdd dynarec: add negc and xtrct op codes
native implementation of negc and xtrct for x64 and arm64
rec-arm64: pass exception pc in w27 instead of sh4 context
inline mmu_intruction_translation() and clean up
2019-05-26 13:30:05 +02:00
Flyinghead 94e03b2cfd win32: fix build. disable appveyor msvc build 2019-05-22 14:28:11 +02:00
Flyinghead c2c0215e1b Merge remote-tracking branch 'origin/master' into fh/wince-dynarec 2019-05-22 14:13:00 +02:00
Flyinghead fb76efb08d Standard functions for virtual mem alloc/protect/map/... 2019-05-22 11:41:12 +02:00
David Guillen Fandos aa4fc8dd60 Move cache invalidation to vmem_platform and implement NO_RWX on arm64
Still not functional yet, this commit breaks arm64 on android for instance.
Rewrites are not yet figured out, will push them in the next commit.
2019-05-12 23:25:43 +02:00
David Guillen Fandos 3b760f9869 Add FEAT_NO_RWX_PAGES and implement it for x64 CPU (Win and Linux)
Tested: Both with and without the feature, works only for x64 CPUs for
now, but supported in both windows and linux (see vmem implementation
for it, using mem-mapped files).
2019-05-12 22:02:57 +02:00
David Guillen Fandos 1a2b1c8672 Remove traces of memory manager from Jit driver.
Still stuff to be removed in the Naomi file handler and the ARM
AREC, which need to get ported to the new vmem interface.
2019-05-12 19:47:11 +02:00
David Guillen Fandos cbc2af29ad Fix small issues for mingw builds on Linux
Doenst like the paths, big surprise. I tipically build it like:

  make platform=win32 CXX=x86_64-w64-mingw32-g++ \
       WINDRES=x86_64-w64-mingw32-windres \
       CC=x86_64-w64-mingw32-gcc
2019-05-12 17:44:19 +02:00
David Guillen Fandos 6cba98b70a Allocate missing SH4CB and make lock more forgiving. 2019-05-12 00:02:24 +02:00
David Guillen Fandos 1a4323c1ce Fix runtime issue in Windows target, was not mapping pages correctly. 2019-05-11 23:13:58 +02:00
David Guillen Fandos 4458dac49a Fixing some missing imports and a bug in pointer tracking. 2019-05-11 22:35:17 +02:00
David Guillen Fandos b74db6ef53 Moving vmem to separate files with a proper interface.
Works so far for Linux and Android, need to do some testing on Windows.
2019-05-11 22:09:52 +02:00
david miller c681dc77dc Win32 fullscreen via alt-enter 2019-05-01 19:11:35 -04:00
flyinghead 0d19da2b4b wince: disable vmem32 on windows 2019-04-30 17:43:21 +02:00
Flyinghead f0fab09d7c yet more win32 fix 2019-04-29 18:49:31 +02:00
Flyinghead 810b8a59da wince: 32-bit virtual mem space
use fast mem read/write for x64 and arm64 dynarecs
2019-04-29 18:23:00 +02:00
David Guillen Fandos 3692ea7ae6 Improve stdclass.h/cpp support for non-Linux non-Windows platforms
Simplifies having implementation on platform separated files, which is a
pain for platforms which are not Windows but not Linux either (and yet
support pthreads).
Some minor cleanup here and there while we are at it.
2019-04-27 14:34:10 +02:00
david miller cc9d5ec55b CMake/Master working, tested on windows with Clang && MSC (x86,x64) 2019-04-12 16:59:39 -04:00
David Miller 3d1b82854e
Merge branch 'master' into fh/win32-winresize 2019-04-12 13:03:30 -04:00
Flyinghead 37a533740b win32: close thread handle when finished 2019-04-09 10:37:49 +02:00
Flyinghead e8205e568b naomi/aw: fix atomiswave and naomi inputs
atomiswave analog axes support
map atomiswave and naomi driving games inputs
2019-04-06 19:36:57 +02:00
flyinghead d7fcc80be4 win32: don't save window size if minimized 2019-04-01 11:32:49 +02:00
flyinghead d945b2b8de win32: allow window to be resized/maximized. Save size and max state. 2019-04-01 11:32:25 +02:00
flyinghead 7f0489ff28 visual studio compatibility
no modem support
no zip or 7z support so no naomi for now
hacked a .asm file as vs doesn't support inline assembly -> code dup
2019-03-30 19:26:05 +01:00
flyinghead 4b0e77a2b3 win32: don't save window size if minimized 2019-03-30 11:27:14 +01:00
flyinghead 0e198fac58 win32: allow window to be resized/maximized. Save size and max state. 2019-03-30 11:22:51 +01:00
Flyinghead 80626b1f4e win: compile fix 2019-03-29 17:34:16 +01:00
Flyinghead daf4980fc8 input: save assigned maple port of each gamepad 2019-03-29 17:19:18 +01:00
Flyinghead c809c6c56f Merge branch 'fh/mymaster' into fh/master-merge 2019-03-25 16:47:47 +01:00
Flyinghead ca58c323cd Moved most android settings into the new gui
virtual gamepad editing and settings
home directory setup during onboarding
start content browser at app startup after getting permission
Use imgui osd to display error messages (msgboxf)
Added About tab in settings with version, git hash and Send logcat
button (android)
2019-03-05 00:54:01 +01:00
Flyinghead 492e771272 Content browser (WIP)
Get rid of the renderer thread. It is now the main/UI thread on all
platforms. The emulator runs in a separate thread.
Content browser displayed at startup.
2019-02-25 17:52:53 +01:00
Flyinghead 56c0358eaf win32 fix 2019-02-24 13:51:26 +01:00
Flyinghead 96dddca245 win32: mouse wheel, relative mouse position and text input support 2019-02-24 13:41:24 +01:00
Flyinghead c6baa4827b x11: support mouse wheel. ascii text keyboard input 2019-02-24 12:53:49 +01:00
flyinghead 56be9f462b xinput: fix rumble 2019-02-22 19:53:26 +01:00
Flyinghead a39503dd56 rumble support for xinput and evdev 2019-02-22 19:23:03 +01:00
Flyinghead 3561b3479d win32: invert Y axes of sticks
implement inverted axis in base gamepad device
2019-02-22 11:35:41 +01:00
flyinghead d392923d86 win32: added mouse and keyboard virtual gamepads 2019-02-21 22:39:26 +01:00
flyinghead 94f346a1e0 win32: use new input system 2019-02-21 17:57:51 +01:00
Flyinghead 8b5c2a3fac New input handling/mapping system, SDL only for now. Gui wip 2019-02-12 11:30:24 +01:00
Flyinghead 5ef0f74620 win32: keyboard support 2019-02-09 16:22:09 +01:00
flyinghead 4685bc1fad win32: hook up mouse 2019-02-07 20:04:17 +01:00
Flyinghead 82f156f143 Gamepad support to GUI. Wire evdev, SDL and windows
Allow dc_stop() to work even when the emu is paused
2019-02-07 16:59:24 +01:00
Flyinghead 9ccf0efdea switch between interpreter and dynarec at runtime 2018-11-11 23:49:41 +01:00
Flyinghead 4c334f09ea AW: various fixes, more roms 2018-11-09 13:22:27 +01:00
Flyinghead dc9780eb46 Android: fix black screen at boot on some devices 2018-10-29 20:03:47 +01:00
David Miller a8c09197a3 os_MakeExecutable() using sizeof(sz) 2018-10-28 11:45:35 -04:00
flyinghead 27b79edf6f win32: Naomi test/service/coin keyboard bindings 2018-10-21 02:51:20 +02:00
flyinghead c135ab0e90 Win32: fix msvc build. removed tick thread 2018-09-25 14:09:07 +02:00
David Miller 2e23ee4628 use enum for cli arg exit and android build ndef 2018-09-20 17:48:27 -04:00
David Miller b58e866b6b Desktop command args support fixes and auto git versioning for VS and make 2018-09-20 17:48:27 -04:00
Flyinghead 7ce4fccb37 Merge remote-tracking branch 'origin/master' into fh/mymaster 2018-09-20 17:28:41 +02:00
Flyinghead bc6a8f451a Fix picotcp on Windows
Automatically configure tap IP address, route and proxy arp using iphlpapi.
Partial port to MINGW.
2018-09-17 12:59:52 +02:00
Abandoned Cart 4ed65fca3d
Revert "Fix to windows OpenFile dialog #1238" 2018-08-28 13:38:11 -04:00
Pavel Dmytriiev (Github) a4e6dbadb5 Fix to windows OpenFile dialog
Now it actually says something about what exactly it tries to open, also on "cancel" it exits gracefully.

Proposal: instead of checking one thousand return codes, which are easily ignored, I suggest using an exceptions (this part of emulator doesn't require execution speed, so exceptions here would be just fine).
2018-08-27 23:20:39 -04:00
Christoph "baka0815" Schwerdtfeger 11b01633d0 Fix Windows 2018-08-21 00:33:18 -04:00
Christoph "baka0815" Schwerdtfeger 638a97d1ae Maple: Reworked the way controllers are created
A new function was introduced to abstract the setup of input devices for each os: os_SetupInput().
I hope I implemented this everywhere correctly and the behaviour is identical to before.

The new function mcfg_CreateNAOMIJamma() creates the NAOMI Jamma interface and is hidden behind a compile flag (same as before).
The previous function mcfg_CreateDevices() was renamed to mcfg_CreateDevicesFromConfig() because it creates the devices based on the configuration (``nb`` setting).
2018-08-21 00:33:18 -04:00
Flyinghead 960904c401 Exit cleanly in desktop platforms
Lighter and cleaner version of the previous PR
2018-07-23 19:52:50 +02:00
KrossX d4d782c71c Remove unused lines. 2016-01-22 15:08:29 -03:00
KrossX c37c5c42e4 Right motor adjustment 2015-12-17 22:10:55 -03:00
KrossX b59ca13cfe Implemented PuruPuru device
Includes a simple XInput implementation for Windows.
2015-12-07 21:21:03 -03:00
KrossX b566092d28 Basic XInput support for Windows
Adds simple X360 controller support for Windows.
2015-12-07 20:09:15 -03:00
Jan Holthuis b6d0cddcaa stdclass: Add support for separate config/data dirs and system wide dirs
This adds support for separate config and data dirs.

On Linux, these will be compliant XDG Basedir Specification, i.e.
XDG_CONFIG_HOME and XDG_CONFIG_DIRS (or XDG_DATA_HOME and XDG_DATA_DIRS
respectively). On all other platforms, there currently just set to the
homedir path (so no previous behaviour has been changed).

If reicast wants to read and write a data file, it just calls
get_data_path("/samplefile.txt"). If it does not need to write to
that file, it just uses get_data_path("/samplefile.txt", false). That
way, we can also use system-wide dirs (like /usr/share/reicast on
linux), that the user usually doesn't have write access to.

The same applies for config file, where you use get_config_path(args)
respectively.
2015-09-02 15:48:53 +02:00
Stefanos Kornilios Mitsis Poiitidis 365accfde2 windows: fix TARGET_NO_NVMEM 2015-08-11 19:12:20 +02:00
Stefanos Kornilios Mitsis Poiitidis e3845465f0 win64/jit: Generate unwind table for the jit code cache
This required moving the SH4_TCB outside the exe, as new tables that belong on the executable are ignored.
This isn't perfect, but there's a large area to scan for available address space so it shouldn't be a problem
2015-08-11 00:26:02 -04:00
Stefanos Kornilios Mitsis Poiitidis 8de800497e windows: Don't call InitAudio from os_CreateWindow
Huh, why was this call even there?
2015-08-09 01:48:41 +02:00
Stefanos Kornilios Mitsis Poiitidis 39ead6159b Merge pull request #699 from reicast/feat/build-defines-cleanup
(Imma merge this, as it's needed for rec-cpp work, but that doesn't mean the discussion is closed)
2015-07-25 14:03:35 +02:00
Stefanos Kornilios Mitsis Poiitidis a4a427feea shell/windows: Move taskip, swap to F1,2,10 from '1', '2', '0' 2015-07-25 13:28:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 9cf9bacd13 build: Refactor HOST_NO_REC everywhere 2015-07-25 13:19:26 +02:00
Stefanos Kornilios Mitsis Poiitidis 1125f25eae Fix win86 build 2015-07-14 17:47:54 +02:00
Stefanos Kornilios Mitsis Poiitidis f3c8e3623d Fix HOST_CPU for x64 windows 2015-07-14 17:31:48 +02:00
Stefanos Kornilios Mitsis Poiitidis b385575d6f Get x64 building 2015-07-13 21:13:51 +02:00
Stefanos Kornilios Mitsis Poiitidis ea26e2784a Merge windows and linux x86 recompiler paths 2015-07-06 08:15:45 +02:00
Stefanos Kornilios Mitsis Poiitidis b5108993c9 Audio: Fix windows build 2015-07-05 14:53:43 +02:00
Jan Holthuis a65b752592 Added DirectSound audio backend
This commit adds the DirectSound audio backend, which is a modified
version of core/oslib/ds_audiostream.cpp.

Porting this was a bit tricky, since ds_audiostream.cpp defined 3
extern functions that the other backends didn't have:
* bool os_IsAudioBuffered();
* bool os_IsAudioBufferedLots();
* int os_getusedSamples();

I came to the conclusion that these methods are obsolete since they are
only used core/windows/winmain.cpp in the function void os_wait_cycl(u32
cycl) - which is used nowhere. Thus, I removed os_wait_cycl and the
headers of the three functions in core/oslib/oslib.h. I also removed the
functions themselves (except for int os_getusedSamples(), which is still
used inside the directsound backend, but can safely declared static for
that purpose).

The DirectSound backend will be included during compilation if HOST_OS
is OS_WINDOWS.
2015-06-27 20:44:53 +02:00